X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FTreePanel.java;h=103c96ba54cce439e0912ce20d2f0b3b86be0e6e;hb=174230b4233d9ce80f94527768d2cd2f76da11ab;hp=19ed987760d6fe3a1ed9008c8126190cdd7dac58;hpb=e33cdacd2ac2836504375c538574a0f1cafec7e3;p=jalview.git diff --git a/src/jalview/appletgui/TreePanel.java b/src/jalview/appletgui/TreePanel.java index 19ed987..103c96b 100755 --- a/src/jalview/appletgui/TreePanel.java +++ b/src/jalview/appletgui/TreePanel.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -116,9 +116,36 @@ public class TreePanel extends Frame implements ActionListener, ItemListener } + void showOriginalData() + { + // decide if av alignment is sufficiently different to original data to warrant a new window to be created + // create new alignmnt window with hidden regions (unhiding hidden regions yields unaligned seqs) + // or create a selection box around columns in alignment view + // test Alignment(SeqCigar[]) + if(tree.seqData!=null) + { + Object[] alAndColsel = tree.seqData.getAlignmentAndColumnSelection(av. + getGapCharacter()); + + if (alAndColsel != null && alAndColsel[0] != null) + { + Alignment al = new Alignment( (SequenceI[]) alAndColsel[0]); + AlignFrame af = new AlignFrame(al, + av.applet, + "Original Data for Tree", + false); + + af.viewport.setHiddenColumns( (ColumnSelection) alAndColsel[1]); + } + } + else + System.out.println("Original Tree Data not available"); + } + class TreeLoader extends Thread { NewickFile newtree; + jalview.datamodel.AlignmentView odata=null; public TreeLoader(NewickFile newtree) { @@ -127,19 +154,20 @@ public class TreePanel extends Frame implements ActionListener, ItemListener public void run() { - if (newtree != null) - tree = new NJTree(av.alignment.getSequencesArray(), - newtree); - else + if(newtree!=null) + { + if (odata == null) + tree = new NJTree(av.alignment.getSequencesArray(), + newtree); + else + tree = new NJTree(av.alignment.getSequencesArray(), odata, newtree); + + } + else { int start, end; SequenceI [] seqs; - CigarArray seqStrings = null; - // if (av.hasHiddenColumns) - { - // seqStrings = av.getSelectionAsString(); - } - + AlignmentView seqStrings = av.getAlignmentView(av.getSelectionGroup()!=null); if(av.getSelectionGroup()==null) { start = 0; @@ -181,6 +209,8 @@ public class TreePanel extends Frame implements ActionListener, ItemListener newickOutput_actionPerformed(); else if(evt.getSource()==fontSize) fontSize_actionPerformed(); + else if(evt.getSource()==inputData) + showOriginalData(); } public void itemStateChanged(ItemEvent evt) @@ -245,6 +275,7 @@ public class TreePanel extends Frame implements ActionListener, ItemListener protected CheckboxMenuItem fitToWindow = new CheckboxMenuItem(); Menu fileMenu = new Menu(); MenuItem newickOutput = new MenuItem(); + MenuItem inputData = new MenuItem(); private void jbInit() throws Exception { setLayout(borderLayout1); @@ -265,6 +296,7 @@ public class TreePanel extends Frame implements ActionListener, ItemListener fileMenu.setLabel("File"); newickOutput.setLabel("Newick Format"); newickOutput.addActionListener(this); + inputData.setLabel("Input Data..."); add(scrollPane, BorderLayout.CENTER); jMenuBar1.add(fileMenu); @@ -275,6 +307,8 @@ public class TreePanel extends Frame implements ActionListener, ItemListener jMenu2.add(bootstrapMenu); jMenu2.add(placeholdersMenu); fileMenu.add(newickOutput); + fileMenu.add(inputData); + inputData.addActionListener(this); } }