Version 2.0.0: update sources
[jvcard.git] / src / be / nikiroo / jvcard / tui / MainWindow.java
index d7cb80d8b2e624ad2b6453914c0ff13a1e878b1f..39560a4c7a57d7ea766f47df05cb9a81abaed1ce 100644 (file)
@@ -7,14 +7,15 @@ import java.util.LinkedList;
 import java.util.List;
 
 import be.nikiroo.jvcard.launcher.Main;
-import be.nikiroo.jvcard.resources.StringUtils;
-import be.nikiroo.jvcard.resources.Trans.StringId;
+import be.nikiroo.jvcard.resources.ColorOption;
+import be.nikiroo.jvcard.resources.StringId;
 import be.nikiroo.jvcard.tui.KeyAction.Mode;
-import be.nikiroo.jvcard.tui.UiColors.Element;
 import be.nikiroo.jvcard.tui.panes.ContactDetails;
 import be.nikiroo.jvcard.tui.panes.ContactDetailsRaw;
 import be.nikiroo.jvcard.tui.panes.ContactList;
 import be.nikiroo.jvcard.tui.panes.MainContent;
+import be.nikiroo.utils.StringUtils;
+import be.nikiroo.utils.Version;
 
 import com.googlecode.lanterna.TerminalSize;
 import com.googlecode.lanterna.gui2.BasicWindow;
@@ -54,7 +55,7 @@ public class MainWindow extends BasicWindow {
         * Information about a question to ask the user and its answer.
         * 
         * @author niki
-        *
+        * 
         */
        private class UserQuestion {
                private boolean oneKeyAnswer;
@@ -251,9 +252,9 @@ public class MainWindow extends BasicWindow {
                if (mess != null || messagePanel.getChildCount() > 0) {
                        messagePanel.removeAllComponents();
                        if (mess != null) {
-                               Element element = (error ? UiColors.Element.LINE_MESSAGE_ERR
-                                               : UiColors.Element.LINE_MESSAGE);
-                               Label lbl = element.createLabel(" " + mess + " ");
+                               ColorOption element = (error ? ColorOption.LINE_MESSAGE_ERR
+                                               : ColorOption.LINE_MESSAGE);
+                               Label lbl = UiColors.createLabel(element, " " + mess + " ");
                                messagePanel.addComponent(lbl, LinearLayout
                                                .createLayoutData(LinearLayout.Alignment.Center));
                        }
@@ -318,7 +319,7 @@ public class MainWindow extends BasicWindow {
                llayout.setSpacing(0);
                hpanel.setLayoutManager(llayout);
 
-               Label lbl = UiColors.Element.LINE_MESSAGE_QUESTION.createLabel(" "
+               Label lbl = UiColors.createLabel(ColorOption.LINE_MESSAGE_QUESTION, " "
                                + question + " ");
                text = new TextBox(new TerminalSize(getSize().getColumns()
                                - lbl.getSize().getColumns(), 1));
@@ -404,7 +405,7 @@ public class MainWindow extends BasicWindow {
         */
        private void setTitle() {
                String prefix = " " + Main.APPLICATION_TITLE + " (version "
-                               + Main.APPLICATION_VERSION + ")";
+                               + Version.getCurrentVersion() + ")";
 
                String title = null;
                int count = -1;
@@ -451,18 +452,18 @@ public class MainWindow extends BasicWindow {
                        super.setTitle(prefix);
 
                        Label lblPrefix = new Label(prefix);
-                       UiColors.Element.TITLE_MAIN.themeLabel(lblPrefix);
+                       UiColors.themeLabel(ColorOption.TITLE_MAIN, lblPrefix);
 
                        Label lblTitle = null;
                        if (title.length() > 0) {
                                lblTitle = new Label(title);
-                               UiColors.Element.TITLE_VARIABLE.themeLabel(lblTitle);
+                               UiColors.themeLabel(ColorOption.TITLE_VARIABLE, lblTitle);
                        }
 
                        Label lblCount = null;
                        if (countStr != null) {
                                lblCount = new Label(countStr);
-                               UiColors.Element.TITLE_COUNT.themeLabel(lblCount);
+                               UiColors.themeLabel(ColorOption.TITLE_COUNT, lblCount);
                        }
 
                        titlePanel.removeAllComponents();
@@ -520,9 +521,10 @@ public class MainWindow extends BasicWindow {
                        layout.setSpacing(0);
                        kPane.setLayoutManager(layout);
 
-                       kPane.addComponent(UiColors.Element.ACTION_KEY
-                                       .createLabel(keyTrans));
-                       kPane.addComponent(UiColors.Element.ACTION_DESC.createLabel(trans));
+                       kPane.addComponent(UiColors.createLabel(ColorOption.ACTION_KEY,
+                                       keyTrans));
+                       kPane.addComponent(UiColors.createLabel(ColorOption.ACTION_DESC,
+                                       trans));
 
                        actionPanel.addComponent(kPane);
                }
@@ -534,8 +536,8 @@ public class MainWindow extends BasicWindow {
                }
 
                if (width > 0) {
-                       actionPanel.addComponent(UiColors.Element.ACTION_DESC
-                                       .createLabel(StringUtils.padString("", width)));
+                       actionPanel.addComponent(UiColors.createLabel(
+                                       ColorOption.ACTION_DESC, StringUtils.padString("", width)));
                }
        }
 
@@ -604,8 +606,6 @@ public class MainWindow extends BasicWindow {
         * 
         * @param key
         *            the key that was pressed
-        * @param answer
-        *            the answer given for this key
         * 
         * @return if the window handled the input
         */
@@ -627,7 +627,7 @@ public class MainWindow extends BasicWindow {
                                setMessage(mess, action.isError());
                        }
 
-                       if (action.onAction()) {
+                       if (!action.isError() && action.onAction()) {
                                handleAction(action, null);
                        }
 
@@ -640,12 +640,11 @@ public class MainWindow extends BasicWindow {
        /**
         * Handle the input in case of "normal" (not "ask for answer") mode.
         * 
-        * @param key
-        *            the key that was pressed
+        * @param action
+        *            the key that was pressed and the action to take
         * @param answer
         *            the answer given for this key
         * 
-        * @return if the window handled the input
         */
        private void handleAction(KeyAction action, String answer) {
                MainContent content = getContent();