Revision: 7684
http://languagetool.svn.sourceforge.net/languagetool/?rev=7684&view=rev
Author: dnaber
Date: 2012-07-09 21:03:25 +0000 (Mon, 09 Jul 2012)
Log Message:
-----------
Don't re-initialize the LT object on every check. Improves performance of
checking for languages with a lot of rules (not for the first check though).
Also correct time measurement.
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-07-09
16:20:23 UTC (rev 7683)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2012-07-09
21:03:25 UTC (rev 7684)
@@ -68,6 +68,7 @@
private Configuration config;
+ private JLanguageTool langTool;
private JFrame frame;
private JTextArea textArea;
private ResultArea resultArea;
@@ -125,6 +126,12 @@
buttonCons.anchor = GridBagConstraints.WEST;
insidePanel.add(new JLabel(" " + messages.getString("textLanguage") + "
"), buttonCons);
languageBox = new LanguageComboBox(messages);
+ languageBox.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ langTool = null; // we cannot re-use the existing LT object anymore
+ }
+ });
buttonCons.gridx = 1;
buttonCons.gridy = 0;
insidePanel.add(languageBox, buttonCons);
@@ -415,36 +422,37 @@
}
private JLanguageTool getCurrentLanguageTool(Language currentLanguage) {
- final JLanguageTool langTool;
- try {
- config = new Configuration(new File(System.getProperty("user.home")),
CONFIG_FILE, currentLanguage);
- resultArea.setConfiguration(config);
- final ConfigurationDialog configDialog =
getCurrentConfigDialog(currentLanguage);
- langTool = new JLanguageTool(currentLanguage,
configDialog.getMotherTongue());
- langTool.activateDefaultPatternRules();
- langTool.activateDefaultFalseFriendRules();
- resultArea.setLanguageTool(langTool);
- final Set<String> disabledRules = configDialog.getDisabledRuleIds();
- if (disabledRules != null) {
- for (final String ruleId : disabledRules) {
- langTool.disableRule(ruleId);
+ if (langTool == null) {
+ try {
+ config = new Configuration(new File(System.getProperty("user.home")),
CONFIG_FILE, currentLanguage);
+ resultArea.setConfiguration(config);
+ final ConfigurationDialog configDialog =
getCurrentConfigDialog(currentLanguage);
+ langTool = new JLanguageTool(currentLanguage,
configDialog.getMotherTongue());
+ langTool.activateDefaultPatternRules();
+ langTool.activateDefaultFalseFriendRules();
+ resultArea.setLanguageTool(langTool);
+ final Set<String> disabledRules = configDialog.getDisabledRuleIds();
+ if (disabledRules != null) {
+ for (final String ruleId : disabledRules) {
+ langTool.disableRule(ruleId);
+ }
}
- }
- final Set<String> disabledCategories =
configDialog.getDisabledCategoryNames();
- if (disabledCategories != null) {
- for (final String categoryName : disabledCategories) {
- langTool.disableCategory(categoryName);
+ final Set<String> disabledCategories =
configDialog.getDisabledCategoryNames();
+ if (disabledCategories != null) {
+ for (final String categoryName : disabledCategories) {
+ langTool.disableCategory(categoryName);
+ }
}
- }
- final Set<String> enabledRules = configDialog.getEnabledRuleIds();
- if (enabledRules != null) {
- for (String ruleName : enabledRules) {
- langTool.enableDefaultOffRule(ruleName);
- langTool.enableRule(ruleName);
+ final Set<String> enabledRules = configDialog.getEnabledRuleIds();
+ if (enabledRules != null) {
+ for (String ruleName : enabledRules) {
+ langTool.enableDefaultOffRule(ruleName);
+ langTool.enableRule(ruleName);
+ }
}
+ } catch (final Exception e) {
+ throw new RuntimeException(e);
}
- } catch (final Exception e) {
- throw new RuntimeException(e);
}
return langTool;
}
@@ -468,13 +476,13 @@
setWaitCursor();
checkTextButton.setEnabled(false);
try {
+ final long startTime = System.currentTimeMillis();
final String startCheckText = HTML_GREY_FONT_START +
Tools.makeTexti18n(messages,
"startChecking", new Object[]{langName}) + "..." + HTML_FONT_END;
resultArea.setText(startCheckText);
resultArea.repaint();
try {
final JLanguageTool langTool =
getCurrentLanguageTool(lang);
- final long startTime = System.currentTimeMillis();
ruleMatches = langTool.check(textArea.getText());
resultArea.setStartText(startCheckText);
resultArea.setInputText(textArea.getText());
@@ -559,10 +567,8 @@
}
});
} else if (args.length >= 1) {
- System.out
- .println("Usage: java org.languagetool.gui.Main [-t|--tray]");
- System.out
- .println(" -t, --tray: dock LanguageTool to system tray on
startup");
+ System.out.println("Usage: java org.languagetool.gui.Main
[-t|--tray]");
+ System.out.println(" -t, --tray: dock LanguageTool to system tray on
startup");
prg.stopServer();
} else {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
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