Revision: 5969
http://languagetool.svn.sourceforge.net/languagetool/?rev=5969&view=rev
Author: dnaber
Date: 2011-11-25 14:21:54 +0000 (Fri, 25 Nov 2011)
Log Message:
-----------
some code refactoring
Modified Paths:
--------------
trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java
Added Paths:
-----------
trunk/JLanguageTool/src/java/org/languagetool/gui/I18nLanguage.java
trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java
Added: trunk/JLanguageTool/src/java/org/languagetool/gui/I18nLanguage.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/I18nLanguage.java
(rev 0)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/I18nLanguage.java
2011-11-25 14:21:54 UTC (rev 5969)
@@ -0,0 +1,70 @@
+/* LanguageTool, a natural language style checker
+ * Copyright (C) 2011 Daniel Naber (http://www.danielnaber.de)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ */
+package org.languagetool.gui;
+
+import org.languagetool.Language;
+
+import java.util.ResourceBundle;
+
+/**
+ * An item in the language selection combo box.
+ */
+class I18nLanguage implements Comparable<I18nLanguage> {
+
+ private final Language language;
+ private final ResourceBundle messages;
+
+ I18nLanguage(Language language, ResourceBundle messages) {
+ this.language = language;
+ this.messages = messages;
+ }
+
+ Language getLanguage() {
+ return language;
+ }
+
+ // used by the GUI:
+ @Override
+ public String toString() {
+ if (language.isExternal()) {
+ return language.getName() + Main.EXTERNAL_LANGUAGE_SUFFIX;
+ } else {
+ return messages.getString(language.getShortName());
+ }
+ }
+
+ @Override
+ public int compareTo(I18nLanguage o) {
+ return toString().compareTo(o.toString());
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ final I18nLanguage other = (I18nLanguage) o;
+ return language.toString().equals(other.toString()) &&
language.isExternal() == other.language.isExternal();
+ }
+
+ @Override
+ public int hashCode() {
+ return toString().hashCode();
+ }
+}
+
Added: trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java
(rev 0)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java
2011-11-25 14:21:54 UTC (rev 5969)
@@ -0,0 +1,76 @@
+/* LanguageTool, a natural language style checker
+ * Copyright (C) 2011 Daniel Naber (http://www.danielnaber.de)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ */
+package org.languagetool.gui;
+
+import org.languagetool.Language;
+
+import javax.swing.*;
+import java.util.*;
+
+/**
+ * Combo box with list of available languages.
+ */
+public class LanguageComboBox extends JComboBox {
+
+ private final ResourceBundle messages;
+
+ public LanguageComboBox(ResourceBundle messages) {
+ this.messages = messages;
+ populateLanguageBox();
+ }
+
+ void populateLanguageBox() {
+ removeAllItems();
+ final List<I18nLanguage> i18nLanguages = getAllLanguages();
+ preselectDefaultLanguage(i18nLanguages);
+ }
+
+ private List<I18nLanguage> getAllLanguages() {
+ final List<I18nLanguage> i18nLanguages = new ArrayList<I18nLanguage>();
+ for (Language language : Language.LANGUAGES) {
+ if (language != Language.DEMO) {
+ i18nLanguages.add(new I18nLanguage(language, messages));
+ }
+ }
+ Collections.sort(i18nLanguages);
+ return i18nLanguages;
+ }
+
+ private void preselectDefaultLanguage(List<I18nLanguage> i18nLanguages) {
+ final String defaultLocale = Locale.getDefault().getLanguage();
+ final String defaultGuiLocale = getDefaultGuiLanguage(defaultLocale);
+ for (final I18nLanguage i18nLanguage : i18nLanguages) {
+ addItem(i18nLanguage);
+ if (i18nLanguage.toString().equals(defaultGuiLocale)) {
+ setSelectedItem(i18nLanguage);
+ }
+ }
+ }
+
+ private String getDefaultGuiLanguage(String defaultLocale) {
+ String defaultGuiLocale = null;
+ try {
+ defaultGuiLocale = messages.getString(defaultLocale);
+ } catch (final MissingResourceException e) {
+ // language not supported, so don't select a default
+ }
+ return defaultGuiLocale;
+ }
+
+}
Modified: trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2011-11-25
13:40:03 UTC (rev 5968)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2011-11-25
14:21:54 UTC (rev 5969)
@@ -52,6 +52,8 @@
*/
public final class Main implements ActionListener {
+ static final String EXTERNAL_LANGUAGE_SUFFIX = " (ext.)";
+
private static final String HTML_FONT_START = "<font
face='Arial,Helvetica'>";
private static final String HTML_FONT_END = "</font>";
@@ -59,7 +61,6 @@
private static final String SYSTEM_TRAY_TOOLTIP = "LanguageTool";
private static final String CONFIG_FILE = ".languagetool.cfg";
- private static final String EXTERNAL_LANGUAGE_SUFFIX = " (ext.)";
private static final int WINDOW_WIDTH = 600;
private static final int WINDOW_HEIGHT = 550;
@@ -70,7 +71,7 @@
private JFrame frame;
private JTextArea textArea;
private JTextPane resultArea;
- private JComboBox languageBox;
+ private LanguageComboBox languageBox;
private JCheckBox autoDetectBox;
private HTTPServer httpServer;
@@ -123,8 +124,7 @@
buttonCons.gridy = 0;
buttonCons.anchor = GridBagConstraints.WEST;
insidePanel.add(new JLabel(" " + messages.getString("textLanguage") + "
"), buttonCons);
- languageBox = new JComboBox();
- populateLanguageBox(languageBox);
+ languageBox = new LanguageComboBox(messages);
buttonCons.gridx = 1;
buttonCons.gridy = 0;
insidePanel.add(languageBox, buttonCons);
@@ -193,30 +193,6 @@
}
}
- private void populateLanguageBox(final JComboBox languageBox) {
- languageBox.removeAllItems();
- final List<I18nLanguage> i18nLanguages = new ArrayList<I18nLanguage>();
- for (Language language : Language.LANGUAGES) {
- if (language != Language.DEMO) {
- i18nLanguages.add(new I18nLanguage(language));
- }
- }
- Collections.sort(i18nLanguages);
- final String defaultLocale = Locale.getDefault().getLanguage();
- String defaultLocaleInGui = null;
- try {
- defaultLocaleInGui = messages.getString(defaultLocale);
- } catch (final MissingResourceException e) {
- // language not supported, so don't select a default
- }
- for (final I18nLanguage i18nLanguage : i18nLanguages) {
- languageBox.addItem(i18nLanguage);
- if (i18nLanguage.toString().equals(defaultLocaleInGui)) {
- languageBox.setSelectedItem(i18nLanguage);
- }
- }
- }
-
private void showGUI() {
frame.setVisible(true);
}
@@ -304,7 +280,7 @@
} catch (final RuleFilenameException e) {
Tools.showErrorMessage(e);
}
- populateLanguageBox(languageBox);
+ languageBox.populateLanguageBox();
}
void showOptions() {
@@ -587,8 +563,7 @@
public static void main(final String[] args) {
try {
final Main prg = new Main();
- if (args.length == 1
- && (args[0].equals("-t") || args[0].equals("--tray"))) {
+ if (args.length == 1 && (args[0].equals("-t") ||
args[0].equals("--tray"))) {
// dock to systray on startup
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
@@ -736,45 +711,4 @@
}
- private class I18nLanguage implements Comparable<I18nLanguage> {
-
- private final Language language;
-
- I18nLanguage(Language language) {
- this.language = language;
- }
-
- Language getLanguage() {
- return language;
- }
-
- // used by the GUI:
- @Override
- public String toString() {
- if (language.isExternal()) {
- return language.getName() + EXTERNAL_LANGUAGE_SUFFIX;
- } else {
- return messages.getString(language.getShortName());
- }
- }
-
- @Override
- public int compareTo(I18nLanguage o) {
- return toString().compareTo(o.toString());
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- final I18nLanguage other = (I18nLanguage) o;
- return language.toString().equals(other.toString()) &&
language.isExternal() == other.language.isExternal();
- }
-
- @Override
- public int hashCode() {
- return toString().hashCode();
- }
- }
-
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs