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 MineTableCellRenderer 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_KEEP.get()); 018 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) { 019 setBackground(ConflictColors.BGCOLOR_DROP.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_KEEP.get()); 028 } else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) { 029 setForeground(ConflictColors.FGCOLOR_DROP.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.getMyTagValue() == null) { 040 setText(tr("<undefined>")); 041 setToolTipText(tr("My 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.getMyTagValue() == null) { 053 setText(tr("<undefined>")); 054 setToolTipText(tr("My dataset does not include a tag with key {0}", item.getKey())); 055 } else { 056 setText(item.getMyTagValue()); 057 setToolTipText(item.getMyTagValue()); 058 } 059 } 060 }