Set menu state in alignFrame
[jalview.git] / src / jalview / gui / Jalview2XML.java
index fef8a83..f188e31 100755 (executable)
@@ -822,6 +822,13 @@ public class Jalview2XML
     Hashtable seqRefIds;
 
     /**
+     * This maintains a list of viewports, the key being the
+     * seqSetId. Important to set historyItem and redoList
+     * for multiple views
+     */
+    Hashtable viewportsAdded;
+
+    /**
      * DOCUMENT ME!
      *
      * @param file DOCUMENT ME!
@@ -831,6 +838,8 @@ public class Jalview2XML
         jalview.gui.AlignFrame af = null;
 
         seqRefIds = new Hashtable();
+        viewportsAdded = new Hashtable();
+
         Vector gatherToThisFrame= new Vector();
 
         try
@@ -993,8 +1002,7 @@ public class Jalview2XML
 
         JalviewModelSequence jms = object.getJalviewModelSequence();
 
-        Viewport[] views = jms.getViewport();
-        Viewport view = views[0]; // DEAL WITH MULTIPLE VIEWPORTS LATER
+        Viewport view = jms.getViewport(0);
 
         //////////////////////////////////
         //LOAD SEQUENCES
@@ -1212,8 +1220,6 @@ public class Jalview2XML
             }
         }
 
-
-        //  af.changeColour() );
         /////////////////////////
         //LOAD GROUPS
         if (jms.getJGroupCount() > 0)
@@ -1283,8 +1289,23 @@ public class Jalview2XML
         af.viewport.gatherViewsHere = view.getGatheredViews();
 
         if (view.getSequenceSetId() != null)
-          PaintRefresher.Register(af.alignPanel, view.getSequenceSetId());
+        {
+          jalview.gui.AlignViewport av =
+              (jalview.gui.AlignViewport)
+              viewportsAdded.get(view.getSequenceSetId());
 
+          if(av!=null)
+          {
+            af.viewport.historyList = av.historyList;
+            af.viewport.redoList = av.redoList;
+          }
+          else
+          {
+            viewportsAdded.put(view.getSequenceSetId(), af.viewport);
+          }
+
+          PaintRefresher.Register(af.alignPanel, view.getSequenceSetId());
+        }
         if(hiddenSeqs!=null)
         {
           for(int s=0; s<JSEQ.length; s++)
@@ -1339,35 +1360,24 @@ public class Jalview2XML
         af.viewport.setStartSeq(view.getStartSeq());
         af.viewport.setShowAnnotation(view.getShowAnnotation());
         af.viewport.setAbovePIDThreshold(view.getPidSelected());
-        af.abovePIDThreshold.setSelected(view.getPidSelected());
+
         af.viewport.setColourText(view.getShowColourText());
-        af.colourTextMenuItem.setSelected(view.getShowColourText());
-        af.viewport.setConservationSelected(view.getConservationSelected());
-        af.conservationMenuItem.setSelected(view.getConservationSelected());
 
+        af.viewport.setConservationSelected(view.getConservationSelected());
         af.viewport.setShowJVSuffix(view.getShowFullId());
-        af.seqLimits.setSelected(view.getShowFullId());
-
         af.viewport.setFont(new java.awt.Font(view.getFontName(),
                 view.getFontStyle(), view.getFontSize()));
         af.alignPanel.fontChanged();
-
         af.viewport.setRenderGaps(view.getRenderGaps());
-        af.renderGapsMenuItem.setSelected(view.getRenderGaps());
-
         af.viewport.setWrapAlignment(view.getWrapAlignment());
-        af.wrapMenuItem.setSelected(view.getWrapAlignment());
-
         af.alignPanel.setWrapAlignment(view.getWrapAlignment());
-
-        af.annotationPanelMenuItem.setState(view.getShowAnnotation());
         af.viewport.setShowAnnotation(view.getShowAnnotation());
         af.alignPanel.setAnnotationVisible(view.getShowAnnotation());
 
         af.viewport.setShowBoxes(view.getShowBoxes());
-        af.viewBoxesMenuItem.setSelected(view.getShowBoxes());
+
         af.viewport.setShowText(view.getShowText());
-        af.viewTextMenuItem.setSelected(view.getShowText());
+
 
         ColourSchemeI cs = null;
 
@@ -1479,21 +1489,24 @@ public class Jalview2XML
             }
         }
 
-        af.setColourSelected(view.getBgColour());
+
         af.viewport.setGlobalColourScheme(cs);
         af.viewport.setColourAppliesToAllGroups(false);
-        af.changeColour(cs);
+
         if (view.getConservationSelected() && cs!=null)
         {
           cs.setConservationInc(view.getConsThreshold());
         }
 
+        af.changeColour(cs);
+
         af.viewport.setColourAppliesToAllGroups(true);
 
+
+
         if (view.getShowSequenceFeatures())
         {
            af.viewport.showSequenceFeatures = true;
-           af.showSeqFeatures.setSelected(true);
         }
 
         if(jms.getFeatureSettings()!=null)
@@ -1527,6 +1540,8 @@ public class Jalview2XML
           }
         }
 
+        af.setMenusFromViewport(af.viewport);
+
 
         Desktop.addInternalFrame(af, view.getTitle(),
              view.getWidth(), view.getHeight());