toggle of inclusion/exclusion of views for colouring was't working
authorjprocter <Jim Procter>
Mon, 25 Apr 2011 13:55:48 +0000 (13:55 +0000)
committerjprocter <Jim Procter>
Mon, 25 Apr 2011 13:55:48 +0000 (13:55 +0000)
src/jalview/gui/AppJmol.java
src/jalview/gui/ViewSelectionMenu.java

index 48c5143..f71cd30 100644 (file)
@@ -153,6 +153,15 @@ public class AppJmol extends GStructureViewer implements Runnable,
   {
     seqColour.setSelected(jmb.isColourBySequence());
     jmolColour.setSelected(!jmb.isColourBySequence());
+    if (_colourwith==null)
+    {
+      _colourwith=new Vector<AlignmentPanel>();
+    }
+    if (_alignwith==null)
+    {
+      _alignwith=new Vector<AlignmentPanel>();
+    }
+    
     seqColourBy = new ViewSelectionMenu("Colour by ..", this, _colourwith,
             new ItemListener()
             {
@@ -351,13 +360,13 @@ public class AppJmol extends GStructureViewer implements Runnable,
   /**
    * list of alignment panels to use for superposition
    */
-  ArrayList<AlignmentPanel> _alignwith = new ArrayList();
+  Vector<AlignmentPanel> _alignwith = new Vector<AlignmentPanel>();
 
   /**
    * list of alignment panels that are used for colouring structures by aligned
    * sequences
    */
-  ArrayList<AlignmentPanel> _colourwith = new ArrayList();
+  Vector<AlignmentPanel> _colourwith = new Vector<AlignmentPanel>();
 
   /**
    * set the primary alignmentPanel reference and add another alignPanel to the
@@ -924,13 +933,13 @@ public class AppJmol extends GStructureViewer implements Runnable,
     jmb.setColourBySequence(seqColour.isSelected());
     if (_colourwith == null)
     {
-      _colourwith = new ArrayList<AlignmentPanel>();
+      _colourwith = new Vector<AlignmentPanel>();
     }
     if (jmb.isColourBySequence())
     {
       if (!jmb.isLoadingFromArchive())
       {
-        if (ap!=null) {
+        if (_colourwith.size()==0 && ap!=null) {
           // Make the currently displayed alignment panel the associated view
           _colourwith.add(ap.alignFrame.alignPanel);
         }
@@ -1143,7 +1152,7 @@ public class AppJmol extends GStructureViewer implements Runnable,
   {
     if (_alignwith == null)
     {
-      _alignwith = new ArrayList<AlignmentPanel>();
+      _alignwith = new Vector<AlignmentPanel>();
     }
     if (_alignwith.size() == 0 && ap != null)
     {
index d34804b..bca2988 100644 (file)
@@ -201,14 +201,19 @@ public class ViewSelectionMenu extends JMenu
           {
           if (append)
           {
-            if (e.getStateChange() == e.SELECTED)
+            enabled=false;
+            // toggle the inclusion state
+            if (_selectedviews.indexOf(p)==-1)
             {
               _selectedviews.add(p);
+              a.setSelected(true);
             }
             else
             {
               _selectedviews.remove(p);
+              a.setSelected(false);
             }
+            enabled=true;
             _handler.itemStateChanged(e);
           }
           else