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 org.openstreetmap.josm.gui.conflict.ConflictColors;
007import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
008
009public 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}