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
Languagetool-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs

Reply via email to