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 MergedTableCellRenderer extends TagMergeTableCellRenderer {
010 protected void setBackgroundColor(TagMergeItem item, boolean isSelected) {
011 if (isSelected) {
012 setBackground(ConflictColors.BGCOLOR_SELECTED.get());
013 return;
014 }
015 if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision())) {
016 setBackground(ConflictColors.BGCOLOR_COMBINED.get());
017 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) {
018 setBackground(ConflictColors.BGCOLOR_COMBINED.get());
019 } else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
020 setBackground(ConflictColors.BGCOLOR_UNDECIDED.get());
021 }
022 }
023
024 @Override
025 protected void renderKey(TagMergeItem item, boolean isSelected) {
026 setBackgroundColor(item,isSelected);
027 if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision()) && item.getMyTagValue() == null) {
028 setText(tr("<undefined>"));
029 setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
030 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision()) && item.getTheirTagValue() == null) {
031 setText(tr("<undefined>"));
032 setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
033 } else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
034 setText("");
035 } else {
036 setText(item.getKey());
037 setToolTipText(item.getKey());
038 }
039 }
040
041 @Override
042 protected void renderValue(TagMergeItem item, boolean isSelected) {
043 setBackgroundColor(item,isSelected);
044 if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision()) && item.getMyTagValue() == null) {
045 setText(tr("<undefined>"));
046 setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
047 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision()) && item.getTheirTagValue() == null) {
048 setText(tr("<undefined>"));
049 setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
050 } else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
051 setText("");
052 } else {
053 if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision())) {
054 setText(item.getMyTagValue());
055 setToolTipText(item.getMyTagValue());
056 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) {
057 setText(item.getTheirTagValue());
058 setToolTipText(item.getTheirTagValue());
059 } else {
060 // should not happen
061 }
062 }
063 }
064
065 }