view gwt-client/src/main/java/org/dive4elements/river/client/client/Config.java @ 7597:fca46ce8e4f5

(issue1225) Implement Magic labels. There is now a new value in the chartsettings "Suggested Label" which is hidden in the property editor. A suggested label is the label that combines the label's of all processors that wrote data to an axis. This suggested label is set as the label when the user has not overwritten the label.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 25 Nov 2013 14:58:14 +0100
parents ac6c41fcae55
children 9f3ffb218bc0
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */

package org.dive4elements.river.client.client;

import com.google.gwt.i18n.client.LocaleInfo;
import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.Node;


/**
 * A class that is used to handle the global configuration of this client. You
 * can retrieve an instance of this class using the <code>getInstance</code>
 * methods. <b>NOTE:</b> the configuration is initialized using {@link
 * getInstance(Document)} the first time.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class Config {

    /** The instance of the configuration. */
    protected static Config INSTANCE;

    /** The xml document that contains the configuration options. */
    protected Document config;

    protected String helpUrl;

    /**
     * Get an instance by using {@link getInstance(Document)} or {@link
     * getInstance()}.
     */
    private Config(Document config) {
        this.config = config;
    }


    /**
     * Returns an instance of this class and initializes the configuration of
     * this has not been done so far.
     *
     * @param config The client configuration.
     *
     * @return an instance of this Config class.
     */
    public static Config getInstance(Document config) {
        if (INSTANCE == null) {
            INSTANCE = new Config(config);
        }

        return INSTANCE;
    }


    /**
     * Returns an instance of this class. If it has not been initialized with a
     * valid configuration, null is returned.
     *
     * @return an instance of this class or null, if the Config has not been
     * initialized using {@link getInstance(Document)} so far.
     */
    public static Config getInstance() {
        return INSTANCE;
    }


    /**
     * Returns the URL of the artifact server.
     *
     * @return the artifact server url.
     */
    public String getServerUrl() {
        Node server = config.getElementsByTagName("server").item(0);
        return server.getFirstChild().getNodeValue();
    }


    /**
     * Returns the URL of the FLYS/d4e-Wiki.
     *
     * @return wiki base URL
     */
    public String getWikiUrl() {
        return this.helpUrl;
    }

    public void setWikiUrl(String url) {
        this.helpUrl = url;
    }


    /**
     * Returns the name of the current locale.
     *
     * @return the name of the current locale.
     */
    public String getLocale() {
        return LocaleInfo.getCurrentLocale().getLocaleName();
    }


    /**
     * Returns the integer configured at
     * <i>/config/projectlist/update-interval/text()</i> or -1 if an error
     * occured or no such option is defined.
     *
     * @return the update interval of the project list.
     */
    public int getProjectListUpdateInterval() {
        Node projectlist = config.getElementsByTagName("projectlist").item(0);

        if (projectlist == null) {
            return -1;
        }

        Node interval = config.getElementsByTagName("update-interval").item(0);

        if (interval == null) {
            return -1;
        }

        String value = interval.getFirstChild().getNodeValue();

        return value != null ? Integer.valueOf(value) : -1;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org