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