001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.conflict;
003
004import static org.openstreetmap.josm.tools.I18n.marktr;
005
006import java.awt.Color;
007
008import org.openstreetmap.josm.Main;
009import org.openstreetmap.josm.data.Preferences.ColorKey;
010
011public enum ConflictColors implements ColorKey {
012
013    BGCOLOR_NO_CONFLICT(marktr("Conflict background: no conflict"), new Color(234,234,234)),
014    BGCOLOR_DECIDED(marktr("Conflict background: decided"), new Color(217,255,217)),
015    BGCOLOR_UNDECIDED(marktr("Conflict background: undecided"), new Color(255,197,197)),
016    BGCOLOR_DROP(marktr("Conflict background: drop"), Color.white),
017    BGCOLOR_KEEP(marktr("Conflict background: keep"), new Color(217,255,217)),
018    BGCOLOR_COMBINED(marktr("Conflict background: combined"), new Color(217,255,217)),
019    BGCOLOR_SELECTED(marktr("Conflict background: selected"), new Color(143,170,255)),
020
021    FGCOLOR_UNDECIDED(marktr("Conflict foreground: undecided"), Color.black),
022    FGCOLOR_DROP(marktr("Conflict foreground: drop"), Color.lightGray),
023    FGCOLOR_KEEP(marktr("Conflict foreground: keep"), Color.black),
024
025    BGCOLOR_EMPTY_ROW(marktr("Conflict background: empty row"), new Color(234,234,234)),
026    BGCOLOR_FROZEN(marktr("Conflict background: frozen"), new Color(234,234,234)),
027    BGCOLOR_PARTICIPATING_IN_COMPARISON(marktr("Conflict background: in comparison"), Color.black),
028    FGCOLOR_PARTICIPATING_IN_COMPARISON(marktr("Conflict foreground: in comparison"), Color.white),
029    BGCOLOR(marktr("Conflict background"), Color.white),
030    FGCOLOR(marktr("Conflict foreground"), Color.black),
031
032    BGCOLOR_NOT_IN_OPPOSITE(marktr("Conflict background: not in opposite"), new Color(255,197,197)),
033    BGCOLOR_IN_OPPOSITE(marktr("Conflict background: in opposite"), new Color(255,234,213)),
034    BGCOLOR_SAME_POSITION_IN_OPPOSITE(marktr("Conflict background: same position in opposite"), new Color(217,255,217)),
035
036    BGCOLOR_TAG_KEEP_ONE (marktr("Conflict background: keep one tag"), new Color(217,255,217)),
037    FGCOLOR_TAG_KEEP_ONE (marktr("Conflict foreground: keep one tag"), Color.black),
038    BGCOLOR_TAG_KEEP_NONE(marktr("Conflict background: drop tag"), Color.lightGray),
039    FGCOLOR_TAG_KEEP_NONE(marktr("Conflict foreground: drop tag"), Color.black),
040    BGCOLOR_TAG_KEEP_ALL (marktr("Conflict background: keep all tags"), new Color(255,234,213)),
041    FGCOLOR_TAG_KEEP_ALL (marktr("Conflict foreground: keep all tags"), Color.black),
042    BGCOLOR_TAG_SUM_ALL_NUM(marktr("Conflict background: sum all numeric tags"), new Color(255,234,213)),
043    FGCOLOR_TAG_SUM_ALL_NUM(marktr("Conflict foreground: sum all numeric tags"), Color.black),
044
045    BGCOLOR_MEMBER_KEEP  (marktr("Conflict background: keep member"), new Color(217,255,217)),
046    FGCOLOR_MEMBER_KEEP  (marktr("Conflict foreground: keep member"), Color.black),
047    BGCOLOR_MEMBER_REMOVE(marktr("Conflict background: remove member"), Color.lightGray),
048    FGCOLOR_MEMBER_REMOVE(marktr("Conflict foreground: remove member"), Color.black);
049
050    private final String name;
051    private final Color defaultColor;
052
053    private ConflictColors(String name, Color defaultColor) {
054        this.name = name;
055        this.defaultColor = defaultColor;
056    }
057
058    @Override
059    public String getColorName() {
060        return name;
061    }
062
063    @Override
064    public Color getDefaultValue() {
065        return defaultColor;
066    }
067
068    @Override
069    public String getSpecialName() {
070        return null;
071    }
072
073    /**
074     * Returns the color.
075     * @return the color
076     */
077    public Color get() {
078        return Main.pref.getColor(this);
079    }
080
081    /**
082     * Loads all colors from preferences.
083     */
084    public static void getColors() {
085        for (ConflictColors c : values()) {
086            c.get();
087        }
088    }
089}