Search in sources :

Example 6 with HighlightPredicate

use of org.jdesktop.swingx.decorator.HighlightPredicate in project com.revolsys.open by revolsys.

the class RecordValidationDialog method newInvalidRecordsTablePanel.

private TablePanel newInvalidRecordsTablePanel() {
    final RecordDefinition recordDefinition = this.layer.getRecordDefinition();
    final List<String> fieldNames = this.layer.getFieldNames();
    final RecordListTableModel model = new RecordListTableModel(recordDefinition, this.invalidRecords, fieldNames);
    model.setReadOnlyFieldNames(this.layer.getUserReadOnlyFieldNames());
    final RecordRowTable table = new RecordRowTable(model);
    table.setVisibleRowCount(Math.min(10, model.getRowCount() + 1));
    table.setSortable(true);
    table.resizeColumnsToContent();
    final HighlightPredicate invalidFieldPredicate = (final Component renderer, final ComponentAdapter adapter) -> {
        try {
            final int rowIndex = adapter.convertRowIndexToModel(adapter.row);
            final int columnIndex = adapter.convertColumnIndexToModel(adapter.column);
            final Map<String, String> fieldErrors = this.invalidRecordErrors.get(rowIndex);
            if (!fieldErrors.isEmpty()) {
                final String fieldName = this.layer.getFieldName(columnIndex);
                final String errorMessage = fieldErrors.get(fieldName);
                if (Property.hasValue(errorMessage)) {
                    final JComponent jcomponent = (JComponent) renderer;
                    jcomponent.setToolTipText(errorMessage);
                    return true;
                }
            }
        } catch (final Throwable e) {
        }
        return false;
    };
    final Highlighter invalidFieldHighlighter = new ColorHighlighter(invalidFieldPredicate, WebColors.newAlpha(Color.RED, 64), Color.RED, Color.RED, Color.YELLOW);
    table.addHighlighter(invalidFieldHighlighter);
    final HighlightPredicate validRecordPredicate = (final Component renderer, final ComponentAdapter adapter) -> {
        try {
            final int rowIndex = adapter.convertRowIndexToModel(adapter.row);
            final Map<String, String> fieldErrors = this.invalidRecordErrors.get(rowIndex);
            if (fieldErrors.isEmpty()) {
                return true;
            }
        } catch (final Throwable e) {
        }
        return false;
    };
    table.addHighlighter(new ColorHighlighter(new AndHighlightPredicate(validRecordPredicate, HighlightPredicate.EVEN), WebColors.newAlpha(WebColors.LimeGreen, 127), WebColors.Black, WebColors.newAlpha(WebColors.DarkGreen, 191), Color.WHITE));
    table.addHighlighter(new ColorHighlighter(new AndHighlightPredicate(validRecordPredicate, HighlightPredicate.ODD), WebColors.LimeGreen, WebColors.Black, WebColors.DarkGreen, Color.WHITE));
    final TablePanel tablePanel = new TablePanel(table);
    tablePanel.setBorder(BorderFactory.createTitledBorder(table.getRowCount() + " invalid records"));
    return tablePanel;
}
Also used : JComponent(javax.swing.JComponent) RecordDefinition(com.revolsys.record.schema.RecordDefinition) ColorHighlighter(com.revolsys.swing.table.highlighter.ColorHighlighter) HighlightPredicate(org.jdesktop.swingx.decorator.HighlightPredicate) AndHighlightPredicate(org.jdesktop.swingx.decorator.HighlightPredicate.AndHighlightPredicate) JComponent(javax.swing.JComponent) Component(java.awt.Component) AndHighlightPredicate(org.jdesktop.swingx.decorator.HighlightPredicate.AndHighlightPredicate) HashMap(java.util.HashMap) Map(java.util.Map) RecordListTableModel(com.revolsys.swing.table.record.model.RecordListTableModel) ComponentAdapter(org.jdesktop.swingx.decorator.ComponentAdapter) RecordRowTable(com.revolsys.swing.table.record.RecordRowTable) Highlighter(org.jdesktop.swingx.decorator.Highlighter) ColorHighlighter(com.revolsys.swing.table.highlighter.ColorHighlighter) TablePanel(com.revolsys.swing.table.TablePanel)

Example 7 with HighlightPredicate

use of org.jdesktop.swingx.decorator.HighlightPredicate 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)

Aggregations

HighlightPredicate (org.jdesktop.swingx.decorator.HighlightPredicate)7 TablePanel (com.revolsys.swing.table.TablePanel)6 ColorHighlighter (com.revolsys.swing.table.highlighter.ColorHighlighter)6 WebColors (com.revolsys.awt.WebColors)5 RecordRowTable (com.revolsys.swing.table.record.RecordRowTable)5 Color (java.awt.Color)5 Map (java.util.Map)5 JComponent (javax.swing.JComponent)5 AndHighlightPredicate (org.jdesktop.swingx.decorator.HighlightPredicate.AndHighlightPredicate)5 SwingUtil (com.revolsys.swing.SwingUtil)4 AbstractRecordLayer (com.revolsys.swing.map.layer.record.AbstractRecordLayer)4 LayerRecord (com.revolsys.swing.map.layer.record.LayerRecord)4 PropertyChangeEvent (java.beans.PropertyChangeEvent)4 ListSelectionModel (javax.swing.ListSelectionModel)4 ListSelectionEvent (javax.swing.event.ListSelectionEvent)4 TableColumnExt (org.jdesktop.swingx.table.TableColumnExt)4 Geometry (com.revolsys.geometry.model.Geometry)3 ClipboardUtil (com.revolsys.swing.dnd.ClipboardUtil)3 LayerRecordMenu (com.revolsys.swing.map.layer.record.LayerRecordMenu)3 RecordLayerTableModel (com.revolsys.swing.map.layer.record.table.model.RecordLayerTableModel)3