view flys-client/src/main/java/de/intevation/flys/client/shared/model/AttributedTheme.java @ 3719:e82acd5c86f7

Merged revisions 5495-5496,5509,5514-5515,5521-5526 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-client/trunk ........ r5495 | ingo | 2012-09-17 14:55:09 +0200 (Mo, 17 Sep 2012) | 1 line Added missing i18n strings for minfo state description. ........ r5496 | ingo | 2012-09-17 15:47:43 +0200 (Mo, 17 Sep 2012) | 1 line Tagged 'flys-client' as 2.9.1 ........ r5509 | teichmann | 2012-09-18 17:54:37 +0200 (Di, 18 Sep 2012) | 1 line Removed trailing whitespace. ........ r5514 | bricks | 2012-09-19 09:56:42 +0200 (Mi, 19 Sep 2012) | 2 lines Add missing Changelog entry for r5472 ........ r5515 | bricks | 2012-09-19 09:59:35 +0200 (Mi, 19 Sep 2012) | 2 lines Implement a scrolling gauge info tree ........ r5521 | bricks | 2012-09-19 14:41:48 +0200 (Mi, 19 Sep 2012) | 2 lines Add station info to the gauges ........ r5522 | bricks | 2012-09-19 14:43:43 +0200 (Mi, 19 Sep 2012) | 2 lines Improve the handling of the GaugePanel in the ParameterList ........ r5523 | bricks | 2012-09-19 14:51:02 +0200 (Mi, 19 Sep 2012) | 4 lines Improve the GaugePanel Be locale aware and only load the gauge info if the river name changes. ........ r5524 | bricks | 2012-09-19 15:14:46 +0200 (Mi, 19 Sep 2012) | 5 lines Fix a NullPointerException When iterating over a list it must be checked if the reference to the list is valid. ........ r5525 | bricks | 2012-09-19 15:16:24 +0200 (Mi, 19 Sep 2012) | 2 lines Don't display the GaugePanel if no river is selected ........ r5526 | bricks | 2012-09-19 15:18:36 +0200 (Mi, 19 Sep 2012) | 2 lines Use the wstunit from the river as unit for the Pegelnullpunkt ........ flys-client/tags/2.9.1@5528 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 19 Sep 2012 14:42:48 +0000
parents f6fbfdc813f0
children
line wrap: on
line source
package de.intevation.flys.client.shared.model;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;


/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class AttributedTheme implements Theme {

    protected Map<String, String> attributes;

    /** CollectionItem associated with this facet/themes artifact. */
    protected CollectionItem collectionItem;

    public AttributedTheme() {
        this.attributes = new HashMap<String, String>();
    }


    public Set<String> getKeys() {
        return attributes.keySet();
    }


    public void addAttr(String name, String value) {
        if (name != null && value != null) {
            attributes.put(name, value);
        }
    }


    public String getAttr(String name) {
        return attributes.get(name);
    }


    public Integer getAttrAsInt(String name) {
        String attr = getAttr(name);

        if (attr != null && attr.length() > 0) {
            try {
                return Integer.parseInt(attr);
            }
            catch (NumberFormatException nfe) {
            }
        }

        return null;
    }


    public boolean getAttrAsBoolean(String name) {
        String attr = getAttr(name);

        if (attr != null) {
            try {
                int num = Integer.valueOf(attr);
                return num > 0;
            }
            catch (NumberFormatException nfe) {
                // do nothing
            }
        }

        return Boolean.valueOf(attr);
    }


    @Override
    public int getPosition() {
        Integer pos = getAttrAsInt("pos");

        return pos != null ? pos.intValue() : -1;
    }


    @Override
    public void setPosition(int pos) {
        addAttr("pos", String.valueOf(pos));
    }


    @Override
    public int getIndex() {
        Integer idx = getAttrAsInt("index");

        return idx != null ? idx.intValue() : -1;
    }


    @Override
    public int getActive() {
        return getAttrAsInt("active");
    }


    @Override
    public void setActive(int active) {
        addAttr("active", String.valueOf(active));
    }


    @Override
    public String getArtifact() {
        return getAttr("artifact");
    }


    @Override
    public String getFacet() {
        return getAttr("facet");
    }


    @Override
    public String getDescription() {
        return getAttr("description");
    }


    @Override
    public void setDescription(String description) {
        if (description != null && description.length() > 0) {
            addAttr("description", description);
        }
    }


    @Override
    public int getVisible() {
        return getAttrAsInt("visible");
    }


    @Override
    public void setVisible(int visible) {
        addAttr("visible", String.valueOf(visible));
    }


    @Override
    public boolean equals(Object o) {
        if (!(o instanceof AttributedTheme)) {
            return false;
        }

        AttributedTheme other = (AttributedTheme) o;

        if (other.getPosition() != getPosition()) {
            return false;
        }

        if (!other.getArtifact().equals(getArtifact())) {
            return false;
        }

        if (other.getActive() != getActive()) {
            return false;
        }

        if (!other.getFacet().equals(getFacet())) {
            return false;
        }

        if (!other.getDescription().equals(getDescription())) {
            return false;
        }

        if (other.getIndex() != getIndex()) {
            return false;
        }

        if (other.getVisible() != getVisible()) {
            return false;
        }

        return true;
    }


    /** Get the CollectionItem representing the facets artifact. */
    @Override
    public CollectionItem getCollectionItem() {
        return collectionItem;
    }


    /** Set the CollectionItem representing the facets artifact. */
    @Override
    public void setCollectionItem(CollectionItem ci) {
        this.collectionItem = ci;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org