add / remove editable columns
authoramwaterhouse <Andrew Waterhouse>
Wed, 15 Jun 2005 14:56:59 +0000 (14:56 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 15 Jun 2005 14:56:59 +0000 (14:56 +0000)
src/jalview/gui/AnnotationPanel.java

index 50c9fef..a6c2055 100755 (executable)
@@ -43,7 +43,7 @@ public class AnnotationPanel
   AlignViewport av;\r
   AlignmentPanel ap;\r
   int activeRow = -1;\r
-  ArrayList activeRes;\r
+  Vector activeRes;\r
   BufferedImage image;\r
   Graphics2D gg;\r
   FontMetrics fm;\r
@@ -116,7 +116,8 @@ public class AnnotationPanel
     this.setPreferredSize(new Dimension(1, height));\r
   }\r
 \r
-  public void addEditableColumn(int i)\r
+\r
+  public void removeEditableColumn(int col)\r
   {\r
     if (activeRow == -1)\r
     {\r
@@ -127,21 +128,42 @@ public class AnnotationPanel
         if (aa[j].editable)\r
         {\r
           activeRow = j;\r
-\r
           break;\r
         }\r
       }\r
     }\r
 \r
-    if (activeRes == null)\r
+    if (activeRes != null && activeRes.contains(String.valueOf(col)))\r
     {\r
-      activeRes = new ArrayList();\r
-      activeRes.add(String.valueOf(i));\r
+      activeRes.removeElement(String.valueOf(col));\r
+    }\r
+    repaint();\r
+  }\r
 \r
-      return;\r
+\r
+  public void addEditableColumn(int col)\r
+  {\r
+    if (activeRow == -1)\r
+    {\r
+      AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();\r
+\r
+      for (int j = 0; j < aa.length; j++)\r
+      {\r
+        if (aa[j].editable)\r
+        {\r
+          activeRow = j;\r
+          break;\r
+        }\r
+      }\r
     }\r
 \r
-    activeRes.add(String.valueOf(i));\r
+    if (activeRes == null)\r
+      activeRes = new Vector();\r
+\r
+    if (!activeRes.contains(String.valueOf(col)))\r
+      activeRes.addElement(String.valueOf(col));\r
+\r
+    repaint();\r
   }\r
 \r
   public void actionPerformed(ActionEvent evt)\r
@@ -164,9 +186,7 @@ public class AnnotationPanel
                                                  JOptionPane.QUESTION_MESSAGE);\r
 \r
       if (label == null)\r
-      {\r
-        label = "";\r
-      }\r
+        return;\r
 \r
       if ( (label.length() > 0) && !aa[activeRow].hasText)\r
       {\r
@@ -181,7 +201,6 @@ public class AnnotationPanel
         {\r
           anot[index] = new Annotation(label, "", ' ', 0);\r
         }\r
-\r
         anot[index].displayCharacter = label;\r
       }\r
     }\r
@@ -228,9 +247,7 @@ public class AnnotationPanel
           symbol);\r
 \r
       if (label == null)\r
-      {\r
-        label = "";\r
-      }\r
+        return;\r
 \r
       if ( (label.length() > 0) && !aa[activeRow].hasText)\r
       {\r
@@ -326,7 +343,7 @@ public class AnnotationPanel
     {\r
       if (activeRes == null)\r
       {\r
-        activeRes = new ArrayList();\r
+        activeRes = new Vector();\r
       }\r
       else\r
       {\r
@@ -349,8 +366,8 @@ public class AnnotationPanel
     }\r
     else\r
     {\r
-      activeRes = new ArrayList();\r
-      activeRes.add(String.valueOf(res));\r
+      activeRes = new Vector();\r
+      activeRes.addElement(String.valueOf(res));\r
     }\r
 \r
     repaint();\r
@@ -582,28 +599,18 @@ public class AnnotationPanel
 \r
           if (j == 0)\r
           {\r
-            if ( (row.annotations[0].secondaryStructure == 'H') ||\r
-                (row.annotations[0].secondaryStructure == 'E'))\r
-            {\r
               g.drawString(row.annotations[j].displayCharacter,\r
                            x, y + iconOffset + 2);\r
-            }\r
           }\r
-          else if ( ( (row.annotations[j].secondaryStructure == 'H') ||\r
-                     (row.annotations[j].secondaryStructure == 'E')) &&\r
+          else if (\r
                    ( (row.annotations[j - 1] == null) ||\r
-                    (row.annotations[j].secondaryStructure != row.annotations[j -\r
-                     1].secondaryStructure)))\r
+                    (row.annotations[j].displayCharacter != row.annotations[j -\r
+                     1].displayCharacter)))\r
           {\r
             g.drawString(row.annotations[j].displayCharacter, x,\r
                          y + iconOffset + 2);\r
           }\r
 \r
-          if (!row.hasIcons)\r
-          {\r
-            g.drawString(row.annotations[j].displayCharacter,\r
-                         x + charOffset, y + iconOffset + 2);\r
-          }\r
         }\r
 \r
         if (row.hasIcons)\r