+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.ws.jws2.jabaws2;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
+import jalview.util.MessageManager;
import jalview.ws.jws2.JabaParamStore;
import jalview.ws.jws2.MsaWSClient;
import jalview.ws.jws2.SequenceAnnotationWSClient;
import compbio.metadata.PresetManager;
import compbio.metadata.RunnerConfig;
-public class Jws2Instance
+public class Jws2Instance implements AutoCloseable
{
public String hosturl;
public String serviceType;
+
public String action;
+
public JABAService service;
+
public String description;
- public Jws2Instance(String hosturl, String serviceType, String action, String description,
- JABAService service)
+ public String docUrl;
+
+ /**
+ *
+ * @param hosturl
+ * Service endpoint
+ * @param serviceType
+ * Category for this service's analysis
+ * @param action
+ * text describing their action that service performs (eg 'aligning',
+ * 'analysing')
+ * @param description
+ * Description from JABAWS registry
+ * @param service
+ * JABAWS registry ID for service
+ */
+ public Jws2Instance(String hosturl, String serviceType, String action,
+ String description, JABAService service)
{
super();
this.hosturl = hosturl;
this.serviceType = serviceType;
this.service = service;
- this.action=action;
+ this.action = action;
this.description = description;
-
+ int p = description.indexOf("MORE INFORMATION:");
+ if (p > -1)
+ {
+ docUrl = description.substring(description.indexOf("http", p)).trim();
+ if (docUrl.indexOf('\n') > -1)
+ {
+ docUrl = docUrl.substring(0, docUrl.indexOf("\n")).trim();
+ }
+
+ }
}
PresetManager presets = null;
}
} catch (Exception ex)
{
- System.err.println("Exception when retrieving presets for service "
+ jalview.bin.Console.errPrintln("Exception when retrieving presets for service "
+ serviceType + " at " + hosturl);
}
}
* try { URL serviceurl = new URL(hosturl); if (serviceurl.getPort()!=80) {
* return serviceurl.getHost()+":"+serviceurl.getPort(); } return
* serviceurl.getHost(); } catch (Exception e) {
- * System.err.println("Failed to parse service URL '" + hosturl +
+ * jalview.bin.Console.errPrintln("Failed to parse service URL '" + hosturl +
* "' as a valid URL!"); } return null;
*/
}
*/
public String getActionText()
{
- return action+" with " + serviceType;
+ return action + " with " + serviceType;
}
/**
{
return ((SequenceAnnotation) service).getRunnerOptions();
}
- throw new Error("Implementation Error: Runner Config not available for a JABAWS service of type "+serviceType+" ("+service.getClass()+")");
+ throw new Error(MessageManager.formatMessage(
+ "error.implementation_error_runner_config_not_available",
+ new String[]
+ { serviceType, service.getClass().toString() }));
}
@Override
- protected void finalize() throws Throwable
+ public void close()
{
if (service != null)
{
try
{
- Closeable svc = (Closeable) service;
- service = null;
- svc.close();
- } catch (Exception e)
+ ((Closeable) service).close();
+ } catch (Throwable t)
{
+ // ignore
}
- ;
}
- super.finalize();
+ // super.finalize();
}
public ParamDatastoreI getParamStore()
: null));
} catch (Exception ex)
{
+ jalview.bin.Console.errPrintln("Unexpected exception creating JabaParamStore.");
+ ex.printStackTrace();
}
}
// this is only valid for Jaba 1.0 - this formula might have to change!
return hosturl
+ (hosturl.lastIndexOf("/") == (hosturl.length() - 1) ? ""
- : "/") + serviceType;
+ : "/")
+ + serviceType;
}
private boolean hasParams = false, lookedForParams = false;
if (service instanceof MsaWS<?>)
{
new MsaWSClient().attachWSMenuEntry(atpoint, this, alignFrame);
- } else
- if (service instanceof SequenceAnnotation<?>){
- new SequenceAnnotationWSClient().attachWSMenuEntry(atpoint, this, alignFrame);
+ }
+ else if (service instanceof SequenceAnnotation<?>)
+ {
+ new SequenceAnnotationWSClient().attachWSMenuEntry(atpoint, this,
+ alignFrame);
}
}
-
public String getServiceTypeURI()
{
- return "java:"+serviceType;
+ return "java:" + serviceType;
+ }
+
+ jalview.ws.uimodel.AlignAnalysisUIText aaui;
+
+ public jalview.ws.uimodel.AlignAnalysisUIText getAlignAnalysisUI()
+ {
+ return aaui;
}
-}
\ No newline at end of file
+}