001    // License: GPL. For details, see LICENSE file.
002    package org.openstreetmap.josm.gui.conflict;
003    
004    import static org.openstreetmap.josm.tools.I18n.marktr;
005    
006    import java.awt.Color;
007    import java.util.List;
008    
009    import org.openstreetmap.josm.Main;
010    import org.openstreetmap.josm.data.Preferences.ColorKey;
011    
012    public enum ConflictColors implements ColorKey {
013    
014        BGCOLOR_NO_CONFLICT(marktr("Conflict background: no conflict"), new Color(234,234,234)),
015        BGCOLOR_DECIDED(marktr("Conflict background: decided"), new Color(217,255,217)),
016        BGCOLOR_UNDECIDED(marktr("Conflict background: undecided"), new Color(255,197,197)),
017        BGCOLOR_DROP(marktr("Conflict background: drop"), Color.white),
018        BGCOLOR_KEEP(marktr("Conflict background: keep"), new Color(217,255,217)),
019        BGCOLOR_COMBINED(marktr("Conflict background: combined"), new Color(217,255,217)),
020        BGCOLOR_SELECTED(marktr("Conflict background: selected"), new Color(143,170,255)),
021    
022        FGCOLOR_UNDECIDED(marktr("Conflict foreground: undecided"), Color.black),
023        FGCOLOR_DROP(marktr("Conflict foreground: drop"), Color.lightGray),
024        FGCOLOR_KEEP(marktr("Conflict foreground: keep"), Color.black),
025    
026        BGCOLOR_EMPTY_ROW(marktr("Conflict background: empty row"), new Color(234,234,234)),
027        BGCOLOR_FROZEN(marktr("Conflict background: frozen"), new Color(234,234,234)),
028        BGCOLOR_PARTICIPAING_IN_COMPARISON(marktr("Conflict background: in comparison"), Color.black),
029        FGCOLOR_PARTICIPAING_IN_COMPARISON(marktr("Conflict foreground: in comparison"), Color.white),
030        BGCOLOR(marktr("Conflict background"), Color.white),
031        FGCOLOR(marktr("Conflict foreground"), Color.black),
032    
033        BGCOLOR_NOT_IN_OPPOSITE(marktr("Conflict background: not in opposite"), new Color(255,197,197)),
034        BGCOLOR_IN_OPPOSITE(marktr("Conflict background: in opposite"), new Color(255,234,213)),
035        BGCOLOR_SAME_POSITION_IN_OPPOSITE(marktr("Conflict background: same position in opposite"), new Color(217,255,217));
036    
037        private final String name;
038        private final Color defaultColor;
039    
040        private static Color backgroundColorCache = null;
041    
042        private ConflictColors(String name, Color defaultColor) {
043            this.name = name;
044            this.defaultColor = defaultColor;
045        }
046    
047        @Override
048        public String getColorName() {
049            return name;
050        }
051    
052        @Override
053        public Color getDefaultValue() {
054            return defaultColor;
055        }
056    
057        @Override
058        public String getSpecialName() {
059            return null;
060        }
061    
062        public Color get() {
063            return Main.pref.getColor(this);
064        }
065    
066        public static void getColors() {
067            for (ConflictColors c:values()) {
068                c.get();
069            }
070        }
071    }