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 :