X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=3123184f3b5e95d83aa15c3eb935162627f5502d;hb=b74e294a72e55800143248d8c3938d86dcf02a2f;hp=43bdb2fe78bf0b18037573eba7c04814d6947189;hpb=b08c4a331a047b06a5e57d01961cec991826876d;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 43bdb2f..3123184 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -23,7 +23,7 @@ import java.awt.print.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; -import java.awt.datatransfer.*; +import java.awt.datatransfer.*; public class AlignFrame extends GAlignFrame @@ -32,7 +32,6 @@ public class AlignFrame extends GAlignFrame final AlignViewport viewport; public AlignFrame(AlignmentI al) { - super(); viewport = new AlignViewport(al,true,true,false); String fontName = jalview.bin.Cache.getProperty("FONT_NAME"); @@ -41,10 +40,20 @@ public class AlignFrame extends GAlignFrame if(fontName!=null && fontStyle!=null && fontSize!=null) viewport.setFont( new Font(fontName,Integer.parseInt(fontStyle),Integer.parseInt(fontSize)) ); + // add conservation graph to alignment + viewport.updateConservation(); + viewport.updateConsensus(); + alignPanel = new AlignmentPanel(this, viewport); + + alignPanel.annotationPanel.adjustPanelHeight(); + alignPanel.annotationSpaceFillerHolder.setPreferredSize(alignPanel.annotationPanel.getPreferredSize()); + alignPanel.annotationScroller.setPreferredSize(alignPanel.annotationPanel.getPreferredSize()); + getContentPane().add(alignPanel, java.awt.BorderLayout.CENTER); + addInternalFrameListener(new InternalFrameAdapter() { public void internalFrameActivated(InternalFrameEvent evt) @@ -62,22 +71,23 @@ public class AlignFrame extends GAlignFrame protected void saveAs_actionPerformed(ActionEvent e) { - String suffix = ""; + String suffix [] = null; if(e.getActionCommand().equals("FASTA")) - suffix = "fa"; + suffix = new String[]{"fa", "fasta"}; else if(e.getActionCommand().equals("MSF")) - suffix = "msf"; + suffix = new String[]{"msf"}; else if(e.getActionCommand().equals("CLUSTAL")) - suffix = "aln"; + suffix = new String[]{"aln"}; else if(e.getActionCommand().equals("BLC")) - suffix = "blc"; + suffix = new String[]{"blc"}; else if(e.getActionCommand().equals("PIR")) - suffix = "pir"; + suffix = new String[]{"pir"}; else if(e.getActionCommand().equals("PFAM")) - suffix = "pfam"; + suffix = new String[]{"pfam"}; + JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY") - , new String[]{suffix}, e.getActionCommand()+" file"); + , suffix, e.getActionCommand()+" file"); chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle("Save Alignment to file - "+e.getActionCommand() +" format."); chooser.setToolTipText("Save"); @@ -227,6 +237,8 @@ public class AlignFrame extends GAlignFrame seq = (SequenceI[]) history[1]; viewport.setAlignment( new Alignment(seq) ); updateEditMenuBar(); + viewport.updateConsensus(); + alignPanel.RefreshPanels(); alignPanel.RefreshPanels(); } @@ -339,12 +351,14 @@ public class AlignFrame extends GAlignFrame int newHeight = newSeqs.length * af.viewport.getCharHeight() + 200; if (newHeight > 500) newHeight = 500; - Desktop.addInternalFrame(af, "Copied sequences", 700, newHeight); + Desktop.addInternalFrame(af, "Copied sequences", 700, 500); } else { viewport.setEndSeq(viewport.alignment.getHeight()); viewport.alignment.getWidth(); + viewport.updateConservation(); + viewport.updateConsensus(); alignPanel.RefreshPanels(); } @@ -386,6 +400,8 @@ public class AlignFrame extends GAlignFrame { this.setClosed(true); }catch(Exception ex){} + viewport.updateConservation(); + viewport.updateConsensus(); alignPanel.RefreshPanels(); } @@ -398,19 +414,12 @@ public class AlignFrame extends GAlignFrame SequenceI[] seq = (SequenceI[]) history[1]; viewport.setAlignment( new Alignment(seq) ); updateEditMenuBar(); + viewport.updateConsensus(); + alignPanel.RefreshPanels(); alignPanel.RefreshPanels(); } - public void groupsMenuItem_actionPerformed(ActionEvent e) - { - GroupEditor geditor = new GroupEditor(viewport, alignPanel); - JInternalFrame frame = new JInternalFrame(); - frame.setContentPane(geditor); - Desktop.addInternalFrame(frame, "Group editor", 710, 410); - frame.setResizable(false); - } - protected void deleteGroups_actionPerformed(ActionEvent e) { viewport.alignment.deleteAllGroups(); @@ -462,6 +471,18 @@ public class AlignFrame extends GAlignFrame int min = colSel.getMin(); viewport.getAlignment().trimLeft(min); colSel.compensateForEdit(0,min); + + if(viewport.getSelectionGroup()!=null) + viewport.getSelectionGroup().adjustForRemoveLeft(min); + + Vector groups = viewport.alignment.getGroups(); + for(int i=0; i 0) { int max = colSel.getMax(); - if(max>1) - viewport.getAlignment().trimRight(max); + viewport.getAlignment().trimRight(max); + if(viewport.getSelectionGroup()!=null) + viewport.getSelectionGroup().adjustForRemoveRight(max); + + Vector groups = viewport.alignment.getGroups(); + for(int i=0; i0) + { + // JBPNote UGLY! To prettify, make SequenceGroup and Alignment conform to some common interface! + SequenceGroup seqs = viewport.getSelectionGroup(); + if (seqs.getSize() == 1 || !viewport.alignment.isAligned()) + { + JPredClient ct = new JPredClient( (SequenceI) + seqs.getSequenceAt(0)); + } + else + { + int sz; + SequenceI[] msa = new SequenceI[sz=seqs.getSize()]; + for (int i = 0; i < sz; i++) + { + msa[i] = (SequenceI) seqs.getSequenceAt(i); + } + + JPredClient ct = new JPredClient(msa); + } + + } + else { - // JInternalFrame frame = new JInternalFrame(); -// JPredClient ct = new JPredClient((SequenceI) - /// viewport.getAlignment().getSequences().elementAt(0)); + Vector seqs = viewport.getAlignment().getSequences(); + + if (seqs.size() == 1 || !viewport.alignment.isAligned()) + { + JPredClient ct = new JPredClient( (SequenceI) + seqs.elementAt(0)); + } + else + { + SequenceI[] msa = new SequenceI[seqs.size()]; + for (int i = 0; i < seqs.size(); i++) + { + msa[i] = (SequenceI) seqs.elementAt(i); + } + + JPredClient ct = new JPredClient(msa); + } + } + } protected void LoadtreeMenuItem_actionPerformed(ActionEvent e) { // Pick the tree file