瀏覽代碼

code cleanup [ci skip]

Sebastian Stenzel 9 年之前
父節點
當前提交
0dd96635ac
共有 1 個文件被更改,包括 38 次插入24 次删除
  1. 38 24
      main/ui/src/main/java/org/cryptomator/ui/ExitUtil.java

+ 38 - 24
main/ui/src/main/java/org/cryptomator/ui/ExitUtil.java

@@ -9,13 +9,19 @@
  *******************************************************************************/
 package org.cryptomator.ui;
 
-import javafx.application.Platform;
-import javafx.stage.Stage;
-import org.apache.commons.lang3.SystemUtils;
-import org.cryptomator.ui.settings.Localization;
-import org.cryptomator.ui.settings.Settings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.awt.AWTException;
+import java.awt.Image;
+import java.awt.MenuItem;
+import java.awt.PopupMenu;
+import java.awt.SystemTray;
+import java.awt.Toolkit;
+import java.awt.TrayIcon;
+import java.awt.TrayIcon.MessageType;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -23,15 +29,16 @@ import javax.inject.Singleton;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
 import javax.script.ScriptException;
-import javax.swing.*;
-import java.awt.*;
-import java.awt.TrayIcon.MessageType;
-import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
+import javax.swing.SwingUtilities;
+
+import org.apache.commons.lang3.SystemUtils;
+import org.cryptomator.ui.settings.Localization;
+import org.cryptomator.ui.settings.Settings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javafx.application.Platform;
+import javafx.stage.Stage;
 
 @Singleton
 class ExitUtil {
@@ -71,14 +78,10 @@ class ExitUtil {
 	private void initTrayIconExitHandler(Runnable exitCommand) {
 		final TrayIcon trayIcon = createTrayIcon(exitCommand);
 		try {
-			// I'm sorry but no lambda here as several methods must be implemented
-			trayIcon.addMouseListener(new MouseAdapter() {
-				public void mouseClicked(MouseEvent e) {
-					if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {
-						restoreFromTray(new ActionEvent(e.getSource(), e.getID(), e.paramString()));
-					}
-				}
-			});
+			// double clicking tray icon should open Cryptomator
+			if (SystemUtils.IS_OS_WINDOWS) {
+				trayIcon.addMouseListener(new TrayIconMouseListener());
+			}
 
 			SystemTray.getSystemTray().add(trayIcon);
 			mainWindow.setOnCloseRequest((e) -> {
@@ -173,6 +176,17 @@ class ExitUtil {
 		});
 	}
 
+	private class TrayIconMouseListener extends MouseAdapter {
+
+		@Override
+		public void mouseClicked(MouseEvent e) {
+			if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {
+				restoreFromTray(new ActionEvent(e.getSource(), e.getID(), e.paramString()));
+			}
+		}
+
+	}
+
 	private void restoreFromTray(ActionEvent event) {
 		Platform.runLater(() -> {
 			mainWindow.show();