Author: nbelaevski
Date: 2010-07-13 14:46:48 -0400 (Tue, 13 Jul 2010)
New Revision: 18014
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/Method.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIDivPanel.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPanel.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPopupPanel.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanel.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanelItem.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/MethodExpressionSelectedItemChangeListener.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeEvent.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeListener.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PanelBaseRenderer.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PopupPanelBaseRenderer.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/SelectedItemChangeListenerHandler.java
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/TogglePanelTagHandler.java
Log:
TODOs committed
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractDivPanel.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -32,11 +32,14 @@
*/
public abstract class AbstractDivPanel extends UIOutput {
+ //TODO nick -
http://community.jboss.org/docs/DOC-13693
public static final String COMPONENT_TYPE =
"org.richfaces.panels.DivPanel";
+ //TODO nick -
http://community.jboss.org/docs/DOC-13693
public static final String COMPONENT_FAMILY =
"org.richfaces.panels.DivPanel";
protected AbstractDivPanel() {
+ //TODO nick -
http://community.jboss.org/docs/DOC-13693
setRendererType("org.richfaces.panels.DivPanelRenderer");
}
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/AbstractTogglePanel.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -22,8 +22,8 @@
package org.richfaces.component;
-import org.richfaces.event.SelectedItemChangeEvent;
-import org.richfaces.event.SelectedItemChangeListener;
+import java.util.Iterator;
+import java.util.List;
import javax.el.ELException;
import javax.el.MethodExpression;
@@ -44,17 +44,20 @@
import javax.faces.event.PreValidateEvent;
import javax.faces.event.ValueChangeListener;
import javax.faces.validator.Validator;
-import java.util.Iterator;
-import java.util.List;
+import org.richfaces.event.SelectedItemChangeEvent;
+import org.richfaces.event.SelectedItemChangeListener;
+
/**
* @author akolonitsky
* @version 1.0
*/
public abstract class AbstractTogglePanel extends AbstractDivPanel implements
EditableValueHolder {
+ //TODO nick -
http://community.jboss.org/docs/DOC-13693
public static final String COMPONENT_TYPE =
"org.richfaces.panels.TogglePanel";
+ //TODO nick -
http://community.jboss.org/docs/DOC-13693
public static final String COMPONENT_FAMILY =
"org.richfaces.panels.TogglePanel";
private String submittedSelectedItem = null;
@@ -140,10 +143,12 @@
}
public MethodBinding getValidator() {
+ //TODO nick - Errors shouldn't ne thrown
throw new UnknownError();
}
public void setValidator(MethodBinding validatorBinding) {
+ //TODO nick - Errors shouldn't ne thrown
throw new UnknownError();
}
@@ -343,6 +348,7 @@
return;
}
+ //TODO nick - selectedItem attribute?
ValueExpression ve = getValueExpression("value");
if (ve == null) {
return;
@@ -443,6 +449,7 @@
public void broadcast(FacesEvent event) throws AbortProcessingException {
super.broadcast(event);
+ //TODO nick - immediate?
if (event instanceof SelectedItemChangeEvent && isBypassUpdates()) {
FacesContext.getCurrentInstance().renderResponse();
}
@@ -460,6 +467,7 @@
}
private boolean isSelectedItem(UIComponent kid) {
+ //TODO nick - selectedItem should be cached in local variable
String value = getSelectedItem();
if (value == null) {
value = getSubmittedSelectedItem();
@@ -470,10 +478,12 @@
public String getFirstItem() {
checkChildCount(getChildCount());
+ //TODO nick - children can be rendered or not
return getChildName(getChildren().get(0));
}
private static void checkChildCount(int childCount) {
+ //TODO nick - remove this check
if (childCount < 1) {
throw new IllegalStateException("TogglePanel must have at least one
TogglePanelItem.");
}
@@ -486,6 +496,7 @@
checkChildCount(getChildCount());
List<UIComponent> children = getChildren();
+ //TODO nick - return child itself
int index = getChildIndex(name, children);
if (index == -1) {
return null;
@@ -525,6 +536,7 @@
}
private static String getChildName(UIComponent item) {
+ //TODO nick - panel can include UIParam children - remove this exception
if (!(item instanceof AbstractTogglePanelItem)) {
throw new IllegalStateException("TogglePanel can contain only
TogglePanelItem as child.");
}
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/Method.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/Method.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/Method.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -4,6 +4,8 @@
* @author akolonitsky
* @since Jun 15, 2010
*/
+//TODO nick - rename into SwitchType or PanelSwitchType
+//TODO nick - move to API
public enum Method {
/**
* value for tab change method for - client-side tabs.
@@ -19,4 +21,6 @@
* value for tab change method - ajax tabs
*/
ajax
+
+ //TODO nick - add DEFAULT constant
}
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIDivPanel.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIDivPanel.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIDivPanel.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -28,6 +28,7 @@
* @author akolonitsky
* @since -4712-01-01
*/
+//TODO nick - remove
public class UIDivPanel extends AbstractDivPanel {
public static final String COMPONENT_TYPE =
"org.richfaces.panels.DivPanel";
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPanel.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPanel.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPanel.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -27,6 +27,7 @@
* JSF component class
*
*/
+//TODO nick - remove
public class UIPanel extends UIComponentBase {
private static final String COMPONENT_FAMILY = "org.richfaces.Panel";
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPopupPanel.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPopupPanel.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UIPopupPanel.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -55,6 +55,7 @@
return result;
}
+ //TODO nick - CDK should generate all these properties' code
public String getVisualOptions() {
return (String) getStateHelper().eval(PropertyKeys.visualOptions);
}
@@ -255,6 +256,7 @@
getStateHelper().put(PropertyKeys.shadowOpacity, shadowOpacity);
}
+ //TODO nick - this should part of renderer
private Map<String, Object> prepareVisualOptions(Object value) {
if (null == value) {
return new HashMap<String, Object>();
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanel.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanel.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanel.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -28,6 +28,7 @@
* @author akolonitsky
* @since -4712-01-01
*/
+//TODO nick - no behaviors support!
public class UITogglePanel extends AbstractTogglePanel {
public static final String COMPONENT_TYPE =
"org.richfaces.panels.TogglePanel";
@@ -108,6 +109,7 @@
}
public MethodExpression getSelectedItemChangeListener() {
+ //TODO nick - get, not eval
return (MethodExpression)
getStateHelper().eval(PropertyKeys.selectedItemChangeListener);
}
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanelItem.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanelItem.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/UITogglePanelItem.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -26,6 +26,7 @@
* @author akolonitsky
* @since -4712-01-01
*/
+//TODO nick - no behaviors support!
public class UITogglePanelItem extends AbstractTogglePanelItem {
public static final String COMPONENT_TYPE =
"org.richfaces.panels.TogglePanelItem";
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/component/behavior/ToggleControl.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -22,14 +22,14 @@
package org.richfaces.component.behavior;
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.component.behavior.ClientBehaviorContext;
+
import org.ajax4jsf.component.behavior.ClientBehavior;
import org.ajax4jsf.renderkit.RendererUtils;
import org.richfaces.component.AbstractTogglePanel;
-import javax.faces.FacesException;
-import javax.faces.component.UIComponent;
-import javax.faces.component.behavior.ClientBehaviorContext;
-
/**
* @author akolonitsky
*
@@ -62,6 +62,7 @@
}
public String getForPanel() {
+ //TODO nick - get, not eval
return (String) getStateHelper().eval(PropertyKeys.forPanel);
}
@@ -69,6 +70,7 @@
getStateHelper().put(PropertyKeys.forPanel, selector);
}
+ //TODO nick - argument type is incorrect
public void setDisableDefault(String disableDefault) {
getStateHelper().put(PropertyKeys.disableDefault, disableDefault);
}
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/MethodExpressionSelectedItemChangeListener.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/MethodExpressionSelectedItemChangeListener.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/MethodExpressionSelectedItemChangeListener.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -26,8 +26,8 @@
import javax.el.ELException;
import javax.el.MethodExpression;
import javax.el.MethodNotFoundException;
+import javax.faces.component.StateHolder;
import javax.faces.context.FacesContext;
-import javax.faces.component.StateHolder;
import javax.faces.event.AbortProcessingException;
/**
@@ -43,8 +43,10 @@
* @since -4712-01-01
*
*/
+//TODO nick - good candidate for utility class
public class MethodExpressionSelectedItemChangeListener implements
SelectedItemChangeListener, StateHolder {
+ //TODO nick - classes should be generified too
private static final Class[] SELECTED_ITEM_CHANGE_LISTENER_ZERO_ARG_SIG = new Class[]
{};
// ------------------------------------------------------ Instance Variables
@@ -156,6 +158,7 @@
throw new NullPointerException();
}
+ //TODO nick - use
javax.faces.component.UIComponentBase.saveAttachedState(FacesContext, Object)
return new Object[] {methodExpressionOneArg, methodExpressionZeroArg };
}
@@ -173,6 +176,7 @@
return;
}
+ //TODO nick - use
javax.faces.component.UIComponentBase.restoreAttachedState(FacesContext, Object)
methodExpressionOneArg = (MethodExpression) ((Object[]) state)[0];
methodExpressionZeroArg = (MethodExpression) ((Object[]) state)[1];
}
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeEvent.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeEvent.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeEvent.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -34,6 +34,8 @@
* @version 1.0
* @since -4712-01-01
*/
+//TODO nick - move to API
+//TODO nick - serialVersionUUID is missing
public class SelectedItemChangeEvent extends FacesEvent {
private final String oldItem;
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeListener.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeListener.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/event/SelectedItemChangeListener.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -36,6 +36,7 @@
* @since -4712-01-01
*
*/
+//TODO nick - move to API
public interface SelectedItemChangeListener extends FacesListener {
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/DivPanelRenderer.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -22,20 +22,22 @@
package org.richfaces.renderkit.html;
-import static org.ajax4jsf.renderkit.RendererUtils.*;
-import org.ajax4jsf.renderkit.RendererBase;
-import org.richfaces.component.AbstractDivPanel;
+import java.io.IOException;
+import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import java.io.IOException;
-import java.util.Map;
+import org.ajax4jsf.renderkit.RendererBase;
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.richfaces.component.AbstractDivPanel;
+
/**
* @author akolonitsky
*
*/
+//TODO nick - use Renderer instead of RendererBase
public class DivPanelRenderer extends RendererBase {
public static final String[] ATTRIBUTES = new String[] {
@@ -67,6 +69,7 @@
Map<String, Object> componentAttributes = component.getAttributes();
for (String attrName : attributes) {
Object attrValue = componentAttributes.get(attrName);
+ //TODO nick - ???
if (!"null".equalsIgnoreCase(String.valueOf(attrValue))) {
writer.writeAttribute(attrName, attrValue, attrName); // TODO Use
RendererUtils
}
@@ -85,6 +88,7 @@
protected void writeJavaScript(ResponseWriter writer, FacesContext context,
UIComponent component) throws IOException {
Object script = getScriptObject(context, component);
if (script != null) {
+ //TODO nick - how does script relate to DIV?
writer.startElement(HTML.SCRIPT_ELEM, component);
writer.writeAttribute(HTML.TYPE_ATTR, "text/javascript",
"type");
writer.writeText(script, null);
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PanelBaseRenderer.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PanelBaseRenderer.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PanelBaseRenderer.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -34,6 +34,7 @@
* @author amarkhel
* @since Jun 14, 2010
*/
+//TODO nick - JSF have concept of library, it should be used instead of '/' in
resource names
@ResourceDependency(name = "css/panel.ecss")
public class PanelBaseRenderer extends RendererBase {
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PopupPanelBaseRenderer.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PopupPanelBaseRenderer.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/PopupPanelBaseRenderer.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -4,8 +4,8 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
-import java.util.Map.Entry;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
@@ -17,6 +17,7 @@
import org.ajax4jsf.renderkit.RendererBase;
import org.richfaces.component.UIPopupPanel;
+//TODO nick - JSF have concept of library, it should be used instead of '/' in
resource names
@ResourceDependencies( { @ResourceDependency(name = "jquery.js"),
@ResourceDependency(name = "richfaces.js"),
@ResourceDependency(name = "richfaces-base-component.js"),
@ResourceDependency(name = "script/popupPanel.js"),
@ResourceDependency(name = "script/popupPanelBorders.js"),
@ResourceDependency(name = "script/popupPanelSizer.js"),
@@ -29,6 +30,8 @@
private static final String HEADER_FACET = "header";
private static final int SIZE = 10;
private static final String STATE_OPTION_SUFFIX = "StateOption_";
+
+ //TODO nick - use enums
private static final Set<String> ALLOWED_ATTACHMENT_OPTIONS = new
HashSet<String>();
static {
ALLOWED_ATTACHMENT_OPTIONS.add("body");
@@ -131,6 +134,7 @@
if (panel.isShow()) {
result.append("RichFaces.ui.PopupPanel.showPopupPanel('" +
panel.getClientId(context) + "', {");
+ //TODO nick - use ScriptUtils.toScript
Iterator<Map.Entry<String, Object>> it = ((Map<String,
Object>) panel.getHandledVisualOptions()).entrySet()
.iterator();
while (it.hasNext()) {
@@ -156,6 +160,8 @@
private void writeOption(StringBuilder builder, String attribbute, Object value,
UIComponent component,
boolean isString) {
+
+ //TODO nick - use ScriptUtils.toScript
if (component.getAttributes().get(attribbute) != null) {
builder.append(attribbute + ":");
if (isString) {
@@ -175,6 +181,7 @@
result.append("new RichFaces.ui.PopupPanel('");
result.append(panel.getClientId());
result.append("',{");
+ //TODO nick - use RendererUtils.addToScriptHash(Map<String, Object>,
String, Object)
writeOption(result, "width", panel.getWidth(), component, false);
writeOption(result, "height", panel.getHeight(), component, false);
writeOption(result, "minWidth", panel.getMinWidth(), component,
false);
@@ -199,6 +206,7 @@
writeOption(result, "show", panel.isShow(), component, false);
writeOption(result, "autosized", panel.isAutosized(), component,
false);
writeOption(result, "overlapEmbedObjects",
panel.isOverlapEmbedObjects(), component, false);
+ //TODO nick - what is deleted here?
result.delete(result.length() - 1, result.length());
if (component.getAttributes().get("visualOptions") != null) {
result.append(writeVisualOptions(context, panel));
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/renderkit/html/TogglePanelRenderer.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -22,25 +22,25 @@
package org.richfaces.renderkit.html;
-import org.ajax4jsf.context.AjaxContext;
-import org.ajax4jsf.javascript.JSObject;
-import org.ajax4jsf.renderkit.AjaxEventOptions;
-import org.ajax4jsf.renderkit.AjaxRendererUtils;
-import org.richfaces.component.AbstractTogglePanel;
-import org.richfaces.component.AbstractTogglePanelItem;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import static org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.ajax4jsf.context.AjaxContext;
+import org.ajax4jsf.javascript.JSObject;
+import org.ajax4jsf.renderkit.AjaxEventOptions;
+import org.ajax4jsf.renderkit.AjaxRendererUtils;
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.richfaces.component.AbstractTogglePanel;
+import org.richfaces.component.AbstractTogglePanelItem;
/**
* @author akolonitsky
@@ -80,6 +80,7 @@
if (panelItem != null) {
context.getPartialViewContext().getRenderIds().add(panelItem.getClientId(context));
+ //TODO nick - this should be done on encode, not on decode
addOnCompleteParam(newValue, panel);
}
}
@@ -153,6 +154,7 @@
} else {
switch (item.getSwitchType()) {
+ //TODO nick - non-rendered items shouldn't be processed
case client:
hidePanelItem(item);
@@ -170,6 +172,7 @@
break;
case server:
+ //TODO nick - why nothing?
break;
default:
@@ -181,6 +184,7 @@
}
private static void hidePanelItem(UIComponent item) {
+ //TODO nick - attributes shouldn't be overwritten
item.getAttributes().put(HTML.STYLE_ATTRIBUTE, "display:none");
}
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/SelectedItemChangeListenerHandler.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/SelectedItemChangeListenerHandler.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/SelectedItemChangeListenerHandler.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -22,18 +22,6 @@
package org.richfaces.taglib;
-import javax.el.ValueExpression;
-import javax.faces.application.Resource;
-import org.richfaces.component.AbstractTogglePanel;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.event.AbortProcessingException;
-import org.richfaces.event.SelectedItemChangeEvent;
-import org.richfaces.event.SelectedItemChangeListener;
-
-import javax.faces.view.AttachedObjectHandler;
-import javax.faces.view.EditableValueHolderAttachedObjectHandler;
-import javax.faces.view.facelets.*;
import java.io.IOException;
import java.io.Serializable;
import java.lang.reflect.Array;
@@ -43,6 +31,26 @@
import java.util.List;
import java.util.Map;
+import javax.el.ValueExpression;
+import javax.faces.application.Resource;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.view.AttachedObjectHandler;
+import javax.faces.view.EditableValueHolderAttachedObjectHandler;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.TagAttributeException;
+import javax.faces.view.facelets.TagConfig;
+import javax.faces.view.facelets.TagException;
+import javax.faces.view.facelets.TagHandler;
+
+import org.richfaces.component.AbstractTogglePanel;
+import org.richfaces.event.SelectedItemChangeEvent;
+import org.richfaces.event.SelectedItemChangeListener;
+
+//TODO nick - what does "-4712-01-01" mean?
/**
*
* @author akolonitsky
@@ -51,6 +59,7 @@
*/
public final class SelectedItemChangeListenerHandler extends TagHandler implements
EditableValueHolderAttachedObjectHandler {
+ //TODO nick - take names from primitives
private static final String[] PRIMITIVE_NAMES = new String[] {"boolean",
"byte", "char", "double", "float",
"int", "long", "short", "void" };
@@ -132,6 +141,8 @@
if (parent instanceof AbstractTogglePanel) {
applyAttachedObject(ctx.getFacesContext(), parent);
} else if (parent.getAttributes().containsKey(Resource.COMPONENT_RESOURCE_KEY))
{
+ //TODO nick -
javax.faces.component.UIComponent.isCompositeComponent(UIComponent)
+
// Allow the composite component to know about the target component.
getAttachedObjectHandlers(parent).add(this);
} else {
@@ -143,10 +154,12 @@
ValueExpression b = null;
if (this.binding != null) {
FaceletContext ctx = (FaceletContext)
context.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
+ //TODO nick - b is already instance of listener - add it directly without
LazySelectedItemChangeListener
b = this.binding.getValueExpression(ctx, SelectedItemChangeListener.class);
}
AbstractTogglePanel evh = (AbstractTogglePanel) parent;
+ //TODO nick - this should be done via API interface
evh.addSelectedItemChangeListener(new
LazySelectedItemChangeListener(this.listenerType, b));
}
@@ -160,6 +173,7 @@
return getAttachedObjectHandlers(component, true);
}
+ //TODO nick - see org.richfaces.view.facelets.html.TagHandlerUtils
@SuppressWarnings({"unchecked"})
public static List<AttachedObjectHandler> getAttachedObjectHandlers(UIComponent
component,
boolean create)
{
@@ -183,8 +197,11 @@
if (null == name || "".equals(name)) {
return null;
}
+
+ //TODO nick - primitive class won't be necessary listener
Class c = forNamePrimitive(name);
if (c == null) {
+ //TODO nick - standard syntax for array classes is different + what about
arrays of > 1 dims?
if (name.endsWith("[]")) {
String nc = name.substring(0, name.length() - 2);
c = Class.forName(nc, false,
Thread.currentThread().getContextClassLoader());
Modified:
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/TogglePanelTagHandler.java
===================================================================
---
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/TogglePanelTagHandler.java 2010-07-13
18:41:20 UTC (rev 18013)
+++
root/ui/output/trunk/panels/ui/src/main/java/org/richfaces/taglib/TogglePanelTagHandler.java 2010-07-13
18:46:48 UTC (rev 18014)
@@ -22,11 +22,6 @@
package org.richfaces.taglib;
-import org.richfaces.component.AbstractTogglePanel;
-
-import org.richfaces.event.MethodExpressionSelectedItemChangeListener;
-import org.richfaces.event.SelectedItemChangeEvent;
-
import javax.faces.view.facelets.ComponentConfig;
import javax.faces.view.facelets.ComponentHandler;
import javax.faces.view.facelets.FaceletContext;
@@ -36,6 +31,10 @@
import javax.faces.view.facelets.MetadataTarget;
import javax.faces.view.facelets.TagAttribute;
+import org.richfaces.component.AbstractTogglePanel;
+import org.richfaces.event.MethodExpressionSelectedItemChangeListener;
+import org.richfaces.event.SelectedItemChangeEvent;
+
/**
* @author akolonitsky
* @version 1.0