package org.pegadi.disposal;
import org.pegadi.model.DispSection;
import org.pegadi.model.LoginContext;
import org.pegadi.server.NoAccessException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.swing.*;
import javax.swing.table.TableCellRenderer;
import java.util.List;
public class PageTable extends JTable {
private final Logger log = LoggerFactory.getLogger(getClass());
public PageTable(PageTableModel model) {
super(model);
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
setDragEnabled(true);
setDropMode(DropMode.INSERT_ROWS);
setRowHeight(25); // default (on windows at least) is 16, to be 25
/* slik setter jeg bredder på kolonnene */
getColumnModel().getColumn(0).setPreferredWidth(40);
getColumnModel().getColumn(1).setPreferredWidth(100);
getColumnModel().getColumn(2).setPreferredWidth(200);
getColumnModel().getColumn(3).setPreferredWidth(150);
getColumnModel().getColumn(4).setPreferredWidth(150);
getColumnModel().getColumn(5).setPreferredWidth(150);
getColumnModel().getColumn(6).setPreferredWidth(150);
getColumnModel().getColumn(7).setPreferredWidth(150);
getColumnModel().getColumn(8).setPreferredWidth(40);
setFillsViewportHeight(true);
createSectionsBox();
createPhotoBox();
}
public TableCellRenderer getCellRenderer(int row, int column) {
return new DisposalCellRenderer(getDefaultRenderer(getModel().getColumnClass(column)), getModel());
}
public void refresh() {
createSectionsBox();
((PageTableModel)getModel()).refresh();
}
private void createSectionsBox() {
try {
List<DispSection> sections = LoginContext.server.getActiveDispSections(LoginContext.sessionKey);
JComboBox box = new JComboBox(sections.toArray());
box.setMaximumRowCount(15);
getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(box));
} catch (NoAccessException e) {
log.error("error - failed getting sections", e);
}
}
public void createPhotoBox() {
String[] photoStatuses = new String[] {
"Ukjent",
"Planlagt",
"Tatt",
"Levert",
"Prod"
};
JComboBox box = new JComboBox(photoStatuses);
box.setEditable(true);
getColumnModel().getColumn(7).setCellEditor(new DefaultCellEditor(box));
}
}