summaryrefslogtreecommitdiff
path: root/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/ExternalDisplaySignRequestHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/ExternalDisplaySignRequestHandler.java')
-rw-r--r--BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/ExternalDisplaySignRequestHandler.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/ExternalDisplaySignRequestHandler.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/ExternalDisplaySignRequestHandler.java
index 2c9fde71..e4567a6c 100644
--- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/ExternalDisplaySignRequestHandler.java
+++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/ExternalDisplaySignRequestHandler.java
@@ -17,7 +17,6 @@
package at.gv.egiz.bku.online.applet;
-import java.applet.AppletContext;
import java.net.URL;
import java.util.List;
@@ -26,28 +25,42 @@ import org.apache.commons.logging.LogFactory;
import at.gv.egiz.bku.smccstal.SignRequestHandler;
import at.gv.egiz.stal.signedinfo.ReferenceType;
+import java.awt.Desktop;
/**
*
- * @author clemens
+ * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
*/
public class ExternalDisplaySignRequestHandler extends SignRequestHandler {
private static final Log log = LogFactory.getLog(ExternalDisplaySignRequestHandler.class);
- AppletContext ctx;
- URL hashDataURL;
+// AppletContext ctx;
+ protected URL hashDataURL;
+ protected Desktop desktop;
- public ExternalDisplaySignRequestHandler(AppletContext ctx, URL hashDataURL) {
- this.ctx = ctx;
+ public ExternalDisplaySignRequestHandler(URL hashDataURL) {
+// this.ctx = ctx;
this.hashDataURL = hashDataURL;
+ if (Desktop.isDesktopSupported()) {
+ desktop = Desktop.getDesktop();
+ }
}
@Override
public void displayHashDataInputs(List<ReferenceType> signedReferences) throws Exception {
//TODO pass reference Id's to servlet (TODO servlet)
log.debug("displaying hashdata inputs at " + hashDataURL);
- ctx.showDocument(hashDataURL, "_blank");
+// ctx.showDocument(hashDataURL, "_blank");
+ if (desktop == null) {
+ log.error("Failed to open default browser: Desktop API not available (libgnome installed?)");
+ } else {
+ if (!desktop.isSupported(Desktop.Action.BROWSE)) {
+ log.error("Failed to open default browser: The system provides the Desktop API, but does not support the BROWSE action");
+ } else {
+ Desktop.getDesktop().browse(hashDataURL.toURI());
+ }
+ }
}
}