diff options
| author | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2009-08-27 16:00:46 +0000 | 
|---|---|---|
| committer | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2009-08-27 16:00:46 +0000 | 
| commit | 234cc16c3ebee52e7b3b76219b94d6ee644d5775 (patch) | |
| tree | dfd53395ab98469efc49f35e342704d9bc804735 /BKUWebStart/src/main/java | |
| parent | 24f4d5c071ffb8b0d62f4d7aa025a86ad7bd53b4 (diff) | |
| download | mocca-234cc16c3ebee52e7b3b76219b94d6ee644d5775.tar.gz mocca-234cc16c3ebee52e7b3b76219b94d6ee644d5775.tar.bz2 mocca-234cc16c3ebee52e7b3b76219b94d6ee644d5775.zip | |
added HELP tray item
added INSTALL CA CERT help page
WebStart: shortcut online=true
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@476 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'BKUWebStart/src/main/java')
| -rw-r--r-- | BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Launcher.java | 56 | 
1 files changed, 41 insertions, 15 deletions
| diff --git a/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Launcher.java b/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Launcher.java index 0106de62..8cc9817f 100644 --- a/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Launcher.java +++ b/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Launcher.java @@ -5,9 +5,12 @@ import at.gv.egiz.bku.webstart.gui.BKUControllerInterface;  import at.gv.egiz.bku.webstart.gui.PINManagementInvoker;
  import iaik.asn1.CodingException;
  import java.io.IOException;
 +import java.net.URISyntaxException;
  import java.util.Locale;
  import java.util.ResourceBundle;
 +import java.util.logging.Level;
 +import java.util.logging.Logger;
  import javax.jnlp.UnavailableServiceException;
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
 @@ -30,6 +33,7 @@ import java.net.MalformedURLException;  import java.net.URI;
  import java.net.URL;
  import java.security.GeneralSecurityException;
 +import java.text.MessageFormat;
  import java.util.jar.Attributes;
  import java.util.jar.Manifest;
  import javax.imageio.ImageIO;
 @@ -39,6 +43,7 @@ import javax.swing.JFrame;  import org.mortbay.util.MultiException;
  public class Launcher implements BKUControllerInterface, ActionListener {
 +  public static final String HELP_COMMAND = "help";
    public static final String WEBAPP_RESOURCE = "BKULocal.war";
    public static final String CERTIFICATES_RESOURCE = "BKUCertificates.jar";
 @@ -59,8 +64,10 @@ public class Launcher implements BKUControllerInterface, ActionListener {    public static final String ERROR_CONFIG = "tray.error.config";
    public static final String ERROR_BIND = "tray.error.bind";
    public static final String ERROR_PIN = "tray.error.pin.connect";
 +  public static final String ERROR_OPEN_URL = "tray.error.open.url";
    public static final String LABEL_SHUTDOWN = "tray.label.shutdown";
    public static final String LABEL_PIN = "tray.label.pin";
 +  public static final String LABEL_HELP = "tray.label.help";
    public static final String LABEL_ABOUT = "tray.label.about";
    public static final String TOOLTIP_DEFAULT = "tray.tooltip.default";
 @@ -76,16 +83,19 @@ public class Launcher implements BKUControllerInterface, ActionListener {    public static final URL HTTPS_SECURITY_LAYER_URL;
    public static final URL INSTALL_CERT_URL;
    public static final URL PIN_MANAGEMENT_URL;
 +  public static final URL HELP_URL;
    static {
      URL http = null;
      URL https = null;
      URL pin = null;
      URL cert = null;
 +    URL help = null;
      try {
        http = new URL("http://localhost:" + Integer.getInteger(Container.HTTPS_PORT_PROPERTY, 3495).intValue());
        https = new URL("https://localhost:" + Integer.getInteger(Container.HTTPS_PORT_PROPERTY, 3496).intValue());
        pin = new URL(http, "/PINManagement");
        cert = new URL(http, "/installCertificate");
 +      help = new URL(http, "/help");
      } catch (MalformedURLException ex) {
        log.error(ex);
      } finally {
 @@ -93,6 +103,7 @@ public class Launcher implements BKUControllerInterface, ActionListener {        HTTPS_SECURITY_LAYER_URL = https;
        PIN_MANAGEMENT_URL = pin;
        INSTALL_CERT_URL = cert;
 +      HELP_URL = help;
      }
    }
    public static final String version;
 @@ -170,6 +181,18 @@ public class Launcher implements BKUControllerInterface, ActionListener {        throw ex;
      }
    }
 +
 +  private void browse(URL url) throws IOException, URISyntaxException {
 +    // don't use basicService.showDocument(), which causes a java ssl warning dialog
 +    if (Desktop.isDesktopSupported()) {
 +      Desktop desktop = Desktop.getDesktop();
 +      if (desktop.isSupported(Desktop.Action.BROWSE)) {
 +        desktop.browse(url.toURI());
 +        return;
 +      }
 +    }
 +    throw new IOException("current platform does not support Java Desktop API");
 +  }
    private TrayIcon initTrayIcon() {
      if (SystemTray.isSupported()) {
 @@ -192,6 +215,11 @@ public class Launcher implements BKUControllerInterface, ActionListener {          PopupMenu popup = new PopupMenu();
 +        MenuItem helpItem = new MenuItem(messages.getString(LABEL_HELP));
 +        helpItem.addActionListener(this);
 +        helpItem.setActionCommand(HELP_COMMAND);
 +        popup.add(helpItem);
 +
          MenuItem pinItem = new MenuItem(messages.getString(LABEL_PIN));
          pinItem.addActionListener(this);
          pinItem.setActionCommand(PIN_COMMAND);
 @@ -273,20 +301,10 @@ public class Launcher implements BKUControllerInterface, ActionListener {          }
        }
        if (config.isCertRenewed()) {
 -        // don't use basicService.showDocument(), which causes a java ssl warning dialog
 -        if (Desktop.isDesktopSupported()) {
 -          Desktop desktop = Desktop.getDesktop();
 -          if (desktop.isSupported(Desktop.Action.BROWSE)) {
 -            try {
 -              desktop.browse(HTTP_SECURITY_LAYER_URL.toURI());
 -            } catch (Exception ex) {
 -              log.error("failed to open system browser, install TLS certificate manually: " + HTTPS_SECURITY_LAYER_URL, ex);
 -            }
 -          } else {
 -            log.error("failed to open system browser, install TLS certificate manually: " + HTTPS_SECURITY_LAYER_URL);
 -          }
 -        } else {
 -          log.error("failed to open system browser, install TLS certificate manually: " + HTTPS_SECURITY_LAYER_URL);
 +        try {
 +          browse(HTTP_SECURITY_LAYER_URL);
 +        } catch (Exception ex) {
 +          log.error("failed to open system browser, install TLS certificate manually: " + HTTPS_SECURITY_LAYER_URL, ex);
          }
        }
        log.info("BKU successfully started");
 @@ -344,7 +362,15 @@ public class Launcher implements BKUControllerInterface, ActionListener {        log.debug("pin management dialog requested via tray menu");
        new Thread(new PINManagementInvoker(trayIcon, messages)).start();
 -      
 +    } else if (HELP_COMMAND.equals(e.getActionCommand())) {
 +      log.debug("help page requested via tray menu");
 +      try {
 +        browse(HELP_URL);
 +      } catch (Exception ex) {
 +        log.error("Failed to open " + HELP_URL, ex);
 +        String msg = MessageFormat.format(messages.getString(ERROR_OPEN_URL), HELP_URL);
 +        trayIcon.displayMessage(messages.getString(CAPTION_ERROR), msg, TrayIcon.MessageType.ERROR);
 +      }
      } else {
        log.error("unknown tray menu command: " + e.getActionCommand());
      }
 | 
