Search in sources :

Example 11 with BaseJTable

use of com.revolsys.swing.table.BaseJTable in project com.revolsys.open by revolsys.

the class BackgroundTaskTableModel method newTaskTable.

private static BaseJTable newTaskTable() {
    final BackgroundTaskTableModel model = new BackgroundTaskTableModel();
    final BaseJTable table = new BaseJTable(model);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
    table.setAutoCreateColumnsFromModel(false);
    for (int i = 0; i < model.getColumnCount(); i++) {
        final TableColumnExt column = table.getColumnExt(i);
        if (i == 1 || i == 2) {
            column.setMinWidth(200);
            column.setPreferredWidth(300);
        } else {
            column.setMinWidth(70);
            column.setPreferredWidth(70);
            column.setMaxWidth(70);
        }
    }
    addHighlighter(table, model, StateValue.PENDING, WebColors.Pink, WebColors.DarkRed);
    addHighlighter(table, model, StateValue.STARTED, WebColors.Ivory, WebColors.DarkOrange);
    addHighlighter(table, model, StateValue.DONE, WebColors.HoneyDew, WebColors.Green);
    return table;
}
Also used : TableColumnExt(org.jdesktop.swingx.table.TableColumnExt) BaseJTable(com.revolsys.swing.table.BaseJTable)

Example 12 with BaseJTable

use of com.revolsys.swing.table.BaseJTable in project com.revolsys.open by revolsys.

the class BackgroundTaskTableModel method addHighlighter.

private static void addHighlighter(final BaseJTable table, final BackgroundTaskTableModel model, final StateValue state, final Color background, final Color foreground) {
    final HighlightPredicate predicate = (renderer, adapter) -> {
        final int rowIndex = adapter.convertRowIndexToModel(adapter.row);
        final BackgroundTask task = model.tasks.get(rowIndex);
        return task.getTaskStatus() == state;
    };
    final ColorHighlighter highlighter = new ColorHighlighter(predicate, background, foreground, foreground, background);
    table.addHighlighter(highlighter);
}
Also used : Color(java.awt.Color) Arrays(java.util.Arrays) JTextField(javax.swing.JTextField) SwingUtil(com.revolsys.swing.SwingUtil) BaseJPopupMenu(com.revolsys.swing.menu.BaseJPopupMenu) TableColumnExt(org.jdesktop.swingx.table.TableColumnExt) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) WebColors(com.revolsys.awt.WebColors) Map(java.util.Map) SwingWorker(javax.swing.SwingWorker) BaseJTable(com.revolsys.swing.table.BaseJTable) MenuFactory(com.revolsys.swing.menu.MenuFactory) PropertyChangeEvent(java.beans.PropertyChangeEvent) StateValue(javax.swing.SwingWorker.StateValue) Timer(javax.swing.Timer) JToolBar(javax.swing.JToolBar) TabbedPane(com.revolsys.swing.TabbedPane) Iterator(java.util.Iterator) HighlightPredicate(org.jdesktop.swingx.decorator.HighlightPredicate) TablePanel(com.revolsys.swing.table.TablePanel) PropertyChangeSupport(com.revolsys.beans.PropertyChangeSupport) Dimension(java.awt.Dimension) List(java.util.List) PropertyChangeListener(java.beans.PropertyChangeListener) JLabel(javax.swing.JLabel) AbstractTableModel(com.revolsys.swing.table.AbstractTableModel) Entry(java.util.Map.Entry) ColorHighlighter(com.revolsys.swing.table.highlighter.ColorHighlighter) JTable(javax.swing.JTable) ColorHighlighter(com.revolsys.swing.table.highlighter.ColorHighlighter) HighlightPredicate(org.jdesktop.swingx.decorator.HighlightPredicate)

Example 13 with BaseJTable

use of com.revolsys.swing.table.BaseJTable in project com.revolsys.open by revolsys.

the class BackgroundTaskTableModel method newPanel.

public static TablePanel newPanel() {
    final BaseJTable table = newTaskTable();
    final TablePanel panel = new TablePanel(table);
    final BackgroundTaskTableModel model = table.getTableModel();
    final JToolBar toolBar = panel.getToolBar();
    addCountLabel(toolBar, model, "Pending", "pendingCount", WebColors.Pink, WebColors.DarkRed);
    addCountLabel(toolBar, model, "Running", "runningCount", WebColors.Ivory, WebColors.DarkOrange);
    addCountLabel(toolBar, model, "Done", "doneCount", WebColors.HoneyDew, WebColors.Green);
    return panel;
}
Also used : BaseJTable(com.revolsys.swing.table.BaseJTable) JToolBar(javax.swing.JToolBar) TablePanel(com.revolsys.swing.table.TablePanel)

Example 14 with BaseJTable

use of com.revolsys.swing.table.BaseJTable in project com.revolsys.open by revolsys.

the class AbstractSingleRecordTableModel method newTable.

public static BaseJTable newTable(final AbstractSingleRecordTableModel model) {
    final BaseJTable table = new BaseJTable(model);
    table.setModel(model);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.setAutoCreateColumnsFromModel(false);
    table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
    final SingleRecordTableCellRenderer cellRenderer = new SingleRecordTableCellRenderer();
    final RecordTableCellEditor cellEditor = new RecordTableCellEditor(table);
    cellEditor.setPopupMenu(model.getMenu()::newJPopupMenu);
    final RecordDefinition recordDefinition = model.getRecordDefinition();
    final List<String> allFieldNames = recordDefinition.getFieldNames();
    int maxTitleWidth = 100;
    for (final String fieldName : allFieldNames) {
        final String title = model.getFieldTitle(fieldName);
        final int titleWidth = Math.max(title.length(), fieldName.length()) * 8;
        if (titleWidth > maxTitleWidth) {
            maxTitleWidth = titleWidth;
        }
    }
    final int columnCount = model.getColumnCount();
    int columnWidth;
    if (columnCount > 3) {
        columnWidth = (740 - maxTitleWidth) / 2;
    } else {
        columnWidth = (740 - maxTitleWidth) / 2;
    }
    for (int i = 0; i < columnCount; i++) {
        final TableColumnExt column = table.getColumnExt(i);
        column.setCellRenderer(cellRenderer);
        if (i == 0) {
            column.setMinWidth(40);
            column.setPreferredWidth(40);
            column.setMaxWidth(40);
            column.setComparator(new NumericComparator());
        } else if (i == 1) {
            column.setMinWidth(maxTitleWidth);
            column.setPreferredWidth(maxTitleWidth);
            column.setMaxWidth(maxTitleWidth);
        } else {
            column.setPreferredWidth(columnWidth);
            if (i == 2) {
                column.setCellEditor(cellEditor);
            }
        }
    }
    return table;
}
Also used : TableColumnExt(org.jdesktop.swingx.table.TableColumnExt) SingleRecordTableCellRenderer(com.revolsys.swing.table.record.renderer.SingleRecordTableCellRenderer) BaseJTable(com.revolsys.swing.table.BaseJTable) NumericComparator(com.revolsys.comparator.NumericComparator) RecordTableCellEditor(com.revolsys.swing.table.record.editor.RecordTableCellEditor) RecordDefinition(com.revolsys.record.schema.RecordDefinition)

Example 15 with BaseJTable

use of com.revolsys.swing.table.BaseJTable in project com.revolsys.open by revolsys.

the class RecordListTableModel method newPanel.

public static TablePanel newPanel(final RecordDefinition recordDefinition, final Collection<? extends Record> records, final Collection<String> fieldNames) {
    final RecordListTableModel model = new RecordListTableModel(recordDefinition, records, fieldNames);
    final BaseJTable table = new RecordRowTable(model);
    return new TablePanel(table);
}
Also used : BaseJTable(com.revolsys.swing.table.BaseJTable) RecordRowTable(com.revolsys.swing.table.record.RecordRowTable) TablePanel(com.revolsys.swing.table.TablePanel)

Aggregations

BaseJTable (com.revolsys.swing.table.BaseJTable)15 TableColumnExt (org.jdesktop.swingx.table.TableColumnExt)5 TablePanel (com.revolsys.swing.table.TablePanel)4 Dimension (java.awt.Dimension)3 TableColumn (javax.swing.table.TableColumn)3 RecordDefinition (com.revolsys.record.schema.RecordDefinition)2 JToolBar (javax.swing.JToolBar)2 TableColumnModel (javax.swing.table.TableColumnModel)2 WebColors (com.revolsys.awt.WebColors)1 PropertyChangeSupport (com.revolsys.beans.PropertyChangeSupport)1 NumericComparator (com.revolsys.comparator.NumericComparator)1 SwingUtil (com.revolsys.swing.SwingUtil)1 TabbedPane (com.revolsys.swing.TabbedPane)1 BasePanel (com.revolsys.swing.component.BasePanel)1 LayerRecordForm (com.revolsys.swing.map.form.LayerRecordForm)1 BaseJPopupMenu (com.revolsys.swing.menu.BaseJPopupMenu)1 MenuFactory (com.revolsys.swing.menu.MenuFactory)1 AbstractTableModel (com.revolsys.swing.table.AbstractTableModel)1 ColorHighlighter (com.revolsys.swing.table.highlighter.ColorHighlighter)1 RecordRowTable (com.revolsys.swing.table.record.RecordRowTable)1