Resources: now allow "--config" and external .properties files
[jvcard.git] / src / be / nikiroo / jvcard / tui / Main.java
index eda0c69407059a7a200fa4e43d6dce2186eeae4e..6f12a2b7dba4c161daa1f6a029ea89c070ee9522 100644 (file)
@@ -9,20 +9,11 @@ import java.util.List;
 
 import be.nikiroo.jvcard.i18n.Trans;
 import be.nikiroo.jvcard.i18n.Trans.StringId;
+import be.nikiroo.jvcard.resources.Bundles;
 import be.nikiroo.jvcard.tui.panes.FileList;
 
-import com.googlecode.lanterna.TextColor;
-import com.googlecode.lanterna.gui2.BasicWindow;
-import com.googlecode.lanterna.gui2.DefaultWindowManager;
-import com.googlecode.lanterna.gui2.EmptySpace;
-import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
 import com.googlecode.lanterna.gui2.Window;
-import com.googlecode.lanterna.gui2.table.Table;
 import com.googlecode.lanterna.input.KeyStroke;
-import com.googlecode.lanterna.screen.Screen;
-import com.googlecode.lanterna.screen.TerminalScreen;
-import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
-import com.googlecode.lanterna.terminal.Terminal;
 
 /**
  * This class contains the runnable Main method. It will parse the user supplied
@@ -72,7 +63,8 @@ public class Main {
         * Start the application.
         * 
         * @param args
-        *            the parameters (see --help to know hich are supported)
+        *            the parameters (see <tt>--help</tt> to know which are
+        *            supported)
         */
        public static void main(String[] args) {
                Boolean textMode = null;
@@ -82,9 +74,9 @@ public class Main {
                // get the "system default" language to help translate the --help
                // message if needed
                String language = null;
-               transService = new Trans(null);
+               transService = new Trans(language);
 
-               List<File> files = new LinkedList<File>();
+               List<String> files = new LinkedList<String>();
                for (int index = 0; index < args.length; index++) {
                        String arg = args[index];
                        if (!noMoreParams && arg.equals("--")) {
@@ -99,9 +91,9 @@ public class Main {
                                                                + "\t--tui: force pure text mode even if swing treminal is available\n"
                                                                + "\t--gui: force swing terminal mode\n"
                                                                + "\t--noutf: force non-utf8 mode if you need it\n"
-                                                               + "\t--noutfa: force non-utf8 and no accents mode if you need it\n"
+                                                               + "\t--config DIRECTORY: force the given directory as a CONFIG_DIR\n"
                                                                + "everyhing else is either a file to open or a directory to open\n"
-                                                               + "(we will only open 1st level files in given directories)");
+                                                               + "(we will only open 1st level files in given directories)\n");
                                return;
                        } else if (!noMoreParams && arg.equals("--tui")) {
                                textMode = true;
@@ -114,6 +106,12 @@ public class Main {
                                if (index < args.length)
                                        language = args[index];
                                transService = new Trans(language);
+                       } else if (!noMoreParams && arg.equals("--config")) {
+                               index++;
+                               if (index < args.length) {
+                                       Bundles.setDirectory(args[index]);
+                                       transService = new Trans(language);
+                               }
                        } else {
                                filesTried = true;
                                files.addAll(open(arg));
@@ -152,18 +150,18 @@ public class Main {
         * 
         * @return the list of opened files
         */
-       static private List<File> open(String path) {
-               List<File> files = new LinkedList<File>();
+       static private List<String> open(String path) {
+               List<String> files = new LinkedList<String>();
 
                File file = new File(path);
                if (file.exists()) {
                        if (file.isDirectory()) {
                                for (File subfile : file.listFiles()) {
                                        if (!subfile.isDirectory())
-                                               files.add(subfile);
+                                               files.add(subfile.getAbsolutePath());
                                }
                        } else {
-                               files.add(file);
+                               files.add(file.getAbsolutePath());
                        }
                } else {
                        System.err.println("File or directory not found: \"" + path + "\"");
@@ -181,40 +179,10 @@ public class Main {
                        Field charset = Charset.class.getDeclaredField("defaultCharset");
                        charset.setAccessible(true);
                        charset.set(null, null);
-               } catch (SecurityException | NoSuchFieldException
-                               | IllegalArgumentException | IllegalAccessException e) {
+               } catch (SecurityException e) {
+               } catch (NoSuchFieldException e) {
+               } catch (IllegalArgumentException e) {
+               } catch (IllegalAccessException e) {
                }
        }
-
-       static private void fullTestTable() throws IOException {
-               final Table<String> table = new Table<String>("Column 1", "Column 2",
-                               "Column 3");
-               table.getTableModel().addRow("1", "2", "3");
-               table.setSelectAction(new Runnable() {
-                       @Override
-                       public void run() {
-                               List<String> data = table.getTableModel().getRow(
-                                               table.getSelectedRow());
-                               for (int i = 0; i < data.size(); i++) {
-                                       System.out.println(data.get(i));
-                               }
-                       }
-               });
-
-               Window win = new BasicWindow();
-               win.setComponent(table);
-
-               DefaultTerminalFactory factory = new DefaultTerminalFactory();
-               Terminal terminal = factory.createTerminal();
-
-               Screen screen = new TerminalScreen(terminal);
-               screen.startScreen();
-
-               // Create gui and start gui
-               MultiWindowTextGUI gui = new MultiWindowTextGUI(screen,
-                               new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE));
-               gui.addWindowAndWait(win);
-
-               screen.stopScreen();
-       }
 }