Commit | Line | Data |
---|---|---|
7d4115a5 KL |
1 | Jexer - Java Text User Interface library |
2 | ======================================== | |
3 | ||
4 | This library is currently in design, but when finished it is intended | |
5 | to implement a text-based windowing system loosely reminiscient of | |
6 | Borland's [Turbo Vision](http://en.wikipedia.org/wiki/Turbo_Vision) | |
7 | library. For those wishing to use the actual C++ Turbo Vision | |
8 | library, see [Sergio Sigala's updated | |
9 | version](http://tvision.sourceforge.net/) that runs on many more | |
10 | platforms. | |
11 | ||
12 | ||
13 | License | |
14 | ------- | |
15 | ||
16 | This library is licensed LGPL ("GNU Lesser General Public License") | |
17 | version 3 or greater. See the file LICENSE for the full license text, | |
18 | which includes both the GPL v3 and the LGPL supplemental terms. | |
19 | ||
20 | ||
21 | Usage | |
22 | ----- | |
23 | ||
24 | The library is currently under initial development, usage patterns are | |
25 | still being worked on. Generally the goal will be to build | |
26 | applications somewhat as follows: | |
27 | ||
28 | ```Java | |
29 | import jexer.*; | |
30 | ||
31 | public class MyApplication extends TApplication { | |
32 | ||
33 | public MyApplication() { | |
05dbb28d | 34 | super(); |
7d4115a5 | 35 | |
05dbb28d KL |
36 | // Create an editor window that has support for |
37 | // copy/paste, search text, arrow keys, horizontal | |
38 | // and vertical scrollbar, etc. | |
39 | addEditor(); | |
7d4115a5 | 40 | |
05dbb28d KL |
41 | // Create standard menus for File and Window |
42 | addFileMenu(); | |
43 | addWindowMenu(); | |
7d4115a5 KL |
44 | } |
45 | ||
46 | public static void main(String [] args) { | |
05dbb28d KL |
47 | MyApplication app = new MyApplication(); |
48 | app.run(); | |
7d4115a5 KL |
49 | } |
50 | } | |
51 | ``` | |
52 | ||
53 | ||
54 | Roadmap | |
55 | ------- | |
56 | ||
57 | This is a work in progress. Many tasks remain before calling this | |
58 | version 1.0: | |
59 | ||
60 | 0.0.1: | |
61 | ||
62 | - Base classes: | |
9edb442b KL |
63 | - TWidget |
64 | - TWindow | |
65 | - package-info's | |
05dbb28d | 66 | - Incorporate checkstyle ant task |
9edb442b | 67 | - Fix all noted issues except use of tabs |
7d4115a5 KL |
68 | |
69 | 0.0.2: | |
70 | ||
9edb442b KL |
71 | - Get modal messagebox running without fibers (use two reader threads |
72 | with syncronization, don't bother with coroutines) | |
7d4115a5 KL |
73 | - Port remaining d-tui functionality over |
74 | - All widgets | |
75 | ||
76 | 0.0.3: | |
77 | ||
9edb442b KL |
78 | - TEditor, fixup keyboard movement |
79 | ||
80 | 0.0.4: | |
81 | ||
7d4115a5 KL |
82 | - ECMATerminal |
83 | - Mouse 1006 mode parsing | |
7d4115a5 KL |
84 | - Bugs |
85 | - TDirectoryList cannot be navigated only with keyboard | |
86 | - TTreeView cannot be navigated only with keyboard | |
87 | - RangeViolation after dragging scrollbar up/down | |
88 | ||
89 | Wishlist features (2.0): | |
90 | ||
91 | - TTerminal | |
92 | - Handle resize events (pass to child process) | |
93 | - xterm mouse handling | |
94 | - TWindow | |
95 | - "Smart placement" for new windows | |
96 | - Screen | |
97 | - Allow complex characters in putCharXY() and detect them in putStrXY(). | |
98 | - TComboBox | |
99 | - TListBox | |
100 | - TSpinner | |
101 | - TCalendar widget | |
102 | - TColorPicker widget | |
103 | - Drag and drop | |
104 | - TEditor | |
105 | - TField | |
106 | - TText | |
107 | - TTerminal | |
108 | - TComboBox | |
109 | - AWTBackend |