You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2008/05/08 03:52:56 UTC
svn commit: r654384 -
/myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/
Author: lu4242
Date: Wed May 7 18:52:55 2008
New Revision: 654384
URL: http://svn.apache.org/viewvc?rev=654384&view=rev
Log:
collapsiblePanel
Added:
myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/AbstractHtmlCollapsiblePanel.java (with props)
Removed:
myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlCollapsiblePanel.java
myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlCollapsiblePanelTag.java
myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlHeaderLinkTag.java
Modified:
myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlCollapsiblePanelRenderer.java
myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlHeaderLink.java
Added: myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/AbstractHtmlCollapsiblePanel.java
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/AbstractHtmlCollapsiblePanel.java?rev=654384&view=auto
==============================================================================
--- myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/AbstractHtmlCollapsiblePanel.java (added)
+++ myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/AbstractHtmlCollapsiblePanel.java Wed May 7 18:52:55 2008
@@ -0,0 +1,217 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.custom.collapsiblepanel;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIInput;
+import javax.faces.context.FacesContext;
+
+import org.apache.myfaces.component.EventAware;
+import org.apache.myfaces.component.StyleAware;
+import org.apache.myfaces.component.UniversalProperties;
+import org.apache.myfaces.component.UserRoleAware;
+
+/**
+ * @JSFComponent
+ * name = "t:collapsiblePanel"
+ * class = "org.apache.myfaces.custom.collapsiblepanel.HtmlCollapsiblePanel"
+ * superClass = "org.apache.myfaces.custom.collapsiblepanel.AbstractHtmlCollapsiblePanel"
+ * tagClass = "org.apache.myfaces.custom.collapsiblepanel.HtmlCollapsiblePanelTag"
+ *
+ * @author Kalle Korhonen (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ */
+abstract class AbstractHtmlCollapsiblePanel extends UIInput
+ implements StyleAware, UniversalProperties, EventAware,
+ UserRoleAware
+{
+ public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlCollapsiblePanel";
+ public static final String COMPONENT_FAMILY = "javax.faces.Panel";
+ private static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.CollapsiblePanel";
+
+ private boolean _currentlyCollapsed;
+
+ public void setCurrentlyCollapsed(boolean collapsed)
+ {
+ _currentlyCollapsed = collapsed;
+ }
+
+ public boolean isCurrentlyCollapsed()
+ {
+ return _currentlyCollapsed;
+ }
+
+ //private static final Log log = LogFactory.getLog(HtmlCollapsiblePanel.class);
+
+ public void processDecodes(FacesContext context)
+ {
+ if (context == null) throw new NullPointerException("context");
+
+ initialiseVars(context);
+
+ if (!isRendered()) return;
+
+ try
+ {
+ decode(context);
+ }
+ catch (RuntimeException e)
+ {
+ context.renderResponse();
+ throw e;
+ }
+
+ UIComponent headerComponent = getFacet("header");
+
+ if(headerComponent != null)
+ {
+ for (Iterator it = headerComponent.getChildren().iterator(); it.hasNext(); )
+ {
+ UIComponent child = (UIComponent)it.next();
+
+ if(!(child instanceof HtmlHeaderLink))
+ {
+ child.processDecodes(context);
+ }
+ }
+ }
+
+ if(isCurrentlyCollapsed())
+ {
+ UIComponent component = getFacet("closedContent");
+
+ if(component != null)
+ {
+ component.processDecodes(context);
+ }
+ }
+ else
+ {
+ for (Iterator it = getChildren().iterator(); it.hasNext(); )
+ {
+ UIComponent child = (UIComponent)it.next();
+ child.processDecodes(context);
+ }
+ }
+
+ removeVars(context);
+ }
+
+ public String getClientId(FacesContext context)
+ {
+ return super.getClientId(context);
+ }
+
+ public void processUpdates(FacesContext context)
+ {
+ initialiseVars(context);
+
+ super.processUpdates(context);
+
+ removeVars(context);
+ }
+
+ private void initialiseVars(FacesContext context)
+ {
+ if(getVar()!=null)
+ {
+ context.getExternalContext().getRequestMap().put(getVar(),
+ Boolean.valueOf(isCollapsed()));
+ }
+
+ if(getTitleVar()!=null)
+ {
+ context.getExternalContext().getRequestMap().put(getTitleVar(),
+ getTitle());
+ }
+ }
+
+ private void removeVars(FacesContext context)
+ {
+ if(getVar()!=null)
+ {
+ context.getExternalContext().getRequestMap().remove(getVar());
+ }
+
+ if(getTitleVar()!=null)
+ {
+ context.getExternalContext().getRequestMap().remove(getTitleVar());
+ }
+ }
+
+ public void processValidators(FacesContext context)
+ {
+ initialiseVars(context);
+
+ super.processValidators(context);
+
+ removeVars(context);
+ }
+
+ public void encodeChildren(FacesContext context) throws IOException
+ {
+ initialiseVars(context);
+
+ super.encodeChildren(context);
+
+ removeVars(context);
+ }
+
+ public void updateModel(FacesContext context)
+ {
+ super.updateModel(context);
+ }
+
+ public boolean isCollapsed()
+ {
+ return isCollapsed(getValue());
+ }
+
+ public static boolean isCollapsed(Object collapsedValue)
+ {
+ Object value = collapsedValue;
+
+ if(value instanceof Boolean)
+ {
+ return ((Boolean) value).booleanValue();
+ }
+ else if (value instanceof String)
+ {
+ return Boolean.valueOf((String) value).booleanValue();
+ }
+
+ return true;
+ }
+
+ /**
+ * @JSFProperty
+ */
+ public abstract String getVar();
+
+ /**
+ * @JSFProperty
+ */
+ public abstract String getTitleVar();
+
+
+}
Propchange: myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/AbstractHtmlCollapsiblePanel.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlCollapsiblePanelRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlCollapsiblePanelRenderer.java?rev=654384&r1=654383&r2=654384&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlCollapsiblePanelRenderer.java (original)
+++ myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlCollapsiblePanelRenderer.java Wed May 7 18:52:55 2008
@@ -38,6 +38,11 @@
import java.util.Map;
/**
+ * @JSFRenderer
+ * renderKitId = "HTML_BASIC"
+ * family = "javax.faces.Panel"
+ * type = "org.apache.myfaces.CollapsiblePanel"
+ *
* @author Kalle Korhonen (latest modification by $Author$)
* @version $Revision$ $Date$
*/
Modified: myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlHeaderLink.java
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlHeaderLink.java?rev=654384&r1=654383&r2=654384&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlHeaderLink.java (original)
+++ myfaces/myfaces-build-tools/branches/builder_plugin/bigtest/tomahawk_trunk/core/src/main/java/org/apache/myfaces/custom/collapsiblepanel/HtmlHeaderLink.java Wed May 7 18:52:55 2008
@@ -21,6 +21,10 @@
import org.apache.myfaces.component.html.ext.HtmlCommandLink;
/**
+ * @JSFComponent
+ * name = "t:headerLink"
+ * tagClass = "org.apache.myfaces.custom.collapsiblepanel.HtmlHeaderLinkTag"
+ *
* @author Martin Marinschek (latest modification by $Author: mmarinschek $)
*
* @version $Revision: 326564 $ $Date: 2005-10-19 16:03:14 +0200 (Mi, 19 Okt 2005) $