Package clips.directory.editors.servicePacketTemplate

Source Code of clips.directory.editors.servicePacketTemplate.TableModelEditPacketTemplates

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

package clips.directory.editors.servicePacketTemplate;

import clips.delegate.directory.complex.DirectoryPacketTemplate;
import clips.delegate.directory.complex.DirectoryPacketTemplateItem;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.ErrorValue;
import cli_fmw.utils.MessageBox;
import cli_fmw.utils.Selector;
import clips.delegate.directory.simple.medexam.DirectoryMedexamTypeItem;
import clips.login.UserInfo;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import  javax.swing.table.AbstractTableModel;

/**
*
* @author lacoste
*/
public class TableModelEditPacketTemplates extends AbstractTableModel {
    public static final int COLCOUNT = 5;
    public static final int COL_ID = 0;
    public static final int COL_TITLE = 1;
    public static final int COL_TYPE = 2;
    public static final int COL_DIRTY = 3;
    public static final int COL_ITEMS = 4;
   
    private DirectoryPacketTemplate directory;
    private ArrayList<DirectoryPacketTemplateItem> list = new ArrayList<DirectoryPacketTemplateItem>();

    public TableModelEditPacketTemplates(DirectoryPacketTemplate directory) throws ClipsException {
        this.directory = directory;
       
        list.clear();
        if (directory != null) {
            for (DirectoryPacketTemplateItem item : directory.getFilteredItems(UserInfo.get().getCollaborator().getLpu())) {
                if (item != null){
                    list.add(item);
                }
            }
        }
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        if (columnIndex == COL_DIRTY) {
            return Boolean.class;
        }
        return super.getColumnClass(columnIndex);
    }

    @Override
    public String getColumnName(int column) {
        switch (column) {
            case COL_ID: return "ID";
            case COL_TITLE: return "Наименование";
            case COL_TYPE: return "Тип";
            case COL_ITEMS: return "Состав пакета";
            case COL_DIRTY: return "Новая запись";
            default: return "";
        }
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        if (list.get(rowIndex).getID() == 0) {
            return false;
        }
        if (columnIndex == COL_ID || columnIndex == COL_ITEMS) {
            return false;
        }
        return true;
    }

    @Override
    public void setValueAt(Object aValue, int row, int col) {
        try {
            switch (col) {
                case COL_TITLE : {
                    list.get(row).setTitle(aValue.toString());
                    break;
                }
                case COL_TYPE : {
                    list.get(row).setmedexamType((DirectoryMedexamTypeItem) aValue);
                    break;
                }
                case COL_DIRTY : {
                    list.get(row).setDirty((Boolean) aValue);
                    break;
                }
                default: throw new IndexOutOfBoundsException("Некорректный номер столбца : " + col);
            }
            fireTableCellUpdated(row, col);
        } catch(ClipsException e) {
            MessageBox.showException(e);         
        }
    }

    @Override
    public int getRowCount() {
        return list.size();
    }

    @Override
    public int getColumnCount() {
        return COLCOUNT;
    }

    public DirectoryPacketTemplateItem getItem(int row){
        return list.get(row);
    }

    @Override
    public Object getValueAt(int row, int col) {
        DirectoryPacketTemplateItem item = list.get(row);
        switch (col) {
            case COL_ID : return item.getID();
            case COL_TITLE : return item;
            case COL_TYPE :
                try {
                    return item.getmedexamType();
                } catch (ClipsException ex) {
                    return new ErrorValue(ex);
                }
            case COL_DIRTY : return item.getDirty();
            case COL_ITEMS : {
                try {
                    String s = "";
                    int count = item.getPacketItemCount();
                    for (int i = 0; i < count; i++) {
                        s += item.getPacketItem(i).toString() + (i == count - 1 ? "" : "; ");
                    }
                    return s;
                } catch (ClipsException ex) {
                    return new ErrorValue(ex);
                }
            }
            default: throw new IndexOutOfBoundsException("Некорректный номер столбца : " + col);

        }
    }

}
TOP

Related Classes of clips.directory.editors.servicePacketTemplate.TableModelEditPacketTemplates

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.