X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWsParamSetManager.java;h=272e05bacc31af6f32a13d14dfc2c09d36a1342e;hb=0751c58086542f9e0466201b624f84d1efd547bb;hp=9452ff5e197799ad69db8bfbceff57c32d93eb65;hpb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;p=jalview.git
diff --git a/src/jalview/gui/WsParamSetManager.java b/src/jalview/gui/WsParamSetManager.java
index 9452ff5..272e05b 100644
--- a/src/jalview/gui/WsParamSetManager.java
+++ b/src/jalview/gui/WsParamSetManager.java
@@ -1,22 +1,35 @@
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
+ * 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.
- *
+ * 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 .
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.gui;
+import jalview.bin.Cache;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.util.MessageManager;
+import jalview.ws.params.ParamDatastoreI;
+import jalview.ws.params.ParamManager;
+import jalview.ws.params.WsParamSetI;
+import jalview.xml.binding.jalview.ObjectFactory;
+import jalview.xml.binding.jalview.WebServiceParameterSet;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -29,15 +42,11 @@ import java.util.Hashtable;
import java.util.List;
import java.util.StringTokenizer;
-import javax.swing.JButton;
-import javax.swing.JOptionPane;
-
-import jalview.bin.Cache;
-import jalview.io.JalviewFileChooser;
-import jalview.ws.jws2.dm.JabaWsParamSet;
-import jalview.ws.params.ParamDatastoreI;
-import jalview.ws.params.ParamManager;
-import jalview.ws.params.WsParamSetI;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Marshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
/**
* store and retrieve web service parameter sets.
@@ -47,20 +56,21 @@ import jalview.ws.params.WsParamSetI;
*/
public class WsParamSetManager implements ParamManager
{
- Hashtable paramparsers = new Hashtable();
+ private static final String WS_PARAM_FILES = "WS_PARAM_FILES";
+ Hashtable paramparsers = new Hashtable<>();
@Override
public WsParamSetI[] getParameterSet(String name, String serviceUrl,
boolean modifiable, boolean unmodifiable)
{
- String files = Cache.getProperty("WS_PARAM_FILES");
+ String files = Cache.getProperty(WS_PARAM_FILES);
if (files == null)
{
return null;
}
StringTokenizer st = new StringTokenizer(files, "|");
String pfile = null;
- ArrayList params = new ArrayList();
+ List params = new ArrayList<>();
while (st.hasMoreTokens())
{
pfile = st.nextToken();
@@ -84,8 +94,8 @@ public class WsParamSetManager implements ParamManager
{
add = true;
}
- add &= (modifiable == p.isModifiable() || unmodifiable == !p
- .isModifiable());
+ add &= (modifiable == p.isModifiable()
+ || unmodifiable == !p.isModifiable());
add &= name == null || p.getName().equals(name);
if (add)
@@ -97,11 +107,10 @@ public class WsParamSetManager implements ParamManager
}
} catch (IOException e)
{
- Cache.log
- .info("Failed to parse parameter file "
- + pfile
- + " (Check that all JALVIEW_WSPARAMFILES entries are valid!)",
- e);
+ Cache.log.info("Failed to parse parameter file " + pfile
+ + " (Check that all " + WS_PARAM_FILES
+ + " entries are valid!)",
+ e);
}
}
return params.toArray(new WsParamSetI[0]);
@@ -109,33 +118,39 @@ public class WsParamSetManager implements ParamManager
private WsParamSetI[] parseParamFile(String filename) throws IOException
{
- List psets = new ArrayList();
+ List psets = new ArrayList<>();
InputStreamReader is = new InputStreamReader(
- new java.io.FileInputStream(new File(filename)), "UTF-8");
+ new FileInputStream(new File(filename)), "UTF-8");
- jalview.schemabinding.version2.WebServiceParameterSet wspset = new jalview.schemabinding.version2.WebServiceParameterSet();
-
- org.exolab.castor.xml.Unmarshaller unmar = new org.exolab.castor.xml.Unmarshaller(
- wspset);
- unmar.setWhitespacePreserve(true);
+ WebServiceParameterSet wspset = null;
try
{
- wspset = (jalview.schemabinding.version2.WebServiceParameterSet) unmar
- .unmarshal(is);
+ JAXBContext jc = JAXBContext
+ .newInstance("jalview.xml.binding.jalview");
+ javax.xml.bind.Unmarshaller um = jc.createUnmarshaller();
+ XMLStreamReader streamReader = XMLInputFactory.newInstance()
+ .createXMLStreamReader(is);
+ JAXBElement jbe = um.unmarshal(streamReader,
+ WebServiceParameterSet.class);
+ wspset = jbe.getValue();
} catch (Exception ex)
{
throw new IOException(ex);
}
+
if (wspset != null && wspset.getParameters().length() > 0)
{
- for (String url : wspset.getServiceURL())
+ List urls = wspset.getServiceURL();
+ final String[] urlArray = urls.toArray(new String[urls.size()]);
+
+ for (String url : urls)
{
ParamDatastoreI parser = paramparsers.get(url);
if (parser != null)
{
WsParamSetI pset = parser.parseServiceParameterFile(
wspset.getName(), wspset.getDescription(),
- wspset.getServiceURL(), wspset.getParameters());
+ urlArray, wspset.getParameters());
if (pset != null)
{
pset.setSourceFile(filename);
@@ -158,7 +173,7 @@ public class WsParamSetManager implements ParamManager
{
if (filename != null && !((outfile = new File(filename)).canWrite()))
{
- Cache.log.info("Can't write to " + filename
+ Cache.log.warn("Can't write to " + filename
+ " - Prompting for new file to write to.");
filename = null;
}
@@ -177,25 +192,24 @@ public class WsParamSetManager implements ParamManager
}
if (parser == null)
{
- throw new Error(
- "Implementation error: Can't find a marshaller for the parameter set");
+ throw new Error(MessageManager.getString(
+ "error.implementation_error_cannot_find_marshaller_for_param_set"));
}
if (filename == null)
{
- JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
- { "wsparams" }, new String[]
- { "Web Service Parameter File" },
+ // TODO: JAL-3048 webservice - not required for Jalview-JS
+
+ JalviewFileChooser chooser = new JalviewFileChooser("wsparams",
"Web Service Parameter File");
- chooser.setFileView(new jalview.io.JalviewFileView());
- chooser.setDialogTitle("Choose a filename for this parameter file");
- chooser.setToolTipText("Save");
- int value = chooser.showSaveDialog(Desktop.instance);
+ chooser.setFileView(new JalviewFileView());
+ chooser.setDialogTitle(MessageManager
+ .getString("label.choose_filename_for_param_file"));
+ chooser.setToolTipText(MessageManager.getString("action.save"));
+ int value = chooser.showSaveDialog(Desktop.getInstance());
if (value == JalviewFileChooser.APPROVE_OPTION)
{
outfile = chooser.getSelectedFile();
- jalview.bin.Cache
- .setProperty("LAST_DIRECTORY", outfile.getParent());
+ Cache.setProperty("LAST_DIRECTORY", outfile.getParent());
filename = outfile.getAbsolutePath();
if (!filename.endsWith(".wsparams"))
{
@@ -206,7 +220,7 @@ public class WsParamSetManager implements ParamManager
}
if (outfile != null)
{
- String paramFiles = jalview.bin.Cache.getDefault("WS_PARAM_FILES",
+ String paramFiles = jalview.bin.Cache.getDefault(WS_PARAM_FILES,
filename);
if (paramFiles.indexOf(filename) == -1)
{
@@ -216,21 +230,30 @@ public class WsParamSetManager implements ParamManager
}
paramFiles = paramFiles.concat(filename);
}
- jalview.bin.Cache.setProperty("WS_PARAM_FILES", paramFiles);
- jalview.schemabinding.version2.WebServiceParameterSet paramxml = new jalview.schemabinding.version2.WebServiceParameterSet();
+ Cache.setProperty(WS_PARAM_FILES, paramFiles);
+
+ WebServiceParameterSet paramxml = new WebServiceParameterSet();
paramxml.setName(parameterSet.getName());
paramxml.setDescription(parameterSet.getDescription());
- paramxml.setServiceURL(parameterSet.getApplicableUrls().clone());
+ for (String url : parameterSet.getApplicableUrls())
+ {
+ paramxml.getServiceURL().add(url);
+ }
paramxml.setVersion("1.0");
try
{
- paramxml.setParameters(parser
- .generateServiceParameterFile(parameterSet));
+ paramxml.setParameters(
+ parser.generateServiceParameterFile(parameterSet));
PrintWriter out = new PrintWriter(new OutputStreamWriter(
new FileOutputStream(outfile), "UTF-8"));
- paramxml.marshal(out);
+ JAXBContext jaxbContext = JAXBContext
+ .newInstance(WebServiceParameterSet.class);
+ Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
+ jaxbMarshaller.marshal(
+ new ObjectFactory().createWebServiceParameterSet(paramxml),
+ out);
out.close();
parameterSet.setSourceFile(filename);
} catch (Exception e)
@@ -270,7 +293,7 @@ public class WsParamSetManager implements ParamManager
{
return;
}
- String paramFiles = jalview.bin.Cache.getDefault("WS_PARAM_FILES", "");
+ String paramFiles = jalview.bin.Cache.getDefault(WS_PARAM_FILES, "");
if (paramFiles.indexOf(filename) > -1)
{
String nparamFiles = new String();
@@ -283,7 +306,7 @@ public class WsParamSetManager implements ParamManager
nparamFiles = nparamFiles.concat("|").concat(fl);
}
}
- jalview.bin.Cache.setProperty("WS_PARAM_FILES", nparamFiles);
+ jalview.bin.Cache.setProperty(WS_PARAM_FILES, nparamFiles);
}
try
@@ -291,18 +314,18 @@ public class WsParamSetManager implements ParamManager
File pfile = new File(filename);
if (pfile.exists() && pfile.canWrite())
{
- if (JOptionPane.showConfirmDialog(Desktop.instance,
+ if (JvOptionPane.showConfirmDialog(Desktop.getInstance(),
"Delete the preset's file, too ?", "Delete User Preset ?",
- JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION) == JvOptionPane.OK_OPTION)
{
pfile.delete();
}
}
} catch (Exception e)
{
- Cache.log
- .error("Exception when trying to delete webservice user preset: ",
- e);
+ Cache.log.error(
+ "Exception when trying to delete webservice user preset: ",
+ e);
}
}