Revision: 8488
http://languagetool.svn.sourceforge.net/languagetool/?rev=8488&view=rev
Author: dnaber
Date: 2012-12-02 23:24:28 +0000 (Sun, 02 Dec 2012)
Log Message:
-----------
stand-alone GUI: the tray icon menu (reachable with the right mouse button on
the tray icon) now has a checkbox to enable the embedded HTTP server
Modified Paths:
--------------
trunk/JLanguageTool/CHANGES.txt
trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
trunk/JLanguageTool/src/main/resources/org/languagetool/MessagesBundle.properties
Modified: trunk/JLanguageTool/CHANGES.txt
===================================================================
--- trunk/JLanguageTool/CHANGES.txt 2012-12-02 22:24:07 UTC (rev 8487)
+++ trunk/JLanguageTool/CHANGES.txt 2012-12-02 23:24:28 UTC (rev 8488)
@@ -56,6 +56,9 @@
-HTTP API: the Java API of HTTPServer has been modified in incompatible ways.
You might get
compile errors if you have used this class from your Java code.
+ -stand-alone GUI: the tray icon menu (reachable with the right mouse button
on the tray
+ icon) now has a checkbox to enable the embedded HTTP server
+
-stand-alone GUI: Fixed bug "Tray icon too big sometimes" (Sourceforge
#3573078)
Modified: trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
===================================================================
--- trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
2012-12-02 22:24:07 UTC (rev 8487)
+++ trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
2012-12-02 23:24:28 UTC (rev 8488)
@@ -73,6 +73,7 @@
private LanguageComboBox languageBox;
private LanguageDetectionCheckbox autoDetectBox;
private Cursor prevCursor;
+ private CheckboxMenuItem enableHttpsServerItem;
private HTTPServer httpServer;
@@ -258,6 +259,10 @@
private PopupMenu makePopupMenu() {
final PopupMenu popup = new PopupMenu();
final ActionListener rmbListener = new TrayActionRMBListener();
+ enableHttpsServerItem = new
CheckboxMenuItem(StringTools.getLabel(messages.getString("tray_menu_enable_server")));
+ enableHttpsServerItem.setState(config.getRunServer());
+ enableHttpsServerItem.addItemListener(new TrayActionItemListener());
+ popup.add(enableHttpsServerItem);
// Check clipboard text:
final MenuItem checkClipboardItem =
new
MenuItem(StringTools.getLabel(messages.getString("guiMenuCheckClipboard")));
@@ -325,8 +330,7 @@
void quit() {
stopServer();
try {
- final Language currentLanguage = getCurrentLanguage();
-
config.saveConfiguration(getCurrentLanguageTool(currentLanguage).getLanguage());
+ config.saveConfiguration(getCurrentLanguage());
} catch (IOException e) {
Tools.showError(e);
}
@@ -378,27 +382,34 @@
return s;
}
- private void maybeStartServer() {
+ private boolean maybeStartServer() {
if (config.getRunServer()) {
try {
final HTTPServerConfig serverConfig = new
HTTPServerConfig(config.getServerPort(), false);
httpServer = new HTTPServer(serverConfig, true);
httpServer.run();
+ if (enableHttpsServerItem != null) {
+ enableHttpsServerItem.setState(true);
+ }
} catch (PortBindingException e) {
final String message = e.getMessage();
JOptionPane.showMessageDialog(null, message, "Error",
JOptionPane.ERROR_MESSAGE);
+ return false;
}
+ return true;
+ } else {
+ return false;
}
}
private void stopServer() {
if (httpServer != null) {
httpServer.stop();
+ enableHttpsServerItem.setState(false);
httpServer = null;
}
}
- // method modified to add automatic language detection
private Language getCurrentLanguage() {
if (autoDetectBox.isSelected()) {
return autoDetectBox.autoDetectLanguage(textArea.getText());
@@ -617,6 +628,35 @@
// The System Tray stuff
//
+ class TrayActionItemListener implements ItemListener {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ try {
+ final Language language = getCurrentLanguage();
+ final ConfigurationDialog configDialog = configDialogs.get(language);
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ config.setRunServer(true);
+ final boolean serverStarted = maybeStartServer();
+ config.setRunServer(serverStarted);
+ enableHttpsServerItem.setState(serverStarted);
+ config.saveConfiguration(language);
+ if (configDialog != null) {
+ configDialog.setRunServer(true);
+ }
+ } else if (e.getStateChange() == ItemEvent.DESELECTED) {
+ config.setRunServer(false);
+ config.saveConfiguration(language);
+ if (configDialog != null) {
+ configDialog.setRunServer(false);
+ }
+ stopServer();
+ }
+ } catch (IOException ex) {
+ Tools.showError(ex);
+ }
+ }
+ }
+
class TrayActionRMBListener implements ActionListener {
@Override
Modified:
trunk/JLanguageTool/src/main/resources/org/languagetool/MessagesBundle.properties
===================================================================
---
trunk/JLanguageTool/src/main/resources/org/languagetool/MessagesBundle.properties
2012-12-02 22:24:07 UTC (rev 8487)
+++
trunk/JLanguageTool/src/main/resources/org/languagetool/MessagesBundle.properties
2012-12-02 23:24:28 UTC (rev 8488)
@@ -268,3 +268,5 @@
https_server_start_failed = LanguageTool HTTPS server could not be started on
host "{0}", port {1} - maybe something else is running on that port already?
https_server_start_failed_unknown_reason = LanguageTool HTTPS server could not
be started on host "{0}", port {1}
+
+tray_menu_enable_server = Run HTTP server
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Keep yourself connected to Go Parallel:
DESIGN Expert tips on starting your parallel project right.
http://goparallel.sourceforge.net/
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits