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