From: Jim Procter Date: Mon, 30 Jan 2023 12:23:53 +0000 (+0000) Subject: Merge branch 'JAL-3878_ws-overhaul-3' into with_ws_overhaul-3 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=bea1d9b563d2fea018de3dbde9112dd59149126e;p=jalview.git Merge branch 'JAL-3878_ws-overhaul-3' into with_ws_overhaul-3 Conflicts: src/jalview/gui/AlignFrame.java src/jalview/gui/SlivkaPreferences.java src/jalview/workers/AlignCalcManager2.java --- bea1d9b563d2fea018de3dbde9112dd59149126e diff --cc src/jalview/gui/AlignFrame.java index c38f336,7011d4d..74ac8c0 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@@ -182,7 -115,10 +182,9 @@@ import jalview.ws.params.ArgumentI import jalview.ws.params.ParamDatastoreI; import jalview.ws.params.WsParamSetI; import jalview.ws.seqfetcher.DbSourceProxy; - import jalview.ws.slivkaws.SlivkaWSDiscoverer; + import jalview.ws2.client.api.WebServiceDiscovererI; + import jalview.ws2.client.slivka.SlivkaWSDiscoverer; + import jalview.ws2.gui.WebServicesMenuManager; - import java.io.IOException; import java.util.HashSet; import java.util.Set; @@@ -964,6 -911,16 +977,7 @@@ public class AlignFrame extends GAlignF { buildWebServicesMenu(); } + - private WebServiceDiscovererI.ServicesChangeListener slivkaServiceChangeListener = - (discoverer, services) -> { - // run when slivka services change - var menu = AlignFrame.this.slivkaMenu; - menu.setServices(discoverer); - menu.setInProgress(discoverer.isRunning()); - menu.setNoServices(services.isEmpty() && discoverer.isDone()); - }; - /* Set up intrinsic listeners for dynamically generated GUI bits. */ private void addServiceListeners() { @@@ -1147,9 -1117,10 +1168,10 @@@ /* * Added so Castor Mapping file can obtain Jalview Version */ + public String getVersion() { - return jalview.bin.Cache.getProperty("VERSION"); + return Cache.getProperty("VERSION"); } public FeatureRenderer getFeatureRenderer() @@@ -1697,19 -1663,10 +1726,18 @@@ { String tempFilePath = doBackup ? backupfiles.getTempFilePath() : file; + Console.trace("ALIGNFRAME setting PrintWriter"); PrintWriter out = new PrintWriter(new FileWriter(tempFilePath)); + if (backupfiles != null) + { + Console.trace("ALIGNFRAME about to write to temp file " + + backupfiles.getTempFilePath()); + } - out.print(output); + Console.trace("ALIGNFRAME about to close file"); out.close(); + Console.trace("ALIGNFRAME closed file"); AlignFrame.this.setTitle(file); statusBar.setText(MessageManager.formatMessage( "label.successfully_saved_to_file_in_format", @@@ -2220,37 -2176,20 +2265,36 @@@ } /** - * DOCUMENT ME! + * Calls AlignmentI.moveSelectedSequencesByOne with current sequence selection + * or the sequence under cursor in keyboard mode * * @param up - * DOCUMENT ME! + * or down (if !up) */ + public void moveSelectedSequences(boolean up) { SequenceGroup sg = viewport.getSelectionGroup(); if (sg == null) { + if (viewport.cursorMode) + { + sg = new SequenceGroup(); + sg.addSequence(viewport.getAlignment().getSequenceAt( + alignPanel.getSeqPanel().seqCanvas.cursorY), false); + } + else + { + return; + } + } + + if (sg.getSize() < 1) + { return; } - + // TODO: JAL-3733 - add an event to the undo buffer for this ! - viewport.getAlignment().moveSelectedSequencesByOne(sg, viewport.getHiddenRepSequences(), up); alignPanel.paintAlignment(true, false); @@@ -3208,10 -3163,12 +3268,11 @@@ } /** - * DOCUMENT ME! + * Opens a Finder dialog * * @param e - * DOCUMENT ME! */ + @Override public void findMenuItem_actionPerformed(ActionEvent e) { @@@ -4637,7 -4652,8 +4753,7 @@@ return tp; } - + private WebServicesMenuManager slivkaMenu = new WebServicesMenuManager("slivka", this); - /** * Schedule the web services menu rebuild to the event dispatch thread. */ @@@ -4648,11 -4664,12 +4764,12 @@@ webService.removeAll(); if (Cache.getDefault("SHOW_SLIVKA_SERVICES", true)) { - Cache.log.info("Building web service menu for slivka"); + Console.info("Building web service menu for slivka"); SlivkaWSDiscoverer discoverer = SlivkaWSDiscoverer.getInstance(); - JMenu submenu = new JMenu("Slivka"); - buildWebServicesMenu(discoverer, submenu); - webService.add(submenu); + slivkaMenu.setServices(discoverer); + slivkaMenu.setInProgress(discoverer.isRunning()); + slivkaMenu.setNoServices(discoverer.isDone() && !discoverer.hasServices()); + webService.add(slivkaMenu.getMenu()); } if (Cache.getDefault("SHOW_JWS2_SERVICES", true)) { diff --cc src/jalview/gui/SlivkaPreferences.java index 6fc14b0,ed1d5f7..6709d56 --- a/src/jalview/gui/SlivkaPreferences.java +++ b/src/jalview/gui/SlivkaPreferences.java @@@ -1,11 -1,5 +1,11 @@@ package jalview.gui; +import jalview.bin.Cache; +import jalview.bin.Console; +import jalview.util.MessageManager; - import jalview.ws.WSDiscovererI; - import jalview.ws.slivkaws.SlivkaWSDiscoverer; ++import jalview.ws2.client.api.WebServiceDiscovererI; ++import jalview.ws2.client.slivka.SlivkaWSDiscoverer; + import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; @@@ -38,6 -33,11 +39,7 @@@ import javax.swing.UIManager import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableCellRenderer; -import jalview.bin.Cache; -import jalview.util.MessageManager; -import jalview.ws2.client.api.WebServiceDiscovererI; -import jalview.ws2.client.slivka.SlivkaWSDiscoverer; + @SuppressWarnings("serial") public class SlivkaPreferences extends JPanel { @@@ -311,15 -310,18 +312,18 @@@ // Discoverer buttons action listeners private ActionListener refreshServicesAction = (ActionEvent e) -> { progressBar.setVisible(true); - Cache.log.info("Requesting service reload"); + Console.info("Requesting service reload"); - discoverer.startDiscoverer().handle((_discoverer, exception) -> { + discoverer.startDiscoverer().handle((services, exception) -> { if (exception == null) { - Cache.log.info("Reloading done"); + Console.info("Reloading done"); } - else + else if (exception instanceof CancellationException) { - Cache.log.info("Reloading cancelled"); ++ Console.info("Reloading cancelled"); + } + else { - Cache.log.error("Reloading failed", exception); + Console.error("Reloading failed", exception); } SwingUtilities.invokeLater(() -> progressBar.setVisible(false)); return null; diff --cc src/jalview/workers/AlignCalcManager2.java index eba241a,1c95179..1d5c1ed --- a/src/jalview/workers/AlignCalcManager2.java +++ b/src/jalview/workers/AlignCalcManager2.java @@@ -111,19 -110,15 +111,15 @@@ public class AlignCalcManager2 implemen task = executor.submit(() -> { try { - Console.debug(format("Worker %s started", - getWorker().getClass().getName())); - Cache.log.debug(format("Worker %s started", getWorker())); ++ Console.debug(format("Worker %s started", getWorker())); getWorker().run(); - Console.debug(format("Worker %s finished", - getWorker().getClass().getName())); - Cache.log.debug(format("Worker %s finished", getWorker())); ++ Console.debug(format("Worker %s finished", getWorker())); } catch (InterruptedException e) { - Console.debug(format("Worker %s interrupted", - getWorker().getClass().getName())); - Cache.log.debug(format("Worker %s interrupted", getWorker())); ++ Console.debug(format("Worker %s interrupted", getWorker())); } catch (Throwable th) { - Console.debug(format("Worker %s failed", - getWorker().getClass().getName()), th); - Cache.log.debug(format("Worker %s failed", getWorker()), th); ++ Console.debug(format("Worker %s failed", getWorker()), th); } finally { if (!isRegistered()) @@@ -142,8 -137,7 +138,7 @@@ { return; } - Console.debug(format("Cancelling worker %s", - getWorker().getClass().getName())); - Cache.log.debug(format("Cancelling worker %s", getWorker())); ++ Console.debug(format("Cancelling worker %s", getWorker())); task.cancel(true); } } @@@ -176,8 -170,8 +171,8 @@@ throw new IllegalStateException( "Cannot submit new task if the prevoius one is still running"); } - Cache.log.debug( + Console.debug( - format("Worker %s queued", getWorker().getClass().getName())); + format("Worker %s queued", getWorker())); final var runnable = new Runnable() { private boolean started = false; @@@ -193,26 -187,22 +188,22 @@@ { if (!started) { - Console.debug(format("Worker %s started", - getWorker().getClass().getName())); - Cache.log.debug(format("Worker %s started", getWorker())); ++ Console.debug(format("Worker %s started", getWorker())); getWorker().startUp(); started = true; } else if (!completed) { - Console.debug(format("Polling worker %s", - getWorker().getClass().getName())); - Cache.log.debug(format("Polling worker %s", getWorker())); ++ Console.debug(format("Polling worker %s", getWorker())); if (getWorker().poll()) { - Console.debug(format("Worker %s finished", - getWorker().getClass().getName())); - Cache.log.debug(format("Worker %s finished", getWorker())); ++ Console.debug(format("Worker %s finished", getWorker())); completed = true; } } } catch (Throwable th) { - Console.debug(format("Worker %s failed", - getWorker().getClass().getName()), th); - Cache.log.debug(format("Worker %s failed", getWorker()), th); ++ Console.debug(format("Worker %s failed", getWorker()), th); completed = true; } if (completed) @@@ -220,8 -210,7 +211,7 @@@ final var worker = getWorker(); if (!isRegistered()) PollableWorkerManager.super.worker = null; - Console.debug(format("Finalizing completed worker %s", - worker.getClass().getName())); - Cache.log.debug(format("Finalizing completed worker %s", worker)); ++ Console.debug(format("Finalizing completed worker %s", worker)); worker.done(); // almost impossible, but the future may be null at this point // let it throw NPE to cancel forcefully @@@ -239,8 -228,7 +229,7 @@@ { return; } - Console.debug(format("Cancelling worker %s", - getWorker().getClass().getName())); - Cache.log.debug(format("Cancelling worker %s", getWorker())); ++ Console.debug(format("Cancelling worker %s", getWorker())); task.cancel(false); executor.submit(() -> { final var worker = getWorker(); @@@ -249,8 -237,7 +238,7 @@@ if (worker != null) { worker.cancel(); - Console.debug(format("Finalizing cancelled worker %s", - worker.getClass().getName())); - Cache.log.debug(format("Finalizing cancelled worker %s", worker)); ++ Console.debug(format("Finalizing cancelled worker %s", worker)); worker.done(); } });