X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=9b3bd4a5ad9cbd57660a0af989b92fc490f10ab1;hb=b512e41cb378d9b7fb470db08bbb4d8ddbadce6f;hp=0edc57849ada3639a9322ac25e762225236ad05c;hpb=98f4db4c56ddbffb5690d9311b1e25bd9150f9c0;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 0edc578..9b3bd4a 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -37,7 +37,6 @@ import jalview.ws.*; import java.awt.dnd.*; import org.biojava.dasobert.eventmodel.*; - /** * DOCUMENT ME! * @@ -61,15 +60,14 @@ public class AlignFrame Stack redoList = new Stack(); private int treeCount = 0; - /** - * Creates a new AlignFrame object. - * - * @param al DOCUMENT ME! + * new alignment window with hidden columns + * @param al AlignmentI + * @param hiddenColumns ColumnSelection or null */ - public AlignFrame(AlignmentI al) - { - viewport = new AlignViewport(al); + public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns) { + + viewport = new AlignViewport(al, hiddenColumns); this.setDropTarget(new java.awt.dnd.DropTarget(this, this)); @@ -141,6 +139,17 @@ public class AlignFrame } + + /** + * Creates a new AlignFrame object. + * + * @param al DOCUMENT ME! + */ + public AlignFrame(AlignmentI al) + { + this(al, null); + } + public AlignViewport getViewport() { return viewport; @@ -203,8 +212,6 @@ public class AlignFrame { alignPanel.seqPanel.seqCanvas.fr.featuresAdded(); alignPanel.repaint(); - if(featureSettings!=null) - featureSettings.setTableData(); } } @@ -352,16 +359,20 @@ public class AlignFrame if (viewport.hasHiddenColumns) { - System.out.println("PROMPT USER HERE"); - omitHidden = viewport.getSelectionAsString(); + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + "The Alignment contains hidden columns." + + "\nDo you want to save only the visible alignment?", + "Save / Omit Hidden Columns", + JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + + if (reply == JOptionPane.YES_OPTION) + omitHidden = viewport.getViewAsString(false); } String output = new FormatAdapter().formatSequences( format, - viewport.getSelectionAsNewSequence(), - omitHidden) ; - - + viewport.alignment.getSequencesArray(), + omitHidden); if (output == null) { @@ -393,20 +404,31 @@ public class AlignFrame */ protected void outputText_actionPerformed(ActionEvent e) { - CutAndPasteTransfer cap = new CutAndPasteTransfer(); - - String [] omitHidden = null; if(viewport.hasHiddenColumns) { - System.out.println("PROMPT USER HERE"); - omitHidden = viewport.getSelectionAsString(); + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + "The Alignment contains hidden columns." + +"\nDo you want to output only the visible alignment?", + "Save / Omit Hidden Columns", + JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + + if(reply==JOptionPane.YES_OPTION) + { + omitHidden = viewport.getViewAsString(false); + } } + CutAndPasteTransfer cap = new CutAndPasteTransfer(); + Desktop.addInternalFrame(cap, + "Alignment output - " + e.getActionCommand(), 600, + 500); + + cap.setText(new FormatAdapter().formatSequences( e.getActionCommand(), - viewport.getSelectionAsNewSequence(), + viewport.alignment.getSequencesArray(), omitHidden)); } @@ -464,6 +486,7 @@ public class AlignFrame new AnnotationExporter().exportFeatures(alignPanel); } + public void exportAnnotations_actionPerformed(ActionEvent e) { new AnnotationExporter().exportAnnotations( @@ -670,16 +693,24 @@ public class AlignFrame } SequenceI [] seqs = viewport.getSelectionAsNewSequence(); + String[] omitHidden = null; - Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard(); + if (viewport.hasHiddenColumns) + { + omitHidden = viewport.getViewAsString(true); + } - FastaFile ff = new FastaFile(); - ff.addJVSuffix( viewport.showJVSuffix ); + String output = new FormatAdapter().formatSequences( + "Fasta", + seqs, + omitHidden); - c.setContents(new StringSelection(ff.print(seqs)), Desktop.instance); + + Toolkit.getDefaultToolkit().getSystemClipboard() + .setContents(new StringSelection(output), Desktop.instance); Vector hiddenColumns = null; - if(viewport.hasHiddenColumns && viewport.getSelectionGroup()!=null) + if(viewport.hasHiddenColumns) { hiddenColumns =new Vector(); int hiddenOffset = viewport.getSelectionGroup().getStartRes(); @@ -692,6 +723,7 @@ public class AlignFrame region[1]-hiddenOffset}); } } + Desktop.jalviewClipboard = new Object[]{ seqs, viewport.alignment.getDataset(), hiddenColumns}; @@ -743,6 +775,7 @@ public class AlignFrame String format = new IdentifyFile().Identify(str, "Paste"); SequenceI[] sequences; + if(Desktop.jalviewClipboard!=null) { // The clipboard was filled from within Jalview, we must use the sequences @@ -764,6 +797,7 @@ public class AlignFrame alignment.setDataset( (Alignment)Desktop.jalviewClipboard[1] ); else alignment.setDataset( null ); + } else { @@ -772,18 +806,23 @@ public class AlignFrame //!newAlignment for (int i = 0; i < sequences.length; i++) { - Sequence newseq = new Sequence(sequences[i].getName(), sequences[i].getSequence(), sequences[i].getStart(), sequences[i].getEnd()); alignment.addSequence(newseq); } + + viewport.setEndSeq(alignment.getHeight()); alignment.getWidth(); viewport.firePropertyChange("alignment", null, alignment.getSequences()); } + + + + // Add any annotations attached to sequences for (int i = 0; i < sequences.length; i++) { @@ -818,15 +857,13 @@ public class AlignFrame AlignFrame af = new AlignFrame(alignment); String newtitle = new String("Copied sequences"); - if(Desktop.jalviewClipboard[2]!=null) + if(Desktop.jalviewClipboard!=null && Desktop.jalviewClipboard[2]!=null) { Vector hc = (Vector)Desktop.jalviewClipboard[2]; for(int i=0; i 1)) { // JBPNote UGLY! To prettify, make SequenceGroup and Alignment conform to some common interface! - SequenceGroup seqs = viewport.getSelectionGroup(); + /*SequenceGroup seqs = viewport.getSelectionGroup(); int sz; msa = new SequenceI[sz = seqs.getSize(false)]; for (int i = 0; i < sz; i++) { msa[i] = (SequenceI) seqs.getSequenceAt(i); - } + } */ + msa = viewport.getAlignmentView(true); } else { - Vector seqs = viewport.getAlignment().getSequences(); + /*Vector seqs = viewport.getAlignment().getSequences(); if (seqs.size() > 1) { @@ -2246,7 +2334,8 @@ public class AlignFrame { msa[i] = (SequenceI) seqs.elementAt(i); } - } + }*/ + msa = viewport.getAlignmentView(false); } return msa; } @@ -2450,7 +2539,7 @@ public class AlignFrame { public void actionPerformed(ActionEvent e) { - SequenceI[] msa = gatherSequencesForAlignment(); + AlignmentView msa = gatherSequencesForAlignment(); new jalview.ws.MsaWSClient(sh, title, msa, false, true, viewport.getAlignment().getDataset(), af); @@ -2467,7 +2556,7 @@ public class AlignFrame { public void actionPerformed(ActionEvent e) { - SequenceI[] msa = gatherSequencesForAlignment(); + AlignmentView msa = gatherSequencesForAlignment(); new jalview.ws.MsaWSClient(sh, title, msa, true, true, viewport.getAlignment().getDataset(), af); @@ -2552,10 +2641,12 @@ public class AlignFrame - public void showTranslation_actionPerformed(ActionEvent e) { - int s, sSize = viewport.alignment.getHeight(); + SequenceI [] selection = viewport.getSelectionAsNewSequence(); + String [] seqstring = viewport.getViewAsString(true); + + int s, sSize = selection.length; SequenceI [] newSeq = new SequenceI[sSize]; int res, resSize; @@ -2564,7 +2655,7 @@ public void showTranslation_actionPerformed(ActionEvent e) for(s=0; s