summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java
diff options
context:
space:
mode:
authorSteffen Ritter2018-06-21 11:25:47 +0200
committerSteffen Ritter2018-06-21 11:25:47 +0200
commitdc44f65e48487cee19eaeb908e8c7a2d4a383e3e (patch)
treeb2cf9e901bd760fd0e1852f615b24d1808a7f74f /dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java
parent[client] Switch over LectureDetailsWindow to new change monitor system (diff)
downloadtutor-module-dc44f65e48487cee19eaeb908e8c7a2d4a383e3e.tar.gz
tutor-module-dc44f65e48487cee19eaeb908e8c7a2d4a383e3e.tar.xz
tutor-module-dc44f65e48487cee19eaeb908e8c7a2d4a383e3e.zip
[client] showMessagBox with clickable Hyperlink
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java35
1 files changed, 34 insertions, 1 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java
index 9bddb652..bf6cf060 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/Gui.java
@@ -3,6 +3,7 @@ package org.openslx.dozmod.gui;
import java.awt.AWTEvent;
import java.awt.Component;
import java.awt.Dimension;
+import java.awt.Font;
import java.awt.Frame;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
@@ -14,17 +15,24 @@ import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.AWTEventListener;
import java.lang.reflect.InvocationTargetException;
+import java.net.URISyntaxException;
import java.util.concurrent.atomic.AtomicReference;
import javax.management.monitor.Monitor;
import javax.swing.Icon;
+import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.event.HyperlinkEvent;
+import javax.swing.event.HyperlinkListener;
+import javax.swing.text.html.HTMLDocument;
import org.apache.log4j.Logger;
import org.openslx.dozmod.Config;
import org.openslx.dozmod.gui.helper.MessageType;
+import org.openslx.dozmod.util.OpenLinks;
import org.openslx.util.QuickTimer;
import org.openslx.util.ResourceLoader;
@@ -287,7 +295,7 @@ public class Gui {
* Generic helper to show a message box to the user, and optionally log the
* message to the log file.
*
- * @param parent partent window (used for positioning/modality). If null,
+ * @param parent parent window (used for positioning/modality). If null,
* the active window will be used
* @param message Message to display. Can be multi line.
* @param messageType Type of message (warning, information)
@@ -313,6 +321,31 @@ public class Gui {
message += "\n\n" + exception.getClass().getSimpleName() + "\n" + exception.getMessage() + "\n"
+ " (Für Stack-Trace siehe Logdatei)";
}
+ if (message.startsWith("<html>")) {
+ JEditorPane ep = new JEditorPane("text/html", message);
+ ep.setEditable(false);
+ ep.setOpaque(false);
+
+ Font font = UIManager.getFont("Label.font");
+ String bodyRule = "body { font-family: " + font.getFamily() + "; " +
+ "font-size: " + font.getSize() + "pt; }";
+ ((HTMLDocument)ep.getDocument()).getStyleSheet().addRule(bodyRule);
+
+ ep.addHyperlinkListener(new HyperlinkListener() {
+ @Override
+ public void hyperlinkUpdate(HyperlinkEvent e) {
+ if (e.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) {
+ try {
+ OpenLinks.openWebpageUri(e.getURL().toURI());
+ } catch (URISyntaxException ex) {
+ LOGGER.error("Couldn't parse hyperlink", ex);
+ }
+ }
+ }
+ });
+ JOptionPane.showMessageDialog(parent, ep, messageType.title, messageType.optionPaneId);
+ return true;
+ }
if (messageType.buttons == -1) {
JOptionPane.showMessageDialog(parent, message, messageType.title, messageType.optionPaneId);
return true;