package de.swm.gwt.client.mobile;
import com.google.gwt.core.client.GWT;
/**
* Hilfsklasse, die auf andere Seiten weiterleiten oder die aktuelle Seite neuladen kann.
* @author wiese.daniel
* <br>copyright (C) 2011, SWM Services GmbH
*
*/
public class ApplicationRedirecter {
private static final String HOSTED_MODE_SUFFIX = "?gwt.codesvr=#:9997";
/**
* Default constructor.
*/
private ApplicationRedirecter() {
}
/**
* Fuehrt ein Redirect zur Base-URL durch. Das heisst, es wird auf die Basis-URL der GWT-Application weitergeleitet.
*/
public static void redirectToBase() {
final StringBuilder url = new StringBuilder();
url.append(GWT.getHostPageBaseURL());
if (!GWT.isScript()) {
url.append(HOSTED_MODE_SUFFIX.replace("#", getIP(GWT.getHostPageBaseURL())));
}
redirect(url.toString());
}
/**
* Leitet auf eine andere Webseite mit Hilfe von JavaScript-Mitteln weiter.
*
* @param url
* die Ziel-URL, auf die weitergeleitet werden soll.
*/
public static native void redirect(String url)
/*-{
$wnd.location.replace(url);
}-*/;
/**
* Laedt die Anwendung mit Hilfe von JavaScript-Mitteln neu.
*/
public static native void reloadApp()
/*-{
$wnd.location.reload();
}-*/;
/**
* Extrahiert die IP/DNS aus der Module base URL.
*
* @param moduleBaseUrl
* die base url.
* @return die IP oder DNS-Name
*/
private static String getIP(String moduleBaseUrl) {
String[] split = moduleBaseUrl.split(":");
if (split.length > 1) {
return split[1].substring("//".length());
}
return null;
}
}