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/or...
- //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");
+ }
+
+
+
+}