public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { reset(); if (value == null) return this; MultiValueResolutionDecision decision = (MultiValueResolutionDecision) value; renderColors(decision, isSelected); renderToolTipText(decision); switch (column) { case 0: if (decision.isDecided()) { setIcon(iconDecided); } else { setIcon(iconUndecided); } return this; case 1: setText(decision.getKey()); return this; case 2: renderValue(decision); return cbDecisionRenderer; } return this; }
/** * Sets the text of the tooltip for both renderers, this (the JLabel) and the combobox renderer. */ protected void renderToolTipText(MultiValueResolutionDecision decision) { switch (decision.getDecisionType()) { case UNDECIDED: { String toolTipText = tr("Please decide which values to keep"); setToolTipText(toolTipText); cbDecisionRenderer.setToolTipText(toolTipText); break; } case KEEP_ONE: { String toolTipText = tr( "Value ''{0}'' is going to be applied for key ''{1}''", decision.getChosenValue(), decision.getKey()); setToolTipText(toolTipText); cbDecisionRenderer.setToolTipText(toolTipText); break; } case KEEP_NONE: { String toolTipText = tr("The key ''{0}'' and all its values are going to be removed", decision.getKey()); setToolTipText(toolTipText); cbDecisionRenderer.setToolTipText(toolTipText); break; } case KEEP_ALL: String toolTipText = tr( "All values joined as ''{0}'' are going to be applied for key ''{1}''", decision.getChosenValue(), decision.getKey()); setToolTipText(toolTipText); cbDecisionRenderer.setToolTipText(toolTipText); break; } }