import jalview.datamodel.*;\r
import jalview.analysis.*;\r
import jalview.io.*;\r
+import jalview.ws.*;\r
import MCview.*;\r
import java.awt.*;\r
import java.awt.event.*;\r
import java.awt.print.*;\r
import javax.swing.*;\r
+import javax.swing.event.*;\r
import java.util.*;\r
+import jalview.datamodel.SequenceI;\r
\r
public class AlignFrame extends GAlignFrame\r
{\r
alignPanel.RefreshPanels();\r
}\r
\r
- protected void modifyAlignmentMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- viewport.groupDefiningMode = !modifyAlignmentMenuItem.isSelected();\r
- }\r
-\r
\r
public void groupsMenuItem_actionPerformed(ActionEvent e)\r
{\r
frame.setResizable(false);\r
}\r
\r
- public void groupEditingMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- viewport.setGroupEdit( groupEditingMenuItem.isSelected() );\r
- }\r
\r
public void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)\r
{\r
current = viewport.getAlignment().getSequenceAt(i);\r
jSize = current.getLength();\r
for (int j=0; j < jSize; j++)\r
- if (current.getCharAt(j)=='-' || current.getCharAt(j)=='.' || current.getCharAt(j)==' ')\r
+ if(jalview.util.Comparison.isGap(current.getCharAt(j)))\r
{\r
current.deleteCharAt(j);\r
j--;\r
protected void noColourmenuItem_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme( null );\r
- alignPanel.setColourScheme();\r
+ changeColour();\r
}\r
\r
\r
- public void clustalColour_actionPerformed(ActionEvent e)\r
+ public void Colour_actionPerformed(ActionEvent e)\r
{\r
- // alignPanel.setColourScheme( new ClustalxColourScheme() );\r
+ viewport.setGlobalColourScheme(new ClustalxColourScheme( ));\r
+ conservationMenuItem.setSelected(false);\r
+ abovePIDThreshold.setSelected(false);\r
+ changeColour();\r
}\r
\r
public void zappoColour_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme(new ZappoColourScheme() );\r
- alignPanel.setColourScheme( );\r
+ changeColour();\r
}\r
\r
public void taylorColour_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme(new TaylorColourScheme() );\r
- alignPanel.setColourScheme( );\r
+ changeColour();\r
}\r
\r
\r
public void hydrophobicityColour_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme( new HydrophobicColourScheme() );\r
- alignPanel.setColourScheme( );\r
+ changeColour();\r
}\r
\r
public void helixColour_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme( new HelixColourScheme() );\r
- alignPanel.setColourScheme();\r
+ changeColour();\r
}\r
\r
\r
public void strandColour_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme(new StrandColourScheme() );\r
- alignPanel.setColourScheme( );\r
+ changeColour();\r
}\r
\r
\r
public void turnColour_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme(new TurnColourScheme() );\r
- alignPanel.setColourScheme( );\r
+ changeColour();\r
}\r
\r
\r
public void buriedColour_actionPerformed(ActionEvent e)\r
{\r
viewport.setGlobalColourScheme( new BuriedColourScheme() );\r
- alignPanel.setColourScheme( );\r
+ changeColour();\r
}\r
\r
+ void changeColour()\r
+ {\r
+ if(abovePIDThreshold.isSelected())\r
+ abovePIDThreshold_actionPerformed(null);\r
+ else if(conservationMenuItem.isSelected())\r
+ conservationMenuItem_actionPerformed(null);\r
\r
- protected void conservationMenuItem_actionPerformed(ActionEvent e)\r
+ alignPanel.seqPanel.seqCanvas.paintFlag = true;\r
+ alignPanel.repaint();\r
+ }\r
+\r
+ void addConservationOrPIDColour()\r
{\r
- viewport.setConservationSelected(conservationMenuItem.isSelected());\r
- conservationColourIncMenuItem.setEnabled( conservationMenuItem.isSelected() );\r
- alignPanel.setColourScheme();\r
+ int x=0, y=0, threshold = 70;\r
+\r
+ if(sliderFrame!=null)\r
+ try\r
+ {\r
+ x = sliderFrame.getX();\r
+ y = sliderFrame.getY();\r
+ SliderPanel sp = (SliderPanel) sliderFrame.getContentPane();\r
+ threshold = sp.getValue();\r
+ sliderFrame.setClosed(true);\r
+ }\r
+ catch (Exception ex)\r
+ { ex.printStackTrace(); }\r
+\r
+ ColourSchemeI oldCs = viewport.getGlobalColourScheme();\r
+\r
+ ConservationColourScheme ccs = null;\r
+ if (oldCs instanceof ConservationColourScheme)\r
+ ccs = (ConservationColourScheme) oldCs;\r
+\r
+ if(conservationMenuItem.isSelected())\r
+ {\r
+ Alignment al = (Alignment)viewport.alignment;\r
+ Conservation c = new Conservation("All",\r
+ ResidueProperties.propHash, 3, al.getSequences(), 0,\r
+ al.getWidth() );\r
+\r
+ c.calculate();\r
+ c.verdict(false, 100);\r
+\r
+ if(ccs!=null)\r
+ ccs = new ConservationColourScheme(c, ccs.cs);\r
+ else\r
+ ccs = new ConservationColourScheme(c, oldCs);\r
+\r
+ viewport.setGlobalColourScheme( ccs );\r
+\r
+ }\r
+ else if(oldCs instanceof ConservationColourScheme)\r
+ {\r
+ oldCs = ccs.cs;\r
+ viewport.setGlobalColourScheme( oldCs );\r
+ }\r
+\r
+\r
+ if( conservationMenuItem.isSelected() || abovePIDThreshold.isSelected() )\r
+ {\r
+ sliderFrame = new JInternalFrame();\r
+ sliderFrame.setMaximizable(false);\r
+ sliderFrame.setResizable(false);\r
+\r
+ SliderPanel sp = null;\r
+ if (conservationMenuItem.isSelected())\r
+ {\r
+ if(threshold > 50)\r
+ threshold = 30;\r
+ sp = new SliderPanel(alignPanel, threshold, true,ccs);\r
+ Desktop.addInternalFrame(sliderFrame, "Conservation Colour Increment (Global colour)", 400, 90);\r
+ threshold = 0;\r
+ }\r
+ else if (abovePIDThreshold.isSelected())\r
+ {\r
+ sp = new SliderPanel(alignPanel, threshold, false, oldCs);\r
+ sp.cs = oldCs;\r
+ Desktop.addInternalFrame(sliderFrame, "Percentage Identity Threshold (Global colour)", 400, 90);\r
+ }\r
+\r
+ sliderFrame.setContentPane(sp);\r
+ if(x!=0 && y!=0)\r
+ sliderFrame.setLocation(x,y);\r
+\r
+ }\r
+ else\r
+ threshold = 0;\r
+\r
+\r
+ if (oldCs instanceof ResidueColourScheme)\r
+ {\r
+ ResidueColourScheme rcs = (ResidueColourScheme) oldCs;\r
+ rcs.setThreshold(threshold);\r
+ }\r
+ else if (oldCs instanceof ScoreColourScheme)\r
+ {\r
+ ScoreColourScheme scs = (ScoreColourScheme) oldCs;\r
+ scs.setThreshold(threshold);\r
+ }\r
+\r
+ alignPanel.seqPanel.seqCanvas.paintFlag = true;\r
+ alignPanel.repaint();\r
+\r
}\r
\r
- public void conservationColourIncMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- ConservationIncrementPanel cip = new ConservationIncrementPanel(viewport, alignPanel);\r
- JInternalFrame frame = new JInternalFrame();\r
- frame.setContentPane(cip);\r
- Desktop.addInternalFrame(frame, "Conservation Colour Increment", 400,90);\r
- frame.setMaximizable(false);\r
- }\r
+ protected void conservationMenuItem_actionPerformed(ActionEvent e)\r
+ {\r
+ if(abovePIDThreshold.isSelected())\r
+ abovePIDThreshold.setSelected(false);\r
+\r
+ viewport.setConservationSelected(conservationMenuItem.isSelected());\r
\r
+ addConservationOrPIDColour();\r
+ }\r
\r
- public void abovePIDColour_actionPerformed(ActionEvent e)\r
+ JInternalFrame sliderFrame;\r
+ public void abovePIDThreshold_actionPerformed(ActionEvent e)\r
{\r
- viewport.setGlobalColourScheme(new PIDColourScheme());\r
- alignPanel.setColourScheme( );\r
+ if(conservationMenuItem.isSelected())\r
+ conservationMenuItem.setSelected(false);\r
+\r
+ addConservationOrPIDColour();\r
}\r
\r
\r
+\r
public void userDefinedColour_actionPerformed(ActionEvent e)\r
{\r
JInternalFrame frame = new JInternalFrame();\r
\r
public void PIDColour_actionPerformed(ActionEvent e)\r
{\r
- viewport.setGlobalColourScheme(new PIDColourScheme() );\r
+ viewport.setGlobalColourScheme( new PIDColourScheme() );\r
alignPanel.setColourScheme( );\r
}\r
\r
\r
public void removeRedundancyMenuItem_actionPerformed(ActionEvent e)\r
{\r
+ RedundancyPanel sp = new RedundancyPanel(alignPanel);\r
+ JInternalFrame frame = new JInternalFrame();\r
+ frame.setContentPane(sp);\r
+ Desktop.addInternalFrame(frame, "Redundancy threshold selection", 400, 100);\r
+ frame.setMaximizable(false);\r
+ frame.setResizable(false);\r
\r
}\r
\r
\r
public void clustalAlignMenuItem_actionPerformed(ActionEvent e)\r
{\r
- JOptionPane.showInternalMessageDialog(this, "Jalview is currently being reengineered"\r
- +"\nwithin the Barton Group, Dundee University."\r
- +"\nThis will be available as a web service 2005",\r
- "Web service", JOptionPane.INFORMATION_MESSAGE);\r
+ // JBPNote\r
+ // Should check to see if the server settings are valid\r
+ // Need visual-delay indication here.\r
+ Jemboss jemboss = new Jemboss();\r
+\r
+ Vector sv = viewport.getAlignment().getSequences();\r
+ SequenceI[] seqs = new SequenceI[sv.size()];\r
+\r
+ int i=0;\r
+ do\r
+ {\r
+ seqs[i] = (SequenceI) sv.elementAt(i);\r
+ } while (++i<sv.size());\r
+\r
+ SequenceI[] alignment = jemboss.clustalW(seqs); // gaps removed within method\r
+\r
+ if (alignment != null)\r
+ {\r
+ AlignFrame af = new AlignFrame(new Alignment(alignment));\r
+ Desktop.addInternalFrame(af, getTitle().concat(" - ClustalW Alignment"), \r
+ 700, 500); // JBPNote - is there a new window geom. property ?\r
+ }\r
}\r
\r
public void pdbTest_actionPerformed(ActionEvent e)\r
{\r
- String reply = JOptionPane.showInternalInputDialog(this, "Enter pdb code", "PDB test viewer", JOptionPane.QUESTION_MESSAGE);\r
+ String reply = \r
+ JOptionPane.showInternalInputDialog(this, "Enter pdb code", \r
+ "PDB test viewer", JOptionPane.QUESTION_MESSAGE);\r
\r
String url = "http://www.ebi.ac.uk/cgi-bin/pdbfetch?id=1a4u";\r
if (reply.length()>1)\r