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 }