X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=1eb72e983df6ccb0fe86e59d6a10583a8db8a41e;hb=ad35f232acd499d9457056ca24b663866a09edd2;hp=f483d6fca75a5292c828198392945e89c65add17;hpb=f09f33647e90a6376ffcf096d003afa59f2b41fc;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index f483d6f..1eb72e9 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -36,8 +36,6 @@ import jalview.schemes.*; import jalview.commands.*; import jalview.ws.*; import java.awt.dnd.*; -import javax.swing.event.ChangeListener; -import javax.swing.event.ChangeEvent; /** * DOCUMENT ME! @@ -310,7 +308,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener SequenceGroup sg = viewport.getSelectionGroup(); if (toggleSeqs) { - if (sg != null && sg.getSize(false) != viewport.alignment.getHeight()) + if (sg != null && sg.getSize() != viewport.alignment.getHeight()) { hideSelSequences_actionPerformed(null); hide = true; @@ -472,6 +470,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener idRightAlign.setSelected(av.rightAlignIds); renderGapsMenuItem.setSelected(av.renderGaps); wrapMenuItem.setSelected(av.wrapAlignment); + scaleAbove.setVisible(av.wrapAlignment); + scaleLeft.setVisible(av.wrapAlignment); + scaleRight.setVisible(av.wrapAlignment); annotationPanelMenuItem.setState(av.showAnnotation); viewBoxesMenuItem.setSelected(av.showBoxes); viewTextMenuItem.setSelected(av.showText); @@ -592,7 +593,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener dset.deleteSequence(0); } - firePropertyChange("Alignment", null, null); + firePropertyChange("Alignment", null, viewport.alignment.getSequences()); updateEditMenuBar(); } @@ -676,6 +677,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public boolean saveAlignment(String file, String format) { + boolean success = true; + if (format.equalsIgnoreCase("Jalview")) { String shortName = title; @@ -686,15 +689,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener java.io.File.separatorChar) + 1); } - new Jalview2XML().SaveAlignment(this, file, shortName); + success = new Jalview2XML().SaveAlignment(this, file, shortName); statusBar.setText("Successfully saved to file: " +fileName+" in " +format +" format."); - - // USE Jalview2XML to save this file - return true; } else { @@ -720,28 +720,37 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener if (output == null) { - return false; - } - - try - { - java.io.PrintWriter out = new java.io.PrintWriter( - new java.io.FileWriter(file)); - - out.print(output); - out.close(); - this.setTitle(file); - statusBar.setText("Successfully saved to file: " - +fileName+" in " - +format +" format."); - return true; + success = false; } - catch (Exception ex) + else { - ex.printStackTrace(); + try + { + java.io.PrintWriter out = new java.io.PrintWriter( + new java.io.FileWriter(file)); + + out.print(output); + out.close(); + this.setTitle(file); + statusBar.setText("Successfully saved to file: " + + fileName + " in " + + format + " format."); + } + catch (Exception ex) + { + success = false; + ex.printStackTrace(); + } } } - return false; + + if (!success) + JOptionPane.showInternalMessageDialog( + this, "Couldn't save file: " + fileName, + "Error Saving File", + JOptionPane.WARNING_MESSAGE); + + return success; } /** @@ -817,6 +826,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener alignPanel.makeEPS(f); } + + public void pageSetup_actionPerformed(ActionEvent e) + { + PrinterJob printJob = PrinterJob.getPrinterJob(); + PrintThread.pf = printJob.pageDialog(printJob.defaultPage()); + } + /** * DOCUMENT ME! * @@ -825,7 +841,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public void printMenuItem_actionPerformed(ActionEvent e) { //Putting in a thread avoids Swing painting problems - PrintThread thread = new PrintThread(); + PrintThread thread = new PrintThread(alignPanel); thread.start(); } @@ -838,8 +854,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public void exportAnnotations_actionPerformed(ActionEvent e) { new AnnotationExporter().exportAnnotations( - alignPanel, - viewport.alignment.getAlignmentAnnotation() + alignPanel, + viewport.showAnnotation ? viewport.alignment.getAlignmentAnnotation() : null, + viewport.alignment.getGroups() ); } @@ -982,7 +999,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener if(originalSource!=null) { originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null; - originalSource.firePropertyChange("alignment", null,null); + originalSource.firePropertyChange("alignment", + null, + originalSource.alignment.getSequences()); } } @@ -1006,7 +1025,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener if(originalSource!=null) { originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null; - originalSource.firePropertyChange("alignment", null,null); + originalSource.firePropertyChange("alignment", + null, + originalSource.alignment.getSequences()); } } @@ -1070,14 +1091,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { SequenceI seq = viewport.alignment.getSequenceAt(i); - if (!sg.getSequences(false).contains(seq)) + if (!sg.getSequences(null).contains(seq)) { continue; } SequenceI temp = viewport.alignment.getSequenceAt(i - 1); - if (sg.getSequences(false).contains(temp)) + if (sg.getSequences(null).contains(temp)) { continue; } @@ -1092,14 +1113,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { SequenceI seq = viewport.alignment.getSequenceAt(i); - if (!sg.getSequences(false).contains(seq)) + if (!sg.getSequences(null).contains(seq)) { continue; } SequenceI temp = viewport.alignment.getSequenceAt(i + 1); - if (sg.getSequences(false).contains(temp)) + if (sg.getSequences(null).contains(temp)) { continue; } @@ -1144,6 +1165,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener try { + jalview.gui.Desktop.internalCopy = true; //Its really worth setting the clipboard contents //to empty before setting the large StringSelection!! Toolkit.getDefaultToolkit().getSystemClipboard() @@ -1271,7 +1293,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener } else { - sequences = new FormatAdapter().readFile(str, "Paste", format); + sequences = new FormatAdapter().readFile(str, "Paste", format).getSequencesArray(); } AlignmentI alignment = null; @@ -1423,7 +1445,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener Vector seqs = new Vector(); SequenceI seq; - for (int i = 0; i < sg.getSize(false); i++) + for (int i = 0; i < sg.getSize(); i++) { seq = sg.getSequenceAt(i); seqs.addElement(seq); @@ -1431,7 +1453,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener // If the cut affects all sequences, remove highlighted columns - if (sg.getSize(false) == viewport.alignment.getHeight()) + if (sg.getSize() == viewport.alignment.getHeight()) { viewport.getColumnSelection().removeElements(sg.getStartRes(), sg.getEndRes() + 1); @@ -1550,6 +1572,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener sg.addOrRemove(viewport.getAlignment().getSequenceAt(i), false); } + alignPanel.repaint(); + PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId()); } @@ -1594,7 +1618,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener SequenceI [] seqs; if(viewport.getSelectionGroup()!=null) - seqs = viewport.getSelectionGroup().getSequencesAsArray(true); + seqs = viewport.getSelectionGroup().getSequencesAsArray(viewport.hiddenRepSequences); else seqs = viewport.alignment.getSequencesArray(); @@ -1657,7 +1681,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener SequenceI[] seqs; if (viewport.getSelectionGroup() != null) { - seqs = viewport.getSelectionGroup().getSequencesAsArray(true); + seqs = viewport.getSelectionGroup().getSequencesAsArray(viewport.hiddenRepSequences); start = viewport.getSelectionGroup().getStartRes(); end = viewport.getSelectionGroup().getEndRes(); } @@ -1669,7 +1693,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener new RemoveGapColCommand("Remove Gapped Columns", seqs, start, end, - viewport.getGapCharacter()); + viewport.alignment); addHistoryItem(removeGapCols); @@ -1701,7 +1725,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener SequenceI[] seqs; if (viewport.getSelectionGroup() != null) { - seqs = viewport.getSelectionGroup().getSequencesAsArray(true); + seqs = viewport.getSelectionGroup().getSequencesAsArray(viewport.hiddenRepSequences); start = viewport.getSelectionGroup().getStartRes(); end = viewport.getSelectionGroup().getEndRes(); } @@ -1714,9 +1738,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener int startRes = seq.findPosition(viewport.startRes); addHistoryItem(new RemoveGapsCommand("Remove Gaps", - seqs, - start, end, - viewport.getGapCharacter())); + seqs, + start, end, + viewport.alignment)); viewport.setStartRes(seq.findIndex(startRes)-1); @@ -2216,7 +2240,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener if (cs instanceof ClustalxColourScheme) { sg.cs = new ClustalxColourScheme( - sg.getSequences(true), sg.getWidth()); + sg.getSequences(viewport.hiddenRepSequences), sg.getWidth()); } else if (cs instanceof UserColourScheme) { @@ -2241,7 +2265,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener viewport.getIgnoreGapsConsensus()); sg.cs.setConsensus(AAFrequency.calculate( - sg.getSequences(true), sg.getStartRes(), + sg.getSequences(viewport.hiddenRepSequences), sg.getStartRes(), sg.getEndRes()+1)); } else @@ -2252,7 +2276,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { Conservation c = new Conservation("Group", ResidueProperties.propHash, 3, - sg.getSequences(true), + sg.getSequences(viewport.hiddenRepSequences), sg.getStartRes(), sg.getEndRes()+1); c.calculate(); @@ -2504,7 +2528,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e) { if ( (viewport.getSelectionGroup() == null) || - (viewport.getSelectionGroup().getSize(false) < 2)) + (viewport.getSelectionGroup().getSize() < 2)) { JOptionPane.showInternalMessageDialog(this, "You must select at least 2 sequences.", @@ -2527,8 +2551,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public void PCAMenuItem_actionPerformed(ActionEvent e) { if ( ( (viewport.getSelectionGroup() != null) && - (viewport.getSelectionGroup().getSize(false) < 4) && - (viewport.getSelectionGroup().getSize(false) > 0)) || + (viewport.getSelectionGroup().getSize() < 4) && + (viewport.getSelectionGroup().getSize() > 0)) || (viewport.getAlignment().getHeight() < 4)) { JOptionPane.showInternalMessageDialog(this, @@ -2608,7 +2632,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener TreePanel tp; if (viewport.getSelectionGroup() != null) { - if (viewport.getSelectionGroup().getSize(false) < 3) { + if (viewport.getSelectionGroup().getSize() < 3) { JOptionPane.showMessageDialog(Desktop.desktop, "You need to have more than two sequences selected to build a tree!", "Not enough sequences", @@ -2620,9 +2644,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener SequenceGroup sg = viewport.getSelectionGroup(); /* Decide if the selection is a column region */ - while (s < sg.getSize(false)) + while (s < sg.getSize()) { - if ( ( (SequenceI) sg.getSequences(false).elementAt(s++)).getLength() < + if ( ( (SequenceI) sg.getSequences(null).elementAt(s++)).getLength() < sg.getEndRes()) { JOptionPane.showMessageDialog(Desktop.desktop, @@ -2660,9 +2684,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener tp = new TreePanel(alignPanel, type, pwType); } - title = title + " from " + this.title; + title += " from "; + if(viewport.viewName!=null) - title+= " ("+viewport.viewName+")"; + title+= viewport.viewName+" of "; + + title += this.title; Desktop.addInternalFrame(tp, title, 600, 500); } @@ -2762,7 +2789,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener AlignmentView msa = null; if ( (viewport.getSelectionGroup() != null) && - (viewport.getSelectionGroup().getSize(false) > 1)) + (viewport.getSelectionGroup().getSize() > 1)) { // JBPNote UGLY! To prettify, make SequenceGroup and Alignment conform to some common interface! /*SequenceGroup seqs = viewport.getSelectionGroup(); @@ -2804,7 +2831,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener AlignmentView seqs = null; if ( (viewport.getSelectionGroup() != null) && - (viewport.getSelectionGroup().getSize(false) > 0)) + (viewport.getSelectionGroup().getSize() > 0)) { seqs = viewport.getAlignmentView(true); } @@ -2914,28 +2941,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener return tp; } - class PrintThread - extends Thread - { - public void run() - { - PrinterJob printJob = PrinterJob.getPrinterJob(); - PageFormat pf = printJob.pageDialog(printJob.defaultPage()); - printJob.setPrintable(alignPanel, pf); - - if (printJob.printDialog()) - { - try - { - printJob.print(); - } - catch (Exception PrintException) - { - PrintException.printStackTrace(); - } - } - } - } /** * Generates menu items and listener event actions for web service clients @@ -3270,7 +3275,7 @@ public void drop(DropTargetDropEvent evt) } boolean isAnnotation = new AnnotationFile().readAnnotationFile(viewport. - alignment, file); + alignment, file, protocol); if (!isAnnotation) { @@ -3338,3 +3343,34 @@ public void drop(DropTargetDropEvent evt) return viewport; } } + +class PrintThread extends Thread +{ + AlignmentPanel ap; + public PrintThread(AlignmentPanel ap) + { + this.ap = ap; + } + static PageFormat pf; + public void run() + { + PrinterJob printJob = PrinterJob.getPrinterJob(); + + if (pf != null) + printJob.setPrintable(ap, pf); + else + printJob.setPrintable(ap); + + if (printJob.printDialog()) + { + try + { + printJob.print(); + } + catch (Exception PrintException) + { + PrintException.printStackTrace(); + } + } + } +}