X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=9013416294550d8dbf359bfd96386fc5e3c72cc4;hb=8dadf27423ca69874dc6a3c9d416974ba5ae767f;hp=79c67ac6c246fa2fa995310d9f55a60ed86c6e8a;hpb=5a49c58458ec048a993a5bd3e81432cd286e16f5;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 79c67ac..9013416 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -138,6 +138,7 @@ import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemes; import jalview.schemes.ResidueColourScheme; import jalview.schemes.TCoffeeColourScheme; +import jalview.util.HttpUtils; import jalview.util.MessageManager; import jalview.util.Platform; import jalview.viewmodel.AlignmentViewport; @@ -538,7 +539,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } if (viewport.cursorMode) { - alignPanel.getSeqPanel().moveCursor(0, 1); + alignPanel.getSeqPanel().moveCursor(0, 1, + evt.isShiftDown() && !evt.isAltDown()); } break; @@ -549,9 +551,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } if (viewport.cursorMode) { - alignPanel.getSeqPanel().moveCursor(0, -1); + alignPanel.getSeqPanel().moveCursor(0, -1, + evt.isShiftDown() && !evt.isAltDown()); } - break; case KeyEvent.VK_LEFT: @@ -562,7 +564,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - alignPanel.getSeqPanel().moveCursor(-1, 0); + alignPanel.getSeqPanel().moveCursor(-1, 0, evt.isShiftDown()); } break; @@ -574,7 +576,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - alignPanel.getSeqPanel().moveCursor(1, 0); + alignPanel.getSeqPanel().moveCursor(1, 0, evt.isShiftDown()); } break; @@ -1036,7 +1038,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, Desktop.instance.closeAssociatedWindows(); FileLoader loader = new FileLoader(); - DataSourceType protocol = fileName.startsWith("http:") + DataSourceType protocol = HttpUtils.startsWithHttpOrHttps(fileName) ? DataSourceType.URL : DataSourceType.FILE; loader.LoadFile(viewport, fileName, protocol, currentFileFormat); @@ -1046,7 +1048,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, Rectangle bounds = this.getBounds(); FileLoader loader = new FileLoader(); - DataSourceType protocol = fileName.startsWith("http:") + DataSourceType protocol = HttpUtils.startsWithHttpOrHttps(fileName) ? DataSourceType.URL : DataSourceType.FILE; AlignFrame newframe = loader.LoadFileWaitTillLoaded(fileName, @@ -1093,7 +1095,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public void save_actionPerformed(ActionEvent e) { if (fileName == null || (currentFileFormat == null) - || fileName.startsWith("http")) + || HttpUtils.startsWithHttpOrHttps(fileName)) { saveAs_actionPerformed(null); } @@ -1170,7 +1172,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, statusBar.setText(MessageManager.formatMessage( "label.successfully_saved_to_file_in_format", new Object[] - { fileName, format })); + { file, format })); } else @@ -1199,48 +1201,49 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, else { // create backupfiles object and get new temp filename destination - Cache.log.debug("ALIGNFRAME making backupfiles object for " + file); + Cache.log.trace("ALIGNFRAME making backupfiles object for " + file); BackupFiles backupfiles = new BackupFiles(file); try { - Cache.log.debug("ALIGNFRAME setting PrintWriter"); - PrintWriter out = new PrintWriter( - new FileWriter(backupfiles.getTempFilePath())); + String tempFilePath = backupfiles.getTempFilePath(); + Cache.log.trace( + "ALIGNFRAME setting PrintWriter to " + tempFilePath); + PrintWriter out = new PrintWriter(new FileWriter(tempFilePath)); - Cache.log.debug("ALIGNFRAME about to write to temp file " - + backupfiles.getTempFilePath()); + Cache.log.trace( + "ALIGNFRAME about to write to temp file " + tempFilePath); out.print(output); - Cache.log.debug("ALIGNFRAME about to close file"); + Cache.log.trace("ALIGNFRAME about to close file"); out.close(); - Cache.log.debug("ALIGNFRAME closed file"); + Cache.log.trace("ALIGNFRAME closed file"); this.setTitle(file); statusBar.setText(MessageManager.formatMessage( "label.successfully_saved_to_file_in_format", new Object[] - { fileName, format.getName() })); + { file, format.getName() })); } catch (IOException e) { success = false; Cache.log.error( "ALIGNFRAME Something happened writing the temp file"); Cache.log.error(e.getMessage()); - Cache.log.debug(e.getStackTrace()); + Cache.log.debug(Cache.getStackTraceString(e)); } catch (Exception ex) { success = false; Cache.log.error( - "ALIGNFRAME Something else happened writing the temp file"); + "ALIGNFRAME Something unexpected happened writing the temp file"); Cache.log.error(ex.getMessage()); - Cache.log.debug(ex.getStackTrace()); + Cache.log.debug(Cache.getStackTraceString(ex)); } backupfiles.setWriteSuccess(success); Cache.log.debug("ALIGNFRAME writing temp file was " + (success ? "" : "NOT ") + "successful"); // do the backup file roll and rename the temp file to actual file - Cache.log.debug("ALIGNFRAME about to rollBackupsAndRenameTempFile"); + Cache.log.trace("ALIGNFRAME about to rollBackupsAndRenameTempFile"); success = backupfiles.rollBackupsAndRenameTempFile(); Cache.log.debug("ALIGNFRAME performed rollBackupsAndRenameTempFile " + (success ? "" : "un") + "successfully"); @@ -1254,7 +1257,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { JvOptionPane.showInternalMessageDialog(this, MessageManager .formatMessage("label.couldnt_save_file", new Object[] - { fileName }), + { file }), MessageManager.getString("label.error_saving_file"), JvOptionPane.WARNING_MESSAGE); } @@ -1747,10 +1750,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } /** - * 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) { @@ -1758,8 +1762,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, 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); @@ -1768,19 +1789,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, synchronized void slideSequences(boolean right, int size) { List sg = new ArrayList<>(); - if (viewport.cursorMode) - { - sg.add(viewport.getAlignment() - .getSequenceAt(alignPanel.getSeqPanel().seqCanvas.cursorY)); - } - else if (viewport.getSelectionGroup() != null - && viewport.getSelectionGroup().getSize() != viewport - .getAlignment().getHeight()) + if (viewport.getSelectionGroup() != null && viewport.getSelectionGroup() + .getSize() != viewport.getAlignment().getHeight()) { sg = viewport.getSelectionGroup() .getSequences(viewport.getHiddenRepSequences()); } + if (sg.size() == 0 && viewport.cursorMode) + { + sg.add(viewport.getAlignment() + .getSequenceAt(alignPanel.getSeqPanel().seqCanvas.cursorY)); + } + if (sg.size() < 1) { return; @@ -2478,7 +2499,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } viewport.setSelectionGroup(null); viewport.getColumnSelection().clear(); - viewport.setSelectionGroup(null); + viewport.setSearchResults(null); alignPanel.getIdPanel().getIdCanvas().searchResults = null; // JAL-2034 - should delegate to // alignPanel to decide if overview needs @@ -2715,15 +2736,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } /** - * DOCUMENT ME! + * Opens a Finder dialog * * @param e - * DOCUMENT ME! */ @Override public void findMenuItem_actionPerformed(ActionEvent e) { - new Finder(); + new Finder(alignPanel); } /** @@ -4154,9 +4174,15 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, webService.add(me.webServiceNoServices); } // TODO: move into separate menu builder class. - boolean new_sspred = false; - if (Cache.getDefault("SHOW_JWS2_SERVICES", true)) { + // logic for 2.11.1.4 is + // always look to see if there is a discover. if there isn't + // we can't show any Jws2 services + // if there are services available, show them - regardless of + // the 'show JWS2 preference' + // if the discoverer is running then say so + // otherwise offer to trigger discovery if 'show JWS2' is not + // enabled Jws2Discoverer jws2servs = Jws2Discoverer.getDiscoverer(); if (jws2servs != null) { @@ -4173,8 +4199,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } } - } + if (jws2servs.isRunning()) { JMenuItem tm = new JMenuItem( @@ -4182,6 +4208,26 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, tm.setEnabled(false); webService.add(tm); } + else if (!Cache.getDefault("SHOW_JWS2_SERVICES", true)) + { + JMenuItem enableJws2 = new JMenuItem( + "Discover Web Services"); + enableJws2.setToolTipText( + "Select to start JABA Web Service discovery (or enable option in Web Service preferences)"); + enableJws2.setEnabled(true); + enableJws2.addActionListener(new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent e) + { + // start service discoverer, but ignore preference + Desktop.instance.startServiceDiscovery(false, + true); + } + }); + webService.add(enableJws2); + } } } build_urlServiceMenu(me.webService);