Add more warnings source to 1.6) and fix warnings
[jvcard.git] / src / be / nikiroo / jvcard / tui / UiColors.java
index 877c73964defee82004f1e4c76ffb1ad685fbc72..61bb69239d8d726d38cade740baf8cf1c91c869d 100644 (file)
@@ -8,8 +8,8 @@ import java.util.Map;
 import java.util.MissingResourceException;
 import java.util.Properties;
 
-import be.nikiroo.jvcard.resources.bundles.ColorBundle;
-import be.nikiroo.jvcard.resources.enums.ColorOption;
+import be.nikiroo.jvcard.resources.ColorBundle;
+import be.nikiroo.jvcard.resources.ColorOption;
 
 import com.googlecode.lanterna.TextColor;
 import com.googlecode.lanterna.graphics.PropertiesTheme;
@@ -23,17 +23,67 @@ import com.googlecode.lanterna.gui2.Label;
  * @author niki
  * 
  */
-public class UiColors extends ColorBundle {
+public class UiColors {
        static private Object lock = new Object();
        static private UiColors instance = null;
 
        private Map<String, TextColor> colorMap = null;
+       private ColorBundle bundle;
 
        private UiColors() {
-               super();
+               bundle = new ColorBundle();
                colorMap = new HashMap<String, TextColor>();
        }
 
+       /**
+        * Return a {@link Theme} following the colours defined in
+        * colors.properties.
+        * 
+        * @return the {@link Theme}
+        */
+       static public Theme getCustomTheme() {
+               // Create a properties-theme with our own custom values for some of it
+               Properties properties = new Properties();
+               try {
+                       ClassLoader classLoader = AbstractTextGUI.class.getClassLoader();
+                       InputStream resourceAsStream = classLoader
+                                       .getResourceAsStream("default-theme.properties");
+                       if (resourceAsStream == null) {
+                               resourceAsStream = new FileInputStream(
+                                               "src/main/resources/default-theme.properties");
+                       }
+                       properties.load(resourceAsStream);
+                       resourceAsStream.close();
+               } catch (IOException e) {
+               }
+
+               // default colours:
+               String fg = getForegroundColor(ColorOption.DEFAULT).toString();
+               String bg = getBackgroundColor(ColorOption.DEFAULT).toString();
+               for (String def : new String[] { "com.googlecode.lanterna",
+                               "com.googlecode.lanterna.gui2.TextBox",
+                               "com.googlecode.lanterna.gui2.AbstractListBox",
+                               "com.googlecode.lanterna.gui2.Borders$StandardBorder" }) {
+                       properties.put(def + ".foreground", fg);
+                       properties.put(def + ".background", bg);
+               }
+
+               // no bold on borders prelight:
+               properties
+                               .put("com.googlecode.lanterna.gui2.Borders$StandardBorder.sgr[PRELIGHT]",
+                                               "");
+
+               // line answers:
+               fg = getForegroundColor(ColorOption.LINE_MESSAGE_ANS).toString();
+               bg = getBackgroundColor(ColorOption.LINE_MESSAGE_ANS).toString();
+               String prop = "com.googlecode.lanterna.gui2.TextBox";
+               properties.put(prop + ".foreground[ACTIVE]", fg);
+               properties.put(prop + ".background[ACTIVE]", bg);
+
+               PropertiesTheme theme = new PropertiesTheme(properties);
+               return theme;
+       }
+
        /**
         * Create a new {@link Label} with the colours of the given
         * {@link ColorOption}.
@@ -79,7 +129,7 @@ public class UiColors extends ColorBundle {
                if (!getInstance().colorMap.containsKey(el.name() + "_BG")) {
                        String value = null;
                        try {
-                               value = getInstance().map.getString(el.name() + "_BG");
+                               value = getInstance().bundle.getStringX(el, "BG");
                        } catch (MissingResourceException mre) {
                                value = null;
                        }
@@ -102,7 +152,7 @@ public class UiColors extends ColorBundle {
                if (!getInstance().colorMap.containsKey(el.name() + "_FG")) {
                        String value = null;
                        try {
-                               value = getInstance().map.getString(el.name() + "_FG");
+                               value = getInstance().bundle.getStringX(el, "FG");
                        } catch (MissingResourceException mre) {
                                value = null;
                        }
@@ -113,33 +163,6 @@ public class UiColors extends ColorBundle {
                return getInstance().colorMap.get(el.name() + "_FG");
        }
 
-       /**
-        * Return a {@link Theme} following the colours defined in
-        * display.properties.
-        * 
-        * @return the {@link Theme}
-        */
-       static Theme getCustomTheme() {
-               // Create a properties-theme with our own custom values for some of it
-               Properties properties = new Properties();
-               try {
-                       ClassLoader classLoader = AbstractTextGUI.class.getClassLoader();
-                       InputStream resourceAsStream = classLoader
-                                       .getResourceAsStream("default-theme.properties");
-                       if (resourceAsStream == null) {
-                               resourceAsStream = new FileInputStream(
-                                               "src/main/resources/default-theme.properties");
-                       }
-                       properties.load(resourceAsStream);
-                       resourceAsStream.close();
-               } catch (IOException e) {
-               }
-               properties.put("com.googlecode.lanterna.background", "black");
-               PropertiesTheme theme = new PropertiesTheme(properties);
-
-               return theme;
-       }
-
        /**
         * Get the (unique) instance of this class.
         *