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}