Improve UI, take "dirty" check into account, move launcher to Main.java
[jvcard.git] / src / be / nikiroo / jvcard / tui / Main.java
diff --git a/src/be/nikiroo/jvcard/tui/Main.java b/src/be/nikiroo/jvcard/tui/Main.java
new file mode 100644 (file)
index 0000000..ab6849c
--- /dev/null
@@ -0,0 +1,105 @@
+package be.nikiroo.jvcard.tui;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
+
+import be.nikiroo.jvcard.Card;
+import be.nikiroo.jvcard.parsers.Format;
+import be.nikiroo.jvcard.tui.panes.ContactList;
+import be.nikiroo.jvcard.tui.panes.FileList;
+
+import com.googlecode.lanterna.TerminalSize;
+import com.googlecode.lanterna.TextColor;
+import com.googlecode.lanterna.gui2.BasicWindow;
+import com.googlecode.lanterna.gui2.Button;
+import com.googlecode.lanterna.gui2.DefaultWindowManager;
+import com.googlecode.lanterna.gui2.EmptySpace;
+import com.googlecode.lanterna.gui2.GridLayout;
+import com.googlecode.lanterna.gui2.Label;
+import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
+import com.googlecode.lanterna.gui2.Panel;
+import com.googlecode.lanterna.gui2.TextBox;
+import com.googlecode.lanterna.gui2.Window;
+import com.googlecode.lanterna.gui2.table.Table;
+import com.googlecode.lanterna.screen.Screen;
+import com.googlecode.lanterna.screen.TerminalScreen;
+import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
+import com.googlecode.lanterna.terminal.Terminal;
+
+public class Main {
+       public static final String APPLICATION_TITLE = "jVcard";
+       public static final String APPLICATION_VERSION = "0.9";
+
+       public static void main(String[] args) throws IOException {
+               Boolean textMode = null;
+               if (args.length > 0 && args[0].equals("--tui"))
+                       textMode = true;
+               if (args.length > 0 && args[0].equals("--gui"))
+                       textMode = false;
+
+               Window win = null;
+
+               // TODO: do not hardcode that:
+               Card card = new Card(new File("/home/niki/.addressbook"), Format.Abook);
+               win = new MainWindow(new ContactList(card));
+               //
+               List<File> files = new LinkedList<File>();
+               files.add(new File("/home/niki/vcf/coworkers.vcf"));
+               files.add(new File("/home/niki/vcf/oce.vcf"));
+               win = new MainWindow(new FileList(files));
+               //
+
+               TuiLauncher.start(textMode, win);
+
+               /*
+                * String file = args.length > 0 ? args[0] : null; String file2 =
+                * args.length > 1 ? args[1] : null;
+                * 
+                * if (file == null) file =
+                * "/home/niki/workspace/rcard/utils/CVcard/test.vcf"; if (file2 ==
+                * null) file2 = "/home/niki/workspace/rcard/utils/CVcard/test.abook";
+                * 
+                * Card card = new Card(new File(file), Format.VCard21);
+                * System.out.println(card.toString());
+                * 
+                * System.out.println("\n -- PINE -- \n");
+                * 
+                * card = new Card(new File(file2), Format.Abook);
+                * System.out.println(card.toString(Format.Abook));
+                */
+       }
+
+       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();
+       }
+}