Search in sources :

Example 96 with TableColumn

use of javax.swing.table.TableColumn in project processdash by dtuma.

the class SizeMetricsTableModel method createJTable.

public JTable createJTable() {
    JTable table = new ItemListJTable(this);
    // adjust column widths
    table.getColumnModel().getColumn(0).setPreferredWidth(100);
    table.getColumnModel().getColumn(1).setPreferredWidth(200);
    table.getColumnModel().getColumn(2).setPreferredWidth(100);
    table.setRowHeight(table.getRowHeight() + 4);
    // draw read-only phases with a different appearance
    table.setDefaultRenderer(String.class, new ItemTableCellRenderer());
    // install a combo box as the editor for the "phase type" column
    TableColumn unitsColumn = table.getColumnModel().getColumn(UNITS_COL);
    JComboBox unitsEditor = new JComboBox(UNITS_TYPES);
    unitsEditor.setRenderer(new UnitsCellRenderer());
    unitsEditor.setFont(unitsEditor.getFont().deriveFont(Font.PLAIN));
    unitsColumn.setCellEditor(new DefaultCellEditor(unitsEditor));
    return table;
}
Also used : JComboBox(javax.swing.JComboBox) JTable(javax.swing.JTable) TableColumn(javax.swing.table.TableColumn) DefaultCellEditor(javax.swing.DefaultCellEditor)

Example 97 with TableColumn

use of javax.swing.table.TableColumn in project processdash by dtuma.

the class TimeLogEditor method constructEditPanel.

private JPanel constructEditPanel() {
    JPanel retPanel = new JPanel(false);
    retPanel.setLayout(new BorderLayout());
    tableModel = new TimeLogTableModel();
    if (Settings.isReadOnly() || forceReadOnly)
        tableModel.setEditable(false);
    tableModel.setApprover(approver);
    tableModel.addTableModelListener(this);
    table = new TimeLogJTable(tableModel);
    TableUtils.configureTable(table, TimeLogTableModel.COLUMN_WIDTHS, TimeLogTableModel.COLUMN_TOOLTIPS);
    TableColumn startTimeCol = table.getColumnModel().getColumn(TimeLogTableModel.COL_START_TIME);
    startTimeCol.setCellEditor(new JDateTimeChooserCellEditor(Settings.getVal("timelog.dateTimeEditFormat", DATE_TIME_FORMAT)));
    retPanel.add("Center", new JScrollPane(table));
    JPanel btnPanel = new JPanel(false);
    addButton = createButton(btnPanel, "Add", "addRow");
    createButton(btnPanel, "Delete", "deleteSelectedRow");
    createButton(btnPanel, "Summarize_Button", "summarizeWarning");
    if (Settings.isReadWrite() && !forceReadOnly)
        retPanel.add("South", btnPanel);
    return retPanel;
}
Also used : JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) BorderLayout(java.awt.BorderLayout) TimeLogTableModel(net.sourceforge.processdash.log.time.TimeLogTableModel) JDateTimeChooserCellEditor(net.sourceforge.processdash.ui.lib.JDateTimeChooserCellEditor) TableColumn(javax.swing.table.TableColumn)

Example 98 with TableColumn

use of javax.swing.table.TableColumn in project processdash by dtuma.

the class WBSExcelWriter method createHeaderRow.

private void createHeaderRow(HSSFSheet sheet, TableColumnModel columns) {
    HSSFRow row = sheet.createRow(0);
    StyleKey style = new StyleKey();
    style.bold = true;
    for (int i = 0; i < columns.getColumnCount(); i++) {
        TableColumn col = columns.getColumn(i);
        String columnName = data.getColumnName(col.getModelIndex());
        HSSFCell cell = row.createCell(s(i + 1));
        cell.setCellValue(new HSSFRichTextString(columnName));
        styleCache.applyStyle(cell, style);
    }
}
Also used : HSSFRichTextString(org.apache.poi.hssf.usermodel.HSSFRichTextString) HSSFCell(org.apache.poi.hssf.usermodel.HSSFCell) HSSFRow(org.apache.poi.hssf.usermodel.HSSFRow) HSSFRichTextString(org.apache.poi.hssf.usermodel.HSSFRichTextString) TableColumn(javax.swing.table.TableColumn)

Example 99 with TableColumn

use of javax.swing.table.TableColumn in project processdash by dtuma.

the class TeamMemberListTable method recreateWeekColumnsToFit.

/**
     * Recreate the columns in the table model, to display data for as many
     * weeks as possible (within the constraints of the width of the table)
     */
private void recreateWeekColumnsToFit() {
    TeamMemberList teamList = getTeamMemberList();
    TableColumnModel tcm = getColumnModel();
    // compute the amount of space allocated to the weekly columns.
    // first, get the width of the entire table
    int tableWidth = getWidth();
    int width = tableWidth;
    // next, subtract out the width of the initial, fixed columns.
    for (int i = COL_WIDTHS.length; i-- > 0; ) width = width - COL_WIDTHS[i];
    // then, subtract out the width of the grippy column.
    width = width - GRIPPY_WIDTH - getIntercellSpacing().width;
    int numWeekColumns = Math.max(0, width / WEEK_COL_WIDTH);
    int extraWidth = width - (numWeekColumns * WEEK_COL_WIDTH);
    TableColumn firstCol = tcm.getColumn(0);
    firstCol.setWidth(COL_WIDTHS[0] + extraWidth);
    int existingNumWeekColumns = teamList.getNumWeekColumns();
    if (existingNumWeekColumns != numWeekColumns) {
        // remove the grippy column.
        removeLastColumn(tcm);
        // remove any weekly columns that are no longer needed
        for (int i = numWeekColumns; i < existingNumWeekColumns; i++) removeLastColumn(tcm);
        // reconfigure the table for the desired number of weekly columns
        teamList.setNumWeekColumns(numWeekColumns);
        // add any weekly columns that are now needed
        int colIdx = tcm.getColumnCount();
        for (int i = existingNumWeekColumns; i < numWeekColumns; i++) tcm.addColumn(createWeekColumn(colIdx++));
        // add a grippy column at the end.
        tcm.addColumn(createGrippyColumn(colIdx));
    }
    repositionHeaderDecorations(tableWidth, numWeekColumns);
}
Also used : TableColumnModel(javax.swing.table.TableColumnModel) TableColumn(javax.swing.table.TableColumn) Point(java.awt.Point)

Example 100 with TableColumn

use of javax.swing.table.TableColumn in project processdash by dtuma.

the class BlameValueTable method autoResizeColumns.

public void autoResizeColumns() {
    int cellPad = 0;
    for (int column = getColumnCount(); column-- > 1; ) {
        int minWidth = 0;
        for (int row = getRowCount(); row-- > 0; ) {
            int cellWidth = getPreferredCellWidth(row, column);
            minWidth = Math.max(minWidth, cellWidth);
        }
        TableColumn tableCol = getColumnModel().getColumn(column);
        tableCol.setMinWidth(minWidth + cellPad);
        tableCol.setPreferredWidth(minWidth + cellPad);
        cellPad = 8;
    }
}
Also used : TableColumn(javax.swing.table.TableColumn)

Aggregations

TableColumn (javax.swing.table.TableColumn)215 TableColumnModel (javax.swing.table.TableColumnModel)66 JTable (javax.swing.JTable)44 JScrollPane (javax.swing.JScrollPane)37 JPanel (javax.swing.JPanel)31 TableCellRenderer (javax.swing.table.TableCellRenderer)30 BoxLayout (javax.swing.BoxLayout)25 JLabel (javax.swing.JLabel)24 Component (java.awt.Component)21 ActionEvent (java.awt.event.ActionEvent)20 FlowLayout (java.awt.FlowLayout)16 ActionListener (java.awt.event.ActionListener)16 DefaultCellEditor (javax.swing.DefaultCellEditor)16 JButton (javax.swing.JButton)16 DefaultTableCellRenderer (javax.swing.table.DefaultTableCellRenderer)15 JComboBox (javax.swing.JComboBox)14 Dimension (java.awt.Dimension)13 DefaultTableModel (javax.swing.table.DefaultTableModel)12 JTableHeader (javax.swing.table.JTableHeader)12 XTableColumnModel (jmri.util.swing.XTableColumnModel)12