001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.gui.conflict.pair.tags;
003
004 import static org.openstreetmap.josm.tools.I18n.tr;
005
006 import org.openstreetmap.josm.gui.conflict.ConflictColors;
007 import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
008
009 public class TheirTableCellRenderer extends TagMergeTableCellRenderer {
010
011 protected void setBackgroundColor(TagMergeItem item, boolean isSelected) {
012 if (isSelected) {
013 setBackground(ConflictColors.BGCOLOR_SELECTED.get());
014 return;
015 }
016 if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision())) {
017 setBackground(ConflictColors.BGCOLOR_DROP.get());
018 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) {
019 setBackground(ConflictColors.BGCOLOR_KEEP.get());
020 } else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
021 setBackground(ConflictColors.BGCOLOR_UNDECIDED.get());
022 }
023 }
024
025 protected void setTextColor(TagMergeItem item) {
026 if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision())) {
027 setForeground(ConflictColors.FGCOLOR_DROP.get());
028 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) {
029 setForeground(ConflictColors.FGCOLOR_KEEP.get());
030 } else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
031 setForeground(ConflictColors.FGCOLOR_UNDECIDED.get());
032 }
033 }
034
035 @Override
036 protected void renderKey(TagMergeItem item, boolean isSelected) {
037 setBackgroundColor(item, isSelected);
038 setTextColor(item);
039 if (item.getTheirTagValue() == null) {
040 setText(tr("<undefined>"));
041 setToolTipText(tr("Their dataset does not include a tag with key {0}", item.getKey()));
042 } else {
043 setText(item.getKey());
044 setToolTipText(item.getKey());
045 }
046 }
047
048 @Override
049 protected void renderValue(TagMergeItem item, boolean isSelected) {
050 setBackgroundColor(item,isSelected);
051 setTextColor(item);
052 if (item.getTheirTagValue() == null) {
053 setText(tr("<undefined>"));
054 setToolTipText(tr("Their dataset does not include a tag with key {0}", item.getKey()));
055 } else {
056 setText(item.getTheirTagValue());
057 setToolTipText(item.getTheirTagValue());
058 }
059 }
060 }