Package no.ugland.utransprod.gui.model

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

package no.ugland.utransprod.gui.model;

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

import no.ugland.utransprod.model.ArticleType;
import no.ugland.utransprod.model.ArticleTypeArticleType;
import no.ugland.utransprod.model.ArticleTypeAttribute;
import no.ugland.utransprod.model.Attribute;
import no.ugland.utransprod.util.Util;

import com.jgoodies.binding.PresentationModel;
import com.jgoodies.binding.list.ArrayListModel;

/**
* Modellklasse for artikkeltype
* @author atle.brekka
*/
public class ArticleTypeModel extends
        AbstractModel<ArticleType, ArticleTypeModel> {
    private static final long serialVersionUID = 1L;

    public static final String PROPERTY_ARTICLE_TYPE_ID = "articleTypeId";

    /**
     *
     */
    public static final String PROPERTY_ARTICLE_TYPE_NAME = "articleTypeName";

    /**
     *
     */
    public static final String PROPERTY_DESCRIPTION = "description";

    /**
     *
     */
    public static final String PROPERTY_ARTICLE_TYPE_ATTRIBUTES = "articleTypeAttributes";

    /**
     *
     */
    public static final String PROPERTY_ATTRIBUTES = "attributes";

    /**
     *
     */
    public static final String PROPERTY_ARTICLES = "articles";

    /**
     *
     */
    public static final String PROPERTY_ARTICLE_TYPE_ARTICLE_TYPES = "articleTypeArticleTypes";

    /**
     *
     */
    public static final String PROPERTY_TOP_LEVEL_BOOL = "topLevelBoolean";

    /**
     *
     */
    public static final String PROPERTY_METRIC = "metric";
    public static final String PROPERTY_PROD_CAT_NO = "prodCatNo";
    public static final String PROPERTY_PROD_CAT_NO_2 = "prodCatNo2";
    public static final String PROPERTY_FORCE_IMPORT_BOOL = "forceImportBoolean";

    /**
     *
     */
    private ArrayListModel articleTypeAttributes;

    /**
     *
     */
    private ArrayListModel articleTypeArticleTypes;

    /**
     * @param object
     */
    public ArticleTypeModel(ArticleType object) {
        super(object);
        if (object.getArticleTypeAttributes() != null) {
            articleTypeAttributes = new ArrayListModel(object
                    .getArticleTypeAttributes());
        } else {
            articleTypeAttributes = new ArrayListModel();
        }

        if (object.getArticleTypeArticleTypes() != null) {
            articleTypeArticleTypes = new ArrayListModel(object
                    .getArticleTypeArticleTypes());
        } else {
            articleTypeArticleTypes = new ArrayListModel();
        }
    }

    /**
     * Henter artikler
     * @return artikler
     */
    public List<ArticleType> getArticles() {
        return object.getArticles();
    }

    /**
     * @return id
     */
    public Integer getArticleTypeId() {
        return object.getArticleTypeId();
    }

    /**
     * @param articleTypeId
     */
    public void setArticleTypeId(Integer articleTypeId) {
        Integer oldId = getArticleTypeId();
        object.setArticleTypeId(articleTypeId);
        firePropertyChange(PROPERTY_ARTICLE_TYPE_ID, oldId, articleTypeId);
    }

    /**
     * @return navn
     */
    public String getArticleTypeName() {
        return object.getArticleTypeName();
    }

    /**
     * @param articleTypeName
     */
    public void setArticleTypeName(String articleTypeName) {
        String oldName = getArticleTypeName();
        object.setArticleTypeName(articleTypeName);
        firePropertyChange(PROPERTY_ARTICLE_TYPE_NAME, oldName, articleTypeName);
    }

    /**
     * @return beskrivelse
     */
    public String getDescription() {
        return object.getDescription();
    }

    /**
     * @param description
     */
    public void setDescription(String description) {
        String oldDesc = getDescription();
        object.setDescription(description);
        firePropertyChange(PROPERTY_DESCRIPTION, oldDesc, description);
    }

    /**
     * @return attributter for artikkeltype
     */
    public ArrayListModel getArticleTypeAttributes() {
        return articleTypeAttributes;
    }

    /**
     * @param articleTypeAttributes
     */
    public void setArticleTypeAttributes(ArrayListModel articleTypeAttributes) {
        ArrayListModel oldArticleTypeAttributes = getArticleTypeAttributes();
        this.articleTypeAttributes = articleTypeAttributes;
        firePropertyChange(PROPERTY_ARTICLE_TYPE_ATTRIBUTES,
                oldArticleTypeAttributes, articleTypeAttributes);
    }

    /**
     * Henter artikler som referer til artikkel
     * @return artikler
     */
    public ArrayListModel getArticleTypeArticleTypes() {
        return articleTypeArticleTypes;
    }

    /**
     * @param articleTypeArticleTypes
     */
    public void setArticleTypeArticleTypes(
            ArrayListModel articleTypeArticleTypes) {
        ArrayListModel oldArticleTypeArticles = getArticleTypeArticleTypes();
        this.articleTypeArticleTypes = articleTypeArticleTypes;
        firePropertyChange(PROPERTY_ARTICLE_TYPE_ARTICLE_TYPES,
                oldArticleTypeArticles, articleTypeArticleTypes);
    }

    /**
     * @return attributter
     */
    public List<Attribute> getAttributes() {
        return object.getAttributes();
    }

    /**
     * @param attributes
     */
    public void setAttributes(List<Attribute> attributes) {
        if (attributes != null) {
            ArrayListModel oldAttributes = getArticleTypeAttributes();
            if (oldAttributes == null) {
                oldAttributes = new ArrayListModel();
            }
            ArticleTypeAttribute articleTypeAttribute;
            for (Attribute attribute : attributes) {
                articleTypeAttribute = new ArticleTypeAttribute(null, object,
                        attribute, null, null);
                oldAttributes.add(articleTypeAttribute);
            }
            setArticleTypeAttributes(oldAttributes);
        }
    }

    /**
     * @param attribute
     */
    public void removeAttribute(ArticleTypeAttribute attribute) {
        ArrayListModel oldAttributes = new ArrayListModel(
                getArticleTypeAttributes());
        oldAttributes.remove(attribute);
        setArticleTypeAttributes(oldAttributes);
    }
   
    public String getProdCatNo(){
        return Util.convertIntegerToString(object.getProdCatNo());
    }
    public void setProdCatNo(String aNo){
        String oldNo=getProdCatNo();
        object.setProdCatNo(Util.convertStringToInteger(aNo));
        firePropertyChange(PROPERTY_PROD_CAT_NO, oldNo, aNo);
    }
    public String getProdCatNo2(){
        return Util.convertIntegerToString(object.getProdCatNo2());
    }
    public void setProdCatNo2(String aNo){
        String oldNo=getProdCatNo2();
        object.setProdCatNo2(Util.convertStringToInteger(aNo));
        firePropertyChange(PROPERTY_PROD_CAT_NO_2, oldNo, aNo);
    }

    /**
     * @see no.ugland.utransprod.gui.model.AbstractModel#getBufferedObjectModel(com.jgoodies.binding.PresentationModel)
     */
    @Override
    public ArticleTypeModel getBufferedObjectModel(
            PresentationModel presentationModel) {
        ArticleTypeModel articleTypeModel = new ArticleTypeModel(
                new ArticleType());
        articleTypeModel.setArticleTypeId((Integer) presentationModel
                .getBufferedValue(PROPERTY_ARTICLE_TYPE_ID));
        articleTypeModel.setArticleTypeName((String) presentationModel
                .getBufferedValue(PROPERTY_ARTICLE_TYPE_NAME));
        articleTypeModel.setDescription((String) presentationModel
                .getBufferedValue(PROPERTY_DESCRIPTION));
        articleTypeModel
                .setArticleTypeAttributes((ArrayListModel) presentationModel
                        .getBufferedValue(PROPERTY_ARTICLE_TYPE_ATTRIBUTES));
        articleTypeModel
        .setProdCatNo((String) presentationModel
                .getBufferedValue(PROPERTY_PROD_CAT_NO));
        articleTypeModel
        .setProdCatNo2((String) presentationModel
                .getBufferedValue(PROPERTY_PROD_CAT_NO_2));
        articleTypeModel.setForceImportBoolean((Boolean)presentationModel
                .getBufferedValue(PROPERTY_FORCE_IMPORT_BOOL));
        return articleTypeModel;
    }

    /**
     * @see no.ugland.utransprod.gui.model.AbstractModel#addBufferChangeListener(java.beans.PropertyChangeListener,
     *      com.jgoodies.binding.PresentationModel)
     */
    @Override
    public void addBufferChangeListener(PropertyChangeListener listener,
            PresentationModel presentationModel) {
        presentationModel.getBufferedModel(PROPERTY_ARTICLE_TYPE_ID)
                .addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_ARTICLE_TYPE_NAME)
                .addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_DESCRIPTION)
                .addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_ARTICLE_TYPE_ATTRIBUTES)
                .addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_PROD_CAT_NO)
        .addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_PROD_CAT_NO_2)
        .addValueChangeListener(listener);
        presentationModel.getBufferedModel(PROPERTY_FORCE_IMPORT_BOOL)
        .addValueChangeListener(listener);
    }

    /**
     * @see no.ugland.utransprod.gui.model.AbstractModel#viewToModel()
     */
    @SuppressWarnings("unchecked")
    @Override
    public void viewToModel() {
        if (articleTypeAttributes != null) {
            Set<ArticleTypeAttribute> attributes = object
                    .getArticleTypeAttributes();
            if (attributes == null) {
                attributes = new HashSet<ArticleTypeAttribute>();
            }
            attributes.clear();
            attributes.addAll(articleTypeAttributes);
            object.setArticleTypeAttributes(attributes);
        }

        if (articleTypeArticleTypes != null) {
            Set<ArticleTypeArticleType> refs = object
                    .getArticleTypeArticleTypes();
            if (refs == null) {
                refs = new HashSet<ArticleTypeArticleType>();
            }
            refs.clear();
            refs.addAll(articleTypeArticleTypes);
            object.setArticleTypeArticleTypes(refs);
        }

    }

    /**
     * @see no.ugland.utransprod.gui.model.AbstractModel#modelToView()
     */
    @Override
    public void modelToView() {
        if (object.getArticleTypeAttributes() != null) {
            articleTypeAttributes.clear();
            articleTypeAttributes.addAll(object.getArticleTypeAttributes());
        }

        if (object.getArticleTypeArticleTypes() != null) {
            articleTypeArticleTypes.clear();
            articleTypeArticleTypes.addAll(object.getArticleTypeArticleTypes());
        }
    }

    /**
     * Henter attributter
     * @param attributes
     * @return attributter
     */
    @SuppressWarnings("unchecked")
    public List<ArticleTypeAttribute> getArticleAttributes(
            List<Attribute> attributes) {
        ArrayListModel tmpArticleTypeAttributes = new ArrayListModel();
        if (attributes != null) {

            for (Attribute attribute : attributes) {
                tmpArticleTypeAttributes.add(new ArticleTypeAttribute(null,
                        object, attribute, null, null));
            }
        }
        return tmpArticleTypeAttributes;
    }

    /**
     * Gir beskjed om at properties er endret
     */
    public void firePropertyChange() {
        fireMultiplePropertiesChanged();
    }

    /**
     * Kloner artikkel
     * @param orgArticle
     * @return klonet artikkel
     */
    public static ArticleType cloneArticleType(ArticleType orgArticle) {
        ArticleType clonedArticle = new ArticleType();
        clonedArticle.setArticleTypeId(orgArticle.getArticleTypeId());
        clonedArticle
                .setArticleTypeArticleTypes(cloneArticleTypeArticleTypes(orgArticle
                        .getArticleTypeArticleTypes()));
        clonedArticle.setArticleTypeName(orgArticle.getArticleTypeName());
        return clonedArticle;
    }

    /**
     * Kloner artikkelreferanser
     * @param refs
     * @return klonede artikkelreferanser
     */
    public static Set<ArticleTypeArticleType> cloneArticleTypeArticleTypes(
            Set<ArticleTypeArticleType> refs) {
        HashSet<ArticleTypeArticleType> clonedRefs = new HashSet<ArticleTypeArticleType>();
        if (refs != null) {
            for (ArticleTypeArticleType articleType : refs) {
                clonedRefs.add(new ArticleTypeArticleType(articleType
                        .getArticleTypeArticleTypeId(), articleType
                        .getArticleType(), articleType.getArticleTypeRef()));
            }
        }
        return clonedRefs;
    }

    /**
     * @return true dersom artikkel er en toppartikkel
     */
    public Boolean getTopLevelBoolean() {
        return object.getTopLevelBoolean();
    }

    /**
     * @param topLevel
     */
    public void setTopLevelBoolean(Boolean topLevel) {
        Boolean oldBool = getTopLevelBoolean();
        object.setTopeLevelBoolean(topLevel);
        firePropertyChange(PROPERTY_TOP_LEVEL_BOOL, oldBool, topLevel);
    }
   
    public Boolean getForceImportBoolean() {
        return object.forceImport();
    }

    /**
     * @param topLevel
     */
    public void setForceImportBoolean(Boolean force) {
        Boolean oldBool = getForceImportBoolean();
        object.setForceImportBoolean(force);
        firePropertyChange(PROPERTY_FORCE_IMPORT_BOOL, oldBool, force);
    }

    /**
     * @return betegnelse
     */
    public String getMetric() {
        return object.getMetric();
    }

    /**
     * @param metric
     */
    public void setMetric(String metric) {
        String oldMetric = getMetric();
        object.setMetric(metric);
        firePropertyChange(PROPERTY_METRIC, oldMetric, metric);
    }
}
TOP

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

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.