Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/ManagedFacet.java @ 5831:bd047b71ab37
Repaired internal references
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:06:39 +0200 |
parents | flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java@b195fede1c3b |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/ManagedFacet.java Thu Apr 25 12:06:39 2013 +0200 @@ -0,0 +1,130 @@ +package org.dive4elements.river.artifacts.model; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +import org.dive4elements.artifactdatabase.state.DefaultFacet; +import org.dive4elements.artifactdatabase.state.Facet; +import org.dive4elements.artifacts.ArtifactNamespaceContext; +import org.dive4elements.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 :