diff --git a/src/main/java/envoy/client/ui/ChatWindow.java b/src/main/java/envoy/client/ui/ChatWindow.java
index 32b024b..0eeccc0 100644
--- a/src/main/java/envoy/client/ui/ChatWindow.java
+++ b/src/main/java/envoy/client/ui/ChatWindow.java
@@ -1,11 +1,17 @@
package envoy.client.ui;
+import java.awt.AWTException;
import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
+import java.awt.Image;
import java.awt.Insets;
+import java.awt.SystemTray;
+import java.awt.Toolkit;
+import java.awt.TrayIcon;
+import java.awt.TrayIcon.MessageType;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
@@ -37,7 +43,7 @@ import envoy.schema.User;
* Project: envoy-client
* File: ChatWindow.java
* Created: 28 Sep 2019
- *
+ *
* @author Kai S. K. Engelbart
* @author Maximilian Käfer
* @author Leon Hofmeister
@@ -122,13 +128,11 @@ public class ChatWindow extends JFrame {
@Override
public void keyReleased(KeyEvent e) {
-
if (e.getKeyCode() == KeyEvent.VK_ENTER && ((SettingsScreen.enterToSend && e.getModifiersEx() == 0)
|| (e.getModifiersEx() == KeyEvent.CTRL_DOWN_MASK))) {
postMessage(messageList);
}
-
}
});
// Checks for changed Message
@@ -287,7 +291,7 @@ public class ChatWindow extends JFrame {
/**
* Initializes the elements of the user list by downloading them from the
* server.
- *
+ *
* @since Envoy v0.1-alpha
*/
private void loadUsersAndChats() {
@@ -308,7 +312,7 @@ public class ChatWindow extends JFrame {
/**
* Updates the data model and the UI repeatedly after a certain amount of
* time.
- *
+ *
* @param timeout the amount of time that passes between two requests sent to
* the server
* @since Envoy v0.1-alpha
@@ -346,4 +350,14 @@ public class ChatWindow extends JFrame {
* Marks messages in the current chat as {@code READ}.
*/
private void readCurrentChat() { if (currentChat != null) { localDB.setMessagesToRead(currentChat); } }
+
+ private void displayNotification(String message) throws AWTException {
+ SystemTray tray = SystemTray.getSystemTray();
+ Image image = Toolkit.getDefaultToolkit().createImage(getClass().getResource("Envoy Logo.png"));
+ TrayIcon trayIcon = new TrayIcon(image, "Envoy Client");
+ trayIcon.setImageAutoSize(true);
+ trayIcon.setToolTip("You are notified if you have unread messages.");
+ tray.add(trayIcon);
+ trayIcon.displayMessage("Envoy Client", message, MessageType.INFO);
+ }
}
diff --git a/src/main/resources/Envoy Logo.png b/src/main/resources/Envoy Logo.png
new file mode 100644
index 0000000..35ef7d9
Binary files /dev/null and b/src/main/resources/Envoy Logo.png differ