Search in sources :

Example 1 with CompoundHighlighter

use of org.jdesktop.swingx.decorator.CompoundHighlighter in project zaproxy by zaproxy.

the class ManageAddOnsDialog method getInstalledAddOnsTable.

private ZapTable getInstalledAddOnsTable() {
    if (installedAddOnsTable == null) {
        installedAddOnsTable = createCustomZapTable();
        installedAddOnsModel.addTableModelListener(new TableModelListener() {

            @Override
            public void tableChanged(TableModelEvent e) {
                getUpdateButton().setEnabled(installedAddOnsModel.canUpdateSelected());
                getUpdateAllButton().setEnabled(installedAddOnsModel.getAllUpdates().size() > 0);
                getUninstallButton().setEnabled(installedAddOnsModel.canUninstallSelected());
            }
        });
        installedAddOnsTable.setModel(installedAddOnsModel);
        // icon
        installedAddOnsTable.getColumnModel().getColumn(0).setMaxWidth(20);
        installedAddOnsTable.getColumnExt(0).setSortable(// icon doesn't need to be sortable
        false);
        // name
        installedAddOnsTable.getColumnModel().getColumn(1).setPreferredWidth(200);
        // version
        installedAddOnsTable.getColumnModel().getColumn(2).setPreferredWidth(60);
        installedAddOnsTable.getColumnExt(2).setSortable(// version doesn't need to be sortable
        false);
        installedAddOnsTable.getColumnModel().getColumn(3).setPreferredWidth(// description
        400);
        installedAddOnsTable.getColumnExt(3).setSortable(// description doesn't need to be sortable
        false);
        // update
        installedAddOnsTable.getColumnModel().getColumn(4).setPreferredWidth(60);
        installedAddOnsTable.getColumnExt(4).setSortable(// update doesn't need to be sortable
        false);
        installedAddOnsTable.getColumnModel().getColumn(5).setPreferredWidth(40);
        installedAddOnsTable.getColumnExt(5).setSortable(// checkbox doesn't need to be sortable
        false);
        // Default sort by name (column 1)
        List<RowSorter.SortKey> sortKeys = new ArrayList<>(1);
        sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));
        installedAddOnsTable.getRowSorter().setSortKeys(sortKeys);
        installedAddOnsTable.getColumnExt(0).setCellRenderer(new DefaultTableRenderer(new MappedValue(StringValues.EMPTY, IconValues.NONE), JLabel.CENTER));
        installedAddOnsTable.getColumnExt(0).setHighlighters(new CompoundHighlighter(new WarningRunningIssuesHighlighter(AddOnsTableModel.COLUMN_ADD_ON_WRAPPER), new WarningRunningIssuesToolTipHighlighter(AddOnsTableModel.COLUMN_ADD_ON_WRAPPER)));
        installedAddOnsTable.getColumnExt(3).setHighlighters(new CompoundHighlighter(new WarningUpdateIssuesHighlighter(AddOnsTableModel.COLUMN_ADD_ON_WRAPPER), new WarningUpdateIssuesToolTipHighlighter(AddOnsTableModel.COLUMN_ADD_ON_WRAPPER)));
        installedAddOnsTable.getColumnExt(4).addHighlighter(new DisableSelectionHighlighter(AddOnsTableModel.COLUMN_ADD_ON_WRAPPER));
    }
    return installedAddOnsTable;
}
Also used : RowSorter(javax.swing.RowSorter) TableModelEvent(javax.swing.event.TableModelEvent) ArrayList(java.util.ArrayList) MappedValue(org.jdesktop.swingx.renderer.MappedValue) DefaultTableRenderer(org.jdesktop.swingx.renderer.DefaultTableRenderer) TableModelListener(javax.swing.event.TableModelListener) CompoundHighlighter(org.jdesktop.swingx.decorator.CompoundHighlighter)

Example 2 with CompoundHighlighter

use of org.jdesktop.swingx.decorator.CompoundHighlighter in project zaproxy by zaproxy.

the class ManageAddOnsDialog method getUninstalledAddOnsTable.

private ZapTable getUninstalledAddOnsTable() {
    if (uninstalledAddOnsTable == null) {
        uninstalledAddOnsTable = createCustomZapTable();
        uninstalledAddOnsModel.addTableModelListener(new TableModelListener() {

            @Override
            public void tableChanged(TableModelEvent e) {
                getInstallButton().setEnabled(uninstalledAddOnsModel.canIinstallSelected());
                getInstallAllButton().setEnabled(uninstalledAddOnsModel.hasAvailableAddOns());
            }
        });
        uninstalledAddOnsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                getAddOnInfoButton().setEnabled(false);
                if (DesktopUtils.canOpenUrlInBrowser() && getUninstalledAddOnsTable().getSelectedRowCount() == 1) {
                    // convertRowIndexToModel in-case they sorted
                    AddOnWrapper ao = uninstalledAddOnsModel.getAddOnWrapper(getUninstalledAddOnsTable().convertRowIndexToModel(getUninstalledAddOnsTable().getSelectedRow()));
                    if (ao != null && ao.getAddOn().getInfo() != null) {
                        getAddOnInfoButton().setEnabled(true);
                    }
                }
            }
        });
        uninstalledAddOnsTable.setModel(uninstalledAddOnsModel);
        // Icon
        uninstalledAddOnsTable.getColumnModel().getColumn(0).setMaxWidth(20);
        // Icon doesn't need sorting
        uninstalledAddOnsTable.getColumnExt(0).setSortable(false);
        // Status
        uninstalledAddOnsTable.getColumnModel().getColumn(1).setPreferredWidth(50);
        // Name
        uninstalledAddOnsTable.getColumnModel().getColumn(2).setPreferredWidth(150);
        uninstalledAddOnsTable.getColumnModel().getColumn(3).setPreferredWidth(// Description
        300);
        uninstalledAddOnsTable.getColumnExt(3).setSortable(// Description doesn't need sorting
        false);
        uninstalledAddOnsTable.getColumnModel().getColumn(4).setPreferredWidth(// Update (version number)
        60);
        uninstalledAddOnsTable.getColumnExt(4).setSortable(// Update doesn't need sorting
        false);
        // Checkbox
        uninstalledAddOnsTable.getColumnModel().getColumn(5).setPreferredWidth(40);
        uninstalledAddOnsTable.getColumnExt(5).setSortable(// Checkbox doesn't need sorting
        false);
        // Default sort by status (column 1) descending (Release, Beta, Alpha), and name (column
        // 2) ascending
        List<RowSorter.SortKey> sortKeys = new ArrayList<>(2);
        sortKeys.add(new RowSorter.SortKey(1, SortOrder.DESCENDING));
        sortKeys.add(new RowSorter.SortKey(2, SortOrder.ASCENDING));
        uninstalledAddOnsTable.getRowSorter().setSortKeys(sortKeys);
        uninstalledAddOnsTable.getColumnExt(0).setCellRenderer(new DefaultTableRenderer(new MappedValue(StringValues.EMPTY, IconValues.NONE), JLabel.CENTER));
        uninstalledAddOnsTable.getColumnExt(0).setHighlighters(new CompoundHighlighter(new WarningRunningIssuesHighlighter(AddOnsTableModel.COLUMN_ADD_ON_WRAPPER), new WarningRunningIssuesToolTipHighlighter(UninstalledAddOnsTableModel.COLUMN_ADD_ON_WRAPPER)));
        uninstalledAddOnsTable.getColumnExt(5).addHighlighter(new DisableSelectionHighlighter(UninstalledAddOnsTableModel.COLUMN_ADD_ON_WRAPPER));
    }
    return uninstalledAddOnsTable;
}
Also used : RowSorter(javax.swing.RowSorter) TableModelEvent(javax.swing.event.TableModelEvent) ListSelectionEvent(javax.swing.event.ListSelectionEvent) ArrayList(java.util.ArrayList) MappedValue(org.jdesktop.swingx.renderer.MappedValue) DefaultTableRenderer(org.jdesktop.swingx.renderer.DefaultTableRenderer) ListSelectionListener(javax.swing.event.ListSelectionListener) TableModelListener(javax.swing.event.TableModelListener) CompoundHighlighter(org.jdesktop.swingx.decorator.CompoundHighlighter)

Aggregations

ArrayList (java.util.ArrayList)2 RowSorter (javax.swing.RowSorter)2 TableModelEvent (javax.swing.event.TableModelEvent)2 TableModelListener (javax.swing.event.TableModelListener)2 CompoundHighlighter (org.jdesktop.swingx.decorator.CompoundHighlighter)2 DefaultTableRenderer (org.jdesktop.swingx.renderer.DefaultTableRenderer)2 MappedValue (org.jdesktop.swingx.renderer.MappedValue)2 ListSelectionEvent (javax.swing.event.ListSelectionEvent)1 ListSelectionListener (javax.swing.event.ListSelectionListener)1