felix@2172: package de.intevation.flys.artifacts; felix@2172: felix@2172: import java.util.ArrayList; felix@2172: import java.util.List; felix@2172: felix@2172: import org.apache.log4j.Logger; felix@2172: felix@2172: import org.w3c.dom.Document; felix@2172: felix@2172: import de.intevation.artifactdatabase.state.Facet; felix@2172: felix@2172: import de.intevation.artifacts.Artifact; felix@2172: import de.intevation.artifacts.ArtifactFactory; felix@2172: import de.intevation.artifacts.CallMeta; felix@2172: felix@2172: import de.intevation.flys.artifacts.model.FacetTypes; felix@2172: felix@2172: import de.intevation.flys.artifacts.states.DefaultState; felix@2172: felix@2172: felix@2172: felix@2172: /** felix@2172: * Artifact to store user-added points. felix@2172: */ felix@2172: public class ManualPointsArtifact felix@2172: extends StaticFLYSArtifact felix@2172: implements FacetTypes felix@2172: { felix@2172: /** The logger for this class. */ felix@2172: private static Logger logger = Logger.getLogger(ManualPointsArtifact.class); felix@2172: felix@2172: /** The name of the artifact. */ felix@2172: public static final String ARTIFACT_NAME = "manualpoints"; felix@2172: felix@2172: /** Name of data item where points are stored (jsonized). */ felix@2172: public static final String POINT_DATA = "manualpoints.data"; felix@2172: felix@2172: /** felix@2172: * Trivial Constructor. felix@2172: */ felix@2172: public ManualPointsArtifact() { felix@2172: logger.debug("ManualPointsArtifact.ManualPointsartifact()"); felix@2172: } felix@2172: felix@2172: felix@2172: /** felix@2172: * Gets called from factory, to set things up. felix@2172: */ felix@2172: @Override felix@2172: public void setup( felix@2172: String identifier, felix@2172: ArtifactFactory factory, felix@2172: Object context, felix@2172: CallMeta callMeta, felix@2172: Document data) felix@2172: { felix@2172: logger.debug("ManualPointsArtifact.setup"); felix@2172: super.setup(identifier, factory, context, callMeta, data); felix@2172: initialize(null, context, callMeta); felix@2172: } felix@2172: felix@2172: felix@2172: /** Return the name of this artifact. */ felix@2172: public String getName() { felix@2172: return ARTIFACT_NAME; felix@2172: } felix@2172: felix@2172: felix@2172: /** Access state data storing the jsonstring with points. */ felix@2172: public String getPointsData() { felix@2173: // TODO probably revive and deliver NamedDoubles. felix@2172: return getDataAsString(POINT_DATA); felix@2172: } felix@2172: felix@2172: felix@2172: /** Setup state and facet. */ felix@2172: @Override felix@2172: protected void initialize(Artifact artifact, Object context, CallMeta meta) { felix@2172: logger.debug("ManualPointsArtifact.initialize"); felix@2172: List fs = new ArrayList(); felix@2172: addStringData(POINT_DATA, "[]"); felix@2172: felix@2172: DefaultState state = (DefaultState) getCurrentState(context); felix@2172: state.computeInit(this, hash(), context, meta, fs); felix@2172: if (!fs.isEmpty()) { felix@2172: logger.debug("Facets to add in ManualPointsArtifact.initialize ."); felix@2172: facets.put(getCurrentStateId(), fs); felix@2172: } felix@2172: else { felix@2172: logger.debug("No facets to add in ManualPointsArtifact.initialize (" felix@2172: + state.getID() + ")."); felix@2172: } felix@2172: } felix@2172: felix@2172: felix@2172: /** felix@2172: * Determines Facets initial disposition regarding activity (think of felix@2172: * selection in Client ThemeList GUI). This will be checked one time felix@2172: * when the facet enters a collections describe document. felix@2172: * felix@2172: * @param facetName name of the facet. felix@2172: * @param index index of the facet. felix@2172: * @return 0 if not active felix@2172: */ felix@2172: @Override felix@2172: public int getInitialFacetActivity( felix@2172: String outputName, felix@2172: String facetName, felix@2172: int index) felix@2172: { felix@2172: return 1; felix@2172: } felix@2172: } felix@2172: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :