File: Download.html

package info (click to toggle)
charva 1.1.4-4
  • links: PTS, VCS
  • area: main
  • in suites: lenny, squeeze
  • size: 2,000 kB
  • ctags: 2,822
  • sloc: java: 14,435; ansic: 613; xml: 109; sh: 36; makefile: 22
file content (412 lines) | stat: -rw-r--r-- 14,865 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
    <title>CHARVA: A Java Windowing Toolkit for Text Terminals</title>
    <meta name="keywords" content="java, text, terminal, user, interface, VT100, curses, ncurses">
    <style type="text/css">
        <!--
        body {
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 12px;
        }

        table {
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 12px;
        }

        #contentpanel {
        20 px;
            border-style: solid;
            border-color: silver;
            border-width: 1px;
            padding: 0;
        }

        .question {
            background-color: #A4FFFF;
            border-style: solid;
            border-color: silver;
            border-top-width: 1px;
            border-bottom-width: 1px;
            border-left-width: 0px;
            border-right-width: 0px;
        }

        .answer {
            padding-left: 20px;
        }

        .menuButtonSelected {
            PADDING-LEFT: 15px;
            FONT-SIZE: 8pt;
            CURSOR: pointer;
            COLOR: white;
            FONT-FAMILY: Arial;
            BACKGROUND-COLOR: #6484d7;
            TEXT-ALIGN: left
        }

        .menuButton {
            PADDING-LEFT: 15px;
            FONT-SIZE: 8pt;
            CURSOR: pointer;
            COLOR: white;
            FONT-FAMILY: Arial;
            BACKGROUND-COLOR: #284a7d;
            TEXT-ALIGN: left;
            TEXT-DECORATION: none
        }

        -->
    </style>
</head>

<body>
<h1 align=center>A Java Windowing Toolkit for Text Terminals</h1>
<table border=0 width="100%" cellspacing="5">
<tr>

<!-- Start of left (navigation) panel -->
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>
<table width="160" border="0" cellspacing="1">
<tr bgcolor="#008000">
    <td style="padding: 5px"><font color="#FFFFFF" size="4">Menu</font></td>
</tr>
<tr><td
        class=menuButton id=0
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='index.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Introduction </td></tr>

<tr><td
        class=menuButton id=1
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Features.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Features </td></tr>

<tr><td
        class=menuButton id=2
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Status.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Status </td></tr>

<tr><td
        class=menuButton id=3
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='FAQ.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> FAQ </td></tr>

<tr><td
        class=menuButton id=4
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Licence.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Licence </td></tr>

<tr><td
        class=menuButton id=5
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Screenshots.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Screenshots </td></tr>

<tr><td
        class=menuButton id=6
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Documentation.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Documentation </td></tr>

<tr><td
        class=menuButton id=7
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Download.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Download </td></tr>

<tr><td
        class=menuButton id=8
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Applications.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Applications </td></tr>

<tr><td
        class=menuButton id=9
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Support.html';"
        onmouseout="this.className='menuButton';"
        height=18
        nowrap> Support </td></tr>

<tr><td
        class=menuButton id=10
        onmouseover="this.className='menuButtonSelected';"
        onclick="top.location='Contribute.html';"
        onmouseout="this.className='menuButton';"
        height="18"
        nowrap> Contribute </td></tr>
<!-- End of navigation panel -->

<tr><td height="10"></td></tr> <!-- Separator -->

<tr>
    <td bgcolor="#008000" style="padding: 5px"><font color="#FFFFFF" size="4">Quick Info</font></td>
</tr>

<tr><td>
    <table summary="quick info" cellspacing="0" cellpadding="0" border="0">

        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Operating System: <a href="http://www.linux.org">Linux</a></td>
        </tr>
        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Language: <a href="http://java.sun.com">Java</a>, C</td>
        </tr>
        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Licence: <a href="http://www.gnu.org">GNU</a></td>
        </tr>
        <tr style="font-size: 8pt">
            <td nowrap="nowrap">Author: <a href="http://www.pitman.co.za">Rob Pitman</a></td>
        </tr>
    </table>
    <!-- End of Quick Info -->
</td></tr>

</table>
</td></tr>
<tr><td height="10"></td></tr> <!-- Separator -->
<tr><td>
    <table cellpadding="0" cellspacing="0">

        <tr><td>
            <script type="text/javascript"><!--
    google_ad_client = "pub-1886875109433545";
    google_ad_width = 160;
    google_ad_height = 600;
    google_ad_format = "160x600_as";
    google_ad_type = "text";
    google_ad_channel ="";
    google_color_border = "336699";
    google_color_bg = "FFFFFF";
    google_color_link = "0000FF";
    google_color_url = "008000";
    google_color_text = "000000";
    //--></script>
            <script type="text/javascript"
                    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>

        </td></tr>
    </table>
</td></tr>
</table>
</td> <!-- End of left (navigation) panel -->

<!-- Start of right (content) panel -->
<td valign="top" width="100%">
<table border="0" cellpadding="10" cellspacing="0" id="contentpanel">
<tr>
    <td bgcolor="#B6C0FF"><font size="+1">Download and Installation</font></td>
</tr>

<tr>
<td>
<ol>
    <li>Download the latest zipfile from
        <a href="http://sourceforge.net/projects/charva">http://sourceforge.net/projects/charva</a>.<p>
    </li>
    <li> Change to a suitable directory (<code>$HOME/work</code>, say) and extract the
        contents using the command:<p>
        <pre>
            unzip charva-x.y.z.zip
        </pre>

        <p> This will create a directory tree called "charva" in the current directory.
            Set the environment variable CHARVA_HOME to the full pathname of this new
            directory.</p></li>

    <li><p>Set the environment variable JAVA_HOME to the name of your JDK installation
        directory, for example:</p>
        <pre>
            export JAVA_HOME=/usr/local/jdk1.4.2
        </pre></li>

    <li>At this stage, if you have JDK1.3, JDK1.4 or JDK1.5 installed, you can run the test program as
        described in step 8 below (precompiled libraries for Linux, compiled with J2SDK1.4.2, are included in the
        download package, as <code>$CHARVA_HOME/c/lib/libTerminal.so</code>
        and <code>$CHARVA_HOME/java/dist/lib/charva.jar</code>).
        I have tested Charva with RedHat Linux 7, 8 and 9, Fedora 3 and 4, CentOS 4, Windows 98, Windows 2000,
        and Windows XP. Others have ported Charva to various other flavors of Unix. If you are running some other
        version of Unix or have a different version of the JDK,
        you will have to build the libraries and the test program as described in the following steps.
        Operating-system-specific Makefiles are provided in the <code>$CHARVA_HOME/c/src</code>
        directory. The required DLL for Windows is provided in the <code>$CHARVA_HOME/c/lib</code> directory.

        <p></li>

    <li><p>Make sure you have <a href="http://ant.apache.org">Apache Ant</a> installed.
        Instructions for setting up Ant are available on its website.</p></li>

    <li>Compile the Java classes, generate the JNI header file, and compile the
        "tutorial" program with the following commands:
        <pre>
            cd $CHARVA_HOME
            ant compile
            ant javah
            ant compile-test
        </pre>
    </li>

    <li><p>Build the JNI (Java Native Interface) library <code>libTerminal.so</code>
        by entering the following commands (you need to have the
        <code>ncurses-devel</code> RPM, i.e. the ncurses header files, installed
        for this step to work):</p>
        <pre>
            ant makeDLL
        </pre>

        (This has been tested on Linux: if it doesn't work for you, you can generate the
        shared library "manually" with the following commands):

        <pre>
            cd $CHARVA_HOME/c/src
            make -f <i>os-specific-makefile</i></pre>

        <p></li>

    <li><a name="run_test">Run the tutorial program</a> by entering the following commands:<p>
        <pre>
            cd $CHARVA_HOME
            sh test.sh</pre>

        <p>(If you are running Windows, use <code>wintest.bat</code> instead). Two different versions (a Swing version
            and a CHARVA version) of the tutorial program are provided in the tarball. The source code of the two
            programs is almost identical; they differ in only a few lines. To run the Swing version instead of the
            Charva version, type <code>"sh test.sh swing"</code> instead. Note that this program uses the standard Java
            Swing GUI, and therefore your X display must be up and running for this program to work.</p>
    </li>
</ol>

Note that the input/output device of any Charva program can be:
<ul>
    <li>a traditional serial terminal, such as a VT100 or VT220, logged
        directly into the computer's serial port<p></li>
    <li>an "xterm" terminal emulator on an X-windows display (don't use the
        "gnome-terminal" application that comes with GNOME; it's buggy)<p></li>
    <li>a remote terminal emulator (such as
        <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>;
        don't even try the Telnet program shipped with Windows, it's broken)
        logged into the host computer via a Telnet or SSH session.
</ul>

In any of these cases you have to ensure that the TERM environment variable is
set correctly to match the terminal type.<p>

    The tutorial program displays a frame with the usual menu-bar at the top.
    You can select a menu by pressing the LEFT or RIGHT cursor keys, then
    pressing ENTER on the selected menu. Each menu item pops up a dialog that
    demonstrates some feature(s) of CHARVA.

<p>

    Moving from one field to the next within a dialog-box is done by pressing
    the TAB key. You should also be able to move from each field to the
    previous field by pressing the BACK-TAB key; but the mapping of the BACK-TAB
    key is not standard on all terminals. Many terminals map BACK-TAB to SHIFT+TAB;
    if in doubt, refer to the <a href="FAQ.html">FAQ page</a>.

<p>

    You should be able to edit text input fields by using the BACKSPACE and
    DELETE keys, and navigate within textfields using the HOME, END, LEFT and
    RIGHT cursor keys.

<p>

    If your terminal-emulator reports mouse-events, you should be able to move
    the focus to any component in the topmost frame (or dialog-box) by clicking on
    the component. Clicking on a JButton, JComboBox or JMenuItem invokes it.
    Clicking an item inside a JList moves the current row to the item;
    double-clicking the item selects/deselects it. Clicking inside a JTextField
    or JTextArea moves the caret (the text insertion point) to where the mouse was
    clicked.

<p>

    If any of these keys or the mouse does not work, check whether the
    <code>terminfo</code> description of your terminal is correctly set up.
    Also see the <a href="FAQ.html">FAQ page</a>

<p>

<p>You can view the API documentation of the CHARVA library by pointing
    your Web browser at <code>$CHARVA_HOME/docs/api/index.html</code>
    (on your local machine). You can also
    <a href="http://www.pitman.co.za/projects/charva/api/index.html">
        browse the API documentation online.</a></p>

For permanent installation, you just need to ensure that the directory
containing the <code>libTerminal.so</code> library file is included in
your library search path, which is specified as follows:<p>

<ul>
    <li>On Linux and Solaris it is specified by the environment variable
        LD_LIBRARY_PATH

    <p>

    <li>On AIX the environment variable is LIBPATH

    <p>

    <li>On HP-UX the environment variable is SHLIB_PATH, and the filename
        must be <code>libTerminal.sl</code>

    <p>

    <li>On Win32 the library file is <code>Terminal.dll</code> and you
        specify the search path with the command-line option
        <code>-Djava.library.path=<i>directory_containing_Terminal.dll</i></code>
</ul>

<p>You also need to put the JAR file (<code>charva.jar</code>) into your Java CLASSPATH.
    Look at the script <code>$CHARVA_HOME/test.sh</code> for an
    example of how to do this on Linux.</p>

<p>If you want to build a Charva application as a native executable that you can
    deploy on a system that doesn't have a Java interpreter, have a look
    at the file "Makefile.gcj.txt" in the <code>c/src</code> directory of the Charva distribution.</p>

<p>I would welcome your feedback about the usefulness and usability of the CHARVA
    package, and about errors or omissions in these web pages. Please send me
    your comments at
    <a href="mailto:rob@pitman.co.za">rob@pitman.co.za</a></p>
</td>
</tr>
</table>
</td> <!-- End of right (content) panel -->


</tr>
</table>
<hr>
<i>Last updated: 10 September, 2006</i>
</body>
</html>