view gnv/src/main/java/de/intevation/gnv/action/sessionmodel/DefaultSessionModel.java @ 32:0f4362d75e9e

Adding StatisticsOutput to the GUI gnv/trunk@142 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Mon, 28 Sep 2009 09:36:02 +0000
parents 07e9c137a2f1
children ad381cc47217
line wrap: on
line source
/**
 *
 */
package de.intevation.gnv.action.sessionmodel;

import java.util.Collection;
import java.util.Iterator;

import org.apache.log4j.Logger;

import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription;
import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticValue;
import de.intevation.gnv.artifactdatabase.objects.OutputMode;

/**
 * @author Tim Englich <tim.englich@intevation.de>
 *
 */
public class DefaultSessionModel implements SessionModel{


    /**
     * the logger, used to log exceptions and additonaly information
     */
    private static Logger log = Logger.getLogger(DefaultSessionModel.class);

    /**
     * The UID of this Class.
     */
    private static final long serialVersionUID = 3431484439985158311L;

    private Collection<ArtifactObject> artifactFactories = null;
    
    private ArtifactObject selectedArtifactFactory = null;
    
    private ArtifactObject currentArtifact  =null;
    
    private DiagrammOptions diagrammOptions= null;
    
    private Collection<ArtifactStatisticValue> statistics= null;
   

    /**
     * Constructor
     */
    public DefaultSessionModel() {
        super();
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#selectArtifactFactory(java.lang.String)
     */
    public void selectArtifactFactory(String artiFactFactoryId) {
        Collection<ArtifactObject> artifactObjects = this.getArtifactFactories();
        if (artifactObjects != null){
            Iterator<ArtifactObject> unselect = artifactObjects.iterator();
            this.selectedArtifactFactory = null;
            while (unselect.hasNext()){
                unselect.next().setSelected(false);
            }
            Iterator<ArtifactObject> it = artifactObjects.iterator();
            while (it.hasNext()){
                 ArtifactObject obj = it.next();
                 if(obj.getId().equals(artiFactFactoryId)){
                     obj.setSelected(true);
                     this.selectedArtifactFactory = obj;
                     break;
                 }
            }
        }
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#setArtifacteFactories(java.util.Collection)
     */
    public void setArtifacteFactories(
            Collection<ArtifactObject> artifactFactories) {
        this.artifactFactories = artifactFactories;
    }
    
    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#getAttributeFactories()
     */
    public Collection<ArtifactObject> getArtifactFactories() {
        return this.artifactFactories;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#getSelectedArtifactFactory()
     */
    public ArtifactObject getSelectedArtifactFactory() {
        return this.selectedArtifactFactory;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#getCurrentArtifact()
     */
    public ArtifactObject getCurrentArtifact() {
        return this.currentArtifact;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#setCurrentArtifact(de.intevation.gnv.artifactdatabase.objects.ArtifactObject)
     */
    public void setCurrentArtifact(ArtifactObject artifact) {
        this.currentArtifact = artifact;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#getDiagrammOptions()
     */
    public DiagrammOptions getDiagrammOptions() {
        return this.diagrammOptions;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#setDiagrammOptions(de.intevation.gnv.action.sessionmodel.DiagrammOptions)
     */
    public void setDiagrammOptions(DiagrammOptions diagrammOptions) {
        this.diagrammOptions = diagrammOptions;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#getArtifactDescription()
     */
    public ArtifactDescription getArtifactDescription() {
        if (this.currentArtifact != null){
            return (ArtifactDescription)this.currentArtifact;
        }
        return null;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#getOutputMode(java.lang.String)
     */
    public OutputMode getOutputMode(String name) {
        ArtifactDescription ad = this.getArtifactDescription();
        if (ad != null){
            if (ad.getOutputModes() != null){
                return ad.getOutputModes().get(name);
            }
        }
        return null;
    }
    
    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#resetModel()
     */
    public void resetModel() {
        log.debug("DefaultSessionModel.resetModel");
        this.selectedArtifactFactory = null;
        this.currentArtifact  =null;
        this.diagrammOptions= null;
        this.statistics = null;
       
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#getStatistics()
     */
    public Collection<ArtifactStatisticValue> getStatistics() {
        return this.statistics;
    }

    /**
     * @see de.intevation.gnv.action.sessionmodel.SessionModel#setStatistics(java.util.Collection)
     */
    public void setStatistics(Collection<ArtifactStatisticValue> statistics) {
        this.statistics = statistics;
    }
}

http://dive4elements.wald.intevation.org