[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