Refresh data on "Back", allow configuration of View + border
[jvcard.git] / src / be / nikiroo / jvcard / tui / UiColors.java
index a646dbead669ed9dafaf3f549b0eee783eb7f0e5..0a4696888e5e37278f07443da336690d0ce10038 100644 (file)
@@ -2,6 +2,7 @@ package be.nikiroo.jvcard.tui;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 
 import be.nikiroo.jvcard.resources.Bundles;
@@ -21,7 +22,6 @@ public class UiColors {
 
        private ResourceBundle bundle = null;
        private Map<String, TextColor> colorMap = null;
-       private boolean utf = true;
 
        private UiColors() {
                colorMap = new HashMap<String, TextColor>();
@@ -41,7 +41,7 @@ public class UiColors {
                ACTION_KEY, ACTION_DESC, //
                LINE_MESSAGE, LINE_MESSAGE_ERR, LINE_MESSAGE_QUESTION, LINE_MESSAGE_ANS, //
                CONTACT_LINE, CONTACT_LINE_SEPARATOR, CONTACT_LINE_SELECTED, CONTACT_LINE_SEPARATOR_SELECTED, CONTACT_LINE_DIRTY, CONTACT_LINE_DIRTY_SELECTED, //
-               VIEW_CONTACT_NAME, VIEW_CONTACT_NORMAL, VIEW_CONTACT_NOTES_TITLE, //
+               VIEW_CONTACT_NAME, VIEW_CONTACT_NORMAL, VIEW_CONTACT_HIGHLIGHT, VIEW_CONTACT_NOTES_TITLE, //
                ;
 
                /**
@@ -85,25 +85,6 @@ public class UiColors {
                }
        }
 
-       /**
-        * Check if unicode characters should be used.
-        * 
-        * @return TRUE to allow unicode
-        */
-       public boolean isUnicode() {
-               return utf;
-       }
-
-       /**
-        * Allow or disallow unicode characters in the program.
-        * 
-        * @param utf
-        *            TRUE to allow unuciode, FALSE to only allow ASCII characters
-        */
-       public void setUnicode(boolean utf) {
-               this.utf = utf;
-       }
-
        /**
         * Create a new {@link Label} with the colours of the given {@link Element}.
         * 
@@ -146,7 +127,12 @@ public class UiColors {
         */
        private TextColor getBackgroundColor(Element el) {
                if (!colorMap.containsKey(el.name() + "_BG")) {
-                       String value = bundle.getString(el.name() + "_BG");
+                       String value = null;
+                       try {
+                               value = bundle.getString(el.name() + "_BG");
+                       } catch (MissingResourceException mre) {
+                               value = null;
+                       }
                        colorMap.put(el.name() + "_BG",
                                        convertToColor(value, TextColor.ANSI.BLACK));
                }
@@ -164,7 +150,12 @@ public class UiColors {
         */
        private TextColor getForegroundColor(Element el) {
                if (!colorMap.containsKey(el.name() + "_FG")) {
-                       String value = bundle.getString(el.name() + "_FG");
+                       String value = null;
+                       try {
+                               value = bundle.getString(el.name() + "_FG");
+                       } catch (MissingResourceException mre) {
+                               value = null;
+                       }
                        colorMap.put(el.name() + "_FG",
                                        convertToColor(value, TextColor.ANSI.WHITE));
                }
@@ -209,6 +200,8 @@ public class UiColors {
                                int g = Integer.parseInt(value.substring(3, 5), 16);
                                int b = Integer.parseInt(value.substring(5, 7), 16);
                                return new TextColor.RGB(r, g, b);
+                       } else if (value.replaceAll("[0-9]*", "").length() == 0) {
+                               return new TextColor.Indexed(Integer.parseInt(value));
                        } else {
                                return TextColor.ANSI.valueOf(value);
                        }