ingo@1022: /* ingo@1022: * Copyright (c) 2010 by Intevation GmbH ingo@1022: * ingo@1022: * This program is free software under the LGPL (>=v2.1) ingo@1022: * Read the file LGPL.txt coming with the software for details ingo@1022: * or visit http://www.gnu.org/licenses/ if it does not exist. ingo@1022: */ ingo@1022: tim@8: package de.intevation.gnv.action.sessionmodel; tim@8: tim@8: import java.util.Collection; tim@8: import java.util.Iterator; ingo@706: import java.util.Locale; tim@8: tim@30: import org.apache.log4j.Logger; tim@30: tim@954: import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; tim@954: import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; tim@954: import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticsSet; tim@954: import de.intevation.gnv.artifactdatabase.objects.OutputMode; tim@976: import de.intevation.gnv.artifactdatabase.objects.map.MapService; tim@954: tim@8: /** ingo@690: * The default implementation of SessionModel which stores the ingo@690: * current artifact object and the digram options selected by the user. sascha@699: * sascha@684: * @author Tim Englich sascha@681: * tim@8: */ tim@36: public class DefaultSessionModel implements SessionModel { tim@8: tim@976: tim@976: tim@30: /** tim@30: * the logger, used to log exceptions and additonaly information tim@30: */ tim@30: private static Logger log = Logger.getLogger(DefaultSessionModel.class); tim@29: tim@30: /** tim@30: * The UID of this Class. tim@30: */ tim@30: private static final long serialVersionUID = 3431484439985158311L; tim@29: tim@954: /** tim@954: * Container for ArtifactFactory-objects. tim@954: */ tim@8: private Collection artifactFactories = null; tim@36: tim@954: /** tim@954: * The selected ArtifactFactory tim@954: */ tim@8: private ArtifactObject selectedArtifactFactory = null; tim@36: tim@954: /** tim@954: * The currently used artifact. tim@954: */ tim@36: private ArtifactObject currentArtifact = null; tim@36: tim@954: /** tim@954: * The Diagrammoptions. tim@954: */ tim@36: private DiagrammOptions diagrammOptions = null; tim@36: tim@954: /** tim@954: * The Container for statistic-values. tim@954: */ tim@164: private Collection statistics = null; tim@8: tim@954: /** tim@954: * The Locale that currently should be used. tim@954: */ ingo@706: private Locale currentLocale; ingo@706: tim@8: /** tim@976: * The Mapservice containing all Layers that should be displayed. tim@976: */ tim@976: private MapService localMapService = null; tim@976: /** tim@8: * Constructor tim@8: */ tim@8: public DefaultSessionModel() { ingo@706: this(null); ingo@706: } ingo@706: ingo@706: /** ingo@706: * Constructor ingo@706: * @param currentLocale A locale used to create the user interface. ingo@706: */ ingo@706: public DefaultSessionModel(Locale currentLocale) { ingo@706: this.currentLocale = currentLocale; tim@8: } tim@8: ingo@690: tim@8: public void selectArtifactFactory(String artiFactFactoryId) { tim@36: Collection artifactObjects = this tim@36: .getArtifactFactories(); tim@36: if (artifactObjects != null) { tim@8: Iterator unselect = artifactObjects.iterator(); tim@8: this.selectedArtifactFactory = null; tim@36: while (unselect.hasNext()) { tim@8: unselect.next().setSelected(false); tim@8: } tim@8: Iterator it = artifactObjects.iterator(); tim@36: while (it.hasNext()) { tim@36: ArtifactObject obj = it.next(); tim@36: if (obj.getId().equals(artiFactFactoryId)) { tim@36: obj.setSelected(true); tim@36: this.selectedArtifactFactory = obj; tim@36: break; tim@36: } tim@8: } tim@8: } tim@8: } tim@8: ingo@690: tim@8: public void setArtifacteFactories( tim@954: Collection artifactFactories) { tim@8: this.artifactFactories = artifactFactories; tim@8: } tim@36: ingo@690: tim@8: public Collection getArtifactFactories() { tim@8: return this.artifactFactories; tim@8: } tim@8: ingo@690: tim@8: public ArtifactObject getSelectedArtifactFactory() { tim@8: return this.selectedArtifactFactory; tim@8: } tim@8: ingo@690: tim@8: public ArtifactObject getCurrentArtifact() { tim@8: return this.currentArtifact; tim@8: } tim@8: ingo@690: tim@8: public void setCurrentArtifact(ArtifactObject artifact) { tim@8: this.currentArtifact = artifact; tim@8: } tim@30: ingo@690: tim@29: public DiagrammOptions getDiagrammOptions() { tim@30: return this.diagrammOptions; tim@30: } tim@30: ingo@690: tim@30: public void setDiagrammOptions(DiagrammOptions diagrammOptions) { tim@30: this.diagrammOptions = diagrammOptions; tim@30: } tim@30: ingo@690: tim@30: public ArtifactDescription getArtifactDescription() { tim@36: if (this.currentArtifact != null) { tim@36: return (ArtifactDescription) this.currentArtifact; tim@29: } tim@30: return null; tim@30: } tim@30: ingo@690: tim@30: public OutputMode getOutputMode(String name) { tim@30: ArtifactDescription ad = this.getArtifactDescription(); tim@36: if (ad != null) { tim@36: if (ad.getOutputModes() != null) { tim@30: return ad.getOutputModes().get(name); tim@30: } tim@30: } tim@30: return null; tim@29: } tim@36: ingo@690: tim@30: public void resetModel() { tim@30: log.debug("DefaultSessionModel.resetModel"); tim@32: this.selectedArtifactFactory = null; tim@36: this.currentArtifact = null; tim@36: this.diagrammOptions = null; tim@32: this.statistics = null; tim@36: tim@30: } tim@32: ingo@690: tim@164: public Collection getStatistics() { tim@32: return this.statistics; tim@32: } tim@32: tim@164: public void setStatistics(Collection statistics) { tim@32: this.statistics = statistics; tim@32: } ingo@706: ingo@706: public Locale getCurrentLocale() { ingo@706: return currentLocale; ingo@706: } ingo@706: ingo@706: public void setCurrentLocale(Locale currentLocale) { ingo@706: this.currentLocale = currentLocale; ingo@706: } tim@976: tim@976: public MapService getLocalMapService() { tim@976: return this.localMapService; tim@976: } tim@976: tim@976: public void setLocalMapService(MapService mapService) { tim@976: this.localMapService = mapService; tim@976: } tim@8: } sascha@700: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :