From 1cca7d8fe617a8a1587bc325bdce2d922f818445 Mon Sep 17 00:00:00 2001 From: Mateusz Warowny Date: Thu, 19 Sep 2019 14:35:46 +0100 Subject: [PATCH 1/1] JAL-3066 Auto discover multiple sequence alignment services --- j11lib/slivka-client.jar | Bin 114641 -> 116952 bytes src/jalview/ws/slivkaws/SlivkaWSDiscoverer.java | 81 ++++++++++++----------- 2 files changed, 41 insertions(+), 40 deletions(-) diff --git a/j11lib/slivka-client.jar b/j11lib/slivka-client.jar index 9efae32cf535d615e9f6232be655ffd7d193a832..12cc028bf8119347640aa2c26be81e228d7ae786 100644 GIT binary patch delta 9907 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 { + for (SlivkaService service: client.getServices()) { + msaClassifier: { + for (String classifier: service.classifiers) { + if (classifier.contains("Multiple sequence alignment")) { + break msaClassifier; + } + } + continue; + } + SlivkaWSInstance instance = new SlivkaWSInstance(client, service); + JMenuItem defaultEntry = new JMenuItem(String.format("%s with defaults", service.label)); + defaultEntry.addActionListener((ActionEvent evt) -> { AlignmentView msa = alignFrame.gatherSequencesForAlignment(); - if (msa != null) - { - new MsaWSClient(instance, alignFrame.getTitle(), msa, false, true, + if (msa != null) { + new MsaWSClient( + instance, alignFrame.getTitle(), msa, false, true, alignFrame.getViewport().getAlignment().getDataset(), - alignFrame); + alignFrame + ); } }); - submenu.add(defaultMenuItem); - - JMenuItem customMenuItem = new JMenuItem( - String.format("%s with custom parameters", names[i])); - customMenuItem.addActionListener((ActionEvent e) -> { + categoryMenu.add(defaultEntry); + + JMenuItem customEntry = new JMenuItem(String.format("%s with custom parameters", service.label)); + customEntry.addActionListener((ActionEvent evt) -> { AlignmentView msa = alignFrame.gatherSequencesForAlignment(); - if (msa != null) - { + if (msa != null) { try { - SlivkaParamSet paramSet = new SlivkaParamSet( - instance.getService()); - new MsaWSClient(instance, paramSet, null, true, - alignFrame.getTitle(), msa, false, true, - alignFrame.getViewport().getAlignment().getDataset(), - alignFrame); - } catch (IOException e1) + SlivkaParamSet paramSet = new SlivkaParamSet(service); + new MsaWSClient( + instance, paramSet, null, true, alignFrame.getTitle(), msa, false, true, + alignFrame.getViewport().getAlignment().getDataset(), alignFrame); + } catch (IOException exc) { - throw new IOError(e1); + throw new IOError(exc); } - } }); - submenu.add(customMenuItem); - } catch (IOException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); + categoryMenu.add(customEntry); + + categoryMenu.addSeparator(); } + } catch (IOException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); } - - wsmenu.add(submenu); } @Override -- 1.7.10.2