Updated examples to include new functionality

This commit is contained in:
nathan 2016-10-03 23:55:25 +02:00
parent 7e2834c0cb
commit 4bbe713519
4 changed files with 83 additions and 27 deletions

View File

@ -414,7 +414,7 @@ class Menu {
} }
/** /**
* This removes a sub-menu entry or sub-menu from the dropdown menu. * This removes a sub-menu entry from the dropdown menu.
* *
* @param menu This is the menu entry to remove * @param menu This is the menu entry to remove
*/ */
@ -484,4 +484,12 @@ class Menu {
} }
}); });
} }
/**
* This removes the sub-menu entry from the dropdown menu.
*/
public
void remove() {
getParent().remove(this);
}
} }

View File

@ -50,45 +50,61 @@ class TestTray {
throw new RuntimeException("Unable to load SystemTray!"); throw new RuntimeException("Unable to load SystemTray!");
} }
this.systemTray.setIcon(LT_GRAY_MAIL); systemTray.setIcon(LT_GRAY_MAIL);
systemTray.setStatus("No Mail"); systemTray.setStatus("No Mail");
callbackGreen = new SystemTrayMenuAction() { callbackGreen = new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.setStatus("Some Mail!"); systemTray.setStatus("Some Mail!");
systemTray.setIcon(GREEN_MAIL); systemTray.setIcon(GREEN_MAIL);
menuEntry.setCallback(callbackGray); menuEntry.setCallback(callbackGray);
menuEntry.setImage(BLACK_MAIL); menuEntry.setImage(BLACK_MAIL);
menuEntry.setText("Delete Mail"); menuEntry.setText("Delete Mail");
// systemTray.removeMenuEntry(menuEntry); // systemTray.remove(menuEntry);
} }
}; };
callbackGray = new SystemTrayMenuAction() { callbackGray = new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.setStatus(null); systemTray.setStatus(null);
systemTray.setIcon(BLACK_MAIL); systemTray.setIcon(BLACK_MAIL);
menuEntry.setCallback(null); menuEntry.setCallback(null);
// systemTray.setStatus("Mail Empty"); // systemTray.setStatus("Mail Empty");
systemTray.removeMenuEntry(menuEntry); systemTray.remove(menuEntry);
System.err.println("POW"); System.err.println("POW");
} }
}; };
this.systemTray.addMenuEntry("Green Mail", GREEN_MAIL, callbackGreen); this.systemTray.addEntry("Green Mail", GREEN_MAIL, callbackGreen);
this.systemTray.addMenuSpacer(); this.systemTray.addSeparator();
this.systemTray.addMenuEntry("AAAAAAAA", LT_GRAY_MAIL, null);
systemTray.addMenuEntry("Quit", new SystemTrayMenuAction() { final Menu submenu = this.systemTray.addMenu("Options", BLACK_MAIL);
submenu.addEntry("Disable menu", LT_GRAY_MAIL, new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry entry) {
submenu.setEnabled(false);
}
});
submenu.addEntry("Remove menu", GREEN_MAIL, new SystemTrayMenuAction() {
@Override
public
void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry entry) {
submenu.remove();
}
});
systemTray.addEntry("Quit", new SystemTrayMenuAction() {
@Override
public
void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.shutdown(); systemTray.shutdown();
//System.exit(0); not necessary if all non-daemon threads have stopped. //System.exit(0); not necessary if all non-daemon threads have stopped.
} }

View File

@ -90,38 +90,54 @@ class TestTrayJavaFX extends Application {
callbackGreen = new SystemTrayMenuAction() { callbackGreen = new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.setIcon(GREEN_MAIL); systemTray.setIcon(GREEN_MAIL);
systemTray.setStatus("Some Mail!"); systemTray.setStatus("Some Mail!");
menuEntry.setCallback(callbackGray); menuEntry.setCallback(callbackGray);
menuEntry.setImage(BLACK_MAIL); menuEntry.setImage(BLACK_MAIL);
menuEntry.setText("Delete Mail"); menuEntry.setText("Delete Mail");
// systemTray.removeMenuEntry(menuEntry); // systemTray.remove(menuEntry);
} }
}; };
callbackGray = new SystemTrayMenuAction() { callbackGray = new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.setStatus(null); systemTray.setStatus(null);
systemTray.setIcon(BLACK_MAIL); systemTray.setIcon(BLACK_MAIL);
menuEntry.setCallback(null); menuEntry.setCallback(null);
// systemTray.setStatus("Mail Empty"); // systemTray.setStatus("Mail Empty");
systemTray.removeMenuEntry(menuEntry); systemTray.remove(menuEntry);
System.err.println("POW"); System.err.println("POW");
} }
}; };
this.systemTray.addMenuEntry("Green Mail", GREEN_MAIL, callbackGreen); this.systemTray.addEntry("Green Mail", GREEN_MAIL, callbackGreen);
this.systemTray.addMenuSpacer(); this.systemTray.addSeparator();
systemTray.addMenuEntry("Quit", new SystemTrayMenuAction() { final Menu submenu = this.systemTray.addMenu("Options", BLACK_MAIL);
submenu.addEntry("Disable menu", LT_GRAY_MAIL, new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry entry) {
submenu.setEnabled(false);
}
});
submenu.addEntry("Remove menu", GREEN_MAIL, new SystemTrayMenuAction() {
@Override
public
void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry entry) {
submenu.remove();
}
});
systemTray.addEntry("Quit", new SystemTrayMenuAction() {
@Override
public
void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.shutdown(); systemTray.shutdown();
Platform.exit(); // necessary to close javaFx Platform.exit(); // necessary to close javaFx
//System.exit(0); not necessary if all non-daemon threads have stopped. //System.exit(0); not necessary if all non-daemon threads have stopped.

View File

@ -74,38 +74,54 @@ class TestTraySwt {
callbackGreen = new SystemTrayMenuAction() { callbackGreen = new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final dorkbox.systemTray.Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.setStatus("Some Mail!"); systemTray.setStatus("Some Mail!");
systemTray.setIcon(GREEN_MAIL); systemTray.setIcon(GREEN_MAIL);
menuEntry.setCallback(callbackGray); menuEntry.setCallback(callbackGray);
menuEntry.setImage(BLACK_MAIL); menuEntry.setImage(BLACK_MAIL);
menuEntry.setText("Delete Mail"); menuEntry.setText("Delete Mail");
// systemTray.removeMenuEntry(menuEntry); // systemTray.remove(menuEntry);
} }
}; };
callbackGray = new SystemTrayMenuAction() { callbackGray = new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.setStatus(null); systemTray.setStatus(null);
systemTray.setIcon(BLACK_MAIL); systemTray.setIcon(BLACK_MAIL);
menuEntry.setCallback(null); menuEntry.setCallback(null);
// systemTray.setStatus("Mail Empty"); // systemTray.setStatus("Mail Empty");
systemTray.removeMenuEntry(menuEntry); systemTray.remove(menuEntry);
System.err.println("POW"); System.err.println("POW");
} }
}; };
this.systemTray.addMenuEntry("Green Mail", GREEN_MAIL, callbackGreen); this.systemTray.addEntry("Green Mail", GREEN_MAIL, callbackGreen);
this.systemTray.addMenuSpacer(); this.systemTray.addSeparator();
systemTray.addMenuEntry("Quit", new SystemTrayMenuAction() { final Menu submenu = this.systemTray.addMenu("Options", BLACK_MAIL);
submenu.addEntry("Disable menu", LT_GRAY_MAIL, new SystemTrayMenuAction() {
@Override @Override
public public
void onClick(final SystemTray systemTray, final Menu parentMenu, final MenuEntry menuEntry) { void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry entry) {
submenu.setEnabled(false);
}
});
submenu.addEntry("Remove menu", GREEN_MAIL, new SystemTrayMenuAction() {
@Override
public
void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry entry) {
submenu.remove();
}
});
systemTray.addEntry("Quit", new SystemTrayMenuAction() {
@Override
public
void onClick(final SystemTray systemTray, final Menu parent, final MenuEntry menuEntry) {
systemTray.shutdown(); systemTray.shutdown();
display.asyncExec(new Runnable() { display.asyncExec(new Runnable() {