view gnv/src/main/java/de/intevation/gnv/action/sessionmodel/DefaultSessionModel.java @ 30:07e9c137a2f1

Added dynamic Outputparameter Support and Outputparameter-manipulation gnv/trunk@134 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 25 Sep 2009 14:24:08 +0000
parents bba8fd97e549
children 0f4362d75e9e
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.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;
   

    /**
     * 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");
        selectedArtifactFactory = null;
        currentArtifact  =null;
        diagrammOptions= null;
       
    }
}

http://dive4elements.wald.intevation.org