()
| 61 | private final ActionListener callbackGray; |
| 62 | |
| 63 | public |
| 64 | TestTray() { |
| 65 | SystemTray.DEBUG = true; // for test apps, we always want to run in debug mode |
| 66 | // SystemTray.FORCE_TRAY_TYPE = SystemTray.TrayType.Swing; |
| 67 | // SystemTray.FORCE_TRAY_TYPE = SystemTray.TrayType.Awt; |
| 68 | // SystemTray.FORCE_TRAY_TYPE = SystemTray.TrayType.Osx; |
| 69 | |
| 70 | // for test apps, make sure the cache is always reset. These are the ones used, and you should never do this in production. |
| 71 | CacheUtil.clear("SysTrayExample"); |
| 72 | |
| 73 | // SwingUtil.setLookAndFeel(null); // set Native L&F (this is the System L&F instead of CrossPlatform L&F) |
| 74 | // SystemTray.SWING_UI = new CustomSwingUI(); |
| 75 | |
| 76 | this.systemTray = SystemTray.get("SysTrayExample"); |
| 77 | if (systemTray == null) { |
| 78 | throw new RuntimeException("Unable to load SystemTray!"); |
| 79 | } |
| 80 | |
| 81 | // SWT/JavaFX "shutdown hooks" have changed. Since it's no longer available with JPMS, it is no longer supported. |
| 82 | // Developers must add the shutdown hooks themselves. |
| 83 | |
| 84 | systemTray.setTooltip("Mail Checker"); |
| 85 | systemTray.setImage(LT_GRAY_TRAIN); |
| 86 | systemTray.setStatus("No Mail"); |
| 87 | |
| 88 | callbackGray = e->{ |
| 89 | final MenuItem entry = (MenuItem) e.getSource(); |
| 90 | systemTray.setStatus(null) |
| 91 | .setImage(BLACK_TRAIN); |
| 92 | |
| 93 | entry.setCallback(null); |
| 94 | // systemTray.setStatus("Mail Empty"); |
| 95 | systemTray.getMenu().remove(entry); |
| 96 | entry.remove(); |
| 97 | System.err.println("POW"); |
| 98 | }; |
| 99 | |
| 100 | |
| 101 | Menu mainMenu = systemTray.getMenu(); |
| 102 | |
| 103 | MenuItem greenEntry = new MenuItem("Green Mail", e->{ |
| 104 | final MenuItem entry = (MenuItem) e.getSource(); |
| 105 | systemTray.setStatus("Some Mail!"); |
| 106 | systemTray.setImage(GREEN_TRAIN); |
| 107 | |
| 108 | entry.setCallback(callbackGray); |
| 109 | entry.setImage(BLACK_MAIL); |
| 110 | entry.setText("Delete Mail"); |
| 111 | entry.setTooltip(null); // remove the tooltip |
| 112 | // systemTray.remove(menuEntry); |
| 113 | }); |
| 114 | greenEntry.setImage(GREEN_MAIL); |
| 115 | // case does not matter |
| 116 | greenEntry.setShortcut('G'); |
| 117 | greenEntry.setTooltip("This means you have green mail!"); |
| 118 | mainMenu.add(greenEntry); |
| 119 | |
| 120 |
nothing calls this directly
no test coverage detected