[JBoss JIRA] Created: (RF-3559) rich:combobox using different itemValue and itemLabel select item
by Rafael Jimenez (JIRA)
rich:combobox using different itemValue and itemLabel select item
-----------------------------------------------------------------
Key: RF-3559
URL: http://jira.jboss.com/jira/browse/RF-3559
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.2.1
Environment: IE7 - Richfaces 3.2.1 CR7 - eclipse europa
Reporter: Rafael Jimenez
Priority: Optional
Fix For: 3.2.1
In this code:
-------------------------------------------------------------------------------------------------------
<f:view>
<ui:composition>
<ui:define>
<h:form>
<rich:panel style="width:500px; height:300px; overflow:scroll" >
<h:outputText value="ComboBox Scroll Bug" />
<rich:comboBox>
<f:selectItem itemValue="001" itemLabel="option1" />
<f:selectItem itemValue="002" itemLabel="option2" />
<f:selectItem itemValue="003" itemLabel="option3" />
</rich:comboBox>
</rich:panel>
</h:form>
</ui:define>
</ui:composition>
</f:view>
---------------------------------------------------------------------------------------------------------------
It must show itemlabels options and get itemvalue but It shows itemvalues and get itemvalue from selectitem.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (RF-6039) Rerender is SubView Blind
by Francisco Jose Peredo Noguez (JIRA)
Rerender is SubView Blind
-------------------------
Key: RF-6039
URL: https://jira.jboss.org/jira/browse/RF-6039
Project: RichFaces
Issue Type: Bug
Reporter: Francisco Jose Peredo Noguez
rerender is subView blind, lets say we have 2 subview
<f:subview id="idSubview1">
<a:aRichControl="idOfRichControl">
<a:commandButton id="commandButton" reRender = "idOfRichControl">
</f:subview id="someSubview1">
<f:subview id="idSubview2">
<a:aRichControlid="idOfRichControl">
<a:commandButton id="commandButton" reRender = "idOfRichControl">
</f:subview id="someSubview1">
Since we are using subview, it does not matter that the id of the aRichControl inside each of the subview is the same, because the id of the subview is prefixed on runtime, so the ids of the two aRichControl end up being idSubview1:idOfRichControl and idSubview2:idOfRichControl.
But the problem is that reRender is subView blind, so, idSubview2.commandButton will reRender the first idSubview1:idOfRichControl instead of idSubview2:idOfRichControl.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (RF-8141) IE 8: resize of invisible extended data table leads to JavaScript error in calculateWidthsFromRatios
by Andreas Schank (JIRA)
IE 8: resize of invisible extended data table leads to JavaScript error in calculateWidthsFromRatios
----------------------------------------------------------------------------------------------------
Key: RF-8141
URL: https://jira.jboss.org/jira/browse/RF-8141
Project: RichFaces
Issue Type: Bug
Components: component-tables
Affects Versions: 3.3.2.SR1
Environment: IE 8, JBoss 5.1.0 GA, Liferay 5.2.3, JBoss Portlet Bridge 1.0.0.CR2
Reporter: Andreas Schank
While re-rendering a page with an hidden extended data table IE8 throws a JavaScript error in calculateWidthsFromRatios (extended-data-table.js) while resetting the width of the last column.
Since the total width of the extended data table is set to 0 a too large width is to be subtracted from the last colum which leads to an error.
I do not exactly know why the table will be resized (I guess because it is in a portlet temporarily hidden) but subtraction from the last column (or resizing the component) could be checked for the case that the value to be sutracted is too large or maybe the function skipped completely if maxWidth is 0.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (RF-8197) Optimize AjaxChildrenRenderer render component check algorithm
by Jan Ziegler (JIRA)
Optimize AjaxChildrenRenderer render component check algorithm
--------------------------------------------------------------
Key: RF-8197
URL: https://jira.jboss.org/jira/browse/RF-8197
Project: RichFaces
Issue Type: Patch
Security Level: Public (Everyone can see)
Affects Versions: 3.3.2.SR1
Environment: Myfaces 1.2.8, Facelets 1.1.15, Tomcat 6.0.20
Reporter: Jan Ziegler
I just realized some possible "lifecycle processing overhead" when doing ajax actions:
In render response phase each ajax component is checked for rendering by the method AjaxChildrenRenderer.encodeAjaxComponent(). That - what I could see - is the case when:
# the component´s rendered-attribute is true
# the component is ajaxRendered
# the componentId is defined in the reRenderId-List
This also reflects the order of checking, so the first thing to be done is check if the component´s rendered-attribute is true. But this might also lead to additional lifecycle processings when
rendered-conditions are bound to managed beans by el expressions. To evaluate the rendered condition, request scoped managed beans must be created. to my opion this is suboptimal, like in my case the managed bean performs some (time intensive?) actions in its constructor or the rendered conditions relies on a list which must be fetched from the database - and this also happens even if the componentId is not in den reRenderId-List.
So why not first evaluate if the componentId is in the reRenderId-List or the component is ajaxRendered and then (if one of this conditions is true) additionally check the rendered-condition?
This might be accomplished with a small change AjaxChildrenRenderer.encodeAjaxComponent():
{code}
public void encodeAjaxComponent(FacesContext context,
UIComponent component, String currentPath, Set<String> ids,
Set<String> renderedAreas) throws IOException {
if (component.isRendered()) { // skip not-rendered components.
boolean found = false;
boolean limitToList = AjaxContext.getCurrentInstance(context).isLimitToList();
String elementId = component.getId();
String absoluteId = currentPath + elementId;
if (!ids.isEmpty()) {
// list for rendering may contains absolute id ( best ),
// component Id or client ID
// String clientId = element.getClientId(context);
if (ids.contains(absoluteId) || ids.contains(elementId)) {
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage(
Messages.RENDER_AJAX_AREA_INFO, absoluteId));
}
// renderChild(context, element);
found = true;
}
}
//
if (!found && limitToList
&& component instanceof NamingContainer
&& noIdUnderPath(absoluteId
+ NamingContainer.SEPARATOR_CHAR, ids)) {
return;
}
if (!found && !limitToList && component instanceof AjaxOutput) {
if (((AjaxOutput) component).isAjaxRendered()) {
// renderChild(context, element);
found = true;
}
}
if (!found) {
if (component instanceof AjaxChildrenEncoder) {
((AjaxChildrenEncoder) component).encodeAjaxChild(context,
currentPath, ids, renderedAreas);
} else {
// Special case - for control components, not produced
// html code - such as message bundles loaders,
// MyFaces aliases etc. we call encodeBegin/end methods
// even if components not in rendered areas.
boolean special = isSpecialElement(context, component);
if (special) {
component.encodeBegin(context);
}
encodeAjaxChildren(context, component, currentPath, ids,
renderedAreas);
if (special) {
component.encodeEnd(context);
}
}
} else {
renderedAreas.add(component.getClientId(context));
renderChild(context, component);
}
}
}
{code}
Patched version (the isRendered()-condition is moved the the last else-Block before the component will be rendered):
public void encodeAjaxComponent(FacesContext context,
UIComponent component, String currentPath, Set<String> ids,
Set<String> renderedAreas) throws IOException {
boolean found = false;
boolean limitToList = AjaxContext.getCurrentInstance(context).isLimitToList();
String elementId = component.getId();
String absoluteId = currentPath + elementId;
if (!ids.isEmpty()) {
// list for rendering may contains absolute id ( best ),
// component Id or client ID
// String clientId = element.getClientId(context);
if (ids.contains(absoluteId) || ids.contains(elementId)) {
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage(
Messages.RENDER_AJAX_AREA_INFO, absoluteId));
}
// renderChild(context, element);
found = true;
}
}
//
if (!found && limitToList
&& component instanceof NamingContainer
&& noIdUnderPath(absoluteId
+ NamingContainer.SEPARATOR_CHAR, ids)) {
return;
}
if (!found && !limitToList && component instanceof AjaxOutput) {
if (((AjaxOutput) component).isAjaxRendered()) {
// renderChild(context, element);
found = true;
}
}
if (!found) {
if (component instanceof AjaxChildrenEncoder) {
((AjaxChildrenEncoder) component).encodeAjaxChild(context,
currentPath, ids, renderedAreas);
} else {
// Special case - for control components, not produced
// html code - such as message bundles loaders,
// MyFaces aliases etc. we call encodeBegin/end methods
// even if components not in rendered areas.
boolean special = isSpecialElement(context, component);
if (special) {
component.encodeBegin(context);
}
encodeAjaxChildren(context, component, currentPath, ids,
renderedAreas);
if (special) {
component.encodeEnd(context);
}
}
} else if (component.isRendered()) { // skip not-rendered components.
renderedAreas.add(component.getClientId(context));
renderChild(context, component);
}
}
{code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 7 months
[JBoss JIRA] Created: (RF-8067) keyboard navigable rich:datascroller
by Gary Hu (JIRA)
keyboard navigable rich:datascroller
------------------------------------
Key: RF-8067
URL: https://jira.jboss.org/jira/browse/RF-8067
Project: RichFaces
Issue Type: Feature Request
Affects Versions: 3.3.2.SR1
Reporter: Gary Hu
The rich:datascroller generates the markup html code like this:
<td class="dr-dscr-inact rich-datascr-inact" onclick="Event.fire(this, 'rich:datascroller:onscroll', {'page': '1'});">1</td>
The code above is not keyboard navigable. For example, it can not be set focus.
Can we generate the html markup like the following?
<td class="dr-dscr-inact rich-datascr-inact" onclick="Event.fire(this, 'rich:datascroller:onscroll', {'page': '1'});"><a href="javascript:void(0)">1</a></td>
The <a> tag will enable it to be keyboard navigable.
Furthermore, maybe we can add one property for rich:datascroller to determine if needing to generate keyboard navigable page link or not.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 7 months