Private Sub Class_Globals
Private img2 As Image
Private su As StringUtils
Private xui As XUI
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
Dim sString As String = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADO0lEQVR42m2Te2hTVxzHv7fJfefepElrk7Qr1ra6bhPrXFWcc2OWDRV8oKB/+EI22earjm6OgqCIYlWYk1KhG/4x/aMIMpyKio+K+ELF96i2a9fRNekjpnncm9x7c2M8OWOjqAd+nNfvfM73HH5fBm9okz5Z4p30wey5wbLSqvw8NBD689nd65eedZyIvprLjJ2UT6tXlmzZuWdWbdUX/kJRYB0FdN2ysxgcTRs3Hvb+crJlZ9Pft88nXwNUzVkWXLF1x8WpE8fVuCQOAufAeJUnOzn0xi0Ylg1Nt/Cga7jzeMvu+u6O9tD/gMLyd5xLm9pu1E1+q05RBMgEEFA41I2TKPz2UAqhhAk9ZSKZMHD3yT93ftu3YVa075FNATPWNn9dP//zVp9PgUv9F6CILD4udeUF4MpAEsl0BppmQksaiEYSuHyh45tbRxoPU8DCHb8/qJ4QmKJ4ZMiKCEnmwPNOTPAIVEHPaBqmYUPXiYpkGlpMR3dP+OGpXYtrGW/FNPfsVdtHS0q8jOx2QXQJEGUeRS4OX80opYDDtwYQITenCSClGdBjGoaHo7mb7c2FjK9yZnXdsm+73B4VoipDkAXwIoegR8T3n1VTQPP5boRGUzDIH5g6ASV1xGMJ3DvZMpHxlL8fqF3UEJIVFwSXBFbgSXAo80rYs7yWApra76P/uY6MYdEwNJ08RcOjM61B+gfT17SGlUK3n5ckcATgYJ0o80k4+OWHFNDw83X0R3RkMzastAEzlUIyFh+88+vGAAVU1zf+6K+saWA5HrwkwsmxKC+W0bLpUwrYcOgy+kc0ZCyLHE6T3sRQb9fB7ov7t1KAk1fH18z77r5aVOJxOFmqosLvRtu2+RSwvvkM/grHYRkmsnYGichQrPPcgam2mej7rxJ5ufjtdZUfrT4kq24nUACedeCnxgV0c8v+0zBJOeeLQo/H7J5rRzfrI0+PkAVzrBe8UlHN+sB7837wlATdTpbFi9wLWkhMQQHsjIX4UDgefnJ2byrS2Ubyo6+ZKa/EwauTpeJ3V8q+ijmcqPqpmdLxQf1539XUyB/Hsmbicf7mN7pxjEkZxsGxJPJuQi5rmSQyZJR7NfMlSNFJupvXYToAAAAASUVORK5CYII="
Dim b() As Byte = su.DecodeBase64(sString)
Dim inps As InputStream
inps.InitializeFromBytesArray(b,0,b.Length)
img2.Initialize2(inps)
End Sub
Public Sub getIconError() As String
Return "ERROR"
End Sub
Public Sub getIconNone() As String
Return "NONE"
End Sub
Public Sub getIconInfo() As String
Return "INFO"
End Sub
Public Sub getIconWarning() As String
Return "WARNING"
End Sub
Public Sub ShowNotification(Image16x16YouMayPassNull As Image, Message As String, Title As String, Icon As String)
Select Case GetSystemProperty("os.name", "").ToLowerCase.Contains("windows")
Case True
If Image16x16YouMayPassNull.IsInitialized = False Then
asJO(Me).RunMethod("displayTray",Array(img2, Title, Message, Icon))
Else
asJO(Me).RunMethod("displayTray",Array(Image16x16YouMayPassNull, Title, Message, Icon))
End If
Sleep(7600)
asJO(Me).RunMethod("removeTrayIcon", Null)
Case False
wait for (xui.Msgbox2Async(Message, Title, "Ok", "", "", img2)) Msgbox_Result(iRet As Int)
End Select
End Sub
Private Sub asJO (o As JavaObject) As JavaObject
Return o
End Sub
#if java
import java.awt.*;
import java.awt.event.*;
import java.awt.TrayIcon.MessageType;
import java.net.MalformedURLException;
import javafx.embed.swing.SwingFXUtils;
SystemTray tray = SystemTray.getSystemTray();
TrayIcon trayIcon;
public void displayTray(javafx.scene.image.Image img,String title,String msg, String icon) throws AWTException, MalformedURLException {
trayIcon = new TrayIcon(SwingFXUtils.fromFXImage(img, null));
tray.add(trayIcon);
//MessageType.(ERROR, INFO, NONE, WARNING)
switch (icon)
{
case "WARNING":
trayIcon.displayMessage(title,msg,MessageType.WARNING);
break;
case "INFO":
trayIcon.displayMessage(title,msg,MessageType.INFO);
break;
case "NONE":
trayIcon.displayMessage(title,msg,MessageType.NONE);
break;
case "ERROR":
trayIcon.displayMessage(title,msg,MessageType.ERROR);
break;
}
}
public void removeTrayIcon(){
tray.remove(trayIcon);
}
#End If