Revision: 13489 http://unicore.svn.sourceforge.net/unicore/?rev=13489&view=rev Author: bdemuth Date: 2012-05-30 15:18:38 +0000 (Wed, 30 May 2012) Log Message: ----------- Improved error handling Modified Paths: -------------- eclipseclient/trunk/plugins/de.fzj.unicore.rcp.cis/src/main/java/de/fzj/unicore/rcp/cis/actions/OpenCISInBrowserAction.java Modified: eclipseclient/trunk/plugins/de.fzj.unicore.rcp.cis/src/main/java/de/fzj/unicore/rcp/cis/actions/OpenCISInBrowserAction.java =================================================================== --- eclipseclient/trunk/plugins/de.fzj.unicore.rcp.cis/src/main/java/de/fzj/unicore/rcp/cis/actions/OpenCISInBrowserAction.java 2012-05-29 12:38:12 UTC (rev 13488) +++ eclipseclient/trunk/plugins/de.fzj.unicore.rcp.cis/src/main/java/de/fzj/unicore/rcp/cis/actions/OpenCISInBrowserAction.java 2012-05-30 15:18:38 UTC (rev 13489) @@ -45,6 +45,8 @@ import de.fzj.unicore.rcp.logmonitor.LogActivator; import de.fzj.unicore.rcp.servicebrowser.actions.NodeAction; import de.fzj.unicore.rcp.servicebrowser.nodes.Node; +import eu.unicore.unicore6.cis.model.CISPropertiesDocument; +import eu.unicore.unicore6.cis.model.CISPropertiesDocument.CISProperties; /** * @author demuth @@ -53,7 +55,7 @@ public class OpenCISInBrowserAction extends NodeAction { private static final String browserId = "BROWSER"; - + public OpenCISInBrowserAction(Node node) { super(node); @@ -69,8 +71,12 @@ public void run() { try { - CISNode n = (CISNode) getNode(); - URL u = new URL(n.getCISRPDocument().getCISProperties().getWebURL()); + URL u = getCISURL(); + if(u == null) + { + LogActivator.log(Status.ERROR,"Unable to open Grid overview in Web browser: could not extract correct URL"); + } + WorkbenchBrowserSupport.getInstance().createBrowser(browserId).openURL(u); } catch (Exception e) { LogActivator.log(Status.ERROR,"Unable to open Grid overview in Web browser: "+e.getMessage(),e); @@ -80,10 +86,37 @@ }); } + protected URL getCISURL() + { + Node node = getNode(); + if(!(node instanceof CISNode)) return null; + CISNode n = (CISNode) node; + CISPropertiesDocument doc = n.getCISRPDocument(); + URL u = null; + if(doc != null) + { + CISProperties props = doc.getCISProperties(); + if(props != null) + { + + String s = props.getWebURL(); + if(s != null && s.trim().length() > 0) + { + try { + return new URL(s); + } catch (Exception e) { + LogActivator.log(Status.ERROR,"Information service published an invalid URL: "+e.getMessage(),e); + return null; + } + } + } + } + return null; + } + public boolean isCurrentlyAvailable() { - Node n = getNode(); - return (n instanceof CISNode) && ((CISNode) n).getCISRPDocument() != null; + return getCISURL() != null; } - - + + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |