X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;fp=src%2Fjalview%2Fgui%2FAlignFrame.java;h=ac8ffb930f19ca8fc6d61735a6802e8c58ec920d;hb=b122ba188c2ffcbb302809bafc02058e355643ee;hp=49bd4e985ea6365354e1cdbab4283cd065cb6a34;hpb=e91b3bef83f320e13c59ad5d21d69f0abf3d7507;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 49bd4e9..ac8ffb9 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -49,6 +49,7 @@ import java.beans.PropertyChangeEvent; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.URL; import java.util.ArrayList; @@ -94,6 +95,7 @@ import jalview.api.analysis.SimilarityParamsI; import jalview.bin.Cache; import jalview.bin.Console; import jalview.bin.Jalview; +import jalview.bin.groovy.JalviewObjectI; import jalview.commands.CommandI; import jalview.commands.EditCommand; import jalview.commands.EditCommand.Action; @@ -157,7 +159,6 @@ import jalview.viewmodel.AlignmentViewport; import jalview.viewmodel.ViewportRanges; import jalview.ws.DBRefFetcher; import jalview.ws.DBRefFetcher.FetchFinishedListenerI; -import jalview.ws.datamodel.alphafold.PAEContactMatrix; import jalview.ws.jws1.Discoverer; import jalview.ws.jws2.Jws2Discoverer; import jalview.ws.jws2.jabaws2.Jws2Instance; @@ -503,7 +504,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void focusGained(FocusEvent e) { - Jalview.setCurrentAlignFrame(AlignFrame.this); + Jalview.getInstance().setCurrentAlignFrame(AlignFrame.this); } }); @@ -624,12 +625,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // if (viewport.cursorMode) // { // alignPanel.seqPanel.insertNucAtCursor(false,"A"); - // //System.out.println("A"); + // //jalview.bin.Console.outPrintln("A"); // } // break; /* * case KeyEvent.VK_CLOSE_BRACKET: if (viewport.cursorMode) { - * System.out.println("closing bracket"); } break; + * jalview.bin.Console.outPrintln("closing bracket"); } break; */ case KeyEvent.VK_DELETE: case KeyEvent.VK_BACK_SPACE: @@ -830,7 +831,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void propertyChange(PropertyChangeEvent evt) { - // // System.out.println("Discoverer property change."); + // // jalview.bin.Console.outPrintln("Discoverer property + // change."); // if (evt.getPropertyName().equals("services")) { SwingUtilities.invokeLater(new Runnable() @@ -839,7 +841,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void run() { - System.err.println( + jalview.bin.Console.errPrintln( "Rebuild WS Menu for service change"); BuildWebServiceMenu(); } @@ -854,7 +856,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public void internalFrameClosed( javax.swing.event.InternalFrameEvent evt) { - // System.out.println("deregistering discoverer listener"); + // jalview.bin.Console.outPrintln("deregistering discoverer listener"); Desktop.instance.removeJalviewPropertyChangeListener("services", thisListener); closeMenuItem_actionPerformed(true); @@ -1251,8 +1253,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ public void saveAlignment(String file, FileFormatI format) { + saveAlignment(file, format, false, false); + } + + public void saveAlignment(String file, FileFormatI format, boolean stdout, + boolean forceBackup) + { lastSaveSuccessful = true; - lastFilenameSaved = file; + if (!stdout) + { + lastFilenameSaved = file; + } lastFormatSaved = format; if (FileFormat.Jalview.equals(format)) @@ -1263,6 +1274,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, shortName = shortName .substring(shortName.lastIndexOf(File.separatorChar) + 1); } + // TODO deal with stdout=true lastSaveSuccessful = new Jalview2XML().saveAlignment(this, file, shortName); @@ -1298,7 +1310,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, else { // create backupfiles object and get new temp filename destination - boolean doBackup = BackupFiles.getEnabled(); + boolean doBackup = forceBackup + || (BackupFiles.getEnabled() && !stdout); BackupFiles backupfiles = null; if (doBackup) { @@ -1310,7 +1323,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, String tempFilePath = doBackup ? backupfiles.getTempFilePath() : file; Console.trace("ALIGNFRAME setting PrintWriter"); - PrintWriter out = new PrintWriter(new FileWriter(tempFilePath)); + PrintWriter out = stdout + ? new PrintWriter(new OutputStreamWriter(System.out)) + : new PrintWriter(new FileWriter(tempFilePath)); if (backupfiles != null) { @@ -1319,13 +1334,28 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } 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", new Object[] - { fileName, format.getName() })); + out.flush(); + if (!stdout) + { + Console.trace("ALIGNFRAME about to close file"); + out.close(); + Console.trace("ALIGNFRAME closed file"); + } + AlignFrame.this.setTitle(stdout ? "STDOUT" : file); + if (stdout) + { + statusBar.setText(MessageManager.formatMessage( + "label.successfully_printed_to_stdout_in_format", + new Object[] + { format.getName() })); + } + else + { + statusBar.setText(MessageManager.formatMessage( + "label.successfully_saved_to_file_in_format", + new Object[] + { fileName, format.getName() })); + } lastSaveSuccessful = true; } catch (IOException e) { @@ -1456,9 +1486,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void htmlMenuItem_actionPerformed(ActionEvent e) { HtmlSvgOutput htmlSVG = new HtmlSvgOutput(alignPanel); - try { + try + { htmlSVG.exportHTML(null); - } catch (ImageOutputException x) { + } catch (ImageOutputException x) + { // report problem to console and raise dialog } } @@ -1467,51 +1499,64 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public void bioJSMenuItem_actionPerformed(ActionEvent e) { BioJsHTMLOutput bjs = new BioJsHTMLOutput(alignPanel); - try { - bjs.exportHTML(null); - } catch (ImageOutputException x) { - // report problem to console and raise dialog - } + try + { + bjs.exportHTML(null); + } catch (ImageOutputException x) + { + // report problem to console and raise dialog + } } public void createImageMap(File file, String image) { - try { - alignPanel.makePNGImageMap(file, image); - } catch (ImageOutputException x) { + try + { + alignPanel.makePNGImageMap(file, image); + } catch (ImageOutputException x) + { // report problem to console and raise dialog } } @Override - public void createPNG_actionPerformed(ActionEvent e) { - try{ + public void createPNG_actionPerformed(ActionEvent e) + { + try + { createPNG(null); } catch (ImageOutputException ioex) { // raise dialog, and report via console } } + @Override - public void createEPS_actionPerformed(ActionEvent e) { - try{ + public void createEPS_actionPerformed(ActionEvent e) + { + try + { createEPS(null); } catch (ImageOutputException ioex) { // raise dialog, and report via console } - + } + @Override - public void createSVG_actionPerformed(ActionEvent e) { - try{ + public void createSVG_actionPerformed(ActionEvent e) + { + try + { createSVG(null); } catch (ImageOutputException ioex) { // raise dialog, and report via console } - + } + /** * Creates a PNG image of the alignment and writes it to the given file. If * the file is null, the user is prompted to choose a file. @@ -1520,10 +1565,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ public void createPNG(File f) throws ImageOutputException { - createPNG(f, null, BitmapImageSizing.nullBitmapImageSizing()); + createPNG(f, null, BitmapImageSizing.defaultBitmapImageSizing()); } - public void createPNG(File f, String renderer, BitmapImageSizing userBis) throws ImageOutputException + public void createPNG(File f, String renderer, BitmapImageSizing userBis) + throws ImageOutputException { alignPanel.makeAlignmentImage(TYPE.PNG, f, renderer, userBis); } @@ -1534,7 +1580,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @param f */ - public void createEPS(File f) throws ImageOutputException + public void createEPS(File f) throws ImageOutputException { createEPS(f, null); } @@ -1550,7 +1596,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @param f */ - public void createSVG(File f) throws ImageOutputException + public void createSVG(File f) throws ImageOutputException { createSVG(f, null); } @@ -1626,6 +1672,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, closeAllTabs = true; } + Desktop.closeModal(this); + try { if (alignPanels != null) @@ -1655,6 +1703,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, featureSettings.close(); featureSettings = null; } + /* * this will raise an INTERNAL_FRAME_CLOSED event and this method will * be called recursively, with the frame now in 'closed' state @@ -1748,7 +1797,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @return alignment objects for all views */ - AlignmentI[] getViewAlignments() + public AlignmentI[] getViewAlignments() { if (alignPanels != null) { @@ -2341,12 +2390,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // annotation was duplicated earlier alignment.addAnnotation(sequences[i].getAnnotation()[a]); // take care of contact matrix too - ContactMatrixI cm=sequences[i].getContactMatrixFor(sequences[i].getAnnotation()[a]); - if (cm!=null) + ContactMatrixI cm = sequences[i] + .getContactMatrixFor(sequences[i].getAnnotation()[a]); + if (cm != null) { - alignment.addContactListFor(sequences[i].getAnnotation()[a], cm); + alignment.addContactListFor(sequences[i].getAnnotation()[a], + cm); } - + alignment.setAnnotationIndex(sequences[i].getAnnotation()[a], a); } @@ -2454,7 +2505,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } catch (Exception ex) { ex.printStackTrace(); - System.out.println("Exception whilst pasting: " + ex); + jalview.bin.Console.outPrintln("Exception whilst pasting: " + ex); // could be anything being pasted in here } @@ -2502,7 +2553,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } catch (Exception ex) { ex.printStackTrace(); - System.out.println("Exception whilst pasting: " + ex); + jalview.bin.Console.outPrintln("Exception whilst pasting: " + ex); // could be anything being pasted in here } catch (OutOfMemoryError oom) { @@ -3138,11 +3189,20 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void wrapMenuItem_actionPerformed(ActionEvent e) { - scaleAbove.setVisible(wrapMenuItem.isSelected()); - scaleLeft.setVisible(wrapMenuItem.isSelected()); - scaleRight.setVisible(wrapMenuItem.isSelected()); - viewport.setWrapAlignment(wrapMenuItem.isSelected()); + setWrapFormat(wrapMenuItem.isSelected(), false); + } + + public void setWrapFormat(boolean b, boolean setMenuItem) + { + scaleAbove.setVisible(b); + scaleLeft.setVisible(b); + scaleRight.setVisible(b); + viewport.setWrapAlignment(b); alignPanel.updateLayout(); + if (setMenuItem) + { + wrapMenuItem.setSelected(b); + } } @Override @@ -3480,7 +3540,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } JInternalFrame frame = new JInternalFrame(); - + frame.setFrameIcon(null); frame.getContentPane().add(new JScrollPane(pane)); Desktop.addInternalFrame(frame, MessageManager @@ -3508,12 +3568,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, return alignPanel.overviewPanel; } JInternalFrame frame = new JInternalFrame(); + frame.setFrameIcon(null); final OverviewPanel overview = new OverviewPanel(alignPanel, frame, showHidden); frame.setContentPane(overview); Desktop.addInternalFrame(frame, "", true, frame.getWidth(), frame.getHeight(), true, true); - frame.setFrameIcon(null); frame.pack(); frame.setLayer(JLayeredPane.PALETTE_LAYER); final AlignmentPanel thePanel = this.alignPanel; @@ -3787,6 +3847,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, else { JInternalFrame frame = new JInternalFrame(); + frame.setFrameIcon(null); frame.setContentPane(new PairwiseAlignPanel(viewport)); Desktop.addInternalFrame(frame, MessageManager.getString("action.pairwise_alignment"), 600, @@ -4239,8 +4300,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, return tp; } - public void showContactMapTree(AlignmentAnnotation aa, - ContactMatrixI cm) + public void showContactMapTree(AlignmentAnnotation aa, ContactMatrixI cm) { int x = 4, y = 5; int w = 400, h = 500; @@ -4249,8 +4309,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { NewickFile fin = new NewickFile( new FileParse(cm.getNewick(), DataSourceType.PASTE)); - String title = aa.label + " " - + cm.getTreeMethod() + " tree" + (aa.sequenceRef != null + String title = aa.label + " " + cm.getTreeMethod() + " tree" + + (aa.sequenceRef != null ? (" for " + aa.sequenceRef.getDisplayId(false)) : ""); @@ -4303,7 +4363,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { try { - System.err.println("Waiting for building menu to finish."); + jalview.bin.Console + .errPrintln("Waiting for building menu to finish."); Thread.sleep(10); } catch (Exception e) { @@ -4319,7 +4380,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, final List legacyItems = new ArrayList<>(); try { - // System.err.println("Building ws menu again " + // jalview.bin.Console.errPrintln("Building ws menu again " // + Thread.currentThread()); // TODO: add support for context dependent disabling of services based // on @@ -4857,7 +4918,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, Desktop.instance); if (pe != null) { - System.err.println("Associated file : " + jalview.bin.Console.errPrintln("Associated file : " + (fm[0].toString()) + " with " + toassoc.getDisplayId(true)); assocfiles++; @@ -5890,7 +5951,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, viewport.getAlignment())); } catch (Exception ex) { - System.err.println(ex.getMessage()); + jalview.bin.Console.errPrintln(ex.getMessage()); return; } } @@ -5903,16 +5964,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override protected void runGroovy_actionPerformed() { - Jalview.setCurrentAlignFrame(this); - groovy.ui.Console console = Desktop.getGroovyConsole(); + Jalview.getInstance().setCurrentAlignFrame(this); + groovy.console.ui.Console console = Desktop.getGroovyConsole(); if (console != null) { try { + console.setVariable(JalviewObjectI.currentAlFrameName, this); console.runScript(); } catch (Exception ex) { - System.err.println((ex.toString())); + jalview.bin.Console.errPrintln((ex.toString())); JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager.getString("label.couldnt_run_groovy_script"), MessageManager.getString("label.groovy_support_failed"), @@ -5921,7 +5983,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - System.err.println("Can't run Groovy script as console not found"); + jalview.bin.Console + .errPrintln("Can't run Groovy script as console not found"); } }