// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.conflict.pair.tags;
import static org.openstreetmap.josm.tools.I18n.tr;
import org.openstreetmap.josm.gui.conflict.ConflictColors;
import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
public class MergedTableCellRenderer extends TagMergeTableCellRenderer {
protected void setBackgroundColor(TagMergeItem item, boolean isSelected) {
if (isSelected) {
setBackground(ConflictColors.BGCOLOR_SELECTED.get());
return;
}
if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision())) {
setBackground(ConflictColors.BGCOLOR_COMBINED.get());
} else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) {
setBackground(ConflictColors.BGCOLOR_COMBINED.get());
} else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
setBackground(ConflictColors.BGCOLOR_UNDECIDED.get());
}
}
@Override
protected void renderKey(TagMergeItem item, boolean isSelected) {
setBackgroundColor(item, isSelected);
if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision()) && item.getMyTagValue() == null) {
setText(tr("<undefined>"));
setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
} else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision()) && item.getTheirTagValue() == null) {
setText(tr("<undefined>"));
setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
} else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
setText("");
} else {
setText(item.getKey());
setToolTipText(item.getKey());
}
}
@Override
protected void renderValue(TagMergeItem item, boolean isSelected) {
setBackgroundColor(item, isSelected);
if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision()) && item.getMyTagValue() == null) {
setText(tr("<undefined>"));
setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
} else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision()) && item.getTheirTagValue() == null) {
setText(tr("<undefined>"));
setToolTipText(tr("The merged dataset will not include a tag with key {0}", item.getKey()));
} else if (MergeDecisionType.UNDECIDED.equals(item.getMergeDecision())) {
setText("");
} else {
if (MergeDecisionType.KEEP_MINE.equals(item.getMergeDecision())) {
setText(item.getMyTagValue());
setToolTipText(item.getMyTagValue());
} else if (MergeDecisionType.KEEP_THEIR.equals(item.getMergeDecision())) {
setText(item.getTheirTagValue());
setToolTipText(item.getTheirTagValue());
}
}
}
}