[richfaces-svn-commits] JBoss Rich Faces SVN: r2709 - in trunk/ui/simpleTogglePanel/src/main: java/org/richfaces/component and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Mon Sep 3 09:47:04 EDT 2007


Author: a.izobov
Date: 2007-09-03 09:47:04 -0400 (Mon, 03 Sep 2007)
New Revision: 2709

Added:
   trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagBase.java
   trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagHandlerBase.java
Modified:
   trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml
   trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java
   trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelListenerTagHandler.java
Log:
http://jira.jboss.com/jira/browse/RF-534

Modified: trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml	2007-09-03 13:15:35 UTC (rev 2708)
+++ trunk/ui/simpleTogglePanel/src/main/config/component/simpleTogglePanel.xml	2007-09-03 13:47:04 UTC (rev 2709)
@@ -23,13 +23,13 @@
             <name>simpleTogglePanel</name>
             <classname>org.richfaces.taglib.SimpleTogglePanelTag</classname>
             <superclass>
-                org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
+                org.richfaces.taglib.SimpleTogglePanelTagBase
             </superclass>
         </tag>
 		<taghandler generate="true">
 			<classname>org.richfaces.taglib.SimpleTogglePanelTagHandler</classname>
 			<superclass>
-				org.richfaces.taglib.SimpleTogglePanelListenerTagHandler
+				org.richfaces.taglib.SimpleTogglePanelTagHandlerBase
 			</superclass>
 		</taghandler>
 

Modified: trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java	2007-09-03 13:15:35 UTC (rev 2708)
+++ trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/component/UISimpleTogglePanel.java	2007-09-03 13:47:04 UTC (rev 2709)
@@ -21,13 +21,12 @@
 
 package org.richfaces.component;
 
+import javax.faces.component.ActionSource;
+
 import org.ajax4jsf.component.AjaxActionComponent;
 import org.ajax4jsf.component.AjaxComponent;
 import org.ajax4jsf.event.AjaxSource;
 
-import javax.faces.component.ActionSource;
-import javax.faces.el.ValueBinding;
-
 /**
  * JSF component class
  */
@@ -42,27 +41,31 @@
     public static final boolean COLLAPSED = false;
     public static final boolean EXPANDED = true;
     
-    //xxxx by nick - why properties here? just describe them in config and CDK generates
-    //valid fields & save/restore code
-    //for "public" (.tld etc.) properties you should create abstract getters/setters only
 
-    //xxxx by nick - according to JavaDocs http://webdownload.exadel.com/downloads/ajax4jsf/documentation/javaAPI/org/ajax4jsf/framework/ajax/AjaxActionComponent.html
-    //AjaxActionComponent already has immediate property
-
-
     public abstract void setSwitchType(String switchType);
 
     public abstract String getSwitchType();
 
-    public abstract void setOpened(boolean opened);
+    public void setOpened(boolean opened) {
+    	setValue(new Boolean(opened).toString());
+    }
 
-    public abstract boolean isOpened();
+    public boolean isOpened() {
+    	Object value = getValue();
+    	if (value instanceof Boolean) {
+    		return ((Boolean)value).booleanValue();
+    	} else if (value instanceof String) {
+			String s = (String) value;
+			return new Boolean(s).booleanValue();
+		}
+    	return true;
+    }
 
     public boolean getRendersChildren() {
         return true;
     }
 
-    public void setValueBinding(String arg0, ValueBinding arg1) {
+/*    public void setValueBinding(String arg0, ValueBinding arg1) {
     	if ("opened".equals(arg0))
     		super.setValueBinding("value", arg1);
     	super.setValueBinding(arg0, arg1);
@@ -73,7 +76,7 @@
     		return super.getValueBinding("value");
     	return super.getValueBinding(arg0);
     }
-    
+*/    
     //public void broadcast(FacesEvent facesEvent) throws AbortProcessingException {
     //   super.broadcast(facesEvent);
     //    FacesContext facesContext = FacesContext.getCurrentInstance();

Modified: trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelListenerTagHandler.java
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelListenerTagHandler.java	2007-09-03 13:15:35 UTC (rev 2708)
+++ trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelListenerTagHandler.java	2007-09-03 13:47:04 UTC (rev 2709)
@@ -24,6 +24,7 @@
 import javax.faces.component.UIComponent;
 import javax.faces.el.MethodBinding;
 
+import org.ajax4jsf.webapp.taglib.AjaxComponentHandler;
 import org.richfaces.event.SimpleToggleEvent;
 
 import com.sun.facelets.FaceletContext;
@@ -33,9 +34,8 @@
 import com.sun.facelets.tag.MetadataTarget;
 import com.sun.facelets.tag.TagAttribute;
 import com.sun.facelets.tag.jsf.ComponentConfig;
-import com.sun.facelets.tag.jsf.ComponentHandler;
 
-public class SimpleTogglePanelListenerTagHandler extends ComponentHandler {
+public class SimpleTogglePanelListenerTagHandler extends AjaxComponentHandler {
 	private final static String COLLAPSED_EXPANDED_LISTENER = "collapsedExpandedListener";
 	
 	public SimpleTogglePanelListenerTagHandler(ComponentConfig config) {

Added: trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagBase.java
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagBase.java	                        (rev 0)
+++ trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagBase.java	2007-09-03 13:47:04 UTC (rev 2709)
@@ -0,0 +1,64 @@
+/**
+ * License Agreement.
+ *
+ *  JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007  Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces.taglib;
+
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.webapp.taglib.HtmlComponentTagBase;
+
+public abstract class SimpleTogglePanelTagBase extends HtmlComponentTagBase {
+
+	private boolean _openedSet = false;
+	private String _value = null;
+
+	private void logValueDeprecation(String value) {
+		FacesContext facesContext = getFacesContext();
+		facesContext.getExternalContext().log("opened attribute has been already set for component with id: " + this.getId() + 
+				"[" + this._value + "]. value attribute is deprecated and thus has been dropped!");
+	}
+	
+	public void setOpened(String opened) {
+		if (_value != null) {
+			logValueDeprecation(_value);
+		}
+		
+		_openedSet = false;
+		super.setValue(opened);
+		_openedSet = true;
+	}
+	
+	public void setValue(String value) {
+		if (!_openedSet) {
+			_value = value;
+			super.setValue(value);
+		} else {
+			logValueDeprecation(value);
+		}
+	}
+
+	public void release() {
+		super.release();
+		_openedSet = false;
+		_value = null;
+	}
+	
+}

Added: trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagHandlerBase.java
===================================================================
--- trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagHandlerBase.java	                        (rev 0)
+++ trunk/ui/simpleTogglePanel/src/main/java/org/richfaces/taglib/SimpleTogglePanelTagHandlerBase.java	2007-09-03 13:47:04 UTC (rev 2709)
@@ -0,0 +1,34 @@
+package org.richfaces.taglib;
+
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.webapp.taglib.AjaxComponentHandler;
+
+import com.sun.facelets.tag.MetaRuleset;
+import com.sun.facelets.tag.TagAttribute;
+import com.sun.facelets.tag.TagAttributes;
+import com.sun.facelets.tag.jsf.ComponentConfig;
+
+public abstract class SimpleTogglePanelTagHandlerBase extends
+	SimpleTogglePanelListenerTagHandler {
+
+	public SimpleTogglePanelTagHandlerBase(ComponentConfig config) {
+		super(config);
+	}
+	
+	protected MetaRuleset createMetaRuleset(Class type) {
+		TagAttributes attributes = this.tag.getAttributes();
+		TagAttribute attribute = attributes.get("value");
+		if (attribute != null && attributes.get("opened") != null) {
+			TagAttribute idAttribute = attributes.get("id");
+			FacesContext facesContext = FacesContext.getCurrentInstance();
+			facesContext.getExternalContext().log("opened attribute has been already set for component with id: " + 
+					idAttribute != null ? idAttribute.getValue() : null + 
+					"[" + attribute.getValue() + "]. value attribute is deprecated and thus has been dropped!");
+		}
+		return super.createMetaRuleset(type).alias("opened", "value");
+	}
+
+	
+	
+}




More information about the richfaces-svn-commits mailing list