View Javadoc

1   /**
2    * Created by IntelliJ IDEA.
3    * User: Administrator
4    * Date: Dec 9, 2002
5    * Time: 11:06:19 AM
6    * To change this template use Options | File Templates.
7    */
8   package com.atlassian.core.util;
9   
10  import org.apache.commons.lang.StringUtils;
11  import webwork.action.ActionContext;
12  
13  import javax.servlet.http.HttpServletRequest;
14  
15  public class WebRequestUtils
16  {
17      public static final int OTHER = 0;
18  
19      public static boolean isGoodBrowser(HttpServletRequest request)
20      {
21          String userAgent = request.getHeader("USER-AGENT");
22  
23          if (userAgent == null || (userAgent.indexOf("MSIE") == -1 && userAgent.indexOf("Mozilla/5") == -1 && userAgent.indexOf("Opera") == -1))
24          {
25              return false;
26          }
27          else
28          {
29              return true;
30          }
31      }
32  
33      public static final int OPERA = 10;
34  
35      public static int getBrowser(HttpServletRequest request)
36      {
37          String userAgent = request.getHeader("USER-AGENT");
38  
39          if (userAgent == null)
40          {
41              return OTHER;
42          }
43          else if (userAgent.indexOf("Opera") != -1)
44          {
45              return OPERA;
46          }
47          else
48          {
49              return OTHER;
50          }
51      }
52  
53      public static final int WINDOWS = 10;
54      public static final int MACOSX = 20;
55  
56      public static int getBrowserOperationSystem(HttpServletRequest request)
57      {
58          String userAgent = null;
59  
60          if (request != null)
61              userAgent = request.getHeader("USER-AGENT");
62  
63          if (userAgent != null)
64          {
65              if ((userAgent.toLowerCase().indexOf("windows") != -1))
66                  return WINDOWS;
67              else if (userAgent.toLowerCase().indexOf("mac os x") != -1)
68                  return MACOSX;
69              else
70                  return OTHER;
71          }
72          else
73              return OTHER;
74      }
75  
76      /**
77       * Returns the modifier key appropriate for this request (used for access keys)
78       *
79       * @return Key or key combinations e.g. "Alt" or "Ctrl"
80       */
81      public static String getModifierKey()
82      {
83          HttpServletRequest request = ActionContext.getRequest();
84          if (request != null)
85          {
86              String userAgent = org.apache.commons.lang.StringUtils.lowerCase(request.getHeader("USER-AGENT"));
87              if (StringUtils.contains(userAgent, "safari") || StringUtils.contains(userAgent, "mac"))
88              {
89                  return "Ctrl";
90              }
91              else if (StringUtils.contains(userAgent, "opera"))
92              {
93                  return "Shift + Esc";
94              }
95          }
96  
97          return "Alt";
98      }
99  
100 }