Modified for wrappingAlignment
[jalview.git] / src / jalview / gui / SeqPanel.java
index 9dcebd2..aa4a456 100755 (executable)
@@ -12,7 +12,7 @@ public class SeqPanel extends JPanel
 {\r
 \r
   public    SeqCanvas         seqCanvas;\r
-  public    AlignmentPanel    parent;\r
+  public    AlignmentPanel    ap;\r
 \r
   protected int startres;\r
   protected int lastres;\r
@@ -33,15 +33,20 @@ public class SeqPanel extends JPanel
     setLayout(new BorderLayout());\r
     add(seqCanvas, BorderLayout.CENTER);\r
 \r
-    parent = p;\r
+    ap = p;\r
 \r
     addMouseMotionListener( new MouseMotionAdapter()\r
     {\r
       public void mouseMoved(MouseEvent evt)\r
-      {   doMouseMoved(evt);    }\r
+      {\r
+       if(av.getWrapAlignment())\r
+         return;\r
+        doMouseMoved(evt);    }\r
 \r
       public void mouseDragged(MouseEvent evt)\r
       {\r
+        if(av.getWrapAlignment())\r
+         return;\r
         if(evt.isShiftDown() || evt.isAltDown() || evt.isControlDown())\r
           doMouseDragged(evt);\r
         else\r
@@ -53,6 +58,8 @@ public class SeqPanel extends JPanel
     {\r
       public void mouseReleased(MouseEvent evt)\r
       {\r
+        if(av.getWrapAlignment())\r
+         return;\r
         if(evt.isShiftDown() || evt.isAltDown() || evt.isControlDown())\r
           doMouseReleased(evt);\r
         else\r
@@ -60,6 +67,8 @@ public class SeqPanel extends JPanel
       }\r
       public void mousePressed(MouseEvent evt)\r
       {\r
+        if(av.getWrapAlignment())\r
+         return;\r
         if(evt.isShiftDown() || evt.isAltDown() || evt.isControlDown())\r
           doMousePressed(evt);\r
         else\r
@@ -86,13 +95,13 @@ public class SeqPanel extends JPanel
 \r
     seqEditOccurred = -1;\r
 \r
-    parent.RefreshPanels();\r
+    ap.RefreshPanels();\r
     repaint();\r
 \r
   }\r
 \r
   public void doMousePressed(MouseEvent evt) {\r
-    parent.alignFrame.addHistoryItem("sequence edit");\r
+    ap.alignFrame.addHistoryItem("sequence edit");\r
     int seq;\r
     int res;\r
 \r
@@ -168,7 +177,7 @@ public class SeqPanel extends JPanel
     if(aa!="")\r
       text.append("  Residue: "+aa+" ("+  av.getAlignment().getSequenceAt(seq).findPosition(res)+")");\r
 \r
-    parent.alignFrame.statusBar.setText(text.toString());\r
+    ap.alignFrame.statusBar.setText(text.toString());\r
 \r
   }\r
 \r
@@ -326,13 +335,31 @@ public class SeqPanel extends JPanel
     stretchGroup = av.getRubberbandGroup();\r
 \r
     if(stretchGroup == null)\r
-        stretchGroup = av.alignment.findGroup((Sequence)av.getAlignment().getSequenceAt(seq));\r
+     {\r
+       stretchGroup = av.alignment.findGroup( (Sequence) av.getAlignment().\r
+                                             getSequenceAt(seq));\r
+       av.setRubberbandGroup( stretchGroup );\r
+     }\r
 \r
     else if(!stretchGroup.sequences.contains((Sequence)av.getAlignment().getSequenceAt(seq))\r
             || stretchGroup.getStartRes()>res\r
             || stretchGroup.getEndRes()<res)\r
      {\r
        stretchGroup = null;\r
+\r
+       SequenceGroup[] allGroups = av.alignment.findAllGroups( (Sequence) av.\r
+           getAlignment().\r
+           getSequenceAt(seq));\r
+\r
+       if (allGroups != null)\r
+         for (int i = 0; i < allGroups.length; i++)\r
+           if (allGroups[i].getStartRes() <= res &&\r
+               allGroups[i].getEndRes() >= res)\r
+           {\r
+             stretchGroup = allGroups[i];\r
+             av.setRubberbandGroup(stretchGroup);\r
+             break;\r
+           }\r
      }\r
 \r
     if(stretchGroup==null)\r
@@ -344,10 +371,21 @@ public class SeqPanel extends JPanel
       sg.addSequence( (Sequence)av.getAlignment().getSequenceAt(seq) );\r
       av.setRubberbandGroup( sg );\r
       stretchGroup = sg;\r
+\r
+      if(av.getConservationSelected())\r
+        Desktop.setConservationSliderSource(ap, av.getGlobalColourScheme(), "Background");\r
+      else if(av.getGlobalColourScheme()!=null && av.getGlobalColourScheme().canThreshold())\r
+      {\r
+        ResidueColourScheme rcs = (ResidueColourScheme) av.getGlobalColourScheme();\r
+        int threshold = rcs.getThreshold();\r
+        if (threshold > 0)\r
+          Desktop.setPIDSliderSource(ap, av.getGlobalColourScheme(), "Background");\r
+      }\r
+\r
     }\r
     else if( javax.swing.SwingUtilities.isRightMouseButton(evt))\r
     {\r
-        jalview.gui.PopupMenu pop = new jalview.gui.PopupMenu( parent , null);\r
+        jalview.gui.PopupMenu pop = new jalview.gui.PopupMenu( ap , null);\r
         pop.show(this, evt.getX(), evt.getY());\r
 \r
     // edit the properties of existing group\r
@@ -365,7 +403,6 @@ public class SeqPanel extends JPanel
     seqCanvas.paintFlag = true;\r
     repaint();\r
 \r
-\r
   }\r
 \r
   boolean changeEndSeq = false;\r
@@ -376,6 +413,47 @@ public class SeqPanel extends JPanel
 \r
   public void doMouseReleasedDefineMode(MouseEvent evt)\r
   {\r
+\r
+    if(stretchGroup.cs instanceof ClustalxColourScheme)\r
+    {\r
+      stretchGroup.cs = new ClustalxColourScheme(stretchGroup.sequences, av.alignment.getWidth());\r
+      seqCanvas.paintFlag = true;\r
+      repaint();\r
+    }\r
+\r
+    else if(stretchGroup.cs instanceof ConservationColourScheme)\r
+    {\r
+      ConservationColourScheme ccs = (ConservationColourScheme)stretchGroup.cs;\r
+\r
+      Conservation c = new Conservation("Group",\r
+                                        ResidueProperties.propHash, 3, stretchGroup.sequences, 0,\r
+                                        av.alignment.getWidth() );\r
+\r
+       c.calculate();\r
+       c.verdict(false, 100);\r
+       ccs = new ConservationColourScheme(c, ccs.cs);\r
+\r
+       stretchGroup.cs = ccs;\r
+\r
+\r
+       Desktop.setConservationSliderSource(ap, stretchGroup.cs, stretchGroup.getName()) ;\r
+\r
+       seqCanvas.paintFlag = true;\r
+       repaint();\r
+    }\r
+    else\r
+    {\r
+      if(stretchGroup.cs !=null && stretchGroup.cs.canThreshold())\r
+      {\r
+        ResidueColourScheme rcs =  (ResidueColourScheme) stretchGroup.cs;\r
+        int threshold = rcs.getThreshold();\r
+        if(threshold>0)\r
+          Desktop.setPIDSliderSource(ap, stretchGroup.cs, stretchGroup.getName());\r
+      }\r
+\r
+    }\r
+\r
+\r
     changeEndRes = false;\r
     changeStartRes = false;\r
     stretchGroup = null;\r
@@ -394,7 +472,7 @@ public class SeqPanel extends JPanel
       changeEndRes = true;\r
 \r
     else if(stretchGroup.getStartRes()==res)\r
-      // Edit end res position of selected group\r
+      // Edit start res position of selected group\r
       changeStartRes = true;\r
 \r
 \r