import java.util.HashMap;
import java.util.Map;
+import java.util.MissingResourceException;
import java.util.ResourceBundle;
import be.nikiroo.jvcard.resources.Bundles;
private ResourceBundle bundle = null;
private Map<String, TextColor> colorMap = null;
- private boolean utf = true;
private UiColors() {
colorMap = new HashMap<String, TextColor>();
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, //
;
/**
}
}
- /**
- * 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}.
*
*/
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));
}
*/
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));
}
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);
}