1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package org.utgenome.gwt.utgb.client.util;
26
27 import java.util.HashMap;
28
29
30
31
32
33
34
35 public class BrowserInfo {
36 public static HashMap<String, String> getURLQueryRequestParameters() {
37 HashMap<String, String> properties = new HashMap<String, String>();
38 String query = getQueryString();
39 if (query == null || query.length() < 1)
40 return properties;
41
42 String queryPart = query.substring(1);
43 String[] keyAndValue = queryPart.split("&");
44 for (int i = 0; i < keyAndValue.length; i++) {
45 String[] kv = keyAndValue[i].split("=");
46 if (kv.length > 1)
47 properties.put(kv[0], unescape(kv[1]));
48 else
49 properties.put(kv[0], "");
50 }
51
52 return properties;
53 }
54
55 public native static String unescape(String s)
56
57 ;
58
59 public static native void setQueryString(String qs)
60
61 ;
62
63 public static native String getQueryString()
64
65 ;
66
67 public static native String getProtocol()
68
69 ;
70
71 public static native String getPort()
72
73 ;
74
75 public static native String getPath()
76
77 ;
78
79 public static native String getHref()
80
81 ;
82
83 public static native String getHostName()
84
85 ;
86
87 public static native String getHost()
88
89 ;
90
91 public static native String getHash()
92
93 ;
94
95 public static native boolean isGoogleGearsInstalled()
96
97 ;
98
99 public static native String getUserAgent()
100
101 ;
102
103 private static Boolean hasCanvasSupport = null;
104
105 public static boolean isCanvasSupported() {
106 if (hasCanvasSupport == null)
107 hasCanvasSupport = isCanvasSupportedInternal();
108 return hasCanvasSupport.booleanValue();
109 }
110
111 private static native boolean isCanvasSupportedInternal()
112
113 ;
114
115 public static enum Agent {
116 Unknown, Firefox, Safari, Opera, Chrome, IE, MobileSafari
117 }
118
119 public static native boolean isMobileSafari()
120
121
122
123
124
125 ;
126
127 private static Agent agent = null;
128
129
130
131
132
133
134
135 public static Agent getBrowserType() {
136 if(agent != null)
137 return agent;
138
139
140 String userAgent = getUserAgent();
141 String lcAgent = userAgent.toLowerCase();
142 if(isMobileSafari()) {
143 agent = Agent.MobileSafari;
144 }
145 else if (lcAgent.contains("msie")) {
146 agent = Agent.IE;
147 }
148 else if (lcAgent.contains("chrome")) {
149 agent = Agent.Chrome;
150 }
151 else if (lcAgent.contains("opera")) {
152 agent = Agent.Opera;
153 }
154 else if (lcAgent.contains("webkit") || lcAgent.contains("safari")) {
155 agent = Agent.Safari;
156 }
157 else if (lcAgent.contains("firefox")) {
158 agent = Agent.Firefox;
159 }
160 else
161 agent = Agent.Unknown;
162
163 return agent;
164 }
165
166 public static boolean isIE() {
167 return getBrowserType() == Agent.IE;
168 }
169
170 }