[richfaces-svn-commits] JBoss Rich Faces SVN: r11787 - in trunk/ui/simpleTogglePanel/src/main/java/org/richfaces: renderkit/html and 1 other directory.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Mon Dec 15 14:14:13 EST 2008
Author: abelevich
Date: 2008-12-15 14:14:13 -0500 (Mon, 15 Dec 2008)
New Revision: 11787
Modified:
trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java
trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java
Log:
https://jira.jboss.org/jira/browse/RF-5293
Modified: trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java 2008-12-15 17:15:11 UTC (rev 11786)
+++ trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java 2008-12-15 19:14:13 UTC (rev 11787)
@@ -26,10 +26,13 @@
import javax.faces.component.ActionSource;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.FacesEvent;
import org.ajax4jsf.component.AjaxActionComponent;
import org.ajax4jsf.component.AjaxComponent;
import org.ajax4jsf.event.AjaxSource;
+import org.richfaces.event.SimpleToggleEvent;
/**
@@ -46,7 +49,7 @@
public static final boolean COLLAPSED = false;
public static final boolean EXPANDED = true;
- private transient Boolean openedSet = null;
+// private transient Boolean openedSet = null;
private transient Boolean wasOpened = null;
@@ -117,6 +120,14 @@
}
}
+ @Override
+ public void broadcast(FacesEvent event) throws AbortProcessingException {
+ if(event instanceof SimpleToggleEvent) {
+ SimpleToggleEvent simpleToggleEvent = (SimpleToggleEvent) event;
+ setOpened(simpleToggleEvent.isIsOpen());
+ }
+ super.broadcast(event);
+ }
/**
@@ -136,10 +147,10 @@
if (isWasOpened()) {
// Process all the facets and children of this component
Iterator<UIComponent> kids = getFacetsAndChildren();
- while (kids.hasNext()) {
- UIComponent kid = kids.next();
- kid.processValidators(context);
- }
+ while (kids.hasNext()) {
+ UIComponent kid = kids.next();
+ kid.processValidators(context);
+ }
}
}
@@ -158,7 +169,7 @@
return;
}
- updateModel();
+// updateModel();
if (isWasOpened()) {
// Process all facets and children of this component
@@ -170,25 +181,22 @@
}
}
- private void updateModel () {
- if (openedSet != null) {
- setOpened(openedSet);
- }
- }
+// private void updateModel () {
+// if (openedSet != null) {
+// setOpened(openedSet);
+// }
+// }
+
+// public boolean isOpenedSet() {
+// return openedSet;
+// }
- /**
- * @return the openedSet
- */
- public boolean isOpenedSet() {
- return openedSet;
- }
-
- /**
- * @param openedSet the openedSet to set
- */
- public void setOpenedSet(boolean openedSet) {
- this.openedSet = openedSet;
- }
+// /**
+// * @param openedSet the openedSet to set
+// */
+// public void setOpenedSet(boolean openedSet) {
+// this.openedSet = openedSet;
+// }
/*
* public void setValueBinding(String arg0, ValueBinding arg1) { if
Modified: trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java 2008-12-15 17:15:11 UTC (rev 11786)
+++ trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/renderkit/html/SimpleTogglePanelRenderer.java 2008-12-15 19:14:13 UTC (rev 11787)
@@ -30,7 +30,6 @@
import javax.faces.component.UIComponent;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
-import javax.faces.event.PhaseId;
import org.ajax4jsf.component.AjaxSupport;
import org.ajax4jsf.javascript.JSFunction;
@@ -43,22 +42,14 @@
//public class SimpleTogglePanelRenderer extends AjaxCommandLinkRenderer {
public class SimpleTogglePanelRenderer extends org.ajax4jsf.renderkit.HeaderResourcesRendererBase {
- //XXXX by nick - denis - seems there is a lot of code common to org.richfaces.renderkit.html.ToggleControlRenderer. Please commonize!
- //private InternetResource[] _scripts = {new PrototypeScript(), getResource("scripts/simpleTogglePanel.js") };
- final static String NONE = "none";
+ final static String NONE = "none";
final static String EMPTY = "";
protected Class getComponentClass() {
return UISimpleTogglePanel.class;
}
- //XXXX by nick - denis - move scripts to template
- //protected InternetResource[] getAdditionalScripts() {
- // return _scripts;
- //}
-
-
public boolean getRendersChildren() {
return true;
}
@@ -67,83 +58,87 @@
UIComponent component, String eventName) throws IOException {
RendererUtils.writeEventHandlerFunction(context, component, eventName);
}
-
+
+
public void doDecode(FacesContext context, UIComponent component) {
- super.doDecode(context, component);
+ super.doDecode(context, component);
+ ExternalContext exCtx = context.getExternalContext();
+ Map <String, String> rqMap = exCtx.getRequestParameterMap();
+ Object clnId = rqMap.get(component.getClientId(context));
+ UISimpleTogglePanel panel = (UISimpleTogglePanel) component;
- ExternalContext exCtx = context.getExternalContext();
+ if (clnId != null) {
+ // enqueue event here for this component or for component with Id
+ // taken fro forId attribute
- Map rqMap = exCtx.getRequestParameterMap();
- Object clnId = rqMap.get(component.getClientId(context));
- UISimpleTogglePanel panel = (UISimpleTogglePanel) component;
+ String switchType = panel.getSwitchType();
+ if (!(UISimpleTogglePanel.CLIENT_SWITCH_TYPE.equals(switchType))) {
- if (clnId != null) {
- // enqueue event here for this component or for component with Id
- // taken fro forId attribute
-
- String switchType = panel.getSwitchType();
- if (!(UISimpleTogglePanel.CLIENT_SWITCH_TYPE.equals(switchType))) {
+ // xxxx by nick - denis - use constants, please!
+ SimpleToggleEvent event;
+ if (panel.isOpened()) {
+ event = new SimpleToggleEvent(panel, UISimpleTogglePanel.COLLAPSED);
+ // panel.setOpened(UISimpleTogglePanel.COLLAPSED);
+ // panel.setOpenedSet(UISimpleTogglePanel.COLLAPSED);
+ } else {
+ event = new SimpleToggleEvent(panel, UISimpleTogglePanel.EXPANDED);
+ // xxxx by nick - denis - use constants, please!
+ // panel.setOpened(UISimpleTogglePanel.EXPANDED);
+ // panel.setOpenedSet(UISimpleTogglePanel.EXPANDED);
+ }
+ // if (panel.isImmediate()) {
+ // event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ // } else {
+ // event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ // }
+ event.queue();
- //xxxx by nick - denis - use constants, please!
- if ((panel.isOpened() == UISimpleTogglePanel.EXPANDED)) {
- //panel.setOpened(UISimpleTogglePanel.COLLAPSED);
- panel.setOpenedSet(UISimpleTogglePanel.COLLAPSED);
- } else {
- //xxxx by nick - denis - use constants, please!
- //panel.setOpened(UISimpleTogglePanel.EXPANDED);
- panel.setOpenedSet(UISimpleTogglePanel.EXPANDED);
- }
- SimpleToggleEvent event = new SimpleToggleEvent(panel, (panel.isOpened()));
- if (panel.isImmediate()) {
- event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else {
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
- }
- event.queue();
-
- } else {
- boolean submittedState = Boolean.parseBoolean((String) clnId);
- if (panel.isOpened() != submittedState){
- //panel.setAjaxSingle(false);
- SimpleToggleEvent event = new SimpleToggleEvent(panel, (panel.isOpened()));
- if (panel.isImmediate()) {
- event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else {
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
- }
- event.queue();
- }
- if (null == panel.getValueBinding("value"))
- panel.setOpened(submittedState);
- panel.setOpenedSet(submittedState);
- }
-
- // in case of "ajax" request and "ajax" switch mode of toggle panel
- // set the regions to be rendered (reRendered) after operating this "ajax" request
- if (AjaxRendererUtils.isAjaxRequest(context) && panel.getSwitchType().equals(UISimpleTogglePanel.AJAX_SWITCH_TYPE)) {
- // add toggle panel itself to rendered list of components
- AjaxRendererUtils.addRegionByName(context,
- panel,
- panel.getId());
- // add regions specified in the "reRender" attribute of toggle panel
- // to rendered list of components
- AjaxRendererUtils.addRegionsFromComponent(panel, context);
- }
+ } else {
+ boolean submittedState = Boolean.parseBoolean((String) clnId);
+ if (panel.isOpened() != submittedState) {
+ // panel.setAjaxSingle(false);
+ SimpleToggleEvent event = new SimpleToggleEvent(panel, submittedState);
+ // if (panel.isImmediate()) {
+ // event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ // } else {
+ // event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ // }
+ event.queue();
+ }
+// TODO: should we remove it ??
+ if (null == panel.getValueBinding("value"))
+ panel.setOpened(submittedState);
+ // panel.setOpenedSet(submittedState);
+ }
- }
- }
+ // in case of "ajax" request and "ajax" switch mode of toggle panel
+ // set the regions to be rendered (reRendered) after operating this
+ // "ajax" request
+ if (AjaxRendererUtils.isAjaxRequest(context) && panel.getSwitchType().equals(UISimpleTogglePanel.AJAX_SWITCH_TYPE)) {
+ // add toggle panel itself to rendered list of components
+ AjaxRendererUtils.addRegionByName(context, panel, panel.getId());
+ // add regions specified in the "reRender" attribute of toggle
+ // panel
+ // to rendered list of components
+ AjaxRendererUtils.addRegionsFromComponent(panel, context);
+ }
- public String getdivdisplay(FacesContext context, UIComponent component) {
+ }
+ }
- String Switch = Boolean.toString(((UISimpleTogglePanel) component).isOpened());
- if (Switch == null || Switch.equals(Boolean.toString(UISimpleTogglePanel.EXPANDED)))
- {
- //xxxx by nick - denis - do not set "block" explicitly - that can break some elements, set "" for display. See Element.show() in prototype.js
- return "";
- }
- return "none";
+ public String getdivdisplay(FacesContext context, UIComponent component) {
+ UISimpleTogglePanel simpleTogglePanel = (UISimpleTogglePanel) component;
+ return simpleTogglePanel.isOpened() ? EMPTY : NONE;
+// String Switch = Boolean.toString(((UISimpleTogglePanel)
+// component).isOpened());
+// if (Switch == null || Switch.equals(Boolean.toString(UISimpleTogglePanel.EXPANDED)))
+// {
+// //xxxx by nick - denis - do not set "block" explicitly - that can break some elements, set "" for display. See Element.show() in prototype.js
+// return "";
+// }
+// return "none";
}
public String getOnClick(FacesContext context, UIComponent component) {
@@ -200,9 +195,7 @@
}
public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
- // TODO Auto-generated method stub
UISimpleTogglePanel comp = (UISimpleTogglePanel) component;
- //xxxx by nick - denis - use constants, please!
if (!(((comp.getSwitchType() == null) || (comp.getSwitchType().equals(UISimpleTogglePanel.CLIENT_SWITCH_TYPE) != true)) && (comp.isOpened() == UISimpleTogglePanel.COLLAPSED)))
{
super.encodeChildren(context, component);
@@ -210,17 +203,23 @@
}
public String getSwitchOnStatus(FacesContext context, UIComponent component) {
- String sw = Boolean.toString(((UISimpleTogglePanel) component).isOpened());
- if (sw == null || sw.equals(Boolean.toString(UISimpleTogglePanel.EXPANDED)))
- return EMPTY;
- else return NONE;
+ UISimpleTogglePanel simpleTogglePanel = (UISimpleTogglePanel) component;
+ return simpleTogglePanel.isOpened() ? EMPTY : NONE;
+// String sw = Boolean.toString(((UISimpleTogglePanel) component).isOpened());
+// if (sw == null || sw.equals(Boolean.toString(UISimpleTogglePanel.EXPANDED)))
+// return EMPTY;
+// else return NONE;
}
public String getSwitchOffStatus(FacesContext context, UIComponent component) {
- String sw = Boolean.toString(((UISimpleTogglePanel) component).isOpened());
- if (sw == null || sw.equals(Boolean.toString(UISimpleTogglePanel.EXPANDED)))
- return NONE;
- else return EMPTY;
+ UISimpleTogglePanel simpleTogglePanel = (UISimpleTogglePanel) component;
+ return simpleTogglePanel.isOpened() ? NONE : EMPTY ;
+
+// String sw = Boolean.toString(((UISimpleTogglePanel) component).isOpened());
+// if (sw == null || sw.equals(Boolean.toString(UISimpleTogglePanel.EXPANDED)))
+// return NONE;
+// else return EMPTY;
+
}
}
\ No newline at end of file
More information about the richfaces-svn-commits
mailing list