X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=8c7c9bea67d05e9e3f853ecf27ceda78a3f81a84;hb=c59fb56cb143b05c5643a71f5b39996ac1cd2fef;hp=42094550da539211cfc9eaf91002ff01d5cb9977;hpb=798a8f1eda50a57b71e21df22e015da1364ffd1c;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 4209455..8c7c9be 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -32,8 +32,7 @@ public class AlignFrame extends GAlignFrame final AlignViewport viewport; public AlignFrame(AlignmentI al) { - super(); - viewport = new AlignViewport(al,true,true,true,false); + viewport = new AlignViewport(al,true,true,false); String fontName = jalview.bin.Cache.getProperty("FONT_NAME"); String fontStyle= jalview.bin.Cache.getProperty("FONT_STYLE"); @@ -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,11 +70,27 @@ public class AlignFrame extends GAlignFrame protected void saveAs_actionPerformed(ActionEvent e) { - JFileChooser chooser = new JFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY")); + String suffix [] = null; + if(e.getActionCommand().equals("FASTA")) + suffix = new String[]{"fa", "fasta"}; + else if(e.getActionCommand().equals("MSF")) + suffix = new String[]{"msf"}; + else if(e.getActionCommand().equals("CLUSTAL")) + suffix = new String[]{"aln"}; + else if(e.getActionCommand().equals("BLC")) + suffix = new String[]{"blc"}; + else if(e.getActionCommand().equals("PIR")) + suffix = new String[]{"pir"}; + else if(e.getActionCommand().equals("PFAM")) + suffix = new String[]{"pfam"}; + + JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY") + , suffix, e.getActionCommand()+" file"); + chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle("Save Alignment to file - "+e.getActionCommand() +" format."); chooser.setToolTipText("Save"); int value = chooser.showSaveDialog(this); - if(value == JFileChooser.APPROVE_OPTION) + if(value == JalviewFileChooser.APPROVE_OPTION) { String choice = chooser.getSelectedFile().getPath(); jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice); @@ -98,20 +121,14 @@ public class AlignFrame extends GAlignFrame htmlOutput = null; } - protected void createJPG_actionPerformed(ActionEvent e) + protected void createPNG_actionPerformed(ActionEvent e) { + alignPanel.makePNG(); + } - 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.makeJPG( width, height); + protected void epsFile_actionPerformed(ActionEvent e) + { + alignPanel.makeEPS(); } @@ -156,6 +173,7 @@ public class AlignFrame extends GAlignFrame Stack historyList = new Stack(); Stack redoList = new Stack(); + JMenuBar jMenuBar1 = new JMenuBar(); void updateEditMenuBar() { @@ -217,12 +235,14 @@ public class AlignFrame extends GAlignFrame seq = (SequenceI[]) history[1]; viewport.setAlignment( new Alignment(seq) ); updateEditMenuBar(); + viewport.updateConsensus(); + alignPanel.RefreshPanels(); alignPanel.RefreshPanels(); } public void moveSelectedSequences(boolean up) { - SequenceGroup sg = viewport.getRubberbandGroup(); + SequenceGroup sg = viewport.getSelectionGroup(); if (sg == null) return; @@ -266,10 +286,10 @@ public class AlignFrame extends GAlignFrame protected void copy_actionPerformed(ActionEvent e) { - if(viewport.getRubberbandGroup()==null) + if(viewport.getSelectionGroup()==null) return; - SequenceGroup sg = viewport.getRubberbandGroup(); + SequenceGroup sg = viewport.getSelectionGroup(); Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard(); StringBuffer buffer= new StringBuffer(); @@ -329,12 +349,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(); } @@ -352,10 +374,10 @@ public class AlignFrame extends GAlignFrame protected void delete_actionPerformed(ActionEvent e) { addHistoryItem("Delete"); - if (viewport.getRubberbandGroup() == null) + if (viewport.getSelectionGroup() == null) return; - SequenceGroup sg = viewport.getRubberbandGroup(); + SequenceGroup sg = viewport.getSelectionGroup(); for (int i=0;i < sg.sequences.size(); i++) { SequenceI seq = sg.getSequenceAt(i); @@ -368,7 +390,7 @@ public class AlignFrame extends GAlignFrame viewport.getAlignment().getSequences().setElementAt(seq, index); } - viewport.setRubberbandGroup(null); + viewport.setSelectionGroup(null); viewport.alignment.deleteGroup(sg); viewport.resetSeqLimits( alignPanel.seqPanel.seqCanvas.getHeight()); if(viewport.getAlignment().getHeight()<1) @@ -376,6 +398,8 @@ public class AlignFrame extends GAlignFrame { this.setClosed(true); }catch(Exception ex){} + viewport.updateConservation(); + viewport.updateConsensus(); alignPanel.RefreshPanels(); } @@ -388,6 +412,8 @@ public class AlignFrame extends GAlignFrame SequenceI[] seq = (SequenceI[]) history[1]; viewport.setAlignment( new Alignment(seq) ); updateEditMenuBar(); + viewport.updateConsensus(); + alignPanel.RefreshPanels(); alignPanel.RefreshPanels(); } @@ -404,7 +430,7 @@ public class AlignFrame extends GAlignFrame protected void deleteGroups_actionPerformed(ActionEvent e) { viewport.alignment.deleteAllGroups(); - viewport.getSelection().clear(); + viewport.setSelectionGroup(null); alignPanel.RefreshPanels(); } @@ -413,29 +439,26 @@ public class AlignFrame extends GAlignFrame public void selectAllSequenceMenuItem_actionPerformed(ActionEvent e) { - Selection sel = viewport.getSelection(); + SequenceGroup sg = new SequenceGroup(); 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) + + if( (viewport.getSelectionGroup()!=null && viewport.getSelectionGroup().getSize()<4 && viewport.getSelectionGroup().getSize()>0) || viewport.getAlignment().getHeight()<4) { JOptionPane.showInternalMessageDialog(this, "Principal component analysis must take\n" @@ -938,9 +1007,9 @@ if ( viewport.getConservationSelected() ) } TreePanel tp=null; - if (viewport.getSelection() != null && viewport.getSelection().size() > 3) + if (viewport.getSelectionGroup() != null && viewport.getSelectionGroup().getSize() > 3) { - tp = new TreePanel(viewport, viewport.getSelection().asVector(),type, pwType, + tp = new TreePanel(viewport, viewport.getSelectionGroup().sequences,type, pwType, 0, viewport.alignment.getWidth()); } else @@ -1059,4 +1128,50 @@ if ( viewport.getConservationSelected() ) g.drawString("Clustal Alignment Web Service running", 30,30); } } + protected void jpred_actionPerformed(ActionEvent e) +{ + + + JInternalFrame frame = new JInternalFrame(); + JPredClient ct = new JPredClient((SequenceI) + viewport.getAlignment().getSequences().elementAt(0)); + } + + 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(); + } + } + } + }