Initial revision
[old-projects.git] / ekit / com / hexidec / ekit / EkitCoreSpell.java
CommitLineData
6dd70280
JL
1/*
2GNU Lesser General Public License
3
4EkitCore - Base Java Swing HTML Editor & Viewer Class (Spellcheck Version)
5Copyright (C) 2000 Howard Kistler
6
7This library is free software; you can redistribute it and/or
8modify it under the terms of the GNU Lesser General Public
9License as published by the Free Software Foundation; either
10version 2.1 of the License, or (at your option) any later version.
11
12This library is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15Lesser General Public License for more details.
16
17You should have received a copy of the GNU Lesser General Public
18License along with this library; if not, write to the Free Software
19Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20*/
21
22package com.hexidec.ekit;
23
24import java.net.URL;
25import javax.swing.text.Document;
26
27import com.hexidec.ekit.EkitCore;
28import com.hexidec.util.Translatrix;
29
30import com.swabunga.spell.engine.*;
31import com.swabunga.spell.event.*;
32import com.swabunga.spell.swing.*;
33
34/** EkitCoreSpell
35 * Extended main application class with additional spellchecking feature
36 *
37 * @author Howard Kistler
38 * @version 0.9h
39 *
40 * REQUIREMENTS
41 * Java 2 (JDK 1.3 or 1.4)
42 * Swing Library
43 */
44
45public class EkitCoreSpell extends EkitCore implements SpellCheckListener
46{
47 /* Spell Checker Settings */
48 private static String dictFile;
49 private SpellChecker spellCheck = null;
50 private JSpellDialog spellDialog;
51
52 /** Master Constructor
53 * @param sDocument [String] A text or HTML document to load in the editor upon startup.
54 * @param sStyleSheet [String] A CSS stylesheet to load in the editor upon startup.
55 * @param sRawDocument [String] A document encoded as a String to load in the editor upon startup.
56 * @param urlStyleSheet [URL] A URL reference to the CSS style sheet.
57 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
58 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
59 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
60 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
61 * @param sLanguage [String] The language portion of the Internationalization Locale to run Ekit in.
62 * @param sCountry [String] The country portion of the Internationalization Locale to run Ekit in.
63 * @param base64 [boolean] Specifies whether the raw document is Base64 encoded or not.
64 * @param debugMode [boolean] Specifies whether to show the Debug menu or not.
65 * @param hasSpellChecker [boolean] Specifies whether or not this uses the SpellChecker module
66 * @param multiBar [boolean] Specifies whether to use multiple toolbars or one big toolbar.
67 */
68 public EkitCoreSpell(String sDocument, String sStyleSheet, String sRawDocument, URL urlStyleSheet, boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive, String sLanguage, String sCountry, boolean base64, boolean debugMode, boolean useSpellChecker, boolean multiBar)
69 {
70 super(sDocument, sStyleSheet, sRawDocument, urlStyleSheet, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, sLanguage, sCountry, base64, debugMode, true, multiBar);
71
72 /* Create spell checker */
73 try
74 {
75 dictFile = Translatrix.getTranslationString("DictionaryFile");
76 SpellDictionary dictionary = new SpellDictionary(dictFile); // uses my custom loader in SpellDictionary
77 spellCheck = new SpellChecker(dictionary);
78 spellCheck.addSpellCheckListener(this);
79 }
80 catch(Exception e)
81 {
82 e.printStackTrace();
83 }
84 spellDialog = new JSpellDialog(this.getFrame(), Translatrix.getTranslationString("ToolSpellcheckDialog"), true);
85 }
86
87 /** Common Constructor
88 * @param sDocument [String] A text or HTML document to load in the editor upon startup.
89 * @param sStyleSheet [String] A CSS stylesheet to load in the editor upon startup.
90 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
91 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
92 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
93 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
94 * @param sLanguage [String] The language portion of the Internationalization Locale to run Ekit in.
95 * @param sCountry [String] The country portion of the Internationalization Locale to run Ekit in.
96 */
97 public EkitCoreSpell(String sDocument, String sStyleSheet, boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive, String sLanguage, String sCountry, boolean base64)
98 {
99 this(sDocument, sStyleSheet, null, null, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, sLanguage, sCountry, base64, false, true, false);
100 }
101
102 /** Default Language Constructor
103 * @param sDocument [String] A text or HTML document to load in the editor upon startup.
104 * @param sStyleSheet [String] A CSS stylesheet to load in the editor upon startup.
105 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
106 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
107 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
108 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
109 */
110 public EkitCoreSpell(String sDocument, String sStyleSheet, boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive, boolean base64)
111 {
112 this(sDocument, sStyleSheet, null, null, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, null, null, base64, false, true, false);
113 }
114
115 /** Raw/Base64 Document & Style Sheet URL Constructor (Ideal for EkitApplet)
116 * @param sRawDocument [String] A document encoded as a String to load in the editor upon startup.
117 * @param sRawDocument [String] A document encoded as a String to load in the editor upon startup.
118 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
119 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
120 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
121 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
122 * @param sLanguage [String] The language portion of the Internationalization Locale to run Ekit in.
123 * @param sCountry [String] The country portion of the Internationalization Locale to run Ekit in.
124 */
125 public EkitCoreSpell(String sRawDocument, URL urlStyleSheet, boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive, String sLanguage, String sCountry, boolean base64, boolean multiBar)
126 {
127 this(null, null, sRawDocument, urlStyleSheet, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, sLanguage, sCountry, base64, false, true, multiBar);
128 }
129
130 /** Document Constructor
131 * @param sRawDocument [String] A document encoded as a String to load in the editor upon startup.
132 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
133 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
134 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
135 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
136 * @param sLanguage [String] The language portion of the Internationalization Locale to run Ekit in.
137 * @param sCountry [String] The country portion of the Internationalization Locale to run Ekit in.
138 */
139 public EkitCoreSpell(String sRawDocument, boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive, String sLanguage, String sCountry, boolean base64)
140 {
141 this(null, null, sRawDocument, null, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, sLanguage, sCountry, base64, false, true, false);
142 }
143
144 /** Default Language & Document Constructor
145 * @param sRawDocument [String] A document encoded as a String to load in the editor upon startup.
146 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
147 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
148 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
149 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
150 */
151 public EkitCoreSpell(String sRawDocument, boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive, boolean base64)
152 {
153 this(null, null, sRawDocument, null, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, null, null, base64, false, true, false);
154 }
155
156 /** Flags & Language Constructor
157 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
158 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
159 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
160 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
161 * @param sLanguage [String] The language portion of the Internationalization Locale to run Ekit in.
162 * @param sCountry [String] The country portion of the Internationalization Locale to run Ekit in.
163 */
164 public EkitCoreSpell(boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive, String sLanguage, String sCountry)
165 {
166 this(null, null, null, null, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, sLanguage, sCountry, false, false, true, false);
167 }
168
169 /** Flags Constructor
170 * @param includeToolBar [boolean] Specifies whether the app should include the toolbar.
171 * @param showViewSource [boolean] Specifies whether or not to show the View Source window on startup.
172 * @param showMenuIcons [boolean] Specifies whether or not to show icon pictures in menus.
173 * @param editModeExclusive [boolean] Specifies whether or not to use exclusive edit mode (recommended on).
174 */
175 public EkitCoreSpell(boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, boolean editModeExclusive)
176 {
177 this(null, null, null, null, includeToolBar, showViewSource, showMenuIcons, editModeExclusive, null, null, false, false, true, false);
178 }
179
180 /** Language & Debug Constructor
181 * @param sLanguage [String] The language portion of the Internationalization Locale to run Ekit in.
182 * @param sCountry [String] The country portion of the Internationalization Locale to run Ekit in.
183 * @param debugMode [boolean] Specifies whether to show the Debug menu or not.
184 */
185 public EkitCoreSpell(String sLanguage, String sCountry, boolean debugMode)
186 {
187 this(null, null, null, null, true, false, true, true, sLanguage, sCountry, false, debugMode, true, false);
188 }
189
190 /** Language Constructor
191 * @param sLanguage [String] The language portion of the Internationalization Locale to run Ekit in.
192 * @param sCountry [String] The country portion of the Internationalization Locale to run Ekit in.
193 */
194 public EkitCoreSpell(String sLanguage, String sCountry)
195 {
196 this(null, null, null, null, true, false, true, true, sLanguage, sCountry, false, false, true, false);
197 }
198
199 /** Debug Constructor
200 * @param debugMode [boolean] Specifies whether to show the Debug menu or not.
201 */
202 public EkitCoreSpell(boolean debugMode)
203 {
204 this(null, null, null, null, true, false, true, true, null, null, false, debugMode, true, false);
205 }
206
207 /** Empty Constructor
208 */
209 public EkitCoreSpell()
210 {
211 this(null, null, null, null, true, false, true, true, null, null, false, false, true, false);
212 }
213
214 /* SpellCheckListener methods */
215 public void spellingError(SpellCheckEvent event)
216 {
217 spellDialog.show(event);
218 }
219
220 /* Spell checking method (overrides empty method in basic core) */
221 public void checkDocumentSpelling(Document doc)
222 {
223 spellCheck.checkSpelling(new DocumentWordTokenizer(doc));
224 }
225
226}
227