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;
}
if (viewport.cursorMode)
{
- alignPanel.getSeqPanel().moveCursor(0, 1);
+ alignPanel.getSeqPanel().moveCursor(0, 1,
+ evt.isShiftDown() && !evt.isAltDown());
}
break;
}
if (viewport.cursorMode)
{
- alignPanel.getSeqPanel().moveCursor(0, -1);
+ alignPanel.getSeqPanel().moveCursor(0, -1,
+ evt.isShiftDown() && !evt.isAltDown());
}
-
break;
case KeyEvent.VK_LEFT:
}
else
{
- alignPanel.getSeqPanel().moveCursor(-1, 0);
+ alignPanel.getSeqPanel().moveCursor(-1, 0, evt.isShiftDown());
}
break;
}
else
{
- alignPanel.getSeqPanel().moveCursor(1, 0);
+ alignPanel.getSeqPanel().moveCursor(1, 0, evt.isShiftDown());
}
break;
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);
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,
public void save_actionPerformed(ActionEvent e)
{
if (fileName == null || (currentFileFormat == null)
- || fileName.startsWith("http"))
+ || HttpUtils.startsWithHttpOrHttps(fileName))
{
saveAs_actionPerformed(null);
}
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
{
String tempFilePath = backupfiles.getTempFilePath();
- Cache.log.debug(
+ Cache.log.trace(
"ALIGNFRAME setting PrintWriter to " + tempFilePath);
PrintWriter out = new PrintWriter(new FileWriter(tempFilePath));
- Cache.log.debug(
+ 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[]
{
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(Cache.getStackTraceString(ex));
}
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");
}
/**
- * 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)
{
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);
synchronized void slideSequences(boolean right, int size)
{
List<SequenceI> 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;
}
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
}
/**
- * DOCUMENT ME!
+ * Opens a Finder dialog
*
* @param e
- * DOCUMENT ME!
*/
@Override
public void findMenuItem_actionPerformed(ActionEvent e)
{
- new Finder();
+ new Finder(alignPanel);
}
/**
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)
{
}
}
}
-
}
+
if (jws2servs.isRunning())
{
JMenuItem tm = new JMenuItem(
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);