Only setDropTarget if Desktop is not null
[jalview.git] / src / jalview / gui / AnnotationPanel.java
index 895d196..2f444d6 100755 (executable)
@@ -200,6 +200,9 @@ public class AnnotationPanel
       {\r
         int index = av.getColumnSelection().columnAt(i);\r
 \r
+        if(!av.colSel.isVisible(index))\r
+          continue;\r
+\r
         if (anot[index] == null)\r
         {\r
           anot[index] = new Annotation(label, "", ' ', 0);\r
@@ -218,6 +221,9 @@ public class AnnotationPanel
       {\r
         int index = av.getColumnSelection().columnAt(i);\r
 \r
+        if(!av.colSel.isVisible(index))\r
+          continue;\r
+\r
         if (anot[index] == null)\r
         {\r
           anot[index] = new Annotation("", "", ' ', 0);\r
@@ -264,6 +270,9 @@ public class AnnotationPanel
       {\r
         int index = av.getColumnSelection().columnAt(i);\r
 \r
+        if(!av.colSel.isVisible(index))\r
+          continue;\r
+\r
         if (anot[index] == null)\r
         {\r
           anot[index] = new Annotation(label, "", type, 0);\r
@@ -354,36 +363,7 @@ public class AnnotationPanel
       return;\r
     }\r
 \r
-    int res = (evt.getX() / av.getCharWidth()) + av.getStartRes();\r
-\r
-    if (av.hasHiddenColumns)\r
-    {\r
-      res = av.getColumnSelection().adjustForHiddenColumns(res);\r
-    }\r
-\r
-    min = res;\r
-    max = res;\r
-\r
-    if (av.getColumnSelection().contains(res))\r
-    {\r
-      av.getColumnSelection().removeElement(res);\r
-    }\r
-    else\r
-    {\r
-      av.getColumnSelection().addElement(res);\r
-      SequenceGroup sg = new SequenceGroup();\r
-\r
-      for (int i = 0; i < av.alignment.getSequences().size(); i++)\r
-      {\r
-        sg.addSequence(av.alignment.getSequenceAt(i), false);\r
-      }\r
-\r
-      sg.setStartRes(res);\r
-      sg.setEndRes(res);\r
-      av.setSelectionGroup(sg);\r
-    }\r
-\r
-    ap.repaint();\r
+    ap.scalePanel.mousePressed(evt);\r
 \r
   }\r
 \r
@@ -397,6 +377,7 @@ public class AnnotationPanel
     graphStretch = -1;\r
     graphStretchY = -1;\r
     mouseDragging = false;\r
+    ap.scalePanel.mouseReleased(evt);\r
   }\r
 \r
   /**\r
@@ -406,10 +387,7 @@ public class AnnotationPanel
    */\r
   public void mouseEntered(MouseEvent evt)\r
   {\r
-    if (mouseDragging)\r
-    {\r
-      ap.seqPanel.scrollCanvas(null);\r
-    }\r
+     ap.scalePanel.mouseEntered(evt);\r
   }\r
 \r
   /**\r
@@ -419,10 +397,7 @@ public class AnnotationPanel
    */\r
   public void mouseExited(MouseEvent evt)\r
   {\r
-    if (mouseDragging)\r
-    {\r
-      ap.seqPanel.scrollCanvas(evt);\r
-    }\r
+    ap.scalePanel.mouseExited(evt);\r
   }\r
 \r
   /**\r
@@ -442,62 +417,11 @@ public class AnnotationPanel
       }\r
       graphStretchY = evt.getY();\r
       adjustPanelHeight();\r
-      ap.repaint();\r
+      ap.paintAlignment(true);\r
     }\r
     else\r
     {\r
-      mouseDragging = true;\r
-\r
-      int res = (evt.getX() / av.getCharWidth()) + av.getStartRes();\r
-\r
-      if (av.hasHiddenColumns)\r
-      {\r
-        res = av.getColumnSelection().adjustForHiddenColumns(res);\r
-      }\r
-\r
-      SequenceGroup sg = av.getSelectionGroup();\r
-\r
-      if (res < min)\r
-      {\r
-        min = res;\r
-      }\r
-\r
-      if (res > max)\r
-      {\r
-        max = res;\r
-      }\r
-\r
-      if (sg != null)\r
-      {\r
-        if (!av.getColumnSelection().contains(res))\r
-        {\r
-          av.getColumnSelection().addElement(res);\r
-        }\r
-\r
-        if (res > sg.getStartRes())\r
-        {\r
-          sg.setEndRes(res);\r
-        }\r
-        else if (res < sg.getStartRes())\r
-        {\r
-          sg.setStartRes(res);\r
-        }\r
-\r
-        for (int i = min; i <= max; i++)\r
-        {\r
-          if ( (i < sg.getStartRes()) || (i > sg.getEndRes()))\r
-          {\r
-            av.getColumnSelection().removeElement(i);\r
-          }\r
-          else\r
-          {\r
-            av.getColumnSelection().addElement(i);\r
-          }\r
-        }\r
-\r
-        ap.repaint();\r
-      }\r
-\r
+      ap.scalePanel.mouseDragged(evt);\r
     }\r
   }\r
 \r
@@ -763,11 +687,11 @@ public class AnnotationPanel
 \r
     AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();\r
 \r
-    int x = 0, y = 0;\r
+    int x = 0, y=0;\r
     int column = 0;\r
     char lastSS;\r
     int lastSSX;\r
-    int iconOffset = av.charHeight / 2;\r
+    int iconOffset = 0;\r
     boolean validRes = false;\r
 \r
     boolean[] graphGroupDrawn = new boolean[aa.length];\r
@@ -797,9 +721,20 @@ public class AnnotationPanel
 \r
         if (row.hasText)\r
         {\r
+          iconOffset = av.charHeight / 2 + 4;\r
           y -= av.charHeight;\r
         }\r
       }\r
+      else if (row.hasText)\r
+      {\r
+        iconOffset = av.charHeight -fm.getDescent();\r
+\r
+      }\r
+      else\r
+      {\r
+        iconOffset = 0;\r
+      }\r
+\r
 \r
       if (av.updatingConsensus && aa[i] == av.consensus)\r
       {\r
@@ -839,14 +774,7 @@ public class AnnotationPanel
         continue;\r
       }\r
 \r
-      if (row.hasText)\r
-      {\r
-        iconOffset = av.charHeight / 2 + 4;\r
-      }\r
-      else\r
-      {\r
-        iconOffset = 0;\r
-      }\r
+\r
 \r
       x = 0;\r
       while (x < endRes - startRes)\r