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 2009/04/16 20:13:59 UTC

svn commit: r765711 - in /myfaces/trinidad/trunk: trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/ trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/ trinidad-examples/trinidad-demo/src/main/webapp/demos/ trinidad-examples/trinidad...

Author: jwaldman
Date: Thu Apr 16 18:13:58 2009
New Revision: 765711

URL: http://svn.apache.org/viewvc?rev=765711&view=rev
Log:
TRINIDAD-1452 add an agent for email
Added an agent with name email and email capabilities (no javascript, no external css files) when the url has the request parameter "org.apache.myfaces.trinidad.agent.email". Now @agent email works for skinning as well.

Added:
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/email.xml
Modified:
    myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java
    myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/trinidad-config.xml
    myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml
    myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/panelPageSkinDemo.jspx
    myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/skins/purple/purpleSkin.css
    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/AgentNameUtil.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/style/util/NameUtils.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/capabilities.xml

Modified: myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java Thu Apr 16 18:13:58 2009
@@ -140,6 +140,12 @@
   public static final String AGENT_GECKO = "gecko";
 
   /**
+   * Constant for email agent. Used for all email agents like Outlook 2007
+   * and Thunderbird
+   */
+  public static final String AGENT_EMAIL = "email";
+  
+  /**
    * Constant for Apple Webkit agent. Used for all Webkit based agent like Safari
    */
   public static final String AGENT_WEBKIT = "webkit";

Modified: myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/trinidad-config.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/trinidad-config.xml?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/trinidad-config.xml (original)
+++ myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/trinidad-config.xml Thu Apr 16 18:13:58 2009
@@ -30,8 +30,10 @@
 
   <!-- you can use EL to get the skin. This allows the skin to change between
        requests. -->
-
+<!--
   <skin-family>#{prefs.proxy.skinFamily}</skin-family>  
+  -->
+  <skin-family>purple</skin-family>
 
 
   <!--

Modified: myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/WEB-INF/web.xml Thu Apr 16 18:13:58 2009
@@ -73,12 +73,12 @@
     <param-name>org.apache.myfaces.trinidad.USE_APPLICATION_VIEW_CACHE</param-name>
     <param-value>false</param-value>
   </context-param>
-<!-- Uncomment this if you are debugging skinning and want the styleclasses to not be compressed  
+<!-- Uncomment this if you are debugging skinning and want the styleclasses to not be compressed  -->
 <context-param>
  <param-name>org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION</param-name>
  <param-value>true</param-value>
 </context-param>
--->
+<!-- -->
 
   <!-- If this parameter is enabled, Trinidad will automatically
        check the modification date of your JSPs, and discard saved

Modified: myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/panelPageSkinDemo.jspx
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/panelPageSkinDemo.jspx?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/panelPageSkinDemo.jspx (original)
+++ myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/demos/panelPageSkinDemo.jspx Thu Apr 16 18:13:58 2009
@@ -88,6 +88,9 @@
                   <tr:selectItem label="suede" value="suede"/>
                 </tr:selectOneChoice>
                 <tr:commandButton text="Go"/>
+                <tr:goLink id="goLinkId" text="EmailablePageMode" 
+                  destination="panelPageSkinDemo.jspx?org.apache.myfaces.trinidad.agent.email=true" />
+                <tr:selectBooleanCheckbox text="true" label="Label (red in purple skin + email mode):" value="true"/>
               </tr:panelGroupLayout>
               <tr:panelGroupLayout layout="horizontal" styleClass="welcomePanel">
                 <tr:outputFormatted styleUsage="instruction"

Modified: myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/skins/purple/purpleSkin.css
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/skins/purple/purpleSkin.css?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/skins/purple/purpleSkin.css (original)
+++ myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/src/main/webapp/skins/purple/purpleSkin.css Thu Apr 16 18:13:58 2009
@@ -906,3 +906,8 @@
   -tr-show-lines:false;
 }
 }
+
+@agent email
+{
+  af|selectBooleanCheckbox::label {color: red}
+}

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=765711&r1=765710&r2=765711&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 Thu Apr 16 18:13:58 2009
@@ -39,7 +39,7 @@
     // this method primarily exists for use during testing
 
     AgentImpl agent = new AgentImpl();
-    _populateAgentImpl(headerMap,agent);
+    _populateAgentImpl(null, headerMap,agent);
     return agent;
   }
 
@@ -61,17 +61,30 @@
 
     //TODO: Add declarative and extensible means for populating AgentImpl object
     // the RequestHeaderMap helps populate the agent
-    _populateAgentImpl(headerMap, agent);
+    _populateAgentImpl(facesContext, headerMap, agent);
 
     return agent;
   }
 
   // The headerMap is the RequestHeaderMap from the externalContext. It is
   // consulted to correctly populate the agent
-  private void _populateAgentImpl(Map<String, String> headerMap, AgentImpl agent)
+  private void _populateAgentImpl(
+    FacesContext facesContext,
+    Map<String, String> headerMap, 
+    AgentImpl agent)
   {
-
+  
     String userAgent = headerMap.get("User-Agent");
+    String isEmail = null;
+    if (facesContext != null)
+      isEmail = facesContext.getExternalContext().getRequestParameterMap().
+                        get(_EMAIL_PARAM);
+ 
+    if ("true".equals(isEmail))
+    {
+      _populateEmailAgentImpl(agent);
+      return;
+    }
 
     if ((userAgent != null) && userAgent.startsWith("PTG"))
     {
@@ -854,6 +867,23 @@
       }
     }
   }
+  
+  /**
+   * Returns an AgentEntry for the email agents like Outlook 2007 and
+   * Thunderbird
+   */
+  private void _populateEmailAgentImpl(AgentImpl agentObj)
+  {
+   
+    agentObj.setType(Agent.TYPE_DESKTOP);
+
+    agentObj.setAgent(Agent.AGENT_EMAIL);
+    agentObj.setAgentVersion("0.0");
+    agentObj.setPlatform(_UNKNOWN);
+    agentObj.setPlatformVersion(_UNKNOWN);
+    agentObj.setMakeModel(_UNKNOWN);
+
+  }  
 
 
   /**
@@ -912,7 +942,8 @@
 
     return null;
   }
-
+  static private final String _EMAIL_PARAM =
+    "org.apache.myfaces.trinidad.agent.email";
   static final private String _IASW_DEVICE_HINT_PARAM = "X-Oracle-Device.Class";
   static final private String _UNKNOWN = "unknown";
   static final private TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(AgentFactoryImpl.class);

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentNameUtil.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentNameUtil.java?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentNameUtil.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentNameUtil.java Thu Apr 16 18:13:58 2009
@@ -51,6 +51,11 @@
       return TrinidadAgent.APPLICATION_GECKO;
     }
 
+    if (TrinidadAgent.AGENT_EMAIL.equals(agentName))
+    {
+      return TrinidadAgent.APPLICATION_EMAIL;
+    }    
+    
     if (TrinidadAgent.AGENT_ELAINE.equals(agentName))
     {
       return TrinidadAgent.APPLICATION_WEB_CLIPPING;
@@ -216,6 +221,8 @@
         return TrinidadAgent.AGENT_GENERICPDA;
       case TrinidadAgent.APPLICATION_KONQUEROR:
         return TrinidadAgent.AGENT_KONQUEROR;
+      case TrinidadAgent.APPLICATION_EMAIL:
+        return TrinidadAgent.AGENT_EMAIL;
       default:
         return TrinidadAgent.AGENT_UNKNOWN;
     }

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=765711&r1=765710&r2=765711&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 Thu Apr 16 18:13:58 2009
@@ -336,6 +336,10 @@
   static public final int APPLICATION_KONQUEROR = 15;
 
   /**
+   * Application constant for email.
+   */
+  static public final int APPLICATION_EMAIL = 16;
+  /**
    * OS constant for an unknown operating system.
    */
   static public final int OS_UNKNOWN = 0;

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/util/NameUtils.java Thu Apr 16 18:13:58 2009
@@ -67,6 +67,8 @@
       browser = TrinidadAgent.APPLICATION_NOKIA_S60;
     else if (_BROWSER_GENERICPDA.equals(browserName))
       browser = TrinidadAgent.APPLICATION_GENERICPDA;
+    else if (_BROWSER_EMAIL.equals(browserName))
+      browser = TrinidadAgent.APPLICATION_EMAIL;    
     else
     {
       // Either a new or an invalid browser
@@ -755,6 +757,7 @@
 
   private static final String _BROWSER_GENERICPDA = "genericpda";
 
+  private static final String _BROWSER_EMAIL = "email";
   // Platform constants
   private static final String _PLATFORM_WINDOWS = "windows";
 

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/capabilities.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/capabilities.xml?rev=765711&r1=765710&r2=765711&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/capabilities.xml (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/capabilities.xml Thu Apr 16 18:13:58 2009
@@ -58,6 +58,12 @@
       <include refid="html" />
       <include src="gecko.xml" />
     </capabilities>
+    
+    
+    <capabilities id="email" agents="email">
+      <include refid="html" />
+      <include src="email.xml" />
+    </capabilities>
 
     <capabilities id="webkit" agents="webkit">
       <include refid="html" />

Added: myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/email.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/email.xml?rev=765711&view=auto
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/email.xml (added)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/resources/META-INF/agent/email.xml Thu Apr 16 18:13:58 2009
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+    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.
+	   
+-->
+<capabilityData xmlns="http://myfaces.apache.org/trinidad/agent/capabilities">
+  <capability name="-adfinternal-scriptingSpeed" value="none"/>
+  <capability name="-adfinternal-editing" value="false"/>
+  <capability name="-adfinternal-intrinsicEvents" value="false"/>
+  <capability name="-adfinternal-styleAttributes" value="internal"/>
+  <capability name="-adfinternal-partialRendering" value="false"/>
+</capabilityData>