Instance: use getInstance()
[nikiroo-utils.git] / src / be / nikiroo / fanfix / reader / tui / TuiReaderApplication.java
index 6f7ed3cbddc61f003d286ce231c0b4d0daeb41d0..f85f12fdb865ec1aaa25540a5cf131d6c6b0e910 100644 (file)
@@ -37,15 +37,19 @@ import be.nikiroo.utils.Progress;
  * @author niki
  */
 class TuiReaderApplication extends TApplication implements Reader {
-       public static final int MENU_OPEN = 1025;
-       public static final int MENU_IMPORT_URL = 1026;
-       public static final int MENU_IMPORT_FILE = 1027;
-       public static final int MENU_EXPORT = 1028;
-       public static final int MENU_DELETE = 1029;
-       public static final int MENU_LIBRARY = 1030;
-       public static final int MENU_EXIT = 1031;
-
-       public static final TCommand CMD_EXIT = new TCommand(MENU_EXIT) {
+       public static final int MENU_FILE_OPEN = 1025;
+       public static final int MENU_FILE_IMPORT_URL = 1026;
+       public static final int MENU_FILE_IMPORT_FILE = 1027;
+       public static final int MENU_FILE_EXPORT = 1028;
+       public static final int MENU_FILE_DELETE = 1029;
+       public static final int MENU_FILE_LIBRARY = 1030;
+       public static final int MENU_FILE_EXIT = 1031;
+       //
+       public static final int MENU_OPT_FANFIX = 1032;
+       public static final int MENU_OPT_TUI = 1033;
+       
+
+       public static final TCommand CMD_EXIT = new TCommand(MENU_FILE_EXIT) {
        };
 
        private Reader reader;
@@ -66,7 +70,7 @@ class TuiReaderApplication extends TApplication implements Reader {
                        TApplication.BackendType backend) throws Exception {
                super(backend);
                init(reader);
-
+               
                showMain();
                main.setMode(Mode.SOURCE, source);
        }
@@ -82,7 +86,7 @@ class TuiReaderApplication extends TApplication implements Reader {
        }
 
        @Override
-       public Story getStory(Progress pg) {
+       public Story getStory(Progress pg) throws IOException {
                return reader.getStory(pg);
        }
 
@@ -113,7 +117,11 @@ class TuiReaderApplication extends TApplication implements Reader {
 
        @Override
        public void browse(String source) {
-               reader.browse(source);
+               try {
+                       reader.browse(source);
+               } catch (IOException e) {
+                       Instance.getInstance().getTraceHandler().error(e);
+               }
        }
 
        @Override
@@ -211,24 +219,29 @@ class TuiReaderApplication extends TApplication implements Reader {
                this.reader = reader;
 
                // TODO: traces/errors?
-               Instance.setTraceHandler(null);
+               Instance.getInstance().setTraceHandler(null);
 
                // Add the menus TODO: i18n
                TMenu fileMenu = addMenu("&File");
-               fileMenu.addItem(MENU_OPEN, "&Open...");
-               fileMenu.addItem(MENU_EXPORT, "&Save as...");
-               fileMenu.addItem(MENU_DELETE, "&Delete...");
+               fileMenu.addItem(MENU_FILE_OPEN, "&Open...");
+               fileMenu.addItem(MENU_FILE_EXPORT, "&Save as...");
+               fileMenu.addItem(MENU_FILE_DELETE, "&Delete...");
                // TODO: Move to...
                fileMenu.addSeparator();
-               fileMenu.addItem(MENU_IMPORT_URL, "Import &URL...");
-               fileMenu.addItem(MENU_IMPORT_FILE, "Import &file...");
+               fileMenu.addItem(MENU_FILE_IMPORT_URL, "Import &URL...");
+               fileMenu.addItem(MENU_FILE_IMPORT_FILE, "Import &file...");
                fileMenu.addSeparator();
-               fileMenu.addItem(MENU_LIBRARY, "Lib&rary");
+               fileMenu.addItem(MENU_FILE_LIBRARY, "Lib&rary");
                fileMenu.addSeparator();
-               fileMenu.addItem(MENU_EXIT, "E&xit");
+               fileMenu.addItem(MENU_FILE_EXIT, "E&xit");
+               
+               TMenu OptionsMenu = addMenu("&Options");
+               OptionsMenu.addItem(MENU_OPT_FANFIX, "&Fanfix Configuration");
+               OptionsMenu.addItem(MENU_OPT_TUI, "&UI Configuration");
 
                setStatusBar(fileMenu, "File-management "
                                + "commands (Open, Save, Print, etc.)");
+               
 
                // TODO: Edit: re-download, delete
 
@@ -252,10 +265,10 @@ class TuiReaderApplication extends TApplication implements Reader {
        protected boolean onMenu(TMenuEvent menu) {
                // TODO: i18n
                switch (menu.getId()) {
-               case MENU_EXIT:
+               case MENU_FILE_EXIT:
                        close(this);
                        return true;
-               case MENU_OPEN:
+               case MENU_FILE_OPEN:
                        String openfile = null;
                        try {
                                openfile = fileOpenBox(".");
@@ -269,7 +282,7 @@ class TuiReaderApplication extends TApplication implements Reader {
                        }
 
                        return true;
-               case MENU_DELETE:
+               case MENU_FILE_DELETE:
                        String luid = null;
                        String story = null;
                        MetaData meta = null;
@@ -298,7 +311,7 @@ class TuiReaderApplication extends TApplication implements Reader {
                        }
 
                        return true;
-               case MENU_IMPORT_URL:
+               case MENU_FILE_IMPORT_URL:
                        String clipboard = "";
                        try {
                                clipboard = ("" + Toolkit.getDefaultToolkit()
@@ -326,7 +339,7 @@ class TuiReaderApplication extends TApplication implements Reader {
                        }
 
                        return true;
-               case MENU_IMPORT_FILE:
+               case MENU_FILE_IMPORT_FILE:
                        String filename = null;
                        try {
                                filename = fileOpenBox(".");
@@ -341,9 +354,18 @@ class TuiReaderApplication extends TApplication implements Reader {
                                                "Import error", e);
                        }
                        return true;
-               case MENU_LIBRARY:
+               case MENU_FILE_LIBRARY:
                        showMain();
                        return true;
+                       
+               case MENU_OPT_FANFIX:
+                       new TuiReaderOptionWindow(this, false).maximize();
+                       return true;
+               
+               case MENU_OPT_TUI:
+                       new TuiReaderOptionWindow(this, true).maximize();
+                       return true;
+                       
                }
 
                return super.onMenu(menu);
@@ -401,9 +423,9 @@ class TuiReaderApplication extends TApplication implements Reader {
         *            the exception to log if any (can be NULL)
         */
        private void error(String message, String title, Exception e) {
-               Instance.getTraceHandler().error(title + ": " + message);
+               Instance.getInstance().getTraceHandler().error(title + ": " + message);
                if (e != null) {
-                       Instance.getTraceHandler().error(e);
+                       Instance.getInstance().getTraceHandler().error(e);
                }
 
                if (e != null) {