You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2007/03/16 15:52:55 UTC

svn commit: r519018 - in /incubator/adffaces/trunk/trinidad/trinidad-impl/src/main: java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java javascript/META-INF/adf/jsLibs/Core.js

Author: awiner
Date: Fri Mar 16 08:52:55 2007
New Revision: 519018

URL: http://svn.apache.org/viewvc?view=rev&rev=519018
Log:
ADFFACES-246: actual Trinidad demo does not work with opera 9.02
- Check in patch from Carsten Hohne
- And fix JS agent detection for Opera per Patrick Huber's suggestion


Modified:
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java
    incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java?view=diff&rev=519018&r1=519017&r2=519018
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentFactoryImpl.java Fri Mar 16 08:52:55 2007
@@ -194,6 +194,12 @@
       _populateMozillaAgentImpl(userAgent,agent);
       return;
     }
+
+    if (userAgent.startsWith("Opera")) 
+    {
+        _populateOperaAgentImpl(userAgent,agent);
+        return;
+    }
     
     if(userAgent.startsWith("BlackBerry"))
     {
@@ -612,6 +618,46 @@
 
     //int start = agent.indexOf("rv:");
     //entry._agentVersion = _getVersion(agent, start + 2);
+
+    int paren = agent.indexOf('(');
+
+    if (paren >= 0)
+    {
+      // try to determine the OS
+      if (agent.indexOf("Win", paren) > 0)
+      {
+        agentObj.setPlatform(Agent.PLATFORM_WINDOWS);
+      }
+      else if (agent.indexOf("Mac", paren) > 0)
+      {
+        agentObj.setPlatform(Agent.PLATFORM_MACOS);
+      }
+      else if (agent.indexOf("Linux", paren) > 0)
+      {
+        agentObj.setPlatform(Agent.PLATFORM_LINUX);
+      }
+      else if (agent.indexOf("Sun", paren) > 0)
+      {
+        agentObj.setPlatform(Agent.PLATFORM_SOLARIS);
+      }
+    }
+  }
+  
+  /**
+   * Returns an AgentEntry for the Opera browser.
+   */
+  
+  private void _populateOperaAgentImpl(String agent,AgentImpl agentObj)
+  {
+    agentObj.setType(Agent.TYPE_DESKTOP);
+    agentObj.setAgent(Agent.AGENT_GECKO);
+    
+    int operaIndex = agent.indexOf("Opera/");
+    int firstSpace = agent.indexOf(" ");
+    if (operaIndex >= 0 && firstSpace >=0 )
+    {
+        agentObj.setAgentVersion(agent.substring(operaIndex + 6,firstSpace));
+    }
 
     int paren = agent.indexOf('(');
 

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js?view=diff&rev=519018&r1=519017&r2=519018
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js Fri Mar 16 08:52:55 2007
@@ -205,7 +205,7 @@
   {
     retVal = false;
   }
-  else if (_agent.isGecko || _agent.isSafari)
+  else if (_agent.isGecko || _agent.isSafari || _agent.isOpera)
   {
     retVal = true;
   }
@@ -262,7 +262,7 @@
       kind = "ie";
     }
   }
-  else if (agentString.indexOf("opera") != -1)
+  else if (agentString.indexOf("Opera") != -1)
   {
     isOpera = true;
     kind = "opera";