+ void changeColour(ColourSchemeI cs)\r
+ {\r
+ int threshold = 0;\r
+\r
+ if ( viewport.getAbovePIDThreshold() )\r
+ {\r
+ threshold = SliderPanel.setPIDSliderSource(alignPanel, cs, "Background");\r
+\r
+ if (cs instanceof ResidueColourScheme)\r
+ ( (ResidueColourScheme) cs).setThreshold(threshold);\r
+ else if (cs instanceof ScoreColourScheme)\r
+ ( (ScoreColourScheme) cs).setThreshold(threshold);\r
+\r
+ viewport.setGlobalColourScheme(cs);\r
+ }\r
+ else if (cs instanceof ResidueColourScheme)\r
+ ( (ResidueColourScheme) cs).setThreshold(0);\r
+ else if (cs instanceof ScoreColourScheme)\r
+ ( (ScoreColourScheme) cs).setThreshold(0);\r
+\r
+\r
+\r
+ if (viewport.getConservationSelected())\r
+ {\r
+ ConservationColourScheme ccs = null;\r
+\r
+ Alignment al = (Alignment) viewport.alignment;\r
+ Conservation c = new Conservation("All",\r
+ ResidueProperties.propHash, 3,\r
+ al.getSequences(), 0,\r
+ al.getWidth() - 1);\r
+\r
+ c.calculate();\r
+ c.verdict(false, viewport.ConsPercGaps);\r
+\r
+ ccs = new ConservationColourScheme(c, cs);\r
+\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ ccs.setConsensus( viewport.vconsensus );\r
+ viewport.setGlobalColourScheme(ccs);\r
+\r
+ SliderPanel.setConservationSlider(alignPanel, ccs, "Background");\r
+\r
+ }\r
+ else\r
+ {\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ if (cs != null)\r
+ cs.setConsensus(viewport.vconsensus);\r
+ viewport.setGlobalColourScheme(cs);\r
+ }\r
+\r
+\r
+ if(viewport.getColourAppliesToAllGroups())\r
+ {\r
+ Vector groups = viewport.alignment.getGroups();\r
+ for(int i=0; i<groups.size(); i++)\r
+ {\r
+ SequenceGroup sg = (SequenceGroup)groups.elementAt(i);\r
+\r
+ if (cs instanceof ClustalxColourScheme)\r
+ {\r
+ sg.cs = new ClustalxColourScheme(sg.sequences, sg.getWidth());\r
+ }\r
+ else\r
+ try\r
+ {\r
+ sg.cs = (ColourSchemeI) cs.getClass().newInstance();\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ sg.cs = cs;\r
+ }\r
+\r
+ if(viewport.getAbovePIDThreshold())\r
+ {\r
+ if (sg.cs instanceof ResidueColourScheme)\r
+ ( (ResidueColourScheme) sg.cs).setThreshold(threshold);\r
+ else if (sg.cs instanceof ScoreColourScheme)\r
+ ( (ScoreColourScheme) sg.cs).setThreshold(threshold);\r
+\r
+ sg.cs.setConsensus( AAFrequency.calculate(sg.sequences, 0, sg.getWidth()) );\r
+ }\r
+\r
+ if( viewport.getConservationSelected() )\r
+ {\r
+ Conservation c = new Conservation("Group",\r
+ ResidueProperties.propHash, 3,\r
+ sg.sequences, 0, viewport.alignment.getWidth()-1);\r
+ c.calculate();\r
+ c.verdict(false, viewport.ConsPercGaps);\r
+ ConservationColourScheme ccs = new ConservationColourScheme(c, sg.cs);\r
+\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ ccs.setConsensus( AAFrequency.calculate(sg.sequences, 0, sg.getWidth()));\r
+ sg.cs = ccs;\r
+ }\r
+ else\r
+ {\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0, sg.getWidth()));\r
+ }\r
+\r
+ }\r
+ }\r
+\r
+ if(alignPanel.getOverviewPanel()!=null)\r
+ alignPanel.getOverviewPanel().updateOverviewImage();\r
+ alignPanel.repaint();\r
+ }\r
+\r
+ protected void modifyPID_actionPerformed(ActionEvent e)\r