X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=132417367797b071225e5d2c02bc9797a2b179d1;hb=8004878db16757b62ee2c35738506bc4509428cf;hp=079f31515fc7c43e013036c8b6e33dca64731f5c;hpb=c4e30ea2141be5b0622cf9cd59eac0366fa47d32;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 079f315..1324173 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -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"); @@ -42,10 +41,18 @@ public class AlignFrame extends GAlignFrame viewport.setFont( new Font(fontName,Integer.parseInt(fontStyle),Integer.parseInt(fontSize)) ); - alignPanel = new AlignmentPanel(this, viewport); getContentPane().add(alignPanel, java.awt.BorderLayout.CENTER); + // add conservation graph to alignment + viewport.updateConservation(); + viewport.updateConsensus(); + + alignPanel.annotationPanel.adjustPanelHeight(); + alignPanel.annotationSpaceFillerHolder.setPreferredSize(alignPanel.annotationPanel.getPreferredSize()); + alignPanel.annotationScroller.setPreferredSize(alignPanel.annotationPanel.getPreferredSize()); + + addInternalFrameListener(new InternalFrameAdapter() { public void internalFrameActivated(InternalFrameEvent evt) @@ -63,22 +70,29 @@ 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"}; + + if(e.getActionCommand().equals("XML DUMP")) + { + XMLStore store = new XMLStore(); + store.store(viewport); + return; + } 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"); @@ -116,31 +130,12 @@ public class AlignFrame extends GAlignFrame protected void createPNG_actionPerformed(ActionEvent e) { - int height = (viewport.alignment.getWidth() / viewport.getChunkWidth() +1) * viewport.chunkHeight; - int width = alignPanel.seqPanel.getWidth() + alignPanel.idPanel.getWidth(); - - if(!viewport.getWrapAlignment()) - { - height = viewport.alignment.getHeight() * viewport.charHeight; - width = alignPanel.idPanel.getWidth() + viewport.alignment.getWidth() * viewport.charWidth; - } - - alignPanel.makePNG( width, height); + alignPanel.makePNG(); } protected void epsFile_actionPerformed(ActionEvent e) { - int height = (viewport.alignment.getWidth() / viewport.getChunkWidth() +1) * viewport.chunkHeight; - int width = alignPanel.seqPanel.getWidth() + alignPanel.idPanel.getWidth(); - - if(!viewport.getWrapAlignment()) - { - height = viewport.alignment.getHeight() * viewport.charHeight; - width = alignPanel.idPanel.getWidth() + viewport.alignment.getWidth() * viewport.charWidth; - } - - alignPanel.makeEPS( width, height); - + alignPanel.makeEPS(); } @@ -185,6 +180,7 @@ public class AlignFrame extends GAlignFrame Stack historyList = new Stack(); Stack redoList = new Stack(); + JMenuBar jMenuBar1 = new JMenuBar(); void updateEditMenuBar() { @@ -246,6 +242,8 @@ public class AlignFrame extends GAlignFrame seq = (SequenceI[]) history[1]; viewport.setAlignment( new Alignment(seq) ); updateEditMenuBar(); + viewport.updateConsensus(); + alignPanel.RefreshPanels(); alignPanel.RefreshPanels(); } @@ -358,12 +356,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(); } @@ -405,6 +405,8 @@ public class AlignFrame extends GAlignFrame { this.setClosed(true); }catch(Exception ex){} + viewport.updateConservation(); + viewport.updateConsensus(); alignPanel.RefreshPanels(); } @@ -417,6 +419,8 @@ public class AlignFrame extends GAlignFrame SequenceI[] seq = (SequenceI[]) history[1]; viewport.setAlignment( new Alignment(seq) ); updateEditMenuBar(); + viewport.updateConsensus(); + alignPanel.RefreshPanels(); alignPanel.RefreshPanels(); } @@ -481,6 +485,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 + { + 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 + JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache. + getProperty("LAST_DIRECTORY")); + chooser.setFileView(new JalviewFileView()); + chooser.setDialogTitle("Select a newick-like tree file"); + chooser.setToolTipText("Load a tree file"); + int value = chooser.showOpenDialog(null); + if (value == JalviewFileChooser.APPROVE_OPTION) + { + String choice = chooser.getSelectedFile().getPath(); + jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice); + TreePanel treepanel = null; + try + { + jalview.io.NewickFile fin = new jalview.io.NewickFile(choice, "File"); + fin.parse(); + + if (fin.getTree() != null) + { + TreePanel tp = null; + tp = new TreePanel(viewport, viewport.getAlignment().getSequences(), + fin, "FromFile", choice); + Desktop.addInternalFrame(tp, title, 600, 500); + } + } + catch (Exception ex) + { + JOptionPane.showMessageDialog(Desktop.desktop, + "Problem reading tree file", + ex.getMessage(), + JOptionPane.WARNING_MESSAGE); + ex.printStackTrace(); + } + } + } + }