Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java @ 5496:23d8f2700b38
Add support for multiple floodplains and add them to the datacage accordingly
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Thu, 28 Mar 2013 12:39:14 +0100 |
parents | b195fede1c3b |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import de.intevation.artifactdatabase.state.DefaultFacet; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifacts.ArtifactNamespaceContext; import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; /** * Facet with user-supplied theme-control-information (pos in list, * active/disabled etc) attached. */ public class ManagedFacet extends DefaultFacet implements Comparable { /** The uuid of the owner artifact. */ protected String uuid; /** A property that determines the position of this facet. */ protected int position; /** A property that determines if this facet is active or not. */ protected int active; /** A property that determines if this facet is visible or not. */ protected int visible; public ManagedFacet() { } public ManagedFacet(String name, int index, String desc, String uuid, int pos, int active, int visible) { super(index, name, desc); this.uuid = uuid; this.position = pos; this.active = active; this.visible = visible; } /** * Sets position (will be merged to position in ThemeList). */ public void setPosition(int pos) { this.position = pos; } public int getPosition() { return position; } public void setActive(int active) { this.active = active; } public int getActive() { return active; } public void setVisible(int visible) { this.visible = visible; } public int getVisible() { return visible; } /** * Get uuid of related artifact. * * @return uuid of related artifact. */ public String getArtifact() { return uuid; } public Node toXML(Document doc) { ElementCreator ec = new ElementCreator(doc, ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); Element facet = ec.create("theme"); ec.addAttr(facet, "artifact", getArtifact(), true); ec.addAttr(facet, "facet", getName(), true); ec.addAttr(facet, "pos", String.valueOf(getPosition()), true); ec.addAttr(facet, "active", String.valueOf(getActive()), true); ec.addAttr(facet, "index", String.valueOf(getIndex()), true); ec.addAttr(facet, "description", getDescription(), true); ec.addAttr(facet, "visible", String.valueOf(getVisible()), true); return facet; } public void set(ManagedFacet other) { uuid = other.uuid; position = other.position; active = other.active; } @Override public Facet deepCopy() { ManagedFacet copy = new ManagedFacet(); copy.set((DefaultFacet) this); copy.set((ManagedFacet) this); return copy; } @Override public int compareTo(Object o) { if (!(o instanceof ManagedFacet)) { return -1; } ManagedFacet other = (ManagedFacet) o; if (position < other.position) { return -1; } else if (position > other.position) { return 1; } else { return 0; } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :