@Override public void populatePopupMenu(JPopupMenu menu) { List<? extends QuickFix> fixes = errors.get(getSelectedRow()).getQuickFixes(); if (!fixes.isEmpty()) { JMenu fixMenu = new ResourceMenu("quick_fixes"); for (QuickFix fix : fixes) { fixMenu.add(fix.getAction()); } menu.add(fixMenu); menu.addSeparator(); } super.populatePopupMenu(menu); }
@Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value instanceof ProcessSetupError) { JLabel label = (JLabel) super.getTableCellRendererComponent( table, ((ProcessSetupError) value).getMessage(), isSelected, hasFocus, row, column); switch (((ProcessSetupError) value).getSeverity()) { case WARNING: label.setIcon(IMAGE_WARNING); break; case ERROR: label.setIcon(IMAGE_ERROR); break; default: label.setIcon(null); // cannot happen } return label; } else if (value instanceof Port) { JLabel label = (JLabel) super.getTableCellRendererComponent( table, ((Port) value).getSpec(), isSelected, hasFocus, row, column); label.setIcon( ((Port) value) .getPorts() .getOwner() .getOperator() .getOperatorDescription() .getSmallIcon()); return label; } else if (value instanceof Operator) { JLabel label = (JLabel) super.getTableCellRendererComponent( table, ((Operator) value).getName(), isSelected, hasFocus, row, column); label.setIcon(((Operator) value).getOperatorDescription().getSmallIcon()); return label; } else { if (column == 1) { JLabel label = (JLabel) super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); if (value == null) { label.setIcon(IMAGE_NO_QUICKFIX); label.setText( I18N.getMessage( I18N.getGUIBundle(), "gui.errortable.no_quickfix_available.label")); } if (value instanceof List) { label.setIcon(IMAGE_QUICKFIX); label.setText( I18N.getMessage( I18N.getGUIBundle(), "gui.errortable.choose_quickfix.label", ((List) value).size())); } if (value instanceof QuickFix) { QuickFix quickFix = (QuickFix) value; label.setIcon((Icon) quickFix.getAction().getValue(Action.SMALL_ICON)); label.setText(quickFix.toString()); } return label; } else { JLabel label = (JLabel) super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); label.setIcon(null); return label; } } }