From 14767e3e26b0c18a90566e02ab945426de6b847d Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Tue, 16 Nov 2004 15:15:22 +0000 Subject: [PATCH] Conservation colour in place --- src/jalview/gui/AlignFrame.java | 172 +++++++++++++++++++++++++++++++++------ 1 file changed, 149 insertions(+), 23 deletions(-) diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 8af52d0..b504538 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -19,11 +19,12 @@ import jalview.io.*; import java.awt.event.*; import java.awt.*; import javax.swing.*; +import java.util.*; public class AlignFrame extends GAlignFrame { - AlignmentPanel alignPanel; - AlignViewport viewport; + final AlignmentPanel alignPanel; + final AlignViewport viewport; public AlignFrame(AlignmentI al) { super(); @@ -83,14 +84,96 @@ public class AlignFrame extends GAlignFrame }catch(Exception ex){} } - public void groupsMenuItem_actionPerformed(ActionEvent e) + ArrayList historyList = new ArrayList(); + ArrayList redoList = new ArrayList(); + + void updateEditMenuBar() { + if(historyList.size()>0) + { + undoMenuItem.setEnabled(true); + Object [] history = (Object[])historyList.get(0); + undoMenuItem.setText("Undo "+history[0]); + } + else + { + undoMenuItem.setEnabled(false); + undoMenuItem.setText("Undo"); + } + if(redoList.size()>0) + { + redoMenuItem.setEnabled(true); + Object [] history = (Object[])redoList.get(0); + redoMenuItem.setText("Redo "+history[0]); + } + else + { + redoMenuItem.setEnabled(false); + redoMenuItem.setText("Redo"); + } } - public void groupEditingMenuItem_actionPerformed(ActionEvent e) + public void addHistoryItem(String type) + { + // must make sure we add new sequence objects her, not refs to the existing sequences + redoList.clear(); + SequenceI[] seq = new SequenceI[viewport.getAlignment().getHeight()]; + for(int i=0; i500) newHeight=500; @@ -162,6 +246,7 @@ public class AlignFrame extends GAlignFrame public void remove2LeftMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("delete columns"); ColumnSelection colSel = viewport.getColumnSelection(); if (colSel.size() > 0) { @@ -174,6 +259,7 @@ public class AlignFrame extends GAlignFrame public void remove2RightMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("delete columns"); ColumnSelection colSel = viewport.getColumnSelection(); if (colSel.size() > 0) { @@ -188,12 +274,14 @@ public class AlignFrame extends GAlignFrame public void removeGappedColumnMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("delete gapped columns"); viewport.getAlignment().removeGaps(); alignPanel.RefreshPanels(); } public void removeAllGapsMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("delete all gaps"); SequenceI current; int jSize; for (int i=0; i < viewport.getAlignment().getSequences().size();i++) @@ -297,6 +385,13 @@ public class AlignFrame extends GAlignFrame } + protected void wrapMenuItem_actionPerformed(ActionEvent e) + { + viewport.setWrapAlignment( wrapMenuItem.isSelected() ); + alignPanel.setWrapAlignment( wrapMenuItem.isSelected() ); + } + + public void viewBoxesMenuItem_actionPerformed(ActionEvent e) { viewport.setShowBoxes( viewBoxesMenuItem.isSelected() ); @@ -336,13 +431,19 @@ public class AlignFrame extends GAlignFrame }catch(java.lang.OutOfMemoryError ex) { - JOptionPane.showMessageDialog(this, "Sequence alignment too large to\nproduce overview image!!", + JOptionPane.showMessageDialog(this, "Sequence alignment too large to\nproduce overview image!!" + +"\nTry reducing the font size.", "Out of memory", JOptionPane.WARNING_MESSAGE); } } + protected void noColourmenuItem_actionPerformed(ActionEvent e) + { + alignPanel.setColourScheme(null, false); + } + public void clustalColour_actionPerformed(ActionEvent e) { @@ -351,54 +452,65 @@ public class AlignFrame extends GAlignFrame public void zappoColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new ZappoColourScheme() ); + alignPanel.setColourScheme( new ZappoColourScheme(), conservationMenuItem.isSelected() ); } public void taylorColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new TaylorColourScheme() ); + alignPanel.setColourScheme( new TaylorColourScheme(),conservationMenuItem.isSelected() ); } public void hydrophobicityColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new HydrophobicColourScheme() ); + alignPanel.setColourScheme( new HydrophobicColourScheme(),conservationMenuItem.isSelected() ); } public void helixColour_actionPerformed(ActionEvent e) { - alignPanel.seqPanel.setColourScheme( new HelixColourScheme() ); + alignPanel.setColourScheme( new HelixColourScheme(),conservationMenuItem.isSelected() ); } + public void strandColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new StrandColourScheme() ); + alignPanel.setColourScheme( new StrandColourScheme() ,conservationMenuItem.isSelected() ); } + public void turnColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new TurnColourScheme() ); + alignPanel.setColourScheme( new TurnColourScheme() ,conservationMenuItem.isSelected() ); } + public void buriedColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new BuriedColourScheme() ); + alignPanel.setColourScheme( new BuriedColourScheme() ,conservationMenuItem.isSelected() ); } - public void conservationColour_actionPerformed(ActionEvent e) - { + protected void conservationMenuItem_actionPerformed(ActionEvent e) + { + alignPanel.setColourScheme ( alignPanel.seqPanel.getColourScheme(),conservationMenuItem.isSelected() ); + conservationColourIncMenuItem.setEnabled( conservationMenuItem.isSelected() ); } + + public void conservationColourIncMenuItem_actionPerformed(ActionEvent e) { - + ConservationIncrementPanel cip = new ConservationIncrementPanel(viewport, alignPanel); + JInternalFrame frame = new JInternalFrame(); + frame.setContentPane(cip); + Desktop.addInternalFrame(frame, "Conservation Colour Increment", 400,90); + frame.setMaximizable(false); } public void abovePIDColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new PIDColourScheme() ); + alignPanel.setColourScheme( new PIDColourScheme() ,conservationMenuItem.isSelected() ); } @@ -415,15 +527,17 @@ public class AlignFrame extends GAlignFrame public void PIDColour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new PIDColourScheme() ); + alignPanel.setColourScheme( new PIDColourScheme(),conservationMenuItem.isSelected() ); } + public void BLOSUM62Colour_actionPerformed(ActionEvent e) { - alignPanel.setColourScheme( new Blosum62ColourScheme(viewport) ); + alignPanel.setColourScheme( new Blosum62ColourScheme(viewport) ,conservationMenuItem.isSelected() ); } + protected void schemeKeyMenuItem_actionPerformed(ActionEvent e) { ColourKey colourKey = new ColourKey( alignPanel.seqPanel.getColourScheme() ); @@ -433,18 +547,21 @@ public class AlignFrame extends GAlignFrame public void sortPairwiseMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("sort"); AlignmentSorter.sortByPID(viewport.getAlignment(), viewport.getAlignment().getSequenceAt(0)); alignPanel.RefreshPanels(); } public void sortIDMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("sort"); AlignmentSorter.sortByID( viewport.getAlignment() ); alignPanel.RefreshPanels(); } public void sortGroupMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("sort"); AlignmentSorter.sortGroups(viewport.getAlignment()); AlignmentSorter.sortGroups(viewport.getAlignment()); alignPanel.RefreshPanels(); @@ -452,6 +569,7 @@ public class AlignFrame extends GAlignFrame public void sortTreeOrderMenuItem_actionPerformed(ActionEvent e) { + addHistoryItem("sort"); if(viewport.getCurrentTree()==null) return; @@ -488,10 +606,18 @@ public class AlignFrame extends GAlignFrame return; } - PCAPanel pcaPanel = new PCAPanel(viewport, null); - JInternalFrame frame = new JInternalFrame(); - frame.setContentPane(pcaPanel); - Desktop.addInternalFrame(frame, "Principal component analysis", 400,400); + try{ + PCAPanel pcaPanel = new PCAPanel(viewport, null); + JInternalFrame frame = new JInternalFrame(); + frame.setContentPane(pcaPanel); + Desktop.addInternalFrame(frame, "Principal component analysis", 400, 400); + }catch(java.lang.OutOfMemoryError ex) + { + JOptionPane.showMessageDialog(this, "Too many sequences selected\nfor Principal Component Analysis!!", + "Out of memory", JOptionPane.WARNING_MESSAGE); + } + + } public void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e) -- 1.7.10.2