Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java @ 4205:0dd8963cec9c
Set also the width of the GaugeTree when resizing the GaugePanel
GWT is no longer able to calculate and set the correct width of the GaugeTree since
the GaugeTree is added via a Canvas wrapper. Therefore set the width manually
when resizing the GaugeTree.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Mon, 22 Oct 2012 15:33:16 +0200 |
parents | 31168ac9c7e7 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.CrossSectionArtifact; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; /** * Trival Facet for Cross Sections (profiles). */ public class CrossSectionFacet extends BlackboardDataFacet implements FacetTypes { public static String BLACKBOARD_CS_MASTER_DATA = "crosssection.masterprofile.data"; public static String BLACKBOARD_CS_PREV_KM = "crosssection.masterprofile.km.prev"; public static String BLACKBOARD_CS_NEXT_KM = "crosssection.masterprofile.km.next"; private static Logger logger = Logger.getLogger(CrossSectionFacet.class); protected ComputeType type; /** Trivial constructor, set (maybe localized) description. */ public CrossSectionFacet(int idx, String description) { super(idx, CROSS_SECTION, description); type = ComputeType.ADVANCE; } /** Tell world we know about crosssection masters data and its index. */ public List getStaticDataProviderKeys(Artifact art) { CrossSectionArtifact artifact = (CrossSectionArtifact) art; List keys = new ArrayList(); if (artifact.isMaster()) { keys.add(BLACKBOARD_CS_MASTER_DATA); keys.add(BLACKBOARD_CS_PREV_KM); keys.add(BLACKBOARD_CS_NEXT_KM); } keys.add(artifact.identifier() + getIndex()); keys.addAll(super.getStaticDataProviderKeys(art)); return keys; } /** * Can provide the master cross section lines or its index. * @param artifact crosssection-artifact * @param key will respond on BLACKBOARD_CS_MASTER_DATA * @param param ignored * @param context ignored * @return data from artifact (cross section master track). */ public Object provideBlackboardData(Artifact artifact, Object key, Object param, CallContext context ) { CrossSectionArtifact crossSection = (CrossSectionArtifact) artifact; if (key.equals(BLACKBOARD_CS_MASTER_DATA)) { return crossSection.searchCrossSectionLine(); } else if (key.equals(artifact.identifier() + getIndex())) { return getData(artifact, context); } else if (key.equals(BLACKBOARD_CS_NEXT_KM)) { return crossSection.getNextKm(); } else if (key.equals(BLACKBOARD_CS_PREV_KM)) { return crossSection.getPrevKm(); } else { Object obj = super.provideBlackboardData(artifact, key, param, context); if (obj == null) { logger.warn("Cannot provide data for key: " + key); } return obj; } } /** * Gets Cross Section (profile). * @param art artifact to get data from. * @param context ignored */ public Object getData(Artifact art, CallContext context) { logger.debug("Get data for cross section"); CrossSectionArtifact artifact = (CrossSectionArtifact)art; return artifact.getCrossSectionData(); } /** Do a deep copy. */ @Override public Facet deepCopy() { CrossSectionFacet copy = new CrossSectionFacet(this.index, this.description); copy.set(this); return copy; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :