Package no.ugland.utransprod.gui.model

Source Code of no.ugland.utransprod.gui.model.ProductionUnitModel

package no.ugland.utransprod.gui.model;

import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import no.ugland.utransprod.model.ArticleType;
import no.ugland.utransprod.model.ProductionUnit;
import no.ugland.utransprod.model.ProductionUnitProductAreaGroup;

import com.jgoodies.binding.PresentationModel;

public class ProductionUnitModel extends AbstractModel<ProductionUnit, ProductionUnitModel> {
    public static final String PROPERTY_PRODUCTION_UNIT_NAME="productionUnitName";
    public static final String PROPERTY_ARTICLE_TYPE="articleType";
    public static final String PROPERTY_PRODUCTION_UNIT_PRODUCT_AREA_GROUP_LIST="productionUnitProductAreaGroupList";
   
    private List<ProductionUnitProductAreaGroup> groups;

    public ProductionUnitModel(ProductionUnit object) {
        super(object);
        groups=new ArrayList<ProductionUnitProductAreaGroup>();
        if(object.getProductionUnitProductAreaGroups()!=null){
            groups.addAll(object.getProductionUnitProductAreaGroups());
        }
    }
   
    public String getProductionUnitName(){
        return object.getProductionUnitName();
    }
    public void setProductionUnitName(String aName){
        String oldName=getProductionUnitName();
        object.setProductionUnitName(aName);
        firePropertyChange(PROPERTY_PRODUCTION_UNIT_NAME, oldName, aName);
    }
    public ArticleType getArticleType(){
        return object.getArticleType();
    }
    public void setArticleType(ArticleType aArticleType){
        ArticleType oldType=getArticleType();
        object.setArticleType(aArticleType);
        firePropertyChange(PROPERTY_ARTICLE_TYPE, oldType, aArticleType);
    }
    public List<ProductionUnitProductAreaGroup> getProductionUnitProductAreaGroupList(){
        return groups;
    }
    public void setProductionUnitProductAreaGroupList(List<ProductionUnitProductAreaGroup> list){
        List<ProductionUnitProductAreaGroup> oldList=new ArrayList<ProductionUnitProductAreaGroup>(getProductionUnitProductAreaGroupList());
        groups.clear();
        groups.addAll(list);
        firePropertyChange(PROPERTY_PRODUCTION_UNIT_PRODUCT_AREA_GROUP_LIST, oldList, list);
    }

    @Override
    public void viewToModel() {
        Set<ProductionUnitProductAreaGroup> set = object.getProductionUnitProductAreaGroups();
        if(set==null){
            set = new HashSet<ProductionUnitProductAreaGroup>();
        }
        set.clear();
        set.addAll(groups);
        object.setProductionUnitProductAreaGroups(set);
    }

    @Override
    public void addBufferChangeListener(PropertyChangeListener listener, PresentationModel presentationModel) {
        presentationModel.getBufferedModel(PROPERTY_PRODUCTION_UNIT_NAME).addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_ARTICLE_TYPE).addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_PRODUCTION_UNIT_PRODUCT_AREA_GROUP_LIST).addValueChangeListener(listener);
       
    }

    @Override
    public ProductionUnitModel getBufferedObjectModel(PresentationModel presentationModel) {
        ProductionUnitModel productionUnitModel = new ProductionUnitModel(
                new ProductionUnit());
        productionUnitModel.setProductionUnitName((String) presentationModel
                .getBufferedValue(PROPERTY_PRODUCTION_UNIT_NAME));
        productionUnitModel.setArticleType((ArticleType) presentationModel
                .getBufferedValue(PROPERTY_ARTICLE_TYPE));
        productionUnitModel.setProductionUnitProductAreaGroupList((List<ProductionUnitProductAreaGroup>) presentationModel
                .getBufferedValue(PROPERTY_PRODUCTION_UNIT_PRODUCT_AREA_GROUP_LIST));
        return productionUnitModel;
    }

    public void firePropertyChanged() {
        this.fireMultiplePropertiesChanged();
    }
}
TOP

Related Classes of no.ugland.utransprod.gui.model.ProductionUnitModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.