Colour scheme new global implementation
authoramwaterhouse <Andrew Waterhouse>
Fri, 10 Dec 2004 14:33:08 +0000 (14:33 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 10 Dec 2004 14:33:08 +0000 (14:33 +0000)
src/jalview/gui/AlignmentPanel.java

index 605450b..eda94a0 100755 (executable)
@@ -1,11 +1,12 @@
 package jalview.gui;\r
 \r
 import jalview.jbgui.GAlignmentPanel;\r
+import jalview.schemes.*;\r
+import jalview.analysis.*;\r
+import jalview.datamodel.*;\r
 import java.awt.*;\r
-import java.awt.image.*;\r
 import java.awt.event.*;\r
 import java.awt.print.*;\r
-import javax.swing.*;\r
 \r
 public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListener, Printable\r
 {\r
@@ -90,7 +91,130 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene
   }\r
 \r
 \r
-  public void setColourScheme(jalview.schemes.ColourSchemeI cs, boolean conservation)\r
+  public void setColourScheme()\r
+  {\r
+    ColourSchemeI cs = av.getGlobalColourScheme();\r
+\r
+    if(av.getConservationSelected())\r
+    {\r
+\r
+      Alignment al = (Alignment)av.getAlignment();\r
+      Conservation c = new Conservation("All", al.cons,\r
+                            ResidueProperties.propHash, 3, al.getSequences(), 0,\r
+                            al.getWidth() );\r
+\r
+       c.calculate();\r
+       c.verdict(false, 100);\r
+       ConservationColourScheme ccs = new ConservationColourScheme(c, cs);\r
+\r
+       av.setGlobalColourScheme( ccs );\r
+\r
+    }\r
+    seqPanel.seqCanvas.paintFlag = true;\r
+    repaint();\r
+  }\r
+  /*\r
+    seqCanvas.paintFlag = true;\r
+    if (av.getSelection().size() == 0)\r
+    {\r
+      seqCanvas.globalColorScheme = cs;\r
+      for (int i = 0; i < av.alignment.getGroups().size();i++)\r
+      {\r
+        SequenceGroup sg = (SequenceGroup)av.alignment.getGroups().elementAt(i);\r
+        sg.cs = cs;\r
+        if(!showConservation\r
+            && !(sg.cs instanceof Blosum62ColourScheme)\r
+            && sg.cs instanceof ConservationColourScheme)\r
+         {\r
+           // remove ConservationColouring from existing Conservation group\r
+           ConservationColourScheme ccs = (ConservationColourScheme)sg.cs;\r
+           sg.cs = ccs.cs;\r
+         }\r
+         else if(showConservation && !(sg.cs instanceof ConservationColourScheme))\r
+         {\r
+           // add ConservationColouring to new group\r
+           Conservation c = sg.getConservation();\r
+           Alignment al = (Alignment) av.getAlignment();\r
+           c = new Conservation("All", al.cons,\r
+                                ResidueProperties.propHash, 3, sg.sequences, 0,\r
+                                al.getWidth() );\r
+           c.calculate();\r
+           c.verdict(false, 100);\r
+           sg.setConservation(c);\r
+           sg.cs = new ConservationColourScheme(sg);\r
+         }\r
+      }\r
+    }\r
+    else\r
+    {\r
+      SequenceGroup sg = av.alignment.findGroup((Sequence)av.sel.sequenceAt(0));\r
+\r
+      if( isNewSelection(sg) )\r
+      {\r
+        sg = av.getAlignment().addGroup();\r
+        for (int i=0; i < av.getSelection().size(); i++)\r
+        {\r
+          av.alignment.removeFromGroup(av.alignment.findGroup( (Sequence) av.\r
+              sel.sequenceAt(i)),\r
+                                       (Sequence) av.sel.sequenceAt(i));\r
+          av.alignment.addToGroup(sg, (Sequence) av.sel.sequenceAt(i));\r
+        }\r
+      }\r
+\r
+\r
+      sg.cs = cs;\r
+\r
+      // Selection is made, we only want to change the conservationColour for selected group\r
+      if(  showConservation\r
+           && !(sg.cs instanceof ConservationColourScheme)\r
+           && !(sg.cs instanceof Blosum62ColourScheme))\r
+      {\r
+        Conservation c = sg.getConservation();\r
+        Alignment al = (Alignment) av.getAlignment();\r
+\r
+        c = new Conservation("All", al.cons,\r
+                             ResidueProperties.propHash, 3, sg.sequences, 0,\r
+                             al.getWidth() );\r
+        c.calculate();\r
+        c.verdict(false, 100);\r
+        sg.setConservation(c);\r
+        sg.cs = new ConservationColourScheme(sg);\r
+    }\r
+    else  if( !showConservation && sg.cs instanceof ConservationColourScheme)\r
+    {\r
+      ConservationColourScheme ccs = (ConservationColourScheme)sg.cs;\r
+      sg.cs = ccs.cs;\r
+    }\r
+   }\r
+   repaint();\r
+  }\r
+\r
+  boolean isNewSelection(SequenceGroup sg)\r
+  {\r
+    if(sg==null)\r
+      return true;\r
+\r
+    if(sg.getSize()!=av.getSelection().size())\r
+      return true;\r
+\r
+    for(int i=0; i<sg.getSize(); i++)\r
+     if( !av.getSelection().contains( sg.getSequenceAt(i) ))\r
+       return true;\r
+\r
+    return false;\r
+  }\r
+\r
+\r
+  public ColourSchemeI getColourScheme()\r
+  {\r
+    if(av.getSelection().size()>0)\r
+       return av.alignment.findGroup((Sequence)av.sel.sequenceAt(0)).cs;\r
+    else\r
+      return seqCanvas.globalColorScheme;\r
+  }\r
+*/\r
+\r
+/*  public void setColourScheme(jalview.schemes.ColourSchemeI cs, boolean conservation)\r
   {\r
     seqPanel.setColourScheme(cs, conservation);\r
 \r
@@ -100,6 +224,43 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene
       overviewPanel.updateOverviewImage();\r
   }\r
 \r
+   void updateResidueView()\r
+   {\r
+     if (viewport.getSelection().size() == 0)\r
+      {\r
+        for (int i = 0; i < viewport.alignment.getGroups().size(); i++)\r
+        {\r
+          SequenceGroup sg = (SequenceGroup) viewport.alignment.getGroups().elementAt(i);\r
+          sg.setDisplayBoxes( viewBoxesMenuItem.isSelected() );\r
+          sg.setDisplayText( viewTextMenuItem.isSelected() );\r
+          sg.setColourText( colourTextMenuItem.isSelected() );\r
+        }\r
+      }\r
+      else\r
+      {\r
+        SequenceGroup sg = viewport.alignment.findGroup( (Sequence) viewport.sel.sequenceAt(0));\r
+        if (alignPanel.seqPanel.isNewSelection(sg))\r
+        {\r
+          sg = viewport.getAlignment().addGroup();\r
+          for (int i = 0; i < viewport.getSelection().size(); i++)\r
+          {\r
+            viewport.alignment.removeFromGroup(viewport.alignment.findGroup( (\r
+                Sequence) viewport.sel.sequenceAt(i)),\r
+                                               (Sequence) viewport.sel.sequenceAt(\r
+                i));\r
+            viewport.alignment.addToGroup(sg,\r
+                                          (Sequence) viewport.sel.sequenceAt(i));\r
+          }\r
+        }\r
+\r
+        sg.setDisplayBoxes(viewBoxesMenuItem.isSelected());\r
+        sg.setDisplayText(viewTextMenuItem.isSelected());\r
+        sg.setColourText(colourTextMenuItem.isSelected());\r
+      }\r
+     alignPanel.RefreshPanels();\r
+   }*/\r
+\r
+\r
 \r
   public void RefreshPanels()\r
   {\r
@@ -109,8 +270,8 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene
     idPanelHolder.setPreferredSize( idPanel.idCanvas.getPreferredSize() );\r
     setScrollValues(av.getStartRes(), av.getStartSeq());\r
     av.getConsensus(true);\r
-    repaint();\r
     validate();\r
+    repaint();\r
     if(overviewPanel!=null)\r
       overviewPanel.updateOverviewImage();\r
 \r