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;
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;
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;
@Override
public void focusGained(FocusEvent e)
{
- Jalview.setCurrentAlignFrame(AlignFrame.this);
+ Jalview.getInstance().setCurrentAlignFrame(AlignFrame.this);
}
});
// 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:
@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()
@Override
public void run()
{
- System.err.println(
+ jalview.bin.Console.errPrintln(
"Rebuild WS Menu for service change");
BuildWebServiceMenu();
}
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);
*/
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))
shortName = shortName
.substring(shortName.lastIndexOf(File.separatorChar) + 1);
}
+ // TODO deal with stdout=true
lastSaveSuccessful = new Jalview2XML().saveAlignment(this, file,
shortName);
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)
{
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)
{
}
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)
{
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
}
}
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.
*/
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);
}
*
* @param f
*/
- public void createEPS(File f) throws ImageOutputException
+ public void createEPS(File f) throws ImageOutputException
{
createEPS(f, null);
}
*
* @param f
*/
- public void createSVG(File f) throws ImageOutputException
+ public void createSVG(File f) throws ImageOutputException
{
createSVG(f, null);
}
closeAllTabs = true;
}
+ Desktop.closeModal(this);
+
try
{
if (alignPanels != null)
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
*
* @return alignment objects for all views
*/
- AlignmentI[] getViewAlignments()
+ public AlignmentI[] getViewAlignments()
{
if (alignPanels != null)
{
// 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);
}
} 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 (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)
{
@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
}
JInternalFrame frame = new JInternalFrame();
-
+ frame.setFrameIcon(null);
frame.getContentPane().add(new JScrollPane(pane));
Desktop.addInternalFrame(frame, MessageManager
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;
else
{
JInternalFrame frame = new JInternalFrame();
+ frame.setFrameIcon(null);
frame.setContentPane(new PairwiseAlignPanel(viewport));
Desktop.addInternalFrame(frame,
MessageManager.getString("action.pairwise_alignment"), 600,
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;
{
NewickFile fin = new NewickFile(
new FileParse(cm.getNewick(), DataSourceType.PASTE));
- String title = cm.getAnnotLabel() + " " + cm.getTreeMethod() + " tree"
- + aa.sequenceRef != null
+ String title = aa.label + " " + cm.getTreeMethod() + " tree"
+ + (aa.sequenceRef != null
? (" for " + aa.sequenceRef.getDisplayId(false))
- : "";
+ : "");
showColumnWiseTree(fin, aa, title, w, h, x, y);
} catch (Throwable xx)
{
return null;
}
- TreePanel tp = new TreePanel(alignPanel, nf, aa, title);
+ TreePanel tp = new TreePanel(alignPanel, nf, aa, treeTitle);
tp.setSize(w, h);
tp.setLocation(x, y);
}
- Desktop.addInternalFrame(tp, title, w, h);
+ Desktop.addInternalFrame(tp, treeTitle, w, h);
return tp;
} catch (Throwable xx)
{
{
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)
{
final List<JMenuItem> 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
* Object[] { String,SequenceI}
*/
ArrayList<Object[]> filesmatched = new ArrayList<>();
- ArrayList<Object> filesnotmatched = new ArrayList<>();
+ ArrayList<Object[]> filesnotmatched = new ArrayList<>();
for (int i = 0; i < files.size(); i++)
{
// BH 2018
}
mtch = idm.findAllIdMatches(pdbfn);
}
+ FileFormatI type = null;
if (mtch != null)
{
- FileFormatI type;
try
{
type = new IdentifyFile().identify(file, protocol);
}
// File wasn't named like one of the sequences or wasn't a PDB
// file.
- filesnotmatched.add(file);
+ filesnotmatched.add(new Object[] { file, protocol, type });
}
}
int assocfiles = 0;
Desktop.instance);
if (pe != null)
{
- System.err.println("Associated file : "
+ jalview.bin.Console.errPrintln("Associated file : "
+ (fm[0].toString()) + " with "
+ toassoc.getDisplayId(true));
assocfiles++;
*/
for (Object[] o : filesmatched)
{
- filesnotmatched.add(o[0]);
+ filesnotmatched.add(new Object[] { o[0], o[1] });
}
}
}
{
return;
}
- for (Object fn : filesnotmatched)
+ for (Object[] fn : filesnotmatched)
{
- loadJalviewDataFile(fn, null, null, null);
+ loadJalviewDataFile(fn[0], (DataSourceType) fn[1],
+ (FileFormatI) fn[2], null);
}
}
{
format = new IdentifyFile().identify(file, sourceType);
}
- if (FileFormat.ScoreMatrix == format)
+ if (FileFormat.FeatureSettings == format)
+ {
+ if (featureSettings != null)
+ {
+ featureSettings.load(file, sourceType);
+ }
+ else
+ {
+ FeatureSettings.loadFeatureSettingsFile(getFeatureRenderer(),
+ fileObject, sourceType);
+ }
+ }
+ else if (FileFormat.ScoreMatrix == format)
{
ScoreMatrixFile sm = new ScoreMatrixFile(
new FileParse(file, sourceType));
}
}
alignPanel.validateAnnotationDimensions(true);
+ // TODO this triggers relayout of annotation panel - otherwise annotation
+ // label height is different to panel height
+ alignPanel.fontChanged();
alignPanel.alignmentChanged();
}
viewport.getAlignment()));
} catch (Exception ex)
{
- System.err.println(ex.getMessage());
+ jalview.bin.Console.errPrintln(ex.getMessage());
return;
}
}
@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"),
}
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");
}
}