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