JAL-4134 double click to select column groups
[jalview.git] / src / jalview / gui / AnnotationPanel.java
index c7751e3..3bf24b4 100755 (executable)
@@ -621,12 +621,14 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
   {
     int[] rowIndex = getRowIndexAndOffset(evt.getY(),
             av.getAlignment().getAlignmentAnnotation());
-    int yOffset = rowIndex[1];
-
     if (rowIndex == null)
     {
-      System.err.println("IMPLEMENTATION ERROR: matrix click out of range.");
+      jalview.bin.Console
+              .error("IMPLEMENTATION ERROR: matrix click out of range.");
+      return false;
     }
+    int yOffset = rowIndex[1];
+
     AlignmentAnnotation clicked = av.getAlignment()
             .getAlignmentAnnotation()[rowIndex[0]];
     if (clicked.graph != AlignmentAnnotation.CONTACT_MAP)
@@ -653,7 +655,8 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
       fr = Math.min(cXci.cStart, cXci.cEnd);
       to = Math.max(cXci.cStart, cXci.cEnd);
 
-      if (evt.isControlDown())
+      // double click selects the whole group
+      if (evt.getClickCount()==2)
       {
         ContactMatrixI matrix = av.getContactMatrix(clicked);
 
@@ -703,7 +706,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
         // PAE SPECIFIC
         // and also select everything lower than the max range adjacent
         // (kind of works)
-        if (PAEContactMatrix.PAEMATRIX.equals(clicked.getCalcId()))
+        if (evt.isControlDown() && PAEContactMatrix.PAEMATRIX.equals(clicked.getCalcId()))
         {
           int c = fr - 1;
           ContactRange cr = forCurrentX.getRangeFor(fr, to);
@@ -746,7 +749,8 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
       }
     }
     ap.paintAlignment(false, false);
-
+    PaintRefresher.Refresh(ap, av.getSequenceSetId());
+    av.sendSelection();
     return true;
   }
   /**
@@ -1008,12 +1012,12 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
 
     if (rowIndex == null || toRowIndex == null)
     {
-      System.out.println("Drag out of range. needs to be clipped");
+      jalview.bin.Console.trace("Drag out of range. needs to be clipped");
 
     }
     if (rowIndex[0] != toRowIndex[0])
     {
-      System.out.println("Drag went to another row. needs to be clipped");
+      jalview.bin.Console.trace("Drag went to another row. needs to be clipped");
     }
 
     // rectangular selection on matrix style annotation
@@ -1040,13 +1044,13 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
               rowIndex[1] - deltaY);
 
       // mark rectangular region formed by drag
-      System.err.println("Matrix Selection from last(" + fromXc + ",["
+      jalview.bin.Console.trace("Matrix Selection from last(" + fromXc + ",["
               + lastXci.cStart + "," + lastXci.cEnd + "]) to cur(" + toXc
               + ",[" + cXci.cStart + "," + cXci.cEnd + "])");
       int fr, to;
       fr = Math.min(lastXci.cStart, lastXci.cEnd);
       to = Math.max(lastXci.cStart, lastXci.cEnd);
-      System.err.println("Marking " + fr + " to " + to);
+      jalview.bin.Console.trace("Marking " + fr + " to " + to);
       for (int c = fr; c <= to; c++)
       {
         if (cma.sequenceRef != null)
@@ -1061,7 +1065,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
       }
       fr = Math.min(cXci.cStart, cXci.cEnd);
       to = Math.max(cXci.cStart, cXci.cEnd);
-      System.err.println("Marking " + fr + " to " + to);
+      jalview.bin.Console.trace("Marking " + fr + " to " + to);
       for (int c = fr; c <= to; c++)
       {
         if (cma.sequenceRef != null)
@@ -1077,7 +1081,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
       fr = Math.min(lastX, currentX);
       to = Math.max(lastX, currentX);
 
-      System.err.println("Marking " + fr + " to " + to);
+      jalview.bin.Console.trace("Marking " + fr + " to " + to);
       for (int c = fr; c <= to; c++)
       {
         av.getColumnSelection().addElement(c);