Patch fixes JAL-4165 - added to release notes JAL-4351
[jalview.git] / src / jalview / gui / FeatureSettings.java
index 3eccdf0..6d84574 100644 (file)
@@ -1919,6 +1919,9 @@ public class FeatureSettings extends JPanel
            */
           String ttl = MessageManager
                   .formatMessage("label.select_colour_for", type);
+          Object last = (Boolean) table.getValueAt(selectedRow,
+                  SHOW_COLUMN);
+          table.setValueAt(Boolean.TRUE, selectedRow, SHOW_COLUMN);
           ColourChooserListener listener = new ColourChooserListener()
           {
             @Override
@@ -1926,12 +1929,14 @@ public class FeatureSettings extends JPanel
             {
               currentColor = new FeatureColour(c);
               table.setValueAt(currentColor, rowSelected, COLOUR_COLUMN);
+              table.setValueAt(Boolean.TRUE, selectedRow, SHOW_COLUMN);
               fireEditingStopped();
             }
 
             @Override
             public void cancel()
             {
+              table.setValueAt(last, selectedRow, SHOW_COLUMN);
               fireEditingStopped();
             }
           };
@@ -1943,7 +1948,10 @@ public class FeatureSettings extends JPanel
           /*
            * variable colour and filters dialog
            */
-          chooser = new FeatureTypeSettings(fr, type);
+          boolean last = (Boolean) table.getValueAt(selectedRow,
+                  SHOW_COLUMN);
+          table.setValueAt(Boolean.TRUE, selectedRow, SHOW_COLUMN);
+          chooser = new FeatureTypeSettings(fr, type, last);
           if (!Platform.isJS())
           /**
            * Java only
@@ -2069,7 +2077,11 @@ public class FeatureSettings extends JPanel
     {
       if (button == e.getSource())
       {
-        FeatureTypeSettings chooser = new FeatureTypeSettings(fr, type);
+        boolean last = fr.getFeaturesDisplayed().isVisible(type);
+        ((FeatureTableModel) table.getModel()).setValueAt(Boolean.TRUE,
+                rowSelected, SHOW_COLUMN);
+        FeatureTypeSettings chooser = new FeatureTypeSettings(fr, type,
+                last);
         chooser.addActionListener(this);
         chooser.setRequestFocusEnabled(true);
         chooser.requestFocus();
@@ -2101,6 +2113,8 @@ public class FeatureSettings extends JPanel
                 .getData()[rowSelected];
         data[COLOUR_COLUMN] = currentColor;
         data[FILTER_COLUMN] = currentFilter;
+        data[SHOW_COLUMN] = fr.getFeaturesDisplayed().isVisible(type);
+
         fireEditingStopped();
         // SwingJS needs an explicit repaint() here,
         // rather than relying upon no validation having
@@ -2153,6 +2167,7 @@ public class FeatureSettings extends JPanel
     refreshDisplay();
   }
 }
+
 class FeatureIcon implements Icon
 {
   FeatureColourI gcol;