Package cli_fmw.administrator.arm

Source Code of cli_fmw.administrator.arm.TableModelArmPanels

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

package cli_fmw.administrator.arm;

import cli_fmw.main.UserPanel;
import cli_fmw.delegate.collaborator.ArmLocal;
import cli_fmw.main.ClipsException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import framework.security.UserRight;

/**
*
* @author petr
*/
class TableModelArmPanels extends AbstractTableModel {
    private Set<UserPanel> armPanels;
    private ArrayList<UserPanel> allPanels;
    private ArmLocal armLocal;
   
   // private UserInfo user;
    public static final int COLUMN_PANELS = 0;
    public static final int COLUMN_CHECKS = 1;
      
    public TableModelArmPanels(ArmLocal arm) throws ClipsException {
        allPanels = new ArrayList<UserPanel>();
        Enumeration e = UserPanel.elements();
        while (e.hasMoreElements()) {
            UserPanel right = (UserPanel) e.nextElement();
            allPanels.add(right);
        }
        if(arm != null){
            armLocal = arm;
            armPanels = armLocal.getPanels();
        }else{
            armPanels = new HashSet<UserPanel>();
        }
    }

    /**
     * Возвращает права соответствующие указанной строке (панели)
     * @param row индекс строки начиная с 0
     * @return NULL если неверный индекс
     */
    public UserRight[] getRights(int row) {
        if(row >= allPanels.size() || row < 0) {
            return null;
        }
        return allPanels.get(row).getUserRights();
    }
   
    @Override
    public int getRowCount() {
        return allPanels.size();
    }

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

    @Override
    public void setValueAt(Object obj, int row, int col) {// изменение таблицы       
        if(col == COLUMN_CHECKS){
            Boolean set = (Boolean) obj;
            UserPanel r = allPanels.get(row);
           
            if(set){
                armPanels.add(r);
            }else
                armPanels.remove(r);
            }
            armLocal.setPanels(armPanels);
        }
        fireTableCellUpdated(row, col);            
    }

    @Override
    public Object getValueAt(int row, int col) {// загрузка таблицы
        if(col == COLUMN_PANELS){
            return allPanels.get(row).toString();
        }
        if(col == COLUMN_CHECKS){
            return armPanels.contains(allPanels.get(row));
        }
        return null;
    }
   

    @Override
    public Class getColumnClass(int columnIndex) {
        if(columnIndex == COLUMN_CHECKS) {
            return Boolean.class;
        }
        return super.getColumnClass(columnIndex);
    }

    @Override
    public void addTableModelListener(TableModelListener arg0) {
        super.addTableModelListener(arg0);
    }

    @Override
    public String getColumnName(int col) {
        String s = "";
        if(col == COLUMN_PANELS) {
            s = "Панель";
        }
        if(col == COLUMN_CHECKS) {
            s = "Наличие";
        }
        return s;
    }

    @Override
    public boolean isCellEditable(int row, int col) {
        if(col == COLUMN_CHECKS) {
            return true;
        }
        return false;
    }
  
}
TOP

Related Classes of cli_fmw.administrator.arm.TableModelArmPanels

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.