/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.reportgen.collabs;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.main.ClipsException;
import clips.delegate.directory.ro.DirectoryCollaborator;
import clips.delegate.directory.ro.DirectoryCollaboratorItem;
import clips.login.UserInfo;
import java.util.List;
import java.util.Set;
import javax.swing.table.AbstractTableModel;
/**
*
* @author lacoste
*/
public class TableModelReportCollaborators extends AbstractTableModel {
public static final int COL_COUNT = 2;
public static final int COL_COLLAB = 0;
public static final int COL_IS_IN = 1;
private List<DirectoryCollaboratorItem> dirCollabs;
private Set<DirectoryCollaboratorItem> reportCollabs;
public TableModelReportCollaborators(Set<DirectoryCollaboratorItem> reportCollabs) throws ClipsException {
DirectoryCollaborator dir = DirectoryLocator.getDirectory(DirectoryCollaborator.class);
dirCollabs = dir.getItemsFiltered(UserInfo.get().getCollaborator().getLpu(), false, false, false);
this.reportCollabs = reportCollabs;
}
@Override
public int getRowCount() {
if (dirCollabs == null) {
return 0;
}
return dirCollabs.size();
}
@Override
public int getColumnCount() {
return COL_COUNT;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
if (columnIndex == COL_IS_IN) {
return Boolean.class;
}
return super.getColumnClass(columnIndex);
}
@Override
public String getColumnName(int column) {
switch (column) {
case COL_COLLAB: return "Сотрудник";
case COL_IS_IN: return "Разрешено";
default: throw new IllegalArgumentException("TableModelReportCollaborators. col = " + column);
}
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == COL_COLLAB) {
return false;
}
return true;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
if (columnIndex == COL_COLLAB) {
return;
}
Boolean b = (Boolean) aValue;
if (b) {
reportCollabs.add(dirCollabs.get(rowIndex));
}
else {
reportCollabs.remove(dirCollabs.get(rowIndex));
}
fireTableCellUpdated(rowIndex, columnIndex);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if (columnIndex == COL_COLLAB) {
return dirCollabs.get(rowIndex);
}
else {
return reportCollabs.contains(dirCollabs.get(rowIndex));
}
}
}