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    }