remove AWT code and relocate to TrayMenuController

This commit is contained in:
Edward Chow
2022-10-16 22:26:30 +11:00
parent e5e606f3ae
commit f852ae0392
3 changed files with 19 additions and 27 deletions

View File

@@ -19,6 +19,8 @@ import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
@CheckAvailability
@@ -58,6 +60,19 @@ public class AwtTrayMenuController implements TrayMenuController {
addChildren(menu, items);
}
@Override
public void onBeforeShow(Runnable listener) {
SystemTray systemTray = SystemTray.getSystemTray();
TrayIcon trayIcon = systemTray.getTrayIcons()[0];
trayIcon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
listener.run();
}
});
}
private void addChildren(Menu menu, List<TrayMenuItem> items) {
for (var item : items) {
// TODO: use Pattern Matching for switch, once available

View File

@@ -70,32 +70,9 @@ public class TrayMenuBuilder {
trayMenu.showTrayIcon(image.readAllBytes(), this::showMainWindow, "Cryptomator");
SystemTray tray = SystemTray.getSystemTray();
TrayIcon trayIcon = tray.getTrayIcons()[0];
trayIcon.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
for (Vault vault : vaults) {
VaultListManager.redetermineVaultState(vault);
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
trayMenu.onBeforeShow(() -> {
for (Vault vault : vaults) {
VaultListManager.redetermineVaultState(vault);
}
});
rebuildMenu();