You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2009/06/19 05:59:05 UTC

svn commit: r786363 - in /myfaces/trinidad/trunk/trinidad-impl/src/main: java/org/apache/myfaces/trinidadinternal/agent/ java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/ java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ java/or...

Author: matzew
Date: Fri Jun 19 03:59:04 2009
New Revision: 786363

URL: http://svn.apache.org/viewvc?rev=786363&view=rev
Log: (empty)

Modified:
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgent.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgentImpl.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaMessageBoxRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaNavigationPaneRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/OutputLabelRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelFormLayoutRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SelectRangeChoiceBarRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlConstants.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelRadioRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ProcessChoiceBarRenderer.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/blackberry9000.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/gecko.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/html.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/htmlBasic.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie55win.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/netfront.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/nokia_S60.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pdaGeneric.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie03.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/webkit312.xml
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/wm6.xml

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java Fri Jun 19 03:59:04 2009
@@ -26,6 +26,7 @@
 import org.apache.myfaces.trinidad.context.Agent;
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
 
+import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlConstants;
 
 /**
  * Trinidad implementation of AgentFactory.
@@ -398,6 +399,8 @@
     agentObj.setAgent(Agent.AGENT_IE);
     agentObj.setAgentVersion(version);
     agentObj.setPlatform(Agent.PLATFORM_PPC);
+    
+    boolean narrowScreenDevice = false;
 
     if(uaPixels != null && uaPixels.length() > 0)
     {
@@ -427,12 +430,32 @@
       {
         agentObj.__addRequestCapability(TrinidadAgent.CAP_WIDTH,width);
         agentObj.__addRequestCapability(TrinidadAgent.CAP_HEIGHT,height);
+        
+        if (width.intValue() < XhtmlConstants.NARROW_SCREEN_PDA_MAX_WIDTH)
+        {
+          narrowScreenDevice = true;
+        }
       }
       else
       {
         _LOG.fine("When creating the Agent, the UA-pixels value \"{0}\" could not be parsed.", uaPixels);
       }
     }
+    else
+    {
+      narrowScreenDevice = true;
+    }
+         
+    if (narrowScreenDevice)
+    {
+      agentObj.__addRequestCapability(TrinidadAgent.CAP_NARROW_SCREEN, 
+                                                                 Boolean.TRUE);
+    }
+    else
+    {
+      agentObj.__addRequestCapability(TrinidadAgent.CAP_NARROW_SCREEN, 
+                                                                 Boolean.FALSE);
+    }
   }
 
     /**
@@ -477,7 +500,11 @@
       agentObj.setAgentVersion(version);
       agentObj.setPlatform(Agent.PLATFORM_BLACKBERRY);
       agentObj.setMakeModel(makeModel);
-    }
+      // Most of BlackBerry devices' widths are more than 240px, so 
+      // don't consider BlackBerry as a narrow-screen PDA.
+      agentObj.__addRequestCapability(TrinidadAgent.CAP_NARROW_SCREEN, 
+                                                            Boolean.FALSE);
+  }
 
   /**
    * returns the data for the Palm Web Pro browser request
@@ -681,6 +708,12 @@
       agentObj.setAgent(Agent.AGENT_GENERICPDA);
       agentObj.setPlatform(Agent.PLATFORM_GENERICPDA);
     }
+    // For performance reasons, consider Opera Mobile as a generic PDA-browser
+    // so just return. It will be handle by _populateGenricPDAImpl().
+    else if (agent.indexOf("MOT-") != -1 || agent.indexOf("Nokia") != -1)
+    {
+      return; 
+    }
     else
     {
       agentObj.setType(Agent.TYPE_DESKTOP);

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgent.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgent.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgent.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgent.java Fri Jun 19 03:59:04 2009
@@ -44,7 +44,7 @@
           CapabilityKey.getCapabilityKey("accessKeys", true);
 
   static public final CapabilityKey CAP_PARTIAL_RENDERING =
-          CapabilityKey.getCapabilityKey("-adfinternal-partialRendering", true);
+          CapabilityKey.getCapabilityKey("partialRendering", true);
 
   static public final CapabilityKey CAP_DISABLED_FORM_ELEMENTS =
           CapabilityKey.getCapabilityKey("-adfinternal-disabledFormElements", true);
@@ -122,7 +122,7 @@
           CapabilityKey.getCapabilityKey("-adfinternal-altRendersTooltipOnImage", true);
 
   static public final CapabilityKey CAP_SCRIPTING_SPEED =
-          CapabilityKey.getCapabilityKey("-adfinternal-scriptingSpeed", true);
+          CapabilityKey.getCapabilityKey("scriptingSpeed", true);
 
 
   /**
@@ -169,6 +169,12 @@
 
   static public final CapabilityKey CAP_IS_JDEV_JAVASCRIPT_VE = CapabilityKey
     .getCapabilityKey("-adfinternal-isJDevJavascriptVE", true);
+  
+  // If this capability flag is true, it means that the request is from an agent
+  // that is running in a narrow-screen PDA. Trinidad optimizes its rendering 
+  // for narrow-screen PDAs to reduce the overall width of the page rendered.
+  static public final CapabilityKey CAP_NARROW_SCREEN = CapabilityKey
+    .getCapabilityKey("narrowScreen", true);
 
   //
   // Values for CAP_DOM
@@ -451,7 +457,57 @@
    * Name Constant for Palm Web clipping (Elaine) agent
    */
   public static final String AGENT_ELAINE = "elaine";
-
+  
+  /*
+   * Skin family for BlackBerry browsers whose version > 4.5 
+   */ 
+  public static final String SKIN_BLACKBERRY = "blackberry";
+  
+  /*
+   * Skin family for BlackBerry browsers whose version <=4.5 
+   */
+  public static final String SKIN_BLACKBERRY_MINIMAL = "blackberryminimal";
+  
+  /*
+   * Skin family for all the default mobile browsers
+   */
+  public static final String SKIN_GENERIC_PDA = "genericpda";
+  
+  /* 
+   * Skin family for all Safari browsers running in iPhones/iPod
+   */
+  public static final String SKIN_WEBKIT_IPHONE = "iPhonewebkit";
+  
+  /* 
+   * Skin family for all Safari browsers running in linux platform
+   */
+  public static final String SKIN_WEBKIT_LINUX = "linuxwebkit";
+  
+  /* 
+   * Skin family for all Safari browsers running in Mac platform
+   */
+  public static final String SKIN_WEBKIT_MAC = "macwebkit";
+  
+  /* 
+   * Skin family for all Safari browsers running in Nokia S60
+   */
+  public static final String SKIN_WEBKIT_NOKIA = "nokiawebkit";
+  
+  /* 
+   * Skin family for all Safari browsers running in windows platforms
+   */
+  public static final String SKIN_WEBKIT_WINDOWS = "windowswebkit";
+  
+  /* 
+   * Skin family for all Safari browsers running in unknown platforms
+   */
+  public static final String SKIN_WEBKIT_DEFAULT = "defaultwebkit";
+   
+  /*
+   * Skin family for Windows Mobile browsers 
+   */
+  public static final String SKIN_WINDOWS_MOBILE = "windowsmobile";
+  
   /**
    * Returns the type of agent to which we're rendering.  Currently,
    * only web browsers are understood.
@@ -493,4 +549,12 @@
   public Object getCapability(CapabilityKey key);
 
   public Object clone();
+  
+  /*
+   * @return <code>String</code> object that represents an agent's
+   * skin-family, which is based upon the agent's CSS-support.     
+   * Agents with the same name can have different skin families
+   * if agents' versions or platforms are different.
+   */
+  public String getSkinFamilyType();
 }

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgentImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgentImpl.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgentImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/TrinidadAgentImpl.java Fri Jun 19 03:59:04 2009
@@ -155,6 +155,15 @@
   {
     return _capMap.getCapability(key);
   }
+  
+  /*
+   * @return <code>String</code> object that represents an agent's
+   * skin-family
+   */
+  public String getSkinFamilyType()
+  {
+    return _skinFamilyType;
+  }
 
 
   @Override
@@ -234,7 +243,7 @@
       _major = 1;
     else
       _major = _getMajorVersion(getAgentVersion());
-
+    _setskinFamilyType();
     _capMap = _getCapabilityMap(context);
     Map<Object, Object> requestCaps = _delegate.getCapabilities();
     if (requestCaps != null)
@@ -375,6 +384,69 @@
     return (int) version;
   }
 
+  /*
+   * This method determines a mobile agent's skin-family, which is based upon      
+   * the agent's CSS-support. Agents with the same name can have different 
+   * skin families if the agents' versions or platforms are different.
+   */
+  void _setskinFamilyType()
+  {
+    if (_os == TrinidadAgent.OS_PPC)
+    {
+      _skinFamilyType = TrinidadAgent.SKIN_WINDOWS_MOBILE;
+    }
+    else if (_application == TrinidadAgent.APPLICATION_NOKIA_S60)
+    {
+      _skinFamilyType = TrinidadAgent.SKIN_WEBKIT_NOKIA;
+    }
+    else if (_application == TrinidadAgent.APPLICATION_SAFARI)
+    {
+      if (_os == TrinidadAgent.OS_IPHONE)
+      {
+        _skinFamilyType = TrinidadAgent.SKIN_WEBKIT_IPHONE;
+      }
+      else if (_os == TrinidadAgent.OS_LINUX)
+      {
+        _skinFamilyType = TrinidadAgent.SKIN_WEBKIT_LINUX;
+      }
+      else if (_os == TrinidadAgent.OS_MACOS)
+      {
+        _skinFamilyType = TrinidadAgent.SKIN_WEBKIT_MAC;
+      }
+      else if (_os == TrinidadAgent.OS_WINDOWS)
+      {
+        _skinFamilyType = TrinidadAgent.SKIN_WEBKIT_WINDOWS;
+      }
+      else
+      {
+        _skinFamilyType = TrinidadAgent.SKIN_WEBKIT_DEFAULT;  
+      }
+    }
+    else if (_application == TrinidadAgent.APPLICATION_GENERICPDA)
+    {
+      _skinFamilyType = TrinidadAgent.SKIN_GENERIC_PDA;
+    }
+    else if (_application == TrinidadAgent.APPLICATION_BLACKBERRY)
+    {
+      // BlackBerry browsers' versions are in the format x.y.z.[...]
+      // (x,y and z are numerals). For determining the skin-family, truncate
+      // the version after the first decimal-point's immediate digit.
+      // Example, versions 4.6.0.80  and 4.1.2 will be  truncated to 4.6  
+      // and 4.1 respectively.
+      String version = getAgentVersion();
+      version = version.substring(0, version.indexOf(".")+2);
+            
+      if (Float.parseFloat(version) > 4.5)
+      {
+        _skinFamilyType = TrinidadAgent.SKIN_BLACKBERRY;
+      }
+      else
+      {
+        _skinFamilyType = TrinidadAgent.SKIN_BLACKBERRY_MINIMAL;
+      }
+    }
+  }
+  
   void __mergeCapabilities(Map<Object, Object> capabilities)
   {
     _capMap = _capMap.merge(capabilities);
@@ -401,6 +473,7 @@
   private int _application;
   private int _os;
   private int _major;
+  private String _skinFamilyType;
 
 
 }

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaMessageBoxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaMessageBoxRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaMessageBoxRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaMessageBoxRenderer.java Fri Jun 19 03:59:04 2009
@@ -52,12 +52,14 @@
   {
     Agent agent = arc.getAgent();
 
-    // BlackBerry browser does not support inline style of display:none
-    // and thus it is necessary to slip rendering entire element if
-    // there is no message to display and rendering to BlackBerry.
+    // BlackBerry and many pda browsers don't support inline style of 
+    // display:none. Thus, it is necessary to slip rendering entire 
+    // element if there is no message to display. 
     // This method checks for the condition and returns true.
 
-    if (agent != null && Agent.AGENT_BLACKBERRY.equals(agent.getAgentName()))
+    if (agent != null &&
+                 (Agent.AGENT_BLACKBERRY.equals(agent.getAgentName()) ||
+                  Agent.AGENT_GENERICPDA.equals(agent.getAgentName()) ))
     {
       boolean hasMessages =
                     FacesContext.getCurrentInstance().getMessages().hasNext();

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaNavigationPaneRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaNavigationPaneRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaNavigationPaneRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/pda/PdaNavigationPaneRenderer.java Fri Jun 19 03:59:04 2009
@@ -156,7 +156,9 @@
                            toString(itemData.get("icon")), 
                            itemData, isDisabled, isRtl);
         rw.endElement("span"); // centerContent
-
+        
+        boolean narrowScreen = supportsNarrowScreen(arc);
+        
         if (!getBooleanFromProperty(itemData.get("isLast"))) 
         {
           rw.startElement("span", null); // rightContent
@@ -170,10 +172,24 @@
             renderStyleClass(context, arc, 
                                 SkinSelectors.AF_NAVIGATION_LEVEL_BUTTONS_SEPARATOR_STYLE_CLASS);
           }
-          rw.write("|");
+          
+          // Narrow-screen PDAs don't need"|", since navigation items 
+          // are rendered vertically for narrow-screen PDAs.
+          if (!narrowScreen)
+          {
+            rw.write("|");
+          }
+          
           rw.endElement("span"); // rightContent
         }  
         rw.endElement("span"); // rightContent
+        
+        // render vertically for narrow-screen PDAs
+        if (narrowScreen)
+        { 
+          rw.startElement("br", null);
+          rw.endElement("br");
+        }
       }
       // Render as List
       else 

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java Fri Jun 19 03:59:04 2009
@@ -107,7 +107,19 @@
     ) throws IOException
   {
 
-    boolean isVertical = _isVertical(bean);
+    boolean isVertical;
+     
+    // To reduce the breadcrumb's width, render vertically for narrow-screen
+    // PDAs.
+    if (supportsNarrowScreen(arc))
+    { 
+      isVertical = true;
+    }
+    else
+    {
+      isVertical = _isVertical(bean);
+    }
+    
     boolean shouldRenderLastChild = shouldRenderLastChild(arc);    
     boolean isLastChild   = false;
     boolean isFirstChild  = true;
@@ -418,6 +430,13 @@
       RenderingContext arc
   )
   {
+    // In the case of narrow-screen PDAs, the number of indent spaces is 
+    // reduced to decrease the overall breadcrumb's width.
+    if (supportsNarrowScreen(arc))
+    { 
+      return NARROW_SCREEN_INDENT_SPACES;
+    }
+    
     Object propValue = arc.getSkin().getProperty(
                                       SkinProperties.AF_BREAD_CRUMBS_INDENT_SPACES);
 
@@ -439,6 +458,9 @@
   // # of hard spaces to use in indenting vertical breadcrumbs
   private static final int _INDENT_SPACES = 10;  
   
+  // # of hard spaces to use in indenting vertical breadcrumbs 
+  // in the case of narrow-screen PDAs
+  private static final int NARROW_SCREEN_INDENT_SPACES = 3; 
   
   private static final Map<String, String> _RESOURCE_KEY_MAP;
   static

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java Fri Jun 19 03:59:04 2009
@@ -330,6 +330,21 @@
             formData.addNeededValue(XhtmlConstants.EVENT_PARAM);
             formData.addNeededValue(XhtmlConstants.PARTIAL_TARGETS_PARAM);
             formData.addNeededValue(XhtmlConstants.PARTIAL_PARAM);
+
+            // In the case of Windows-mobile(WM) browsers, store the value of
+            // the request-header field, UA-pixels, into a hidden-parameter's 
+            // value attribute. WM browsers' PPRs don't contain UA-pixels in 
+            // their request-headers. So during a WM browser's PPR, we need to  
+            // manually (using JavaScript) set the field, UA-pixels, into  
+            // the request-header with the hidden parameter's value.
+                                
+            Map<String, String> headerMap = 
+                        context.getExternalContext().getRequestHeaderMap();
+                        
+            _renderHiddenField(writer,
+                               XhtmlConstants.WINDOWS_MOBILE_UAPIXELS,
+                               headerMap.get("UA-pixels"));
+           
           }
           else
           {

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java Fri Jun 19 03:59:04 2009
@@ -140,6 +140,10 @@
     FacesContext context,
     boolean      needsPanelFormLayout)
   {
+    // For narrow-screen PDAs, always render the Label above fields.
+    if (supportsNarrowScreen(RenderingContext.getCurrentInstance()))
+      return false;
+          
     if (needsPanelFormLayout)
     {
       Map requestMap = context.getExternalContext().getRequestMap();
@@ -233,6 +237,10 @@
         rw.endElement("div");
         _renderMessageCellContents(context, rc, component, bean);
       }
+      
+      // In the case of narrow-screen PDAs, to reduce the component's width,
+      // End facet is always rendered below. 
+      renderEndFacetForNarrowPDA(context, rc, component, true);
     }
     else
     {
@@ -356,7 +364,11 @@
           rw.endElement("tr");
         }
       }
-
+      
+      // In the case of narrow-screen PDAs, to reduce the component's width,
+      // End facet is always rendered below.
+      renderEndFacetForNarrowPDA(context, rc, component, false);
+      
       if (needsTableTag)
       {
         rw.endElement("table");
@@ -394,6 +406,14 @@
       });
 
     String labelInlineStyle = getLabelInlineStyleKey(bean);
+   
+    // In the case of narrow-screen PDAs, the Label is rendered above fields. 
+    // So Label should be left aligned to be in align with fields below. 
+    if (supportsNarrowScreen(rc))
+    {
+      labelInlineStyle = labelInlineStyle + ";text-align: left;";
+    }
+    
     rw.writeAttribute("style", labelInlineStyle, null);
 
     String valign = getDefaultLabelValign(bean);
@@ -865,6 +885,36 @@
     return styleClass;
   } 
   
+  /* This method is responsible for rendering the End facet for narrow-screen 
+   * PDAs. In the case of narrow-screen PDAs, End facet is rendered after the 
+   * Help facet as shown below
+   * +------+
+   * |Label | 
+   * +------+
+   * |Field |
+   * +----------+
+   * |Help facet| 
+   * +----------+
+   * |End facet | 
+   * ------------
+   * @param context a <code>FacesContext</code>
+   * @param arc a <code>RenderingContext</code>
+   * @param component a <code>UIComponent</code> the component to render
+   * @param insideTableData a <code>boolean</code> indicates whether End
+   *        Facet to be rendered is in inside a table data(<TD>)
+   * @throws IOException if there are problems in rendering contents
+   */
+  
+  protected void renderEndFacetForNarrowPDA(
+    FacesContext     context,
+    RenderingContext rc,
+    UIComponent      component,
+    boolean          insideTableData)
+    throws IOException
+  {
+    // Nothing by default. Applicable only for the 
+    // components that support End facet.
+  }
 
   // If we have mapped this style (like in panelForm), 
   // then return the style, otherwise return null

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java Fri Jun 19 03:59:04 2009
@@ -302,8 +302,13 @@
     FacesBean           bean) throws IOException
   {
     String renderingHint = _getHint(bean);
-    if (NavigationPaneRenderer._HINT_TABS.equals(renderingHint))
-    {
+    
+    // Since navigation items are rendered vertically for narrow-screen PDAs, 
+    // Tab style class, which sets the navigationPane's height, is no longer 
+    // applicable for narrow-screen PDAs
+    if (!supportsNarrowScreen(arc) && 
+                NavigationPaneRenderer._HINT_TABS.equals(renderingHint))
+    { 
       renderStyleAttributes(context, arc, bean,
                             SkinSelectors.AF_NAVIGATION_LEVEL_TABS_STYLE_CLASS);
     }

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/OutputLabelRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/OutputLabelRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/OutputLabelRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/OutputLabelRenderer.java Fri Jun 19 03:59:04 2009
@@ -480,7 +480,8 @@
       Agent agent = arc.getAgent();
 
       if ((agent != null) &&
-             Agent.AGENT_BLACKBERRY.equals(agent.getAgentName()) &&
+            (Agent.AGENT_BLACKBERRY.equals(agent.getAgentName()) ||
+             Agent.AGENT_GENERICPDA.equals(agent.getAgentName())) &&
           (null == messageType || "none".equals(messageType)))
       {
         return false;

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelFormLayoutRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelFormLayoutRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelFormLayoutRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelFormLayoutRenderer.java Fri Jun 19 03:59:04 2009
@@ -220,7 +220,20 @@
     // we really need:
     int actualColumns = maxColumns;
     int actualRows = rows;
-    Object labelAlignment = _getLabelAlignment(bean);
+    Object labelAlignment; 
+    
+    // In the case of narrow-screen PDAs, the label and field are rendered 
+    // vertically to reduce the overall page's width. Thus, labelAlignment
+    // is always "top" for narrow-screen PDAs.
+    if (supportsNarrowScreen(rc))
+    {
+      labelAlignment = "top";
+    }
+    else
+    {
+      labelAlignment = _getLabelAlignment(bean);
+    }
+    
     boolean forceSingleColumn = (nestLevel != 0);
     boolean startAlignedLabels = !forceSingleColumn;
     if ("start".equals(labelAlignment))

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java Fri Jun 19 03:59:04 2009
@@ -119,7 +119,10 @@
     rw.startElement("td", null);
     encodeAllChildren(context, component);
     rw.endElement("td");
-    if (end != null)
+    
+    // For narrow-screen PDAs, End facet is rendered vertically
+    // below the Help facet. So skip the End facet rendering here.
+    if (end != null && !supportsNarrowScreen(arc))
     {
       rw.startElement("td", null);
       // =-= mcc TODO apply className for "af|panelLabelAndMessage::end-facet"
@@ -184,6 +187,59 @@
     return null;
   }
   
+  /* This method is responsible for rendering the End facet for narrow-screen 
+   * PDAs. In the case of narrow-screen PDAs, End facet is rendered after the 
+   * Help  facet as shown below
+   * +------+
+   * |Label | 
+   * +------+
+   * |Field |
+   * +----------+
+   * |Help facet| 
+   * +----------+
+   * |End facet | 
+   * ------------
+   * @param context a <code>FacesContext</code>
+   * @param arc a <code>RenderingContext</code>
+   * @param component a <code>UIComponent</code> the component to render
+   * @param insideTableData a <code>boolean</code> indicates whether End
+   *        Facet to be rendered is in inside a table data(<TD>)
+   * @throws IOException if there are problems in rendering contents
+   */
+  @Override 
+  protected void renderEndFacetForNarrowPDA(
+    FacesContext     context,
+    RenderingContext arc,
+    UIComponent      component,
+    boolean          insideTableData)
+    throws IOException
+  {
+    if (!supportsNarrowScreen(arc))
+      return;       
+         
+    UIComponent end = getFacet(component, CorePanelLabelAndMessage.END_FACET);
+    
+    if (end != null)
+    {
+      ResponseWriter rw = context.getResponseWriter();
+      
+      if (insideTableData)
+      {
+        rw.startElement("div", null);
+        encodeChild(context, end);
+        rw.endElement("div");
+      }
+      else
+      {
+        rw.startElement("tr", null);
+        rw.startElement("td", null);
+        encodeChild(context, end);
+        rw.endElement("td");
+        rw.endElement("tr");
+      }
+    }
+  }
+
   private PropertyKey _forKey;
   private PropertyKey _labelInlineStyleKey;
 }

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SelectRangeChoiceBarRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SelectRangeChoiceBarRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SelectRangeChoiceBarRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SelectRangeChoiceBarRenderer.java Fri Jun 19 03:59:04 2009
@@ -491,8 +491,12 @@
 
         writer.startElement("tr", null);
       }
-
-      if (showBackButton)
+      
+      boolean narrowScreen = supportsNarrowScreen(arc);
+      
+      // skip rendering back button for narrow-screen PDAs to reduce the
+      // overall width of selectRangeChoiceBar.
+      if (showBackButton && !narrowScreen)
       {
         Icon prevIcon = getIcon(arc, false, (prevOnClick != null));
 
@@ -567,8 +571,10 @@
                     validate);
 
       writer.endElement("td");
-
-      if (showNextButton)
+      
+      // skip rendering back button for narrow-screen PDAs to reduce the
+      // overall width of selectRangeChoiceBar.
+      if (showNextButton && !narrowScreen)
       {
         _renderSpacerCell(context, arc);
 
@@ -728,14 +734,13 @@
                               + XhtmlUtils.getEncodedParameter
                                           (XhtmlConstants.EVENT_PARAM)
                               + XhtmlConstants.GOTO_EVENT;
+                              
+          renderSubmitButtonNonJSBrowser(context,
+                                         arc,
+                                         XhtmlConstants.
+                                               NO_JS_PARAMETER_KEY_BUTTON,
+                                         nameAttri);
 
-          writer.startElement("span", null);
-          writer.startElement("input", null);
-          writer.writeAttribute("value",XhtmlConstants.NO_JS_PARAMETER_KEY_BUTTON , null);
-          writer.writeAttribute("type","submit", null);
-          writer.writeAttribute("name", nameAttri, null);
-          writer.endElement("input");
-          writer.endElement("span");
         }
         else
         {

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlConstants.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlConstants.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlConstants.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlConstants.java Fri Jun 19 03:59:04 2009
@@ -317,4 +317,13 @@
   public static final String NON_JS_DETAIL_UNDISCLOSED_ICON = "+";
   public static final String NON_JS_ASC_ICON = "v";
   public static final String NON_JS_DESC_ICON = "^";
+  
+  // Maximum width of a narrow-screen PDA device in pixels
+  public static final int NARROW_SCREEN_PDA_MAX_WIDTH = 240; 
+  
+  // The name of the hidden parameter that stores the value of the 
+  // request-header, UA-pixels. This hidden paramter is rendered only 
+  // for windows mobile.
+  public static final String WINDOWS_MOBILE_UAPIXELS = "uapixels";
+     
 }

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/XhtmlRenderer.java Fri Jun 19 03:59:04 2009
@@ -225,6 +225,18 @@
     return !Boolean.FALSE.equals(cap);
   }
 
+  /**
+   * Returns true if an agent is a narrow-screen PDA
+   * @param context a <code>RenderingContext</code>
+   * @return a <code>boolean</code>
+   */
+    
+  public static boolean supportsNarrowScreen(RenderingContext arc)
+  {
+    Object cap = arc.getAgent().getCapabilities().get( 
+                                 TrinidadAgent.CAP_NARROW_SCREEN);
+    return Boolean.TRUE.equals(cap);
+  }
 
 
   //
@@ -959,7 +971,37 @@
   }
 
 
-
+  /**
+   * This method renders an input element of type "submit". The input element's
+   * name attribute is encoded with parameter name and value pairs. Thus, it 
+   * would enable Non-JavaScript browsers to include the element's name in 
+   * their payLoad, if the element submits the page.    
+   *
+   * @param context a <code>FacesContext</code>
+   * @param arc a <code>RenderingContext</code>
+   * @param valueAttri a <code>String</code> it is the value attribute
+   *  of the submit button
+   * @param nameAttri  a <code>String</code> it is the name attribute
+   *  of the submit button
+   * 
+   */
+  public static void renderSubmitButtonNonJSBrowser(
+    FacesContext     context,
+    RenderingContext arc,
+    String           valueAttri,
+    String           nameAttri
+    ) throws IOException
+  {
+    ResponseWriter writer = context.getResponseWriter();
+    writer.startElement("input", null);
+    writer.writeAttribute("type", "submit", null);
+    writer.writeAttribute("value", valueAttri, null);
+    writer.writeAttribute("name", nameAttri, null);
+    renderStyleClass(context, arc, 
+                       SkinSelectors.AF_COMMAND_BUTTON_STYLE_CLASS);
+    writer.endElement("input");
+  }
+ 
   //
   // ATTRIBUTE HOOKS
   //

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelRadioRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelRadioRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelRadioRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/CorePanelRadioRenderer.java Fri Jun 19 03:59:04 2009
@@ -95,9 +95,19 @@
 
     out.endElement("span");
     out.endElement("td");
-
-    // Render filler / separator between label and select control
-    renderSpacerTD(out, component, getLabelControlSeparatorSize());
+    
+    // render label and radio control vertically for narrow-screen PDAs
+    if (XhtmlRenderer.supportsNarrowScreen
+                    (RenderingContext.getCurrentInstance()))
+    { 
+      out.endElement("tr");
+      out.startElement("tr", null);
+    }
+    else
+    {
+      // Render filler / separator between label and select control
+      renderSpacerTD(out, component, getLabelControlSeparatorSize());
+    }
 
     _renderRadioItemsInTD(context,
                           component,

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/html/layout/ShowOneListRendererBase.java Fri Jun 19 03:59:04 2009
@@ -135,19 +135,33 @@
     throws IOException
   {
     writeAdditionalJS(context, component); // To spit out additional JS if any
-    String alignment = _getAlignment(component);
-    if (alignment == null)
+    String position;
+    String alignment;
+    
+    // In the case of narrow-screen PDAs, to reduce component's width, 
+    // position is always top and alignment is always left. 
+    if(XhtmlRenderer.supportsNarrowScreen
+                    (RenderingContext.getCurrentInstance()))
     {
-      alignment = _ALIGNMENT_DEFAULT_VALUE;
+      position = _POSITION_TOP;
+      alignment = _ALIGNMENT_LEFT;
     }
-    // No need to check for invalid value of alignment attr value as
-    // it's handled below.
-
-    // If the position is either null or an invalid value, default it.
-    String position = _getPosition(component);
-    if (! positionMap.containsKey(position))
+    else
     {
-      position = _POSITION_DEFAULT_VALUE;
+      alignment = _getAlignment(component);
+      if (alignment == null)
+      {
+        alignment = _ALIGNMENT_DEFAULT_VALUE;
+      }
+      // No need to check for invalid value of alignment attr value as
+      // it's handled below.
+
+      // If the position is either null or an invalid value, default it.
+      position = _getPosition(component);
+      if (! positionMap.containsKey(position))
+      {
+        position = _POSITION_DEFAULT_VALUE;
+      }
     }
 
     _LOG.finest("ShowOneListRendererBase.encodeChildren: alignment: {0}, position: {1} ",

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java Fri Jun 19 03:59:04 2009
@@ -1094,6 +1094,16 @@
        RequestContext.Accessibility.SCREEN_READER;
   }
 
+  /** 
+   * Returns true if a user agent is a narrow-screen PDA
+   * @param context a <code>UIXRenderingContext</code>
+   * @return a <code>boolean</code>
+   */
+  public static boolean supportsNarrowScreen(UIXRenderingContext context)
+  {
+    return getBooleanAgentCapability(context,
+                                         TrinidadAgent.CAP_NARROW_SCREEN);
+  }
 
   private static final String _BASE_IMAGE_URI_PROPERTY = "baseImageURI";
 

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ProcessChoiceBarRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ProcessChoiceBarRenderer.java?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ProcessChoiceBarRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ProcessChoiceBarRenderer.java Fri Jun 19 03:59:04 2009
@@ -28,6 +28,7 @@
 import org.apache.myfaces.trinidad.component.UIXProcess;
 import org.apache.myfaces.trinidad.component.core.layout.CorePanelButtonBar;
 
+import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinSelectors;
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlConstants;
 import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlUtils;
 import org.apache.myfaces.trinidadinternal.share.url.FormEncoder;
@@ -213,6 +214,8 @@
 
     boolean showBackButton = backButtonIndex != ProcessUtils.NO_INDEX;
     boolean showNextButton = nextButtonIndex != ProcessUtils.NO_INDEX;
+    
+    boolean narrowScreenPDA = supportsNarrowScreen(context);
 
     // bail if no buttons shown
     if (!showBackButton && !showNextButton)
@@ -245,6 +248,12 @@
     }
 
     UINode backButton = null;
+    Object nonJSBackButtonText = null;
+    
+    // In the case of narrow-screen PDAs, the next and previous buttons
+    // are not rendered to reduce the component's width.
+    showBackButton = showBackButton && !narrowScreenPDA;
+    showNextButton = showNextButton && !narrowScreenPDA; 
 
     // set up the back button
     if (showBackButton)
@@ -287,6 +296,10 @@
                                     null,
                                     null));
       }
+      else
+      {
+        nonJSBackButtonText = buttonTextBV;
+      }
     }
 
     UINode nextButton = null;
@@ -368,6 +381,7 @@
                                               Integer.toString(1)});
                                                           
         context.setLocalProperty(_NON_JS_NEXT_BUTTON_NAME_ATTR, nameAttri);
+        context.setLocalProperty(_NON_JS_NEXT_BUTTON_TEXT, buttonTextBV);
       }
     }
 
@@ -413,11 +427,11 @@
                                             Long.toString(selectedIndex - 1),
                                             SIZE_PARAM,
                                             Integer.toString(0)});
-                                                   
-        _renderSubmitButtonNonJSBrowser(
-                             context, 
-                             XhtmlConstants.NO_JS_PARAMETER_BACK_BUTTON, 
-                             nameAttri );
+
+        String buttonText = ((AccessKeyBoundValue)nonJSBackButtonText)
+                                              .getValue(context).toString();
+
+        _renderSubmitButtonNonJSBrowser(context, buttonText, nameAttri);
       }
       writer.endElement("td");
 
@@ -519,13 +533,18 @@
         _renderSpacerCell(context);
        
         writer.startElement("td", null);
+        
+        Object nextButtonText = context.getLocalProperty(
+                                        0, _NON_JS_NEXT_BUTTON_TEXT, null);
+                                          
+        String buttonText = ((AccessKeyBoundValue)nextButtonText)
+                                              .getValue(context).toString();
        
-        _renderSubmitButtonNonJSBrowser(
-                            context, 
-                            XhtmlConstants.NO_JS_PARAMETER_NEXT_BUTTON, 
-                            nextButtonNameAttr );
+        _renderSubmitButtonNonJSBrowser(context, buttonText, 
+                                                 nextButtonNameAttr );
                                        
         context.setLocalProperty(_NON_JS_NEXT_BUTTON_NAME_ATTR, null);
+        context.setLocalProperty(_NON_JS_NEXT_BUTTON_TEXT, null);
         
       }
     }
@@ -808,6 +827,8 @@
     renderAttribute(context, "type", "submit");
     renderAttribute(context, "value", valueAttri);
     renderAttribute(context, "name", nameAttri);
+    renderStyleClassAttribute(context, 
+          SkinSelectors.AF_COMMAND_BUTTON_STYLE_CLASS);
     writer.endElement("input");
   }
 
@@ -826,5 +847,6 @@
   static private final Object _NEXT_BUTTON_KEY = new Object();
   static private final Object _NEW_PATH_KEY = new Object();
   static private final Object _NON_JS_NEXT_BUTTON_NAME_ATTR = new Object();
+  static private final Object _NON_JS_NEXT_BUTTON_TEXT = new Object();  
 
 }

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js Fri Jun 19 03:59:04 2009
@@ -1847,7 +1847,23 @@
     // WM5.
     if (isPartial && _supportsPPR())
     {
-      TrPage.getInstance().sendPartialFormPost(form, parameters);
+      // In the case of Windows-mobile(WM) browsers, during rendering, 
+      // Trinidad stores the value of the request-header field, UA-pixels,
+      // into a hidden-parameter's value attribute. WM browsers' PPRs don't 
+      // contain UA-pixels in their request-headers. So during a WM browser's 
+      // PPR, we need to manually set the field, UA-pixels, into the 
+      // request-header with the hidden parameter's value.
+                  
+      if (_agent.isPIE || _agent.isWindowsMobile6)
+      {
+        var header = new Array(1);
+        header['UA-pixels'] = form.elements['uapixels'].value;
+        TrPage.getInstance().sendPartialFormPost(form, parameters, header);
+      }
+      else
+      {      
+        TrPage.getInstance().sendPartialFormPost(form, parameters);
+      }  
     }
     else
     {

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/blackberry9000.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/blackberry9000.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/blackberry9000.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/blackberry9000.xml Fri Jun 19 03:59:04 2009
@@ -23,5 +23,5 @@
   <capability name="accessKeys" value="true"/>
   <capability name="-adfinternal-cssSelectors" value="multiple"/> 
   <capability name="-adfinternal-imageStretch" value="true"/> 
-  <capability name="-adfinternal-partialRendering" value="true"/>
+  <capability name="partialRendering" value="true"/>
 </capabilityData>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/gecko.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/gecko.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/gecko.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/gecko.xml Fri Jun 19 03:59:04 2009
@@ -21,7 +21,7 @@
 <capabilityData xmlns="http://myfaces.apache.org/trinidad/agent/capabilities">
   <capability name="dom" value="level2"/>
   <capability name="-adfinternal-cssSelectors" value="multiple"/>
-  <capability name="-adfinternal-partialRendering" value="true"/>  
+  <capability name="partialRendering" value="true"/>  
   <capability name="-adfinternal-imageStretch" value="true"/>
   <capability name="-adfinternal-pngImage" value="true"/>  
   <capability name="-adfinternal-transparentPngImage" value="true"/>     

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/html.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/html.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/html.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/html.xml Fri Jun 19 03:59:04 2009
@@ -27,7 +27,7 @@
   <capability name="-adfinternal-advancedForms" value="true"/>
   <capability name="-adfinternal-target" value="true"/>  
   <capability name="-adfinternal-intrinsicEvents" value="true"/>
-  <capability name="-adfinternal-scriptingSpeed" value="slow"/>
+  <capability name="scriptingSpeed" value="slow"/>
   <capability name="-adfinternal-styleAttributes" value="external"/>
   <capability name="-adfinternal-nameIdentification" value="true"/>
   <capability name="-adfinternal-advancedButtons" value="true"/>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/htmlBasic.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/htmlBasic.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/htmlBasic.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/htmlBasic.xml Fri Jun 19 03:59:04 2009
@@ -29,7 +29,7 @@
   <capability name="-adfinternal-advancedForms" value="false"/>
   <capability name="-adfinternal-target" value="false"/>  
   <capability name="-adfinternal-intrinsicEvents" value="false"/>
-  <capability name="-adfinternal-scriptingSpeed" value="none"/>  
+  <capability name="scriptingSpeed" value="none"/>  
   <capability name="-adfinternal-styleAttributes" value="none"/>
   <capability name="-adfinternal-nameIdentification" value="false"/>
   <capability name="-adfinternal-disabledFormElements" value="true"/>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie.xml Fri Jun 19 03:59:04 2009
@@ -19,7 +19,7 @@
 	   
 -->
 <capabilityData xmlns="http://myfaces.apache.org/trinidad/agent/capabilities">
-  <capability name="-adfinternal-scriptingSpeed" value="fast"/>
+  <capability name="scriptingSpeed" value="fast"/>
   <capability name="-adfinternal-pngImage" value="true"/>  
   <capability name="-adfinternal-transparentPngImage" value="true"/>   
   <capability name="-adfinternal-altRendersTooltipOnImage" value="true"/>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie55win.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie55win.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie55win.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/ie55win.xml Fri Jun 19 03:59:04 2009
@@ -19,5 +19,5 @@
 	   
 -->
 <capabilityData xmlns="http://myfaces.apache.org/trinidad/agent/capabilities">
-  <capability name="-adfinternal-partialRendering" value="true"/>
+  <capability name="partialRendering" value="true"/>
 </capabilityData>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/netfront.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/netfront.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/netfront.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/netfront.xml Fri Jun 19 03:59:04 2009
@@ -25,9 +25,10 @@
   <capability name="-adfinternal-intrinsicEvents" value="true"/>
   <capability name="-adfinternal-disabledFormElements" value="false"/>
   <capability name="-adfinternal-readonlyFormElements" value="false"/>
-  <capability name="-adfinternal-scriptingSpeed" value="slow"/>
+  <capability name="scriptingSpeed" value="slow"/>
   <capability name="-adfinternal-styleAttributes" value="external"/> 
    <capability name="-adfinternal-cssSelectors" value="multiple"/>  
   <capability name="-adfinternal-valign" value="true"/>   
 </capabilityData>
 
+

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/nokia_S60.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/nokia_S60.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/nokia_S60.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/nokia_S60.xml Fri Jun 19 03:59:04 2009
@@ -19,5 +19,5 @@
 	   
 -->
 <capabilityData xmlns="http://myfaces.apache.org/trinidad/agent/capabilities">
-  <capability name="-adfinternal-partialRendering" value="false"/>
+  <capability name="partialRendering" value="false"/>
 </capabilityData>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pdaGeneric.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pdaGeneric.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pdaGeneric.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pdaGeneric.xml Fri Jun 19 03:59:04 2009
@@ -26,4 +26,5 @@
   <capability name="-adfinternal-advancedButtons" value="false"/>
   <capability name="-adfinternal-cssSelectors" value="multiple"/>
   <capability name="-adfinternal-styleAttributes" value="external"/>
+  <capability name="narrowScreen" value="true"/>
 </capabilityData>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie.xml Fri Jun 19 03:59:04 2009
@@ -31,8 +31,8 @@
   <capability name="-adfinternal-disabledFormElements" value="true"/>
   <capability name="-adfinternal-cssSelectors" value="multiple"/>
   <capability name="-adfinternal-styleAttributes" value="external"/>
-  <capability name="-adfinternal-scriptingSpeed" value="slow"/>
-  <capability name="-adfinternal-partialRendering" value="false"/>
+  <capability name="scriptingSpeed" value="slow"/>
+  <capability name="partialRendering" value="false"/>
   <capability name="-adfinternal-xmldom" value="true"/>  
   <capability name="-adfinternal-onclick-input" value="true"/>  
 </capabilityData>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie03.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie03.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie03.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/pocketie03.xml Fri Jun 19 03:59:04 2009
@@ -23,8 +23,8 @@
   <capability name="-adfinternal-disabledFormElements" value="true"/>
   <capability name="-adfinternal-cssSelectors" value="multiple"/>
   <capability name="-adfinternal-styleAttributes" value="external"/>
-  <capability name="-adfinternal-scriptingSpeed" value="slow"/>
-  <capability name="-adfinternal-partialRendering" value="true"/>
+  <capability name="scriptingSpeed" value="slow"/>
+  <capability name="partialRendering" value="true"/>
   <capability name="-adfinternal-xmldom" value="true"/>  
   <capability name="-adfinternal-onclick-input" value="true"/>  
   <capability name="-adfinternal-onclickOnImgInput" value="false"/>    

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/webkit312.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/webkit312.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/webkit312.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/webkit312.xml Fri Jun 19 03:59:04 2009
@@ -20,5 +20,5 @@
 -->
 <capabilityData xmlns="http://myfaces.apache.org/trinidad/agent/capabilities">
   <capability name="accessKeys" value="true"/>
-  <capability name="-adfinternal-partialRendering" value="true"/>
+  <capability name="partialRendering" value="true"/>
 </capabilityData>

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/wm6.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/wm6.xml?rev=786363&r1=786362&r2=786363&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/wm6.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/wm6.xml Fri Jun 19 03:59:04 2009
@@ -23,8 +23,8 @@
   <capability name="-adfinternal-disabledFormElements" value="true"/>
   <capability name="-adfinternal-cssSelectors" value="multiple"/>
   <capability name="-adfinternal-styleAttributes" value="external"/>
-  <capability name="-adfinternal-scriptingSpeed" value="slow"/>
-  <capability name="-adfinternal-partialRendering" value="true"/>
+  <capability name="scriptingSpeed" value="slow"/>
+  <capability name="partialRendering" value="true"/>
   <capability name="-adfinternal-xmldom" value="true"/>  
   <capability name="-adfinternal-onclick-input" value="true"/>  
   <capability name="-adfinternal-onclickOnImgInput" value="false"/>