Package cli_fmw.report.panels.model.delegate

Source Code of cli_fmw.report.panels.model.delegate.DirectorySimpleFilteredComboBoxModel

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package cli_fmw.report.panels.model.delegate;

import cli_fmw.delegate.DelegateStateful;
import cli_fmw.delegate.directory.DirectoryItemRO;
import cli_fmw.delegate.directory.simple.DirectorySimple;
import cli_fmw.delegate.directory.simple.DirectorySimpleItem;
import cli_fmw.delegate.directory.simple.name.DirectoryNameAbstract;
import cli_fmw.delegate.directory.simple.pathron.DirectoryPathronAbstract;
import cli_fmw.delegate.directory.simple.surname.DirectorySurnameAbstract;
import cli_fmw.main.ClipsException;
import cli_fmw.report.panels.model.FilteredComboBoxModel;
import cli_fmw.report.panels.model.ObjectContainer;
import cli_fmw.utils.MessageBox;
import framework.utils.Converter;
import java.awt.AWTEvent;
import java.awt.EventQueue;
import java.awt.event.FocusEvent;
import javax.swing.JComboBox;

/**
*
* @param <T>
* @param <DIRECTORYITEM>
* @author vip
*/
/*public abstract class DirectorySimpleFilteredComboBoxModel
        <DETAILS extends DirectoryItemDetails,
        ITEM extends DirectorySimpleItem<?,DETAILS>>
        extends FilteredComboBoxModel {
    DirectorySimple<?, DETAILS, ITEM> dir;

    public DirectorySimpleFilteredComboBoxModel(JComboBox combo,
            ComboBoxModel containModel, DirectorySimple<?, DETAILS, ITEM> dir) {
        super(combo, containModel);
        this.dir = dir;
    }*/

abstract public class DirectorySimpleFilteredComboBoxModel
            <T extends DelegateStateful,
            DIRECTORYITEM extends DirectorySimpleItem>
        extends FilteredComboBoxModel implements ObjectContainer<T> {
    DirectorySimple<?, DIRECTORYITEM> dir;
    DirectoryComboBoxModel<T, DIRECTORYITEM> containModel;
    private T object;

    public DirectorySimpleFilteredComboBoxModel(JComboBox combo, T delegate, DirectorySimple<?, DIRECTORYITEM> dir) throws ClipsException {
        super(combo, dir.canAppend());
        object = delegate;
        containModel  = new DirectoryComboBoxModel<T, DIRECTORYITEM>(combo, dir, delegate) {
      private static final long serialVersionUID = 1l;

            @Override
            public DIRECTORYITEM getSelectedDirectoryItem() throws ClipsException {
                return DirectorySimpleFilteredComboBoxModel.this.getSelectedDirectoryItem();
            }

            @Override
            public void setSelectedDirectoryItem(DIRECTORYITEM item) throws ClipsException {
                DirectorySimpleFilteredComboBoxModel.this.setSelectedDirectoryItem(item);
            }

            @Override
            public boolean isSelectionVisible() {
                return super.isSelectionVisible() && DirectorySimpleFilteredComboBoxModel.this.isEnabled();
            }


        };
        super.setContainModel(containModel);
        this.dir = dir;
    }

    @Override
    public String processTxt(String txt) {
        if (dir instanceof DirectorySurnameAbstract
                || dir instanceof DirectoryNameAbstract
                || dir instanceof DirectoryPathronAbstract) {
            return Converter.firstUpper(txt, true);
        } else {
            return txt;
        }
    }

    @Override
    public Object addItem(String txt) {
        AWTEvent currentEvent = EventQueue.getCurrentEvent();
        if (currentEvent instanceof FocusEvent) {
            return null;
        }
        int res = MessageBox.showConfirmYesNo(MessageBox.C_ADD_DIRECTORYITEM);
        if (res == MessageBox.ANSWER_YES) {
            try {
                DIRECTORYITEM item = dir.initNewItem(txt);
                dir.getItems().append(item);
               // if (currentEvent instanceof FocusEvent)
                return item;
            } catch (ClipsException ex) {
                MessageBox.showException(ex);
                return null;
            }
        } else {
           // Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(currentEvent);
            return null;
        }
    }

    protected boolean isEnabled(){
        return true;
    }

  public T getObject() {
    return object;
  }

    public void setObject(T object) {
        this.object = object;
        containModel.setObject(object);
    }

    public void dispose() {
        containModel.setObject(null);
    }

    abstract public DIRECTORYITEM getSelectedDirectoryItem() throws ClipsException;

    abstract public void setSelectedDirectoryItem(DIRECTORYITEM item) throws ClipsException;

}
TOP

Related Classes of cli_fmw.report.panels.model.delegate.DirectorySimpleFilteredComboBoxModel

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.