Added StatusTrayIcon#displayMessageNotification method
Using this method, a message object can be displayed as a OS-specific notification, which can be useful in the future to alert the user about an incoming message while the application is not in focus.
This commit is contained in:
		| @@ -7,8 +7,10 @@ import java.awt.PopupMenu; | ||||
| import java.awt.SystemTray; | ||||
| import java.awt.Toolkit; | ||||
| import java.awt.TrayIcon; | ||||
| import java.awt.TrayIcon.MessageType; | ||||
|  | ||||
| import envoy.exception.EnvoyException; | ||||
| import envoy.schema.Message; | ||||
|  | ||||
| /** | ||||
|  * Project: <strong>envoy-client</strong><br> | ||||
| @@ -25,22 +27,23 @@ public class StatusTrayIcon { | ||||
| 	public StatusTrayIcon() throws EnvoyException { | ||||
| 		if (!SystemTray.isSupported()) throw new EnvoyException("The Envoy tray icon is not supported."); | ||||
|  | ||||
| 		Image		img			= Toolkit.getDefaultToolkit().createImage(getClass().getResource("envoy_logo.png")); | ||||
| 		trayIcon	= new TrayIcon(img, "Envoy Client"); | ||||
| 		Image img = Toolkit.getDefaultToolkit().createImage(getClass().getResource("envoy_logo.png")); | ||||
| 		trayIcon = new TrayIcon(img, "Envoy Client"); | ||||
| 		trayIcon.setImageAutoSize(true); | ||||
| 		trayIcon.setToolTip("You are notified if you have unread messages."); | ||||
| 		 | ||||
|  | ||||
| 		PopupMenu popup = new PopupMenu(); | ||||
| 		 | ||||
|  | ||||
| 		MenuItem exitMenuItem = new MenuItem("Exit"); | ||||
| 		exitMenuItem.addActionListener((evt) -> System.exit(0)); | ||||
| 		popup.add(exitMenuItem); | ||||
| 		 | ||||
|  | ||||
| 		trayIcon.setPopupMenu(popup); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Makes this {@link StatusTrayIcon} appear in the system tray. | ||||
| 	 *  | ||||
| 	 * @throws EnvoyException | ||||
| 	 */ | ||||
| 	public void show() throws EnvoyException { | ||||
| @@ -50,7 +53,14 @@ public class StatusTrayIcon { | ||||
| 			throw new EnvoyException("Could not attach Envoy tray icon to system tray.", e); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	// TODO: Add event listener | ||||
| 	// trayIcon.displayMessage("Envoy Client", message, MessageType.INFO); | ||||
|  | ||||
| 	/** | ||||
| 	 * Notifies the user of a message by displaying a popup. | ||||
| 	 *  | ||||
| 	 * @param message the {@link Message} object to display in the popup | ||||
| 	 */ | ||||
| 	public void displayMessageNotification(Message message) { | ||||
| 		// TODO: Add event listener | ||||
| 		trayIcon.displayMessage("New message received", message.getContent().get(0).getText(), MessageType.INFO); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user