X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWsParamSetManager.java;h=4c767146effb76e7aa57514e51113fb83ddcbcc2;hb=a1984b1c8c273ed33c7ce9283039f4027dcae2de;hp=d03b6ca371a012e732d63b277d5ed061845eb20b;hpb=d2b25de19b91da86a58ccefa62ae111e210f75d7;p=jalview.git diff --git a/src/jalview/gui/WsParamSetManager.java b/src/jalview/gui/WsParamSetManager.java index d03b6ca..4c76714 100644 --- a/src/jalview/gui/WsParamSetManager.java +++ b/src/jalview/gui/WsParamSetManager.java @@ -1,5 +1,35 @@ +/* + * 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 . + * 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; @@ -12,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. @@ -30,7 +56,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, @@ -43,7 +69,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(); @@ -67,8 +93,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) @@ -80,11 +106,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); + Cache.info("Failed to parse parameter file " + pfile + + " (Check that all JALVIEW_WSPARAMFILES entries are valid!)", + e); } } return params.toArray(new WsParamSetI[0]); @@ -92,33 +116,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"); - - jalview.schemabinding.version2.WebServiceParameterSet wspset = new jalview.schemabinding.version2.WebServiceParameterSet(); + new FileInputStream(new File(filename)), "UTF-8"); - 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); @@ -141,7 +171,7 @@ public class WsParamSetManager implements ParamManager { if (filename != null && !((outfile = new File(filename)).canWrite())) { - Cache.log.info("Can't write to " + filename + Cache.warn("Can't write to " + filename + " - Prompting for new file to write to."); filename = null; } @@ -160,25 +190,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")) { @@ -189,7 +218,7 @@ public class WsParamSetManager implements ParamManager } if (outfile != null) { - String paramFiles = jalview.bin.Cache.getDefault("WS_PARAM_FILES", + String paramFiles = Cache.getDefault("WS_PARAM_FILES", filename); if (paramFiles.indexOf(filename) == -1) { @@ -199,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); + Cache.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()); @@ -235,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) @@ -253,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(); @@ -266,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 @@ -274,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); + Cache.error( + "Exception when trying to delete webservice user preset: ", + e); } }