Revision: 7288
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=7288&view=rev
Author:   dnaber
Date:     2012-06-07 18:48:52 +0000 (Thu, 07 Jun 2012)
Log Message:
-----------
display only variants, if any (i.e. don't display English, but only American 
and British English) - fix for auto-detection will follow

Modified Paths:
--------------
    trunk/JLanguageTool/src/java/org/languagetool/Language.java
    trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java
    trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java

Modified: trunk/JLanguageTool/src/java/org/languagetool/Language.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/Language.java 2012-06-07 
17:41:30 UTC (rev 7287)
+++ trunk/JLanguageTool/src/java/org/languagetool/Language.java 2012-06-07 
18:48:52 UTC (rev 7288)
@@ -301,10 +301,8 @@
    * @return A list of all languages, including external ones.
    */
   public static List<Language> getAllLanguages() {
-         List<Language> langList = new ArrayList<Language>();
-         for (Language lang : LANGUAGES) {
-                 langList.add(lang);
-         }
+         final List<Language> langList = new ArrayList<Language>();
+    Collections.addAll(langList, LANGUAGES);
          langList.addAll(externalLanguages);
          return langList;
   }
@@ -396,7 +394,11 @@
     return maintainersInfo.toString();
   }
 
-  public boolean isVariant() {
+  /**
+   * Whether this is a variant of another language, i.e. whether it doesn't
+   * directly extend {@link Language}, but a subclass of {@link Language}.
+   */
+  public final boolean isVariant() {
     for (Language language : LANGUAGES) {
       final boolean skip = 
language.getShortNameWithVariant().equals(getShortNameWithVariant());
       if (!skip && language.getClass().isAssignableFrom(getClass())) {
@@ -406,6 +408,19 @@
     return false;
   }
 
+  /**
+   * Whether this class has at least one subclass that implements variants of 
this language.
+   */
+  public final boolean hasVariant() {
+    for (Language language : LANGUAGES) {
+      final boolean skip = 
language.getShortNameWithVariant().equals(getShortNameWithVariant());
+      if (!skip && getClass().isAssignableFrom(language.getClass())) {
+        return true;
+      }
+    }
+    return false;
+  }
+
   public boolean isExternal() {
     return false;
   }

Modified: 
trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java     
2012-06-07 17:41:30 UTC (rev 7287)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/LanguageComboBox.java     
2012-06-07 18:48:52 UTC (rev 7288)
@@ -44,7 +44,8 @@
   private List<I18nLanguage> getAllLanguages() {
     final List<I18nLanguage> i18nLanguages = new ArrayList<I18nLanguage>();
     for (Language language : Language.LANGUAGES) {
-      if (language != Language.DEMO) {
+      final boolean skip = (language == Language.DEMO) || 
language.hasVariant();
+      if (!skip) {
         i18nLanguages.add(new I18nLanguage(language, messages));
       }
     }

Modified: trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java
===================================================================
--- trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java     
2012-06-07 17:41:30 UTC (rev 7287)
+++ trunk/JLanguageTool/src/test/org/languagetool/LanguageTest.java     
2012-06-07 18:48:52 UTC (rev 7288)
@@ -60,9 +60,21 @@
   @Test
        public void testIsVariant() {
                
assertTrue(Language.getLanguageForShortName("en-US").isVariant());
+    assertTrue(Language.getLanguageForShortName("de-CH").isVariant());
+
                assertFalse(Language.getLanguageForShortName("en").isVariant());
-    assertTrue(Language.getLanguageForShortName("de-CH").isVariant());
     assertFalse(Language.getLanguageForShortName("de").isVariant());
        }
 
+  @Test
+       public void testHasVariant() {
+               assertTrue(Language.getLanguageForShortName("en").hasVariant());
+    assertTrue(Language.getLanguageForShortName("de").hasVariant());
+
+    assertFalse(Language.getLanguageForShortName("en-US").hasVariant());
+    assertFalse(Language.getLanguageForShortName("de-CH").hasVariant());
+    assertFalse(Language.getLanguageForShortName("ast").hasVariant());
+    assertFalse(Language.getLanguageForShortName("pl").hasVariant());
+       }
+
 }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs

Reply via email to