Package com.nexirius.theteam.datamodel

Source Code of com.nexirius.theteam.datamodel.MainModel$MyListener

package com.nexirius.theteam.datamodel;

import com.nexirius.framework.datamodel.*;
import com.nexirius.framework.dataviewer.ViewerFactory;
import com.nexirius.theteam.persistence.TeamPersistenceManager;
import com.nexirius.theteam.persistence.FileBasedTeamPersistence;
import com.nexirius.theteam.persistence.DataBaseTeamPersistence;

public class MainModel extends StructModel {
    MemberListModel memberList;
    MemberModel selected;
    AddressModel address;
    ComboBoxModel persistenceSelector;
    public static final String[] PERSISTENCE_OPTIONS = new String[] {"fileBasedPersistence", "databasePersistence"};
    public static final String FIELD_PERSISTENCE_SELECTOR = "persistenceSelector";

    public MainModel() {
        super("Main");
        init();
    }

    private void init() {
        append(memberList = new MemberListModel());
        append(selected = new MemberModel());
        append(address = new AddressModel());
        append(persistenceSelector = new ComboBoxModel(0, new MultiLanguageLabels(ViewerFactory.getInstance().getClientResource(), PERSISTENCE_OPTIONS), FIELD_PERSISTENCE_SELECTOR));

        memberList.addDataModelListener(new MyListener());
        persistenceSelector.addDataModelListener(new PersistenceSelectorListener());
    }

    public MemberModel getSelected() {
        return selected;
    }

    public AddressModel getAddress() {
        return address;
    }

    public MemberListModel getMemberList() {
        return memberList;
    }

    public void updateSelected() {
        try {
            MemberModel m = (MemberModel) memberList.getHighlightedItem();

            if (m == null) {
                selected.clear();

                return;
            }

            selected.dropData(m.dragData());
            selected.getPerson().dropData(m.getPerson().dragData());

            AddressModel mainAddress = selected.getMainAddress();

            if (mainAddress == null) {
                address.setFlag(ModelFlag.INVISIBLE, true);
            } else {
                address.setFlag(ModelFlag.INVISIBLE, false);
                address.dropData(mainAddress.dragData());
            }
        } catch (Exception ex) {
            //selected.setFlag(ModelFlag.INVISIBLE, true);
            ex.printStackTrace();
        }
        //selected.setFlag(ModelFlag.INVISIBLE, false);
    }

    public void reload() {
        memberList.clear();
        selected.clear();
        address.clear();
        getMemberList().load();
    }

    class MyListener extends DataModelAdaptor {
        public void dataModelEdit(DataModelEvent event) {
            if (event.getId() == DataModelEvent.HIGHLIGHT_CHANGED || event.isMethodCall("updateSelected")) {
                updateSelected();
            }
        }
    }

    class PersistenceSelectorListener extends DataModelAdaptor {
        public void dataModelChangeValue(DataModelEvent event) {
            if (persistenceSelector.getInt() == 0) {
                TeamPersistenceManager.setPersistence(new FileBasedTeamPersistence());
            } else {
                TeamPersistenceManager.setPersistence(new DataBaseTeamPersistence());
            }

            reload();
        }
    }
}
TOP

Related Classes of com.nexirius.theteam.datamodel.MainModel$MyListener

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.