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