/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.gwt.client; import com.google.gwt.core.client.GWT; import com.google.gwt.i18n.client.LocaleInfo; import org.geomajas.annotation.Api; import org.geomajas.gwt.client.i18n.VersionMessages; import java.util.HashMap; import java.util.Map; /** * <p> * Global settings for the Geomajas GWT face. * </p> * * @author Pieter De Graef * @author Jan Venstermans * @since 1.6.0 */ @Api(allMethods = true) public final class Geomajas { private static final VersionMessages MESSAGES = GWT.create(VersionMessages.class); private static String dispatcherUrl; private Geomajas() { // do not allow instantiation. } /** * Returns the current version of Geomajas as a string. * * @return Geomajas version */ public static String getVersion() { return MESSAGES.version(); } /** * Returns a list of locales that can be used in this version of Geomajas. The default is english, and 'native' * means that your browsers locale should be used (if supported - default otherwise). * * @return supported locales */ public static Map<String, String> getSupportedLocales() { Map<String, String> locales = new HashMap<String, String>(); for (String localeName : LocaleInfo.getAvailableLocaleNames()) { String displayName = LocaleInfo.getLocaleNativeDisplayName(localeName); locales.put(localeName, displayName); } return locales; } /** * Return the base directory for the web application. * * @return base directory for application for SmartGWT */ public static native String getIsomorphicDir() /*-{ return $wnd.isomorphicDir; }-*/; /** * Return the Spring dispatcher URL for the web application. The URL ends with a slash. * * @return the dispatcher URL * @since 1.10.0 */ public static String getDispatcherUrl() { if (dispatcherUrl == null) { dispatcherUrl = getModuleBaseDispatcherUrl(); } return dispatcherUrl; } /** * Set the Spring dispatcher URL. The URL should ends with a slash. * * @param dispatcherUrl url to desired dispatcher * @since 1.16.0 */ public static void setDispatcherUrl(String dispatcherUrl) { Geomajas.dispatcherUrl = dispatcherUrl; } /** * * @return dispatcher ur based on GWT.getModuleBaseURL(). */ private static String getModuleBaseDispatcherUrl() { String moduleBaseUrl = GWT.getModuleBaseURL(); // remove last slash moduleBaseUrl = moduleBaseUrl.substring(0, moduleBaseUrl.length() - 1); // replace module part by /d int contextEndIndex = moduleBaseUrl.lastIndexOf("/"); if (contextEndIndex > 6) { return moduleBaseUrl.substring(0, contextEndIndex) + "/d/"; } else { // fall back to module base URL return GWT.getModuleBaseURL(); } } }