Revision: 7142
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=7142&view=rev
Author:   dnaber
Date:     2012-06-01 09:17:22 +0000 (Fri, 01 Jun 2012)
Log Message:
-----------
fix: show wait cursor also when text checking is started with shortcut 
(Ctrl+Return)

Modified Paths:
--------------
    trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java

Modified: trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2012-06-01 
08:55:14 UTC (rev 7141)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2012-06-01 
09:17:22 UTC (rev 7142)
@@ -77,6 +77,7 @@
   private JTextPane resultArea;
   private LanguageComboBox languageBox;
   private JCheckBox autoDetectBox;
+  private Cursor prevCursor;
 
   private HTTPServer httpServer;
 
@@ -470,44 +471,61 @@
   }
 
   private void checkTextAndDisplayResults() {
-    final Cursor prevCursor = resultArea.getCursor();
-    frame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
-    final JLanguageTool langTool = getCurrentLanguageTool();
-    final Language lang = getCurrentLanguage();
-    if (StringTools.isEmpty(textArea.getText().trim())) {
-      textArea.setText(messages.getString("enterText2"));
-    } else {
-      final StringBuilder sb = new StringBuilder();
-      final String langName;
-      if (lang.isExternal()) {
-        langName = lang.getTranslatedName(messages) + EXTERNAL_LANGUAGE_SUFFIX;
+    setWaitCursor();
+    try {
+      final JLanguageTool langTool = getCurrentLanguageTool();
+      final Language lang = getCurrentLanguage();
+      if (StringTools.isEmpty(textArea.getText().trim())) {
+        textArea.setText(messages.getString("enterText2"));
       } else {
-        langName = lang.getTranslatedName(messages);
+        final StringBuilder sb = new StringBuilder();
+        final String langName;
+        if (lang.isExternal()) {
+          langName = lang.getTranslatedName(messages) + 
EXTERNAL_LANGUAGE_SUFFIX;
+        } else {
+          langName = lang.getTranslatedName(messages);
+        }
+        final String startCheckText = HTML_GREY_FONT_START + 
Tools.makeTexti18n(messages,
+            "startChecking", new Object[] { langName }) + HTML_FONT_END;
+        resultArea.setText(startCheckText);
+        resultArea.repaint(); // FIXME: why doesn't this work?
+        sb.append(startCheckText);
+        sb.append("...<br>\n");
+        int matches = 0;
+        try {
+          matches = checkText(langTool, textArea.getText(), sb);
+        } catch (final Exception e) {
+          sb.append("<br><br><b><font color=\"red\">");
+          
sb.append(org.languagetool.tools.Tools.getFullStackTrace(e).replace("\n", 
"<br/>"));
+          sb.append("</font></b><br>");
+        }
+        final String checkDone = Tools.makeTexti18n(messages, "checkDone",
+            new Object[] {matches});
+        sb.append(HTML_GREY_FONT_START);
+        sb.append(checkDone);
+        sb.append(HTML_FONT_END);
+        sb.append("<br>\n");
+        resultArea.setText(HTML_FONT_START + sb.toString() + HTML_FONT_END);
+        resultArea.setCaretPosition(0);
       }
-      final String startCheckText = HTML_GREY_FONT_START + 
Tools.makeTexti18n(messages,
-          "startChecking", new Object[] { langName }) + HTML_FONT_END;
-      resultArea.setText(startCheckText);
-      resultArea.repaint(); // FIXME: why doesn't this work?
-      sb.append(startCheckText);
-      sb.append("...<br>\n");
-      int matches = 0;
-      try {
-        matches = checkText(langTool, textArea.getText(), sb);
-      } catch (final Exception e) {
-        sb.append("<br><br><b><font color=\"red\">");
-        
sb.append(org.languagetool.tools.Tools.getFullStackTrace(e).replace("\n", 
"<br/>"));
-        sb.append("</font></b><br>");
-      }
-      final String checkDone = Tools.makeTexti18n(messages, "checkDone",
-          new Object[] {matches});
-      sb.append(HTML_GREY_FONT_START);
-      sb.append(checkDone);
-      sb.append(HTML_FONT_END);
-      sb.append("<br>\n");
-      resultArea.setText(HTML_FONT_START + sb.toString() + HTML_FONT_END);
-      resultArea.setCaretPosition(0);
+    } finally {
+      unsetWaitCursor();
     }
+  }
+
+  private void setWaitCursor() {
+    prevCursor = resultArea.getCursor();
+    frame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
+    // For some reason we also have to set the cursor here so it also shows
+    // when user starts checking text with Ctrl+Return:
+    textArea.setCursor(new Cursor(Cursor.WAIT_CURSOR));
+    resultArea.setCursor(new Cursor(Cursor.WAIT_CURSOR));
+  }
+
+  private void unsetWaitCursor() {
     frame.setCursor(prevCursor);
+    textArea.setCursor(prevCursor);
+    resultArea.setCursor(prevCursor);
   }
 
   private void tagTextAndDisplayResults(final JLanguageTool langTool) {

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