You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by jw...@apache.org on 2007/05/24 03:02:09 UTC

svn commit: r541125 - in /myfaces/trinidad/trunk/trinidad/trinidad-impl/src: main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ test/resources/org/apache/myfaces/trinidad...

Author: jwaldman
Date: Wed May 23 18:02:08 2007
New Revision: 541125

URL: http://svn.apache.org/viewvc?view=rev&rev=541125
Log:
TRINIDAD-23
https://issues.apache.org/jira/browse/TRINIDAD-23
goButton on PDAs should be rendererd as a linked button and not a button
committed for Piyush Hari

Modified:
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/GoButtonRenderer.java
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafConstants.java
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/goButton-minimalPPC-golden.xml

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/GoButtonRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/GoButtonRenderer.java?view=diff&rev=541125&r1=541124&r2=541125
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/GoButtonRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/GoButtonRenderer.java Wed May 23 18:02:08 2007
@@ -31,6 +31,7 @@
 import org.apache.myfaces.trinidad.bean.PropertyKey;
 import org.apache.myfaces.trinidad.component.core.nav.CoreGoButton;
 import org.apache.myfaces.trinidad.context.RenderingContext;
+import org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.XhtmlLafConstants;
 
 /**
  * FIXME: the inheritance hierarchy is a bit annoying:  should
@@ -74,14 +75,35 @@
     // Make sure we don't have anything to save
     assert(arc.getCurrentClientId() == null);
     arc.setCurrentClientId(clientId);
- 
-    boolean useButtonTag = useButtonTags(arc);
-    String element = useButtonTag ? "button" : "a";
+
+    String element;
+    boolean useButton;
+    boolean isFormElement = false;	
+    if ((supportsScripting(arc) && supportsIntrinsicEvents(arc)))
+    {
+       if (supportsAdvancedForms(arc))
+       {
+          element = XhtmlLafConstants.BUTTON_ELEMENT;
+       }
+       else
+       {
+          element = XhtmlLafConstants.INPUT_ELEMENT;
+          isFormElement  = true;
+        }
+
+        useButton = true;
+    }
+    else
+    {
+       element = XhtmlLafConstants.LINK_ELEMENT;
+       useButton = false;
+    }
+
     ResponseWriter rw = context.getResponseWriter();
     rw.startElement(element, component);
     renderId(context, component);
     boolean disabled = getDisabled(bean);
-    if (useButtonTag)
+    if (useButton)
     {
       rw.writeAttribute("type", "button", null);
       if (disabled)
@@ -100,7 +122,7 @@
     else
     {
       renderAllAttributes(context, arc, bean);
-      if (useButtonTag)
+      if (useButton)
       {
         rw.writeAttribute("onclick", getButtonOnclick(bean), null);
       }
@@ -114,6 +136,7 @@
     }
 
     // Write the text and access key
+
     char accessKey;
     if (supportsAccessKeys(arc))
     {
@@ -123,33 +146,36 @@
         rw.writeAttribute("accesskey",
                           Character.valueOf(accessKey),
                           "accessKey");
-      }                   
+      }
     }
     else
     {
       accessKey = CHAR_UNDEFINED;
     }
 
-    AccessKeyUtils.renderAccessKeyText(context,
-                                       getText(bean),
-                                       accessKey,
-                                       SkinSelectors.AF_ACCESSKEY_STYLE_CLASS);
-
+    String text = getText(bean);
     String icon = getIcon(bean);
-    if (icon != null)
-      OutputUtils.renderImage(context, arc, icon, null, null, null,
-                              getShortDesc(bean));
 
-    rw.endElement(element);
-  }
+    if(!isFormElement){
+        AccessKeyUtils.renderAccessKeyText(context,
+                                           text,
+                                           accessKey,
+                                           SkinSelectors.AF_ACCESSKEY_STYLE_CLASS);
+
+        if (icon != null)
+          OutputUtils.renderImage(context, arc, icon, null, null, null,
+                                  getShortDesc(bean));
+    }
+    else {
+        if (icon != null && text == null){
+            renderEncodedResourceURI(context, "src", icon);
+        }
+        else{
+            rw.writeAttribute("value", text, "text");
+        }
+    }
 
-    
-  protected boolean useButtonTags(RenderingContext arc)
-  {
-    return (supportsScripting(arc) &&
-            supportsAdvancedForms(arc) &&
-            supportsIntrinsicEvents(arc));
-            
+    rw.endElement(element);
   }
 
   /**
@@ -181,37 +207,37 @@
     //String inlineStyle = getInlineStyle(bean);
     List<String> stateStyleClasses = getStateStyleClasses(context, arc, bean);
 
-    if ((styleClass==null) && 
-        (defaultStyleClass != null) && 
+    if ((styleClass==null) &&
+        (defaultStyleClass != null) &&
         (stateStyleClasses == null))
     {
       renderStyleClass(context, arc, defaultStyleClass);
     }
     else
     {
-      int numStates =   ((stateStyleClasses != null) ? 
+      int numStates =   ((stateStyleClasses != null) ?
                          stateStyleClasses.size() : 0);
       int numClasses = ((styleClass != null) ? 1 : 0) +
                         ((defaultStyleClass != null) ? 1 : 0) +
                         numStates;
       if (numClasses > 0)
       {
-        // set all the styleClasses in one array so we can pass it to 
+        // set all the styleClasses in one array so we can pass it to
         // renderStyleClasses
         String[] styleClasses = new String[numClasses];
-        
+
         int i=0;
         if (styleClass != null)
           styleClasses[i++] = styleClass;
         if (defaultStyleClass != null)
           styleClasses[i++] = defaultStyleClass;
-         
+
         for (int j=0; j < numStates; j++, i++)
         {
           styleClasses[i] = stateStyleClasses.get(j);
-        }        
+        }
 
-        renderStyleClasses(context, arc, styleClasses);         
+        renderStyleClasses(context, arc, styleClasses);
       }
     }
 
@@ -236,7 +262,7 @@
     String destination = getDestination(bean);
     if (destination == null)
       return base;
-    
+
     destination = FacesContext.getCurrentInstance().
       getExternalContext().encodeActionURL(destination);
     String onclickJS = null;
@@ -244,7 +270,7 @@
     if ((destination.length()) > 11 &&
         "javascript:".equalsIgnoreCase(destination.substring(0,11)))
     {
-      onclickJS = destination.substring(11);      
+      onclickJS = destination.substring(11);
     }
     else
     {

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafConstants.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafConstants.java?view=diff&rev=541125&r1=541124&r2=541125
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafConstants.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafConstants.java Wed May 23 18:02:08 2007
@@ -6,9 +6,9 @@
  *  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
@@ -93,6 +93,7 @@
   //
   public static final String BREAK_ELEMENT        = "br";
   public static final String DIV_ELEMENT          = "div";
+  public static final String BUTTON_ELEMENT       = "button";
   public static final String FORM_ELEMENT         = "form";
   public static final String IMAGE_ELEMENT        = "img";
   public static final String INPUT_ELEMENT        = "input";
@@ -240,7 +241,7 @@
   // outputLabel's styles
   public static final String AF_OUTPUT_LABEL_STYLE_CLASS =
     "af|outputLabel";
-  
+
   public static final String AF_PANEL_PAGE_MB_TEXT_STYLE_CLASS =
     "af|panelPage::menu-buttons-text";
   public static final String AF_PANEL_PAGE_MB_TEXT_SELECTED_STYLE_CLASS =
@@ -263,7 +264,7 @@
     "af|panelFormLayout::content-cell";
   public static final String AF_PANEL_FORM_MESSAGE_CELL_STYLE_CLASS =
     "af|panelFormLayout::message-cell";
-    
+
   // Link style classes
   public static final String LINK_STYLE_CLASS =
     "OraLink";
@@ -521,7 +522,7 @@
 
   // processTrain styles
    public static final String AF_PROCESS_TRAIN_STYLE_CLASS =
-     "af|train";  
+     "af|train";
   public static final String AF_PROCESS_TRAIN_ACTIVE_STYLE_CLASS =
     "af|train::step-active";
   public static final String AF_PROCESS_TRAIN_VISITED_STYLE_CLASS  =
@@ -529,7 +530,7 @@
   public static final String AF_PROCESS_TRAIN_UNVISITED_STYLE_CLASS =
     "af|train::step-unvisited";
   public static final String AF_PROCESS_TRAIN_LINK_STYLE_CLASS =
-    "af|train::link";    
+    "af|train::link";
   public static final String AF_PROCESS_TRAIN_DISABLED_STYLE_CLASS =
     "af|train::step-disabled";
   public static final String AF_PROCESS_TRAIN_SUB_START_STYLE_CLASS =
@@ -647,7 +648,7 @@
   public static final String AF_TREE_TABLE_MP_SELECTED_STYLE_CLASS =
     "af|treeTable::path-selected-step";
   public static final String AF_TREE_TABLE_MP_STEP_STYLE_CLASS =
-    "af|treeTable::path-step";    
+    "af|treeTable::path-step";
 
   // ERROR/INFO STYLES
   public static final String TIP_TEXT_STYLE_CLASS = "OraTipText";
@@ -1124,7 +1125,7 @@
    "af|treeTable::prev-disabled-icon";
   public static final String AF_TREE_TABLE_NB_NEXT_DISABLED_ICON_NAME =
    "af|treeTable::next-disabled-icon";
-   
+
   // ChooseDate icons (chooseDate)
   // Defined in OracleDesktopSkinExtension (same as SelectRange's) and XhtmlSkin
   // (not the same as SelectRange's which is null)

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/goButton-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/goButton-minimalPPC-golden.xml?view=diff&rev=541125&r1=541124&r2=541125
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/goButton-minimalPPC-golden.xml (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/goButton-minimalPPC-golden.xml Wed May 23 18:02:08 2007
@@ -1,227 +1,264 @@
 <results>
-      <a
+      <input
            class="af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[accessKey,u]-->
 
-      <a
+      <input
            class="af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[disabled,false]-->
 
-      <a
+      <input
            class="af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[disabled,true]-->
 
-      <a
+      <input
            class="af_goButton p_AFDisabled"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           disabled="disabled"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[targetFrame,mytarget]-->
 
-      <a
+      <input
            class="af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="top[mytarget].location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[id,myid]-->
 
-      <a
+      <input
            class="af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:myid"
            name="uri-attr:myid"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[shortDesc,my button]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            title="my button"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[styleClass,mystyle]-->
 
-      <a
+      <input
            class="mystyle af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[icon,/foo.gif]-->
 
-      <a
+      <input
            class="af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-        <img
-             src="uri-attr:encoded-resource-url:/test-context-path/foo.gif"
-            >
-          
-        </img>
-      </a>
+        
+      </input>
 <!--AttributeTest[onblur,null]-->
 
-      <a
+      <input
            class="af_goButton"
            onblur="test-onblur"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onclick,null]-->
 
-      <a
+      <input
            class="af_goButton"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           onclick="return _chain('test-onclick','document.location=\'encoded-action-url:http://www.oracle.com\'',this,event,true)"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[ondblclick,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            ondblclick="test-ondblclick"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onfocus,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onfocus="test-onfocus"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onkeydown,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onkeydown="test-onkeydown"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onkeypress,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onkeypress="test-onkeypress"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onkeyup,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onkeyup="test-onkeyup"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onmousedown,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onmousedown="test-onmousedown"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onmousemove,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onmousemove="test-onmousemove"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onmouseout,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onmouseout="test-onmouseout"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onmouseover,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onmouseover="test-onmouseover"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 <!--AttributeTest[onmouseup,null]-->
 
-      <a
+      <input
            class="af_goButton"
+           onclick="document.location='encoded-action-url:http://www.oracle.com'"
            onmouseup="test-onmouseup"
-           href="uri-attr:encoded-action-url:http://www.oracle.com"
+           type="button"
+           value="ButtonText"
            id="uri-attr:mainId"
            name="uri-attr:mainId"
           >
-        ButtonText
-      </a>
+        
+      </input>
 </results>