ab6849c552de2dcf3085e9b0bbebfbb573ed9789
[jvcard.git] / src / be / nikiroo / jvcard / tui / Main.java
1 package be.nikiroo.jvcard.tui;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.LinkedList;
6 import java.util.List;
7
8 import be.nikiroo.jvcard.Card;
9 import be.nikiroo.jvcard.parsers.Format;
10 import be.nikiroo.jvcard.tui.panes.ContactList;
11 import be.nikiroo.jvcard.tui.panes.FileList;
12
13 import com.googlecode.lanterna.TerminalSize;
14 import com.googlecode.lanterna.TextColor;
15 import com.googlecode.lanterna.gui2.BasicWindow;
16 import com.googlecode.lanterna.gui2.Button;
17 import com.googlecode.lanterna.gui2.DefaultWindowManager;
18 import com.googlecode.lanterna.gui2.EmptySpace;
19 import com.googlecode.lanterna.gui2.GridLayout;
20 import com.googlecode.lanterna.gui2.Label;
21 import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
22 import com.googlecode.lanterna.gui2.Panel;
23 import com.googlecode.lanterna.gui2.TextBox;
24 import com.googlecode.lanterna.gui2.Window;
25 import com.googlecode.lanterna.gui2.table.Table;
26 import com.googlecode.lanterna.screen.Screen;
27 import com.googlecode.lanterna.screen.TerminalScreen;
28 import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
29 import com.googlecode.lanterna.terminal.Terminal;
30
31 public class Main {
32 public static final String APPLICATION_TITLE = "jVcard";
33 public static final String APPLICATION_VERSION = "0.9";
34
35 public static void main(String[] args) throws IOException {
36 Boolean textMode = null;
37 if (args.length > 0 && args[0].equals("--tui"))
38 textMode = true;
39 if (args.length > 0 && args[0].equals("--gui"))
40 textMode = false;
41
42 Window win = null;
43
44 // TODO: do not hardcode that:
45 Card card = new Card(new File("/home/niki/.addressbook"), Format.Abook);
46 win = new MainWindow(new ContactList(card));
47 //
48 List<File> files = new LinkedList<File>();
49 files.add(new File("/home/niki/vcf/coworkers.vcf"));
50 files.add(new File("/home/niki/vcf/oce.vcf"));
51 win = new MainWindow(new FileList(files));
52 //
53
54 TuiLauncher.start(textMode, win);
55
56 /*
57 * String file = args.length > 0 ? args[0] : null; String file2 =
58 * args.length > 1 ? args[1] : null;
59 *
60 * if (file == null) file =
61 * "/home/niki/workspace/rcard/utils/CVcard/test.vcf"; if (file2 ==
62 * null) file2 = "/home/niki/workspace/rcard/utils/CVcard/test.abook";
63 *
64 * Card card = new Card(new File(file), Format.VCard21);
65 * System.out.println(card.toString());
66 *
67 * System.out.println("\n -- PINE -- \n");
68 *
69 * card = new Card(new File(file2), Format.Abook);
70 * System.out.println(card.toString(Format.Abook));
71 */
72 }
73
74 static private void fullTestTable() throws IOException {
75 final Table<String> table = new Table<String>("Column 1", "Column 2",
76 "Column 3");
77 table.getTableModel().addRow("1", "2", "3");
78 table.setSelectAction(new Runnable() {
79 @Override
80 public void run() {
81 List<String> data = table.getTableModel().getRow(
82 table.getSelectedRow());
83 for (int i = 0; i < data.size(); i++) {
84 System.out.println(data.get(i));
85 }
86 }
87 });
88
89 Window win = new BasicWindow();
90 win.setComponent(table);
91
92 DefaultTerminalFactory factory = new DefaultTerminalFactory();
93 Terminal terminal = factory.createTerminal();
94
95 Screen screen = new TerminalScreen(terminal);
96 screen.startScreen();
97
98 // Create gui and start gui
99 MultiWindowTextGUI gui = new MultiWindowTextGUI(screen,
100 new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE));
101 gui.addWindowAndWait(win);
102
103 screen.stopScreen();
104 }
105 }