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)); } }