You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2007/08/10 22:37:49 UTC

svn commit: r564756 - /myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/

Author: bommel
Date: Fri Aug 10 13:37:48 2007
New Revision: 564756

URL: http://svn.apache.org/viewvc?view=rev&rev=564756
Log:
(TOBAGO-464) Create a real tx extension taglib for facelets

Added:
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/MenuCheckboxExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TimeExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java
      - copied, changed from r564363, myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoMenuExtensionHandler.java
Removed:
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionHandler.java
Modified:
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/FileExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/InExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectBooleanCheckboxExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectManyListboxExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectOneListboxExtensionHandler.java
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionTagLibrary.java

Modified: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/FileExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/FileExtensionHandler.java?view=diff&rev=564756&r1=564755&r2=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/FileExtensionHandler.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/FileExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -25,7 +25,7 @@
  * Date: Aug 8, 2007
  * Time: 5:45:16 PM
  */
-public class FileExtensionHandler extends TobagoExtensionHandler {
+public class FileExtensionHandler extends TobagoLabelExtensionHandler {
 
   public FileExtensionHandler(ComponentConfig config) {
     super(config);

Modified: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/InExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/InExtensionHandler.java?view=diff&rev=564756&r1=564755&r2=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/InExtensionHandler.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/InExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -25,7 +25,7 @@
  * Date: Aug 8, 2007
  * Time: 5:43:10 PM
  */
-public class InExtensionHandler extends TobagoExtensionHandler {
+public class InExtensionHandler extends TobagoLabelExtensionHandler {
 
   public InExtensionHandler(ComponentConfig config) {
     super(config);

Added: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/MenuCheckboxExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/MenuCheckboxExtensionHandler.java?view=auto&rev=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/MenuCheckboxExtensionHandler.java (added)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/MenuCheckboxExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -0,0 +1,36 @@
+package org.apache.myfaces.tobago.facelets.extension;
+
+/*
+ * 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.
+ */
+
+import com.sun.facelets.tag.jsf.ComponentConfig;
+import org.apache.myfaces.tobago.component.UISelectBoolean;
+
+/*
+ * Date: Aug 10, 2007
+ * Time: 10:19:47 PM
+ */
+public class MenuCheckboxExtensionHandler extends TobagoMenuExtensionHandler {
+
+  public MenuCheckboxExtensionHandler(ComponentConfig config) {
+    super(config);
+  }
+
+  protected String getSubComponentType() {
+    return UISelectBoolean.COMPONENT_TYPE;
+  }
+}

Modified: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectBooleanCheckboxExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectBooleanCheckboxExtensionHandler.java?view=diff&rev=564756&r1=564755&r2=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectBooleanCheckboxExtensionHandler.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectBooleanCheckboxExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -25,7 +25,7 @@
  * Date: Aug 9, 2007
  * Time: 8:36:38 PM
  */
-public class SelectBooleanCheckboxExtensionHandler extends TobagoExtensionHandler {
+public class SelectBooleanCheckboxExtensionHandler extends TobagoLabelExtensionHandler {
 
   public SelectBooleanCheckboxExtensionHandler(ComponentConfig config) {
     super(config);

Modified: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectManyListboxExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectManyListboxExtensionHandler.java?view=diff&rev=564756&r1=564755&r2=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectManyListboxExtensionHandler.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectManyListboxExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -25,7 +25,7 @@
  * Date: Aug 9, 2007
  * Time: 8:37:36 PM
  */
-public class SelectManyListboxExtensionHandler extends TobagoExtensionHandler {
+public class SelectManyListboxExtensionHandler extends TobagoLabelExtensionHandler {
 
   public SelectManyListboxExtensionHandler(ComponentConfig config) {
     super(config);

Modified: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectOneListboxExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectOneListboxExtensionHandler.java?view=diff&rev=564756&r1=564755&r2=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectOneListboxExtensionHandler.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/SelectOneListboxExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -25,7 +25,7 @@
  * Date: Aug 9, 2007
  * Time: 8:39:46 PM
  */
-public class SelectOneListboxExtensionHandler extends TobagoExtensionHandler {
+public class SelectOneListboxExtensionHandler extends TobagoLabelExtensionHandler {
 
   public SelectOneListboxExtensionHandler(ComponentConfig config) {
     super(config);

Added: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TimeExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TimeExtensionHandler.java?view=auto&rev=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TimeExtensionHandler.java (added)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TimeExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -0,0 +1,41 @@
+package org.apache.myfaces.tobago.facelets.extension;
+
+/*
+ * 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.
+ */
+
+import com.sun.facelets.tag.jsf.ComponentConfig;
+import org.apache.myfaces.tobago.TobagoConstants;
+import org.apache.myfaces.tobago.component.UIFileInput;
+
+/*
+ * Date: Aug 10, 2007
+ * Time: 9:37:32 PM
+ */
+public class TimeExtensionHandler extends TobagoLabelExtensionHandler {
+
+  public TimeExtensionHandler(ComponentConfig config) {
+    super(config);
+  }
+
+  protected String getSubComponentType() {
+    return UIFileInput.COMPONENT_TYPE;
+  }
+
+  protected String getSubRendererType() {
+    return TobagoConstants.RENDERER_TYPE_TIME;
+  }
+}

Modified: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionTagLibrary.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionTagLibrary.java?view=diff&rev=564756&r1=564755&r2=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionTagLibrary.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionTagLibrary.java Fri Aug 10 13:37:48 2007
@@ -32,6 +32,11 @@
     addComponent("in", "org.apache.myfaces.tobago.Panel", "Panel", InExtensionHandler.class);
     addComponent("file", "org.apache.myfaces.tobago.Panel", "Panel", FileExtensionHandler.class);
     addComponent("date", "org.apache.myfaces.tobago.Panel", "Panel", DateExtensionHandler.class);
+    addComponent("menuCheckbox", "org.apache.myfaces.tobago.MenuCommand", "MenuCommand",
+        MenuCheckboxExtensionHandler.class);
+    addComponent("menuRadio", "org.apache.myfaces.tobago.MenuCommand", "MenuCommand",
+        MenuRadioExtensionHandler.class);
+    addComponent("time", "org.apache.myfaces.tobago.Panel", "Panel", TimeExtensionHandler.class);
     addComponent("textArea", "org.apache.myfaces.tobago.Panel", "Panel", TextAreaExtensionHandler.class);
     addComponent("selectBooleanCheckbox", "org.apache.myfaces.tobago.Panel", "Panel",
         SelectBooleanCheckboxExtensionHandler.class);

Copied: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java (from r564363, myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionHandler.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java?view=diff&rev=564756&p1=myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionHandler.java&r1=564363&p2=myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java&r2=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoExtensionHandler.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -41,12 +41,12 @@
  * Date: Jul 31, 2007
  * Time: 6:14:34 PM
  */
-public abstract class TobagoExtensionHandler extends ComponentHandler {
+public abstract class TobagoLabelExtensionHandler extends ComponentHandler {
   private TagAttribute labelWidthAttribute;
   private TagAttribute tipAttribute;
   private TagAttribute labelAttribute;
 
-  public TobagoExtensionHandler(ComponentConfig config) {
+  public TobagoLabelExtensionHandler(ComponentConfig config) {
     super(config);
     labelWidthAttribute = getAttribute("labelWidth");
     tipAttribute = getAttribute(TobagoConstants.ATTR_TIP);
@@ -62,7 +62,7 @@
   }
 
   protected void applyNextHandler(FaceletContext ctx, UIComponent panel)
-            throws IOException, FacesException, ELException {
+      throws IOException, FacesException, ELException {
     nextHandler.apply(ctx, (UIComponent) panel.getChildren().get(1));
   }
 
@@ -117,7 +117,7 @@
   protected MetaRuleset createMetaRuleset(Class aClass) {
     MetaRuleset metaRuleset = super.createMetaRuleset(aClass);
     if (UIPanel.class.isAssignableFrom(aClass)) {
-      for (TagAttribute attr: tag.getAttributes().getAll()) {
+      for (TagAttribute attr : tag.getAttributes().getAll()) {
         if (!attr.getLocalName().equals("rendered")) {
           metaRuleset.ignore(attr.getLocalName());
         }

Added: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoMenuExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoMenuExtensionHandler.java?view=auto&rev=564756
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoMenuExtensionHandler.java (added)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoMenuExtensionHandler.java Fri Aug 10 13:37:48 2007
@@ -0,0 +1,80 @@
+package org.apache.myfaces.tobago.facelets.extension;
+
+/*
+ * 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.
+ */
+
+import com.sun.facelets.tag.jsf.ComponentHandler;
+import com.sun.facelets.tag.jsf.ComponentConfig;
+import com.sun.facelets.tag.jsf.ComponentSupport;
+import com.sun.facelets.tag.MetaRuleset;
+import com.sun.facelets.tag.TagAttribute;
+import com.sun.facelets.FaceletContext;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIViewRoot;
+import javax.faces.FacesException;
+import javax.faces.application.Application;
+import javax.el.ELException;
+import java.io.IOException;
+
+import org.apache.myfaces.tobago.component.UIMenuCommand;
+import org.apache.myfaces.tobago.TobagoConstants;
+
+/*
+ * Date: Aug 10, 2007
+ * Time: 9:40:24 PM
+ */
+public abstract class TobagoMenuExtensionHandler extends ComponentHandler {
+
+  public TobagoMenuExtensionHandler(ComponentConfig config) {
+    super(config);
+  }
+
+  protected abstract String getSubComponentType();
+
+  protected void applyNextHandler(FaceletContext faceletContext, UIComponent menuCommand)
+      throws IOException, FacesException, ELException {
+    nextHandler.apply(faceletContext, menuCommand.getFacet(TobagoConstants.FACET_ITEMS));
+  }
+
+  protected void onComponentCreated(FaceletContext faceletContext, UIComponent menuCommand, UIComponent parent) {
+
+    Application application = faceletContext.getFacesContext().getApplication();
+    UIViewRoot root = ComponentSupport.getViewRoot(faceletContext, parent);
+    UIComponent component = application.createComponent(getSubComponentType());
+    component.setId(root.createUniqueId());
+    setAttributes(faceletContext, component);
+    menuCommand.getFacets().put(TobagoConstants.FACET_ITEMS, component);
+  }
+
+  protected MetaRuleset createMetaRuleset(Class aClass) {
+    MetaRuleset metaRuleset = super.createMetaRuleset(aClass);
+    if (UIMenuCommand.class.isAssignableFrom(aClass)) {
+      metaRuleset.ignore(TobagoConstants.ATTR_CONVERTER);
+      metaRuleset.ignore(TobagoConstants.ATTR_VALUE);
+      return metaRuleset;
+    } else {
+      for (TagAttribute attr : tag.getAttributes().getAll()) {
+        if (!(attr.getLocalName().equals(TobagoConstants.ATTR_CONVERTER)
+            || attr.getLocalName().equals(TobagoConstants.ATTR_VALUE))) {
+          metaRuleset.ignore(attr.getLocalName());
+        }
+      }
+      return metaRuleset;
+    }
+  }
+}