X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fws%2Frest%2FRestClient.java;h=18be1c1eec3678e15d52ec57729b113a8f619482;hp=b1739a58fb755f6d24c4f5a65893443c24d93fc7;hb=b57a02c25e335d033c97f8a6bacd6b54f62bd2b6;hpb=1cc81e06ac2faa5ee4b8879e9fa019956e34259f diff --git a/src/jalview/ws/rest/RestClient.java b/src/jalview/ws/rest/RestClient.java index b1739a5..18be1c1 100644 --- a/src/jalview/ws/rest/RestClient.java +++ b/src/jalview/ws/rest/RestClient.java @@ -132,7 +132,8 @@ public class RestClient extends WSClient implements WSClientI, final AlignFrame alignFrame) { JMenuItem submit = new JMenuItem(service.details.Name); - submit.setToolTipText(service.details.Action+" using "+service.details.Name); + submit.setToolTipText(service.details.Action + " using " + + service.details.Name); submit.addActionListener(new ActionListener() { @@ -191,17 +192,19 @@ public class RestClient extends WSClient implements WSClientI, */ protected boolean isAlignmentModified() { - if (undoredo == null || av==null || av.getAlignment()==null) + if (undoredo == null || av == null || av.getAlignment() == null) { - // always return modified if we don't have access to live GUI elements anymore. + // always return modified if we don't have access to live GUI elements + // anymore. return true; } if (av.isUndoRedoHashModified(undoredo)) { - // alignment has been modified in some way. + // alignment has been modified in some way. return true; } - // TODO: look deeper into modification of selection state, etc that may affect RestJobThread.realiseResults(boolean merge); + // TODO: look deeper into modification of selection state, etc that may + // affect RestJobThread.realiseResults(boolean merge); return false; } @@ -234,58 +237,56 @@ public class RestClient extends WSClient implements WSClientI, */ boolean selExists = (av.getSelectionGroup() != null) && (av.getSelectionGroup().getSize() > 1); - // TODO: JAL-715: refactor to alignViewport methods and revise to full focus+context+dataset input data staging model + // TODO: JAL-715: refactor to alignViewport methods and revise to full + // focus+context+dataset input data staging model if (selExists) { if (service.partitiondata) { - if (av.getAlignment().getGroups()!=null && av.getAlignment().getGroups().size() > 0) + if (av.getAlignment().getGroups() != null + && av.getAlignment().getGroups().size() > 0) { // intersect groups with selected region - _input = new AlignmentView(av.getAlignment(), - av.getColumnSelection(), - av.getSelectionGroup(), - av.hasHiddenColumns(), - true, - true); - viewTitle = "selected "+(av.hasHiddenColumns() ? "visible" : "") + " region of "+af.getTitle(); + _input = new AlignmentView(av.getAlignment(), + av.getColumnSelection(), av.getSelectionGroup(), + av.hasHiddenColumns(), true, true); + viewTitle = "selected " + + (av.hasHiddenColumns() ? "visible" : "") + + " region of " + af.getTitle(); } else { // use selected region to partition alignment - _input = new AlignmentView(av.getAlignment(), - av.getColumnSelection(), - av.getSelectionGroup(), - av.hasHiddenColumns(), - false, - true); + _input = new AlignmentView(av.getAlignment(), + av.getColumnSelection(), av.getSelectionGroup(), + av.hasHiddenColumns(), false, true); } - viewTitle = "select and unselected "+(av.hasHiddenColumns() ? "visible" : "") + " regions from "+af.getTitle(); + viewTitle = "select and unselected " + + (av.hasHiddenColumns() ? "visible" : "") + + " regions from " + af.getTitle(); } else { // just take selected region intersection - _input = new AlignmentView(av.getAlignment(), - av.getColumnSelection(), - av.getSelectionGroup(), - av.hasHiddenColumns(), - true, - true); - viewTitle = "selected "+(av.hasHiddenColumns() ? "visible" : "") + " region of "+af.getTitle(); + _input = new AlignmentView(av.getAlignment(), + av.getColumnSelection(), av.getSelectionGroup(), + av.hasHiddenColumns(), true, true); + viewTitle = "selected " + (av.hasHiddenColumns() ? "visible" : "") + + " region of " + af.getTitle(); } - } else { + } + else + { // standard alignment view without selection present - _input = new AlignmentView(av.getAlignment(), - av.getColumnSelection(), - null, - av.hasHiddenColumns(), - false, + _input = new AlignmentView(av.getAlignment(), + av.getColumnSelection(), null, av.hasHiddenColumns(), false, true); - viewTitle = ""+(av.hasHiddenColumns() ? "visible region of " : "") + af.getTitle(); + viewTitle = "" + (av.hasHiddenColumns() ? "visible region of " : "") + + af.getTitle(); } - + RestJobThread jobsthread = new RestJobThread(this); - + if (jobsthread.isValid()) { setWebserviceInfo(false); @@ -296,9 +297,13 @@ public class RestClient extends WSClient implements WSClientI, else { // TODO: try to tell the user why the job couldn't be started. - JOptionPane.showMessageDialog(Desktop.desktop, - (jobsthread.hasWarnings() ? jobsthread.getWarnings() : "The Job couldn't be started. Please check your input, and the Jalview console for any warning messages."), - "Unable to start web service analysis", JOptionPane.WARNING_MESSAGE); + JOptionPane + .showMessageDialog( + Desktop.desktop, + (jobsthread.hasWarnings() ? jobsthread.getWarnings() + : "The Job couldn't be started. Please check your input, and the Jalview console for any warning messages."), + "Unable to start web service analysis", + JOptionPane.WARNING_MESSAGE); } } @@ -307,25 +312,27 @@ public class RestClient extends WSClient implements WSClientI, String action = "Analysis", description = "Sequence Harmony and Multi-Relief (Brandt et al. 2010)", name = "Multi-Harmony"; Hashtable iparams = new Hashtable(); jalview.ws.rest.params.JobConstant toolp; - //toolp = new jalview.ws.rest.JobConstant("tool","jalview"); - //iparams.put(toolp.token, toolp); - //toolp = new jalview.ws.rest.params.JobConstant("mbjob[method]","shmr"); - //iparams.put(toolp.token, toolp); - //toolp = new jalview.ws.rest.params.JobConstant("mbjob[description]","step 1"); - //iparams.put(toolp.token, toolp); - //toolp = new jalview.ws.rest.params.JobConstant("start_search","1"); - //iparams.put(toolp.token, toolp); - //toolp = new jalview.ws.rest.params.JobConstant("blast","0"); - //iparams.put(toolp.token, toolp); - + // toolp = new jalview.ws.rest.JobConstant("tool","jalview"); + // iparams.put(toolp.token, toolp); + // toolp = new jalview.ws.rest.params.JobConstant("mbjob[method]","shmr"); + // iparams.put(toolp.token, toolp); + // toolp = new + // jalview.ws.rest.params.JobConstant("mbjob[description]","step 1"); + // iparams.put(toolp.token, toolp); + // toolp = new jalview.ws.rest.params.JobConstant("start_search","1"); + // iparams.put(toolp.token, toolp); + // toolp = new jalview.ws.rest.params.JobConstant("blast","0"); + // iparams.put(toolp.token, toolp); + jalview.ws.rest.params.Alignment aliinput = new jalview.ws.rest.params.Alignment(); - // SHMR server has a 65K limit for content pasted into the 'ali' parameter, so we always upload our files. + // SHMR server has a 65K limit for content pasted into the 'ali' parameter, + // so we always upload our files. aliinput.token = "ali_file"; - aliinput.writeAsFile=true; + aliinput.writeAsFile = true; iparams.put(aliinput.token, aliinput); jalview.ws.rest.params.SeqGroupIndexVector sgroups = new jalview.ws.rest.params.SeqGroupIndexVector(); sgroups.setMinsize(2); - sgroups.min=2;// need at least two group defined to make a partition + sgroups.min = 2;// need at least two group defined to make a partition iparams.put("groups", sgroups); sgroups.token = "groups"; sgroups.sep = " "; @@ -342,8 +349,9 @@ public class RestClient extends WSClient implements WSClientI, public AlignmentPanel recoverAlignPanelForView() { - AlignmentPanel[] aps = Desktop.getAlignmentPanels(av.getSequenceSetId()); - for (AlignmentPanel alp:aps) + AlignmentPanel[] aps = Desktop + .getAlignmentPanels(av.getSequenceSetId()); + for (AlignmentPanel alp : aps) { if (alp.av == av) { @@ -359,55 +367,68 @@ public class RestClient extends WSClient implements WSClientI, return true; } - protected static Vector services=null; - public static final String RSBS_SERVICES="RSBS_SERVICES"; + protected static Vector services = null; + + public static final String RSBS_SERVICES = "RSBS_SERVICES"; + public static RestClient[] getRestClients() { - if (services==null) + if (services == null) { services = new Vector(); - try { - for (RestServiceDescription descr: RestServiceDescription.parseDescriptions(jalview.bin.Cache.getDefault(RSBS_SERVICES,makeShmmrRestClient().service.toString()))) + try { - services.add(descr.toString()); - } - } - catch (Exception ex) { - System.err.println("Serious - RSBS descriptions in user preferences are corrupt!"); + for (RestServiceDescription descr : RestServiceDescription + .parseDescriptions(jalview.bin.Cache.getDefault( + RSBS_SERVICES, + makeShmmrRestClient().service.toString()))) + { + services.add(descr.toString()); + } + } catch (Exception ex) + { + System.err + .println("Serious - RSBS descriptions in user preferences are corrupt!"); ex.printStackTrace(); } - + } RestClient[] lst = new RestClient[services.size()]; - int i=0; - for (String svc:services) { + int i = 0; + for (String svc : services) + { lst[i++] = new RestClient(new RestServiceDescription(svc)); } return lst; } + public static void main(String args[]) { - try { + try + { RestClient[] clients = getRestClients(); - System.out.println("Got "+clients.length+" clients."); - int i=0; - Vector urls=new Vector(); - for (RestClient cl:clients) { - System.out.println(""+(++i)+": "+cl.service.toString()); + System.out.println("Got " + clients.length + " clients."); + int i = 0; + Vector urls = new Vector(); + for (RestClient cl : clients) + { + System.out.println("" + (++i) + ": " + cl.service.toString()); urls.add(cl.service.toString()); } setRsbsServices(urls); - if (clients.length!=getRestClients().length) + if (clients.length != getRestClients().length) { - System.err.println("Failed. Differing numbers of clients when stringified and parsed again."); + System.err + .println("Failed. Differing numbers of clients when stringified and parsed again."); } - + } catch (Throwable x) { System.err.println("Failed. Unexpected exception."); x.printStackTrace(); } } + public String getAction() { return service.details.Action; @@ -421,7 +442,7 @@ public class RestClient extends WSClient implements WSClientI, public static Vector getRsbsDescriptions() { Vector rsbsDescrs = new Vector(); - for (RestClient rsbs:getRestClients()) + for (RestClient rsbs : getRestClients()) { rsbsDescrs.add(rsbs.getRestDescription().toString()); } @@ -430,17 +451,17 @@ public class RestClient extends WSClient implements WSClientI, public static void setRsbsServices(Vector rsbsUrls) { - if (rsbsUrls!=null) + if (rsbsUrls != null) { // TODO: consider validating services ? services = new Vector(rsbsUrls); StringBuffer sprop = new StringBuffer(); - for (String s:services) + for (String s : services) { sprop.append(s); } Cache.setProperty(RSBS_SERVICES, sprop.toString()); - } + } else { Cache.removeProperty(RSBS_SERVICES);