If alignment is closed, then undo performed in visible window
authoramwaterhouse <Andrew Waterhouse>
Thu, 23 Nov 2006 15:18:17 +0000 (15:18 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 23 Nov 2006 15:18:17 +0000 (15:18 +0000)
src/jalview/appletgui/AlignFrame.java
src/jalview/gui/AlignFrame.java

index afc103e..3a1ab05 100755 (executable)
@@ -821,7 +821,7 @@ public void itemStateChanged(ItemEvent evt)
 \r
   AlignViewport getOriginatingSource(CommandI command)\r
   {\r
-    AlignViewport originalSource = viewport;\r
+    AlignViewport originalSource = null;\r
     //For sequence removal and addition, we need to fire\r
    //the property change event FROM the viewport where the\r
    //original alignment was altered\r
@@ -842,7 +842,16 @@ public void itemStateChanged(ItemEvent evt)
           }\r
         }\r
       }\r
+      if (originalSource == null)\r
+      {\r
+        //The original view is closed, we must validate\r
+        //the current view against the closed view first\r
+        PaintRefresher.validateSequences(al, viewport.alignment);\r
+        originalSource = viewport;\r
+      }\r
+\r
     }\r
+\r
     return originalSource;\r
   }\r
 \r
index 3291dca..4afaf92 100755 (executable)
@@ -974,10 +974,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
     command.undoCommand();
 
     AlignViewport originalSource = getOriginatingSource(command);
-
-    originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;
     updateEditMenuBar();
-    originalSource.firePropertyChange("alignment", null,viewport.getAlignment().getSequences());
+
+    if(originalSource!=null)
+    {
+      originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;
+      originalSource.firePropertyChange("alignment", null,null);
+    }
   }
 
   /**
@@ -992,15 +995,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
     command.doCommand();
 
     AlignViewport originalSource = getOriginatingSource(command);
-    originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns()!=null;
-
     updateEditMenuBar();
-    originalSource.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
+
+    if(originalSource!=null)
+    {
+      originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;
+      originalSource.firePropertyChange("alignment", null,null);
+    }
   }
 
   AlignViewport getOriginatingSource(CommandI command)
   {
-    AlignViewport originalSource = viewport;
+    AlignViewport originalSource = null;
     //For sequence removal and addition, we need to fire
    //the property change event FROM the viewport where the
    //original alignment was altered
@@ -1021,7 +1027,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
           }
         }
       }
+      if (originalSource == null)
+      {
+        //The original view is closed, we must validate
+        //the current view against the closed view first
+        PaintRefresher.validateSequences(al, viewport.alignment);
+        originalSource = viewport;
+      }
+
     }
+
+
     return originalSource;
   }