/*
* Copyright 2006 Robert Hanson
*
* Licensed 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.
*/
package org.gwtwidgets.client.util;
public class WindowUtils
{
public static Location getLocation ()
{
Location result = new Location();
result.setHash(getHash());
result.setHost(getHost());
result.setHostName(getHostName());
result.setHref(getHref());
result.setPath(getPath());
result.setPort(getPort());
result.setProtocol(getProtocol());
result.setQueryString(getQueryString());
return result;
}
private static native String getQueryString () /*-{
return $wnd.location.search;
}-*/;
private static native String getProtocol () /*-{
return $wnd.location.protocol;
}-*/;
private static native String getPort () /*-{
return $wnd.location.port;
}-*/;
private static native String getPath () /*-{
return $wnd.location.pathname;
}-*/;
private static native String getHref () /*-{
return $wnd.location.href;
}-*/;
private static native String getHostName () /*-{
return $wnd.location.hostname;
}-*/;
private static native String getHost () /*-{
return $wnd.location.host;
}-*/;
private static native String getHash () /*-{
return $wnd.location.hash;
}-*/;
}
/////////////////////////////////
/*
* Copyright 2006 Robert Hanson
*
* Licensed 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.
*/
package org.gwtwidgets.client.util;
import java.util.HashMap;
import java.util.Map;
public class Location
{
private String hash;
private String host;
private String hostName;
private String href;
private String path;
private String port;
private String protocol;
private String queryString;
private HashMap paramMap;
public String getHash ()
{
return hash;
}
public String getHost ()
{
return host;
}
public String getHostName ()
{
return hostName;
}
public String getHref ()
{
return href;
}
public String getPath ()
{
return path;
}
public String getPort ()
{
return port;
}
public String getProtocol ()
{
return protocol;
}
public String getQueryString ()
{
return queryString;
}
protected void setHash (String hash)
{
this.hash = hash;
}
protected void setHost (String host)
{
this.host = host;
}
protected void setHostName (String hostName)
{
this.hostName = hostName;
}
protected void setHref (String href)
{
this.href = href;
}
protected void setPath (String path)
{
this.path = path;
}
protected void setPort (String port)
{
this.port = port;
}
protected void setProtocol (String protocol)
{
this.protocol = protocol;
}
protected void setQueryString (String queryString)
{
this.queryString = queryString;
paramMap = new HashMap();
if (queryString != null && queryString.length() > 1) {
String qs = queryString.substring(1);
String[] kvPairs = qs.split("&");
for (int i = 0; i < kvPairs.length; i++) {
String[] kv = kvPairs[i].split("=");
if (kv.length > 1) {
paramMap.put(kv[0], unescape(kv[1]));
}
else {
paramMap.put(kv[0], "");
}
}
}
}
private native String unescape (String val) /*-{
return unescape(val);
}-*/;
public String getParameter (String name)
{
return (String) paramMap.get(name);
}
public Map getParameterMap ()
{
return paramMap;
}
}