Import of Ekit 0.9h
[old-projects.git] / ekit / com / hexidec / ekit / README
1 ==========================
2 Ekit README
3 ==========================
4
5 Ekit v0.9h (C)2000-2004 Howard Kistler/hexidec codex
6 App/Applet for editing and saving HTML in a Java text component.
7
8
9 ABOUT
10 --------------------------
11
12 Ekit is a program & applet that uses the Java 2 libraries to create an HTML
13 editor. The Ekit standalone also allows for HTML to be loaded and saved, as
14 well as serialized and saved as an RTF. It is currently an advanced beta,
15 and most features work fine.
16
17 Updates to this and other hexidec codex projects can be found here:
18
19 http://www.hexidec.com/
20
21 Please feel free to share any enhancements or bug reports with me at:
22
23 hexidec@telepath.com
24
25
26 ABOUT LICENSE
27 --------------------------
28
29 Ekit was originally distributed under the GPL license. However, it was brought
30 to my attention that the GPL license is not suited for programs that link to
31 non-GPL libraries, such as Ekit does by linking to the Sun Swing library.
32 Hence, I have changed the licensing on Ekit to the LGPL, which is more
33 appropriate. This should not impact any Ekit users adversely, as anyone who
34 was using it before under the GPL can still do so without any conflicts under
35 the LGPL. In addition, this opens up Ekit for use with more projects which
36 might contain some proprietary libraries of their own as well. It is my
37 intention through this change to make Ekit conform better to open source
38 licensing and to make Ekit more available and accessible to developers and
39 users, and I think by switching to the LGPL all of these criteria are thus met.
40
41 I am aware that releasing a product under the GPL is supposed to be an
42 "irreversible" process. However, as this product was probably in violation of
43 the stricter terms of the GPL, this reassignment to LGPL is not a change so
44 much as a correction of licensing.
45
46
47 REQUIREMENTS
48 --------------------------
49
50 Ekit requires the following software:
51     - Java 2 (Sun JDK 1.3 or later, or compatible variant)
52     - Swing Library (standard with Java 2)
53
54 EkitApplet requires the following software:
55     - Browser with Java Plug-in 1.3 or later
56
57 Sun JDK Standard Edition Homepage : http://java.sun.com/j2se/
58 Sun JDK 1.3 available here : http://java.sun.com/j2se/1.3/
59 Sun JDK 1.4 available here : http://java.sun.com/j2se/1.4/
60
61
62 FILES
63 --------------------------
64
65 These are the base class source files:
66
67 EkitCore.java      - Source for the core Ekit functionality
68 EkitCoreSpell.java - Source for extended core with spell checking
69 Ekit.java          - Source for Ekit application shell
70 EkitApplet.java    - Source for EkitApplet shell
71
72 The "action" subdirectory contains these action class sources:
73
74 CustomAction.java         - Special situation actions (like anchor insertion)
75 FormatAction.java         - General text format actions (like subscript)
76 ListAutomationAction.java - Bulleted/Numbered List creation actions
77 StylesAction.java         - CSS Style actions
78
79 The "component" subdirectory contains these component class sources:
80
81 ExtendedHTMLDocument.java    - HTMLDocument with custom functionality
82 ExtendedHTMLEditorKit.java   - HTMLEditorKit with custom functionality
83 FileDialog.java              - Dialog for loading files from server
84 FontSelectorDialog.java      - Dialog for applying system fonts to text
85 HTMLUtilities.java           - Special utility functions
86 ImageDialog                  - Dialog for loading images from server
87 ImageFileChooser.java        - Image selector dialog
88 ImageFileChooserPreview.java - Image preview rendering panel
89 JButtonNoFocus.java          - JButton that does not obtain focus
90 JComboBoxNoFocus.java        - JComboBox that does not obtain focus
91 JToggleButtonNoFocus.java    - JToggleButton that does not obtain focus
92 MutableFilter.java           - Filetype dialog filter
93 PropertiesDialog.java        - Generic parameter request dialog
94 RelativeImageView.java       - HTML Image rendering component
95 SearchDialog.java            - Find/Replace dialog
96 SimpleInfoDialog.java        - Basic message dialog
97 SymbolDialog.java            - Special symbol character dialog
98 TableInputDialog.java        - Table specification input dialog
99 UserInputAnchorDialog.java   - Custom anchor input dialog
100 UserInputDialog.java         - Custom data input dialog
101
102   There is also a copy of the TaggingDriverServlet.java source within the
103   "materials" directory. You may use this on your server for server-based file
104   and image loading.
105
106 The "icons" subdirectory contains these custom icons for the ToolBar:
107
108 AnchorHK.gif      - "Make Anchor" ToolBar Icon
109 BoldHK.gif        - "Bold Text" ToolBar Icon
110 ClearFormatHK.gif - "Clear Format Action" ToolBar Icon
111 CopyHK.gif        - "Copy Action" ToolBar Icon
112 CutHK.gif         - "Cut Action" ToolBar Icon
113 ItalicHK.gif      - "Italicise Text" ToolBar Icon
114 NewHK.gif         - "New Document" ToolBar Icon
115 OListHK.gif       - "Ordered List" ToolBar Icon
116 OpenHK.gif        - "Open Document" ToolBar Icon
117 PasteHK.gif       - "Paste Action" ToolBar Icon
118 SaveHK.gif        - "Save Document" ToolBar Icon
119 SourceHK.gif      - "View Source" ToolBar Icon
120 StrikeHK.gif      - "Strike Text" ToolBar Icon
121 SubHK.gif         - "Subscript Text" ToolBar Icon
122 SuperHK.gif       - "Superscript Text" ToolBar Icon
123 UListHK.gif       - "Unordered List" ToolBar Icon
124 UnderlineHK.gif   - "Underline Text" ToolBar Icon
125
126   The "HK" suffix merely designates that they are my designs. You can replace
127   these images with your own icons if you wish.
128
129 The "com/hexidec/util" directory contains these standard hexidec codex tools:
130
131 Base64Codec.java - Base64 encoding/decoding class
132 Translatrix.java - Translation resource handler class
133
134 These are the ancillary files that are included with the standard Ekit
135 source distribution:
136
137 ekit.manifest       - Jar manifest file for ekit.jar
138 MakeEkit.csh        - Script to (re)build the ekit.jar file (Unix/MacOSX)
139 MakeEkitApplet.csh  - Script to (re)build the ekitapplet.jar file (Unix/MacOSX)
140 MakeEkit.bat        - Batch file to (re)build the ekit.jar file (Windows)
141 MakeEkitApplet.bat  - Batch file to (re)build the ekitapplet.jar file (Windows)
142 MakeEkit.ant        - XML file to (re)build the ekit.jar file using Ant
143 MakeEkitApplet.ant  - XML file to (re)build the ekitapplet.jar file using Ant
144 ekit.css            - Default CSS Stylesheet for Ekit documents
145 EkitAppletDemo.html - Example web page for displaying Ekit applet
146 RunEkit.csh         - Script for launching Ekit (Unix/MacOSX)
147 RunEkit.bat         - Batch file for launching Ekit (Windows)
148 README              - This document
149 materials/LGPL      - Copy of the Lesser GNU Public License
150
151 The distribution also contains these pre-compiled Ekit JARs:
152
153 Basic Version
154
155     ekit.jar
156     ekitapplet.jar
157
158 Spellcheck Version
159
160     ekitspell.jar
161     ekitappletspell.jar
162
163 NOTE : If you want to use the spellcheck versions, move or delete the basic
164 versions and rename the spellcheck versions to the basic names. So, for
165 example, ekitspell.jar should be renamed ekit.jar.
166
167
168 JAZZY SOURCES
169 --------------------------
170
171 Ekit optionally incorporates a modified subset of the Jazzy open source
172 spellchecker. The root directory of the Jazzy classes is "com/swabunga/spell".
173 You will find the following subdirectories and sources there. (See the README
174 file under the "swabunga" directory for more information.)
175
176 The "engine" subdirectory contains the basic mechanics of the spellchecker.
177
178 Configuration.java
179 DoubleMeta.java
180 EditDistance.java
181 GenericTransformator.java
182 PropertyConfiguration.java
183 SpellDictionary.java
184 Transformator.java
185 Word.java
186 configuration.properties
187
188 The "dictionary" subdirectory beneath "engine" houses the available
189 dictionary files. Currently there is only an English dictionary included.
190
191 english - English dictionary file
192
193 The "event" sudirectory contains the various event classes and functional
194 methods for the spellchecker.
195
196 BasicSpellCheckEvent.java
197 DocumentWordTokenizer.java
198 SpellCheckEvent.java
199 SpellCheckListener.java
200 SpellChecker.java
201 StringWordTokenizer.java
202 WordTokenizer.java
203
204 The "swing" subdirectory contains the GUI components and message lists.
205
206 JSpellDialog.java
207 JSpellForm.java
208 messages.properties
209 messages_sv.properties
210
211
212 COMPILATION (OPTIONAL)
213 --------------------------
214
215 If you modify the included .java files, or need to recreate the .class files,
216 use the following commands within the "source" directory to build them. All
217 commands assume you are at the top of the source tree (the directory containing
218 the "com" directory). All commands listed are one-line commands as well, though
219 some are broken to multiple lines in this file due to length. Also note that
220 the backslash ("\") character should be replaced by the appropriate path
221 separator for your operating system if it is different.
222
223 Unix or Mac OS X users may run the MakeEkit.csh and MakeEkitApplet.csh scripts
224 from a terminal window. Remember to preface them with "./" when running from
225 within the code directory.
226
227 Windows users may double-click the MakeEkit.bat and MakeEkitApplet.bat batch
228 files, or execute them from the command line.
229
230 Both sets of batch files take an optional command line argument. You can enter
231 "basic" after the batch file to compile the standard Ekit classes, or enter
232 "spell" after the batch file to build in the Jazzy spellchecker classes.
233
234 For example, here is a standard build of EkitApplet on Unix:
235
236     MakeEkitApplet.csh
237
238     or
239
240     MakeEkitApplet.csh basic
241
242 Here is an example of building Ekit with spellchecking on Windows:
243
244     MakeEkit.bat spell
245
246 Apache Ant (http://jakarta.apache.org/ant/) users may use the included .ant XML
247 files to compile and build the Ekit jar files with Ant.
248
249 You may manually compile Ekit with the following command:
250
251     Unix/MacOSX  javac com/hexidec/ekit/Ekit.java
252     Windows      javac com\hexidec\ekit\Ekit.java
253     Apache Ant   ant -buildfile MakeEkit.ant
254
255 You may manually compile EkitApplet with the following command:
256
257     Unix/MacOSX  javac com/hexidec/ekit/EkitApplet.java
258     Windows      javac com\hexidec\ekit\EkitApplet.java
259     Apache Ant   ant -buildfile MakeEkitApplet.ant
260
261 Ekit takes no special arguments during compile. The above command assumes your
262 Java development environment is configured according to minimal standards and
263 can locate the relevant Java core files properly.
264
265 View the .csh or .bat files for the proper syntax to manually create the jar
266 files under your OS.
267
268
269 EXECUTION (APP)
270 --------------------------
271
272 All users with properly configured systems will be able to launch Ekit by
273 double-clicking on the "ekit.jar" file. Unix/MacOSX users may lanuch Ekit with
274 the "RunEkit.csh" script. Windows users may launch Ekit by double-clicking the
275 batch file "RunEkit.bat".
276
277 You may manually execute Ekit from the command line with the following command
278 from within the directory containing the ekit.jar file:
279
280     java -jar ekit.jar com.hexidec.ekit.Ekit
281         [-t/T] [-s/S] [-m/M] [-x/X] [-d/D]
282         [-fHTMLfile] [-cCSSfile] [-rRawHTML] [-lLangcode]
283
284 Note that your CLASSPATH settings should include the "current directory"
285 specifier "." for this to work.
286
287 The [optional] command line arguments are:
288
289     -t/-T : Show/Hide the ToolBar (Show by default)
290     -s/-S : Show/Hide the Source window (Hide by default)
291     -m/-M : Show/Omit Menu icons (Show by default)
292     -x/-X : Exclusive Edit Mode On/Off (On by default)
293     -b/-B : Document is/isn't Base64 encoded (Isn't by default)
294     -d/-D : Show/Hide the Debug menu (Hide by default)
295     -f    : Load the HTML document specified by HTMLfile
296     -c    : Load the CSS stylesheet specified by CSSfile
297     -r    : Load the raw HTML string specified by RawHTML
298     -l    : Start Ekit in the language specified by Langcode*
299
300 [* Langcode is a combination of the 2-letter language and country codes, in the
301 format "xx_XX", where xx is the language code and XX is the country code. For
302 example, the Langcode for English/United States is "en_US", English/United
303 Kingdom is "en_UK", and German/Germany is "de_DE". Note that there must be
304 a matching "LanguageResources_xx_XX.properties" file in the com/hexidec/ekit
305 directory for the language you want to use. Missing language files, and
306 existing language files that may be missing words in use, will take words from
307 the "LanguageResources.properties" file, which contains default words in
308 "en_US" encoding marked with a trailing asterisk.]
309
310 So, for example, to start Ekit with the ToolBar hidden, the Source window
311 showing, and pre-load it with the "Home.html" document and "Styles.css" 
312 stylesheet, you would enter:
313
314     java -jar ekit.jar com.hexidec.ekit.Ekit -T -s -fHome.html -cStyles.css
315
316 To start Ekit with a short example HTML document written as a raw string, you
317 could enter:
318
319     java -jar ekit.jar com.hexidec.ekit.Ekit -r"<HTML><BODY>This is a <B>test
320         </B></BODY></HTML>"
321
322 To start Ekit with the Italian/Italy language file:
323
324     java -jar ekit.jar com.hexidec.ekit.Ekit -lit_IT
325
326 Note that you shouldn't have to specify the language setting if you want Ekit
327 to run in your native language, provided there is an appropriate language file
328 in the com/hexidec/ekit directory and your Java environment is configured to
329 use your language by default.
330
331
332 EXECUTION (APPLET)
333 --------------------------
334
335 Embed the Ekit applet in a web page and view in an appropriate browser.
336 The jar file should be included in the directory with the web page and
337 it should also be "visible" to the web server.
338
339 The included "EkitAppletDemo.html" page contains the code necessary to
340 view the applet properly. You may use this as the basis for including
341 Ekit in your own web pages.
342
343
344 COMMAND SUMMARY
345 --------------------------
346
347 File Menu
348
349     New Document - Create new document (clear current one if exists).
350     Open Document - Load an HTML document into the editor.
351     Open Stylesheet - Load CSS stylesheet and apply it to the current document.
352     Open Base64 Document - Load a Base64 encoded document into the editor.
353     Save - Save the current document (prompts for filename if new document).
354     Save As - Save the document with the name specified in the file chooser.
355     Save Body - Save the document after deleting the HEAD element.
356     Save RTF - Save the document in Rich Text Format (RTF).
357     Save Base64 - Save the document in Base64 encoding.
358     Serialize - Save the document in the default Java serialization form.
359     Read From Ser - Load a serialized document into the editor.
360     Exit - Close the app (you will lose any unsaved work).
361
362 Edit Menu
363
364     Cut - Remove the selected text and place it in the clipboard.
365     Copy - Place a copy of the selected text in the clipboard.
366     Paste - Place the contents of clipboard into the document at the current
367         cursor position.
368     Undo - Undo the previous action (some may not be undoable).
369     Redo - Redo the last undone action (some may not be redoable).
370     Select All - Select all the text in the editor.
371     Select Paragraph - Select the paragraph at the current cursor postion.
372     Select Line - Select the line at the current cursor postion.
373     Select Word - Select the word at the current cursor postion.
374
375 View Menu
376
377     Toolbar - Toggles display of the ToolBar.
378     Source - Toggles display of the Source window, where the HTML can be
379         observed and directly manipulated.
380
381 Font Menu
382
383     Bold - Bold the selected text.
384     Italic - Italicise the selected text.
385     Underline - Underline the selected text.
386     Strike-through - Strike through the selected text.
387     Big - Increase the font size of the selected text.
388     Small - Decrease the font size of the selected text.
389     Superscript - Change the selected text to superscripted text.
390     Subscript - Change the selected text to subscripted text.
391     Monospaced - Render the select text in the Monospaced font.
392     Sans-serif - Render the select text in the Sans-serif font.
393     Serif - Render the select text in the Serif font.
394     Color Submenu
395         Aqua - Color the selected text aqua.
396         Black - Color the selected text black.
397         Blue - Color the selected text blue.
398         Fuschia - Color the selected text fuschia.
399         Gray - Color the selected text gray.
400         Green - Color the selected text green.
401         Lime - Color the selected text lime.
402         Maroon - Color the selected text maroon.
403         Navy - Color the selected text navy.
404         Olive - Color the selected text olive.
405         Purple - Color the selected text purple.
406         Red - Color the selected text red.
407         Silver - Color the selected text silver.
408         Teal - Color the selected text teal.
409         White - Color the selected text white.
410         Yellow - Color the selected text yellow.
411
412 Format Menu
413
414     Align Submenu
415         Align Left - Left align the selected text (may include unselected text
416             that is part of the element)
417         Align Center - Center align the selected text (same proviso as Left)
418         Align Right - Right align the selected text (same proviso as Left)
419         Align Justified - Justify the selected text (same proviso as Left)
420     Heading Submenu
421         Heading 1 - Render the selected text in the HTML <H1> style.
422         Heading 2 - Render the selected text in the HTML <H2> style.
423         Heading 3 - Render the selected text in the HTML <H3> style.
424         Heading 4 - Render the selected text in the HTML <H4> style.
425         Heading 5 - Render the selected text in the HTML <H5> style.
426         Heading 6 - Render the selected text in the HTML <H6> style.
427     Unordered List - Convert the selected text to an unordered (bulleted)
428         list. New list items are created at each paragraph mark in the text.
429     Ordered List - Convert the selected text to an ordered (numeric)
430         list. New list items are created at each paragraph mark in the text.
431     List Item - Convert the selected text to a list item (will create an
432         enclosing unordered list if not part of a defined list).
433     Blockquote - Place the selected text inside BLOCKQUOTE tags.
434     Pre - Place the selected text inside PRE (preformat) tags.
435     Span - Place the selected text inside SPAN tags.
436     Clear Format - Remove markup from elements.
437
438 Insert Menu
439
440     Anchor - Convert the selected text to a hyperlink after specifying the URL
441         in the pop-up dialog
442     Symbol - Insert special characters using the symbols dialog
443     Break - Insert an HTML break <BR> element
444     Nonbreaking Space - Inst an HTML non-breaking space (&nbsp;) metacharacter
445     Horizontal Rule - Insert an HTML horizontal rule <HR> element
446     Insert Local Image - Insert an image from file chooser pop-up
447     Insert Image From Server - Insert an image from server (requires server
448         image app to be runnning)
449
450 Table Menu
451
452     Table - Insert a table based on settings in pop-up
453     Insert Row - Insert a row in the current table
454     Insert Column - Insert a column in the current table
455     Delete Row - Delete a row in the current table
456     Delete Column - Delete a column in the current table
457
458 Forms Menu
459
460     Insert Form - Add the surrounding FORM tags for an HTML form
461     Text Field - Insert an HTML Text Field <INPUT TYPE="text">
462     Text Area - Insert an HTML Text Area <TEXTAREA></TEXTAREA>
463     Checkbox - Insert an HTML Checkbox <INPUT TYPE="checkbox">
464     Text Field - Insert an HTML Radio Button <INPUT TYPE="radio">
465     Button - Insert an HTML Button <INPUT TYPE="button"> (NON-RENDERING!)
466     Submit Button - Insert an HTML Submit Button <INPUT TYPE="submit">
467     Resest Button - Insert an HTML Reset Button <INPUT TYPE="reset">
468
469 Help Menu
470
471     About - Displays the Ekit About information dialog
472
473 Debug Menu
474
475     Describe Doc - Describe the document nodes to the console window
476     Describe CSS - Describe the stylesheet properties to the console window
477     What Tags? - List the node tags applied to the element under the cursor
478
479
480 VERSION HISTORY
481 --------------------------
482
483 0.1  (08/08/2000)
484     - initial creation
485 0.2  (08/24/2000)
486     - added tag attribute management
487     - added anchors
488     - cleaned up menu actions
489 0.3  (08/30/2000)
490     - added appName & currentFile
491     - added Save menu item
492     - added updateTitle method
493     - changed to only empty constructor
494     - added refreshOnUpdate() optional refresh code
495 0.4  (08/31/2000)
496     - added table insertion (experimental)
497     - added image insertion (experimental)
498 0.45 (09/05/2000)
499     - added list formatting
500     - added break insertion
501     - added horizontal rule insertion
502     - added purgeUndos() convenience method for resetting the UndoManager
503     - changed "load" commands to "open" commands
504       (more in line with current application conventions)
505     - merged some menus so that they no longer build an explicit JMenuItem
506       (sacrifices some readability for object allocation improvements)
507 0.5  (09/18/2000)
508     - added CSS support
509     - moved calls to JFileChooser to a reusable method
510     - moved "debug" types of functions to their own menu
511     - renamed the "Styles" menu "Format", so as not to be confused with
512       StyleSheet Styles
513 0.6  (09/29/2000)
514     - added optional ToolBar
515     - added table row, table cell, and table-within-table insertion
516     - vastly improved break & horizontal rule insertion
517     - allow pre-loading of HTML document and CSS stylesheet from command line
518     - centralized exception handling
519     - fixed getFileFromChooser method to correctly display OPEN/SAVE dialogs
520     - now exists as a JAR file
521 0.7  (11/03/2000)
522     - added Source window for viewing/editing HTML tags
523     - added Shift-Return insertion of BR tags
524 0.8  (05/05/2001)
525     - added JButtonNoFocus inner class to keep toolbar buttons from taking
526       focus from editor canvas
527     - added JToggleButtonNoFocus inner class for toolbar elements that indicate
528       toggle-state features (such as View Source)
529 0.9 (01/06/2002)
530     - added mnemonics for menu items (this also removed need for KeyListener)
531     - added View menu
532     - added Help menu
533     - added table settings dialog
534     - added Internationalization capabilities
535     - added language files for Italian, German, Spanish, Portuguese, and
536       Slovenian
537     - fixed lack of repaint after cancelling "Open Stylesheet"
538     - Debug menu now optional, defaults to OFF
539     - moved View Source and Edit Mode to new View menu
540 0.9a (02/02/2002)
541     - added image rendering & image selector
542     - image types supported : JPEG, GIF, & PNG
543     - added fix for dealing with HTML character encoding issue
544 0.9b (03/08/2002)
545     - added CSS style selector
546     - added more standard HTML tags : STRONG, EM, BLOCKQUOTE, PRE, and TT
547 0.9c (03/23/2002)
548     - added Search menu and Find/Replace functions
549     - added auto-bulleted lists
550     - added warning dialog for actions that fail
551     - split-pane divider now remembers its position
552     - changed and consolidated some menus
553     - altered "Save Body" method to work more as expected
554 0.9d (09/24/2002)
555     - added language files for French and Norwegian
556     - broke out inner classes to separate component classes
557     - added EkitCallback class to allow easier access by shared components
558     - much improved Anchor handling and formatting
559     - changes to get app to work on JDK 1.4
560 0.9e (10/26/2002)
561     - Ekit split into core (EkitCore) and shell (Ekit, EkitApplet) classes
562     - added language files for Finnish and Dutch
563     - added support for HTML forms and form elements
564     - added <STRIKE> tag support
565     - font familes and <HR> insertion now through inherent editor actions
566     - "Insert Table Row" now inserts the correct number of cells
567     - added generic PropertiesDialog
568     - SimpleInfoDialog auto-centers and allows different dialog types
569     - added calls to build semi-custom menus and toolbars
570     - removed EkitCallback (obsolesced by EkitCore)
571     - Change of license to LGPL (see ABOUT LICENSE section)
572 0.9f (11/25/2002)
573     - optional integration of Jazzy spellchecker
574     - addition of font selector
575     - greater menu customization
576 0.9g (5/5/2003)
577     - can load and save documents in Base64 encoded format
578     - bulleted lists now create new entries upon hitting ENTER
579     - added color picker to font selector
580     - support for access to the System Clipboard
581     - support for loading images from server via servlet
582     - added dispose() method to core
583     - added more insert and delete options for tables
584     - tables now have their own menu and better functionality
585     - fixed problem with IMG tag SRC URLs containing spaces
586     - fixed the getDocumentBody error where the contents did not reflect
587           the current document
588     - fixed the known memory/resource leaks caused by the SpellChecker
589     - added language files for Spanish (Mexican), Hungarian and Chinese
590 0.9h (4/28/2004)
591     - new symbol insertion dialog
592     - rewritten EkitCoreSpell now extends EkitCore, adding just spell checker
593     - EkitCore includes hooks to support EkitCoreSpell
594     - source view panel replaced with JTextArea (lighter weight)
595     - StyledDocument constructors and setter method
596     - optional multiple "themed" toolbars in place of single catch-all toolbar
597     - command-line usage options available in Ekit (use -h or -? argument)
598
599 NOTE: The following items work in Ekit but not yet in EkitApplet, due to the
600 applet security model:
601
602     - Insert Image (Images referenced via a URL should work, though)
603     - Copy & Paste from system clipboard
604     - Access of local files
605
606 We are looking into ways to make these features available. The probable
607 solution will be to obtain a security certificate.
608
609
610 CONTRIBUTORS
611 --------------------------
612
613 Thanks to the many people who have downloaded and used Ekit, as well as
614 providing valuable feedback. The following people have made additional
615 contributions to Ekit. (List in is chronological order of contribution.)
616
617 Yaodong Liu (yaodongliu@yahoo.com)
618     - CSS Support Code
619     - HTML Insertion Support Code
620 Gyoergy Magoss (GYOERGY.MAGOSS@bhf-bank.com)
621     - Table Support Code
622 Oliver Moser (omoser@dkf.de)
623     - HTML Insertion Support Code
624 Michael Goldberg (MGoldberg@yet2.com)
625     - README Support
626 Cecile Rostaing (cecile.rostaing@free.fr)
627     - Feature Suggestions
628 Thomas Gauweiler (gauweiler@fzi.de)
629     - EkitAppletDemo2.html & ShowAppletOutput.php demo files
630 Frits Jalvingh (jal@grimor.com)
631     - Correct image rendering and character encoding support
632     - CSS Styles Selector
633     - Original ExtendedHTMLEditorKit & RelativeImageView classes
634     - Original ImageFileChooser & ImageFileChooserPreview classes
635 Jerry Pommer (jpommer@brainfood.com)
636     - ExtendedHTMLDocument.java & ExtendedHTMLEditorKit.java code
637         to fix format toggling
638 Ruud Noordermeer (ruud.noordermeer@back2front.nl)
639     - Fix for split-pane rendering issue in EkitApplet
640 Mindaugas Idzelis (aim4min@users.sourceforge.net)
641     - Provided the excellent Jazzy spellchecker
642 Raymond Penners (dotsphinx@users.sourceforge.net)
643     - Fix for IMG tag SRC URLs containing spaces
644 Steve Birmingham (steve.birmingham@c3bgroup.com)
645     - Server image support classes and methods
646     - Color picker code in font dialog
647     - Numerous bug fixes, including the dispose() for the SpellChecker
648 Rafael Cieplinski (cieplinski@web.de)
649     - Better auto-bulleting function
650     - Improved table handling
651     - Original HTMLUtilities class
652 Nico Mack (nico.mack@mmp.lu)
653     - System clipboard access code
654     - Other bug fixes
655 Michael Pearce (michaelgpearce@yahoo.com)
656     - Symbol insertion dialog & code
657 Murray Altheim (m.altheim@open.ac.uk)
658     - StyledDocument support code
659
660
661 TRANSLATIONS
662 --------------------------
663
664 Thanks also to the people who volunteered to translate Ekit into their
665 languages. The following people have made translations available.
666 (List in is chronological order of contribution. Any current errors in the
667 language files are most likely do to my own attempts to add new terms to them,
668 and I appreciate receiving any corrections.)
669
670 Nick Schwendener (nschwendener@vtxnet.ch)
671     - Italian
672         LanguageResources_it_CH.properties
673         LanguageResources_it_IT.properties
674 Gyoergy Magoss (GYOERGY.MAGOSS@bhf-bank.com)
675     - German
676         LanguageResources_de_DE.properties
677 Jesus Escanero (jescanero@yahoo.es) &
678 Eusebio Barriga (fametown@users.sourceforge.net)
679     - Spanish
680         LanguageResources_es_ES.properties
681 Fernando Luiz (responsavel2@hotmail.com)
682     - Portuguese
683         LanguageResources_pt_BR.properties
684         LanguageResources_pt_PT.properties
685 Jernej Vicic (jernej@activetools.si)
686     - Slovenian
687         LanguageResources_sl_SI.properties
688 Gerald Estadieu (gerald.estadieu@cem-macau.com) &
689 Michael (mike@lashampoo.com)
690     - French
691         LanguageResources_fr_FR.properties
692 Anders Bjorvand (anders@kommunion.no)
693     - Norwegian
694         LanguageResources_no_NO.properties
695 Vesa Kotilainen (vesa.kotilainen@sonera.com)
696     - Finnish
697         LanguageResources_fi_FI.properties
698 Mark de Haan (mark@starwave.nl)
699     - Dutch
700         LanguageResources_nl_NL.properties
701 Samuel Dmaz
702     - Spanish (Mexican)
703         LanguageResources_es_MX.properties
704 Tamás Érdfalvi (devnull@eagent.hu)
705     - Hungarian
706         LanguageResources_hu_HU.properties
707 Yang Yu (yangyu@users.sourceforge.net)
708     - Chinese
709         LanguageResources_zh_CN.properties