X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWsParamSetManager.java;h=3c9f65c9b07b893cfed9421e59ad8b84bfcd2630;hb=afe4b88500a5d61bc8d312909cfdde2b7cdd53df;hp=ab859bd310db0c3dc97a47c025bec1312595928d;hpb=e1c9d3df5f7d4a464ecc67dfe6049b8425f5aa46;p=jalview.git
diff --git a/src/jalview/gui/WsParamSetManager.java b/src/jalview/gui/WsParamSetManager.java
index ab859bd..3c9f65c 100644
--- a/src/jalview/gui/WsParamSetManager.java
+++ b/src/jalview/gui/WsParamSetManager.java
@@ -1,23 +1,38 @@
/*
- * 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.bin.Console;
+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;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -28,13 +43,11 @@ import java.util.Hashtable;
import java.util.List;
import java.util.StringTokenizer;
-import javax.swing.JOptionPane;
-
-import jalview.bin.Cache;
-import jalview.io.JalviewFileChooser;
-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.
@@ -44,7 +57,7 @@ import jalview.ws.params.WsParamSetI;
*/
public class WsParamSetManager implements ParamManager
{
- Hashtable paramparsers = new Hashtable();
+ Hashtable paramparsers = new Hashtable<>();
@Override
public WsParamSetI[] getParameterSet(String name, String serviceUrl,
@@ -57,7 +70,7 @@ public class WsParamSetManager implements ParamManager
}
StringTokenizer st = new StringTokenizer(files, "|");
String pfile = null;
- ArrayList params = new ArrayList();
+ List params = new ArrayList<>();
while (st.hasMoreTokens())
{
pfile = st.nextToken();
@@ -81,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)
@@ -94,11 +107,9 @@ 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);
+ Console.info("Failed to parse parameter file " + pfile
+ + " (Check that all JALVIEW_WSPARAMFILES entries are valid!)",
+ e);
}
}
return params.toArray(new WsParamSetI[0]);
@@ -106,33 +117,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());
+ wspset.getName(), wspset.getDescription(), urlArray,
+ wspset.getParameters());
if (pset != null)
{
pset.setSourceFile(filename);
@@ -155,7 +172,7 @@ public class WsParamSetManager implements ParamManager
{
if (filename != null && !((outfile = new File(filename)).canWrite()))
{
- Cache.log.info("Can't write to " + filename
+ Console.warn("Can't write to " + filename
+ " - Prompting for new file to write to.");
filename = null;
}
@@ -174,25 +191,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");
+ 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.instance);
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"))
{
@@ -203,8 +219,7 @@ public class WsParamSetManager implements ParamManager
}
if (outfile != null)
{
- String paramFiles = jalview.bin.Cache.getDefault("WS_PARAM_FILES",
- filename);
+ String paramFiles = Cache.getDefault("WS_PARAM_FILES", filename);
if (paramFiles.indexOf(filename) == -1)
{
if (paramFiles.length() > 0)
@@ -213,33 +228,41 @@ public class WsParamSetManager implements ParamManager
}
paramFiles = paramFiles.concat(filename);
}
- jalview.bin.Cache.setProperty("WS_PARAM_FILES", paramFiles);
+ Cache.setProperty("WS_PARAM_FILES", paramFiles);
- jalview.schemabinding.version2.WebServiceParameterSet paramxml = new jalview.schemabinding.version2.WebServiceParameterSet();
+ 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)
{
- Cache.log.error("Couldn't write parameter file to " + outfile, e);
+ Console.error("Couldn't write parameter file to " + outfile, e);
}
}
}
/*
*
- * JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache
+ * JalviewFileChooser chooser = new JalviewFileChooser(Cache
* .getProperty("LAST_DIRECTORY"), new String[] { "jc" }, new String[] {
* "Jalview User Colours" }, "Jalview User Colours"); chooser.setFileView(new
* jalview.io.JalviewFileView());
@@ -249,8 +272,8 @@ public class WsParamSetManager implements ParamManager
* int value = chooser.showOpenDialog(this);
*
* if (value == JalviewFileChooser.APPROVE_OPTION) { File choice =
- * chooser.getSelectedFile(); jalview.bin.Cache.setProperty("LAST_DIRECTORY",
- * choice.getParent()); String defaultColours = jalview.bin.Cache.getDefault(
+ * chooser.getSelectedFile(); Cache.setProperty("LAST_DIRECTORY",
+ * choice.getParent()); String defaultColours = Cache.getDefault(
* "USER_DEFINED_COLOURS", choice.getPath()); if
* (defaultColours.indexOf(choice.getPath()) == -1) { defaultColours =
* defaultColours.concat("|") .concat(choice.getPath()); } (non-Javadoc)
@@ -267,7 +290,7 @@ public class WsParamSetManager implements ParamManager
{
return;
}
- String paramFiles = jalview.bin.Cache.getDefault("WS_PARAM_FILES", "");
+ String paramFiles = Cache.getDefault("WS_PARAM_FILES", "");
if (paramFiles.indexOf(filename) > -1)
{
String nparamFiles = new String();
@@ -280,7 +303,7 @@ public class WsParamSetManager implements ParamManager
nparamFiles = nparamFiles.concat("|").concat(fl);
}
}
- jalview.bin.Cache.setProperty("WS_PARAM_FILES", nparamFiles);
+ Cache.setProperty("WS_PARAM_FILES", nparamFiles);
}
try
@@ -288,18 +311,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.instance,
"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);
+ Console.error(
+ "Exception when trying to delete webservice user preset: ",
+ e);
}
}