(JAL-969) refactored alignmentViewport base class to own package and pulled up most...
[jalview.git] / src / jalview / appletgui / AlignFrame.java
index b24488f..3ebc083 100644 (file)
@@ -69,12 +69,12 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     viewport.updateConsensus(alignPanel);\r
 \r
     annotationPanelMenuItem.setState(viewport.showAnnotation);\r
-    displayNonconservedMenuItem.setState(viewport.getShowunconserved());\r
+    displayNonconservedMenuItem.setState(viewport.getShowUnconserved());\r
     followMouseOverFlag.setState(viewport.getFollowHighlight());\r
-    showGroupConsensus.setState(viewport.showGroupConsensus);\r
-    showGroupConservation.setState(viewport.showGroupConservation);\r
-    showConsensusHistogram.setState(viewport.showConsensusHistogram);\r
-    showSequenceLogo.setState(viewport.showSequenceLogo);\r
+    showGroupConsensus.setState(viewport.isShowGroupConsensus());\r
+    showGroupConservation.setState(viewport.isShowGroupConservation());\r
+    showConsensusHistogram.setState(viewport.isShowConsensusHistogram());\r
+    showSequenceLogo.setState(viewport.isShowSequenceLogo());\r
 \r
     seqLimits.setState(viewport.showJVSuffix);\r
 \r
@@ -186,7 +186,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     try\r
     {\r
       featuresFile = new jalview.io.FeaturesFile(file, type)\r
-              .parse(viewport.alignment,\r
+              .parse(viewport.getAlignment(),\r
                       alignPanel.seqPanel.seqCanvas.getFeatureRenderer().featureColours,\r
                       featureLinks, true, viewport.applet.getDefaultParameter("relaxedidmatch", false));\r
     } catch (Exception ex)\r
@@ -488,7 +488,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       // Hide everything by the current selection - this is a hack - we do the\r
       // invert and then hide\r
       // first check that there will be visible columns after the invert.\r
-      if ((viewport.colSel != null && viewport.colSel.getSelected() != null && viewport.colSel\r
+      if ((viewport.getColumnSelection() != null && viewport.getColumnSelection().getSelected() != null && viewport.getColumnSelection()\r
               .getSelected().size() > 0)\r
               || (sg != null && sg.getSize() > 0 && sg.getStartRes() <= sg\r
                       .getEndRes()))\r
@@ -512,12 +512,12 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
     if (toggleSeqs)\r
     {\r
-      if (sg != null && sg.getSize() != viewport.alignment.getHeight())\r
+      if (sg != null && sg.getSize() != viewport.getAlignment().getHeight())\r
       {\r
         hide = true;\r
         viewport.hideAllSelectedSeqs();\r
       }\r
-      else if (!(toggleCols && viewport.colSel.getSelected().size() > 0))\r
+      else if (!(toggleCols && viewport.getColumnSelection().getSelected().size() > 0))\r
       {\r
         viewport.showAllHiddenSeqs();\r
       }\r
@@ -525,12 +525,12 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
     if (toggleCols)\r
     {\r
-      if (viewport.colSel.getSelected().size() > 0)\r
+      if (viewport.getColumnSelection().getSelected().size() > 0)\r
       {\r
         viewport.hideSelectedColumns();\r
         if (!toggleSeqs)\r
         {\r
-          viewport.selectionGroup = sg;\r
+          viewport.setSelectionGroup(sg);\r
         }\r
       }\r
       else if (!hide)\r
@@ -614,7 +614,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     }\r
     else if (evt.getSource() == autoCalculate)\r
     {\r
-      viewport.autocalculateConsensus = autoCalculate.getState();\r
+      viewport.autoCalculateConsensus = autoCalculate.getState();\r
     }\r
     else if (evt.getSource() == sortByTree)\r
     {\r
@@ -864,7 +864,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     else if (source == alProperties)\r
     {\r
       StringBuffer contents = new jalview.io.AlignmentProperties(\r
-              viewport.alignment).formatAsString();\r
+              viewport.getAlignment()).formatAsString();\r
       CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);\r
       cap.setText(contents.toString());\r
       Frame frame = new Frame();\r
@@ -884,8 +884,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     {\r
       abovePIDThreshold.setState(false);\r
       changeColour(new ClustalxColourScheme(\r
-              viewport.alignment.getSequences(),\r
-              viewport.alignment.getWidth()));\r
+              viewport.getAlignment().getSequences(),\r
+              viewport.getAlignment().getWidth()));\r
     }\r
     else if (source == zappoColour)\r
     {\r
@@ -1032,10 +1032,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   public String outputAnnotations(boolean displayTextbox)\r
   {\r
     String annotation = new AnnotationFile().printAnnotations(\r
-            viewport.showAnnotation ? viewport.alignment\r
-                    .getAlignmentAnnotation() : null, viewport.alignment\r
+            viewport.showAnnotation ? viewport.getAlignment()\r
+                    .getAlignmentAnnotation() : null, viewport.getAlignment()\r
                     .getGroups(),\r
-            ((Alignment) viewport.alignment).alignmentProperties);\r
+            ((Alignment) viewport.getAlignment()).alignmentProperties);\r
 \r
     if (displayTextbox)\r
     {\r
@@ -1072,13 +1072,13 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     if (format.equalsIgnoreCase("Jalview"))\r
     {\r
       features = new FeaturesFile().printJalviewFormat(\r
-              viewport.alignment.getSequencesArray(),\r
+              viewport.getAlignment().getSequencesArray(),\r
               getDisplayedFeatureCols());\r
     }\r
     else\r
     {\r
       features = new FeaturesFile().printGFFFormat(\r
-              viewport.alignment.getSequencesArray(),\r
+              viewport.getAlignment().getSequencesArray(),\r
               getDisplayedFeatureCols());\r
     }\r
 \r
@@ -1254,7 +1254,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       viewport.historyList.push(command);\r
       viewport.redoList.removeAllElements();\r
       updateEditMenuBar();\r
-      viewport.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;\r
+      viewport.updateHiddenColumns();\r
     }\r
   }\r
 \r
@@ -1276,11 +1276,14 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     command.undoCommand(null);\r
 \r
     AlignViewport originalSource = getOriginatingSource(command);\r
-\r
-    originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;\r
+    // JBPNote Test\r
+    if (originalSource!=viewport) {\r
+      System.err.println("Warning: Viewport object mismatch whilst undoing");\r
+    }\r
+    originalSource.updateHiddenColumns(); //    originalSource.hasHiddenColumns = viewport.getColumnSelection().getHiddenColumns() != null;\r
     updateEditMenuBar();\r
     originalSource.firePropertyChange("alignment", null,\r
-            originalSource.alignment.getSequences());\r
+            originalSource.getAlignment().getSequences());\r
   }\r
 \r
   /**\r
@@ -1301,11 +1304,15 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     command.doCommand(null);\r
 \r
     AlignViewport originalSource = getOriginatingSource(command);\r
-    originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;\r
+    // JBPNote Test\r
+    if (originalSource!=viewport) {\r
+      System.err.println("Warning: Viewport object mismatch whilst re-doing");\r
+    }\r
+    originalSource.updateHiddenColumns(); //sethasHiddenColumns(); = viewport.getColumnSelection().getHiddenColumns() != null;\r
 \r
     updateEditMenuBar();\r
     originalSource.firePropertyChange("alignment", null,\r
-            originalSource.alignment.getSequences());\r
+            originalSource.getAlignment().getSequences());\r
   }\r
 \r
   AlignViewport getOriginatingSource(CommandI command)\r
@@ -1325,7 +1332,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       {\r
         if (comps.elementAt(i) instanceof AlignmentPanel)\r
         {\r
-          if (al == ((AlignmentPanel) comps.elementAt(i)).av.alignment)\r
+          if (al == ((AlignmentPanel) comps.elementAt(i)).av.getAlignment())\r
           {\r
             originalSource = ((AlignmentPanel) comps.elementAt(i)).av;\r
             break;\r
@@ -1340,7 +1347,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       // the current view against the closed view first\r
       if (al != null)\r
       {\r
-        PaintRefresher.validateSequences(al, viewport.alignment);\r
+        PaintRefresher.validateSequences(al, viewport.getAlignment());\r
       }\r
 \r
       originalSource = viewport;\r
@@ -1359,42 +1366,42 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
     if (up)\r
     {\r
-      for (int i = 1; i < viewport.alignment.getHeight(); i++)\r
+      for (int i = 1; i < viewport.getAlignment().getHeight(); i++)\r
       {\r
-        SequenceI seq = viewport.alignment.getSequenceAt(i);\r
+        SequenceI seq = viewport.getAlignment().getSequenceAt(i);\r
         if (!sg.getSequences(null).contains(seq))\r
         {\r
           continue;\r
         }\r
 \r
-        SequenceI temp = viewport.alignment.getSequenceAt(i - 1);\r
+        SequenceI temp = viewport.getAlignment().getSequenceAt(i - 1);\r
         if (sg.getSequences(null).contains(temp))\r
         {\r
           continue;\r
         }\r
 \r
-        viewport.alignment.getSequences().setElementAt(temp, i);\r
-        viewport.alignment.getSequences().setElementAt(seq, i - 1);\r
+        viewport.getAlignment().getSequences().setElementAt(temp, i);\r
+        viewport.getAlignment().getSequences().setElementAt(seq, i - 1);\r
       }\r
     }\r
     else\r
     {\r
-      for (int i = viewport.alignment.getHeight() - 2; i > -1; i--)\r
+      for (int i = viewport.getAlignment().getHeight() - 2; i > -1; i--)\r
       {\r
-        SequenceI seq = viewport.alignment.getSequenceAt(i);\r
-        if (!sg.getSequences(viewport.hiddenRepSequences).contains(seq))\r
+        SequenceI seq = viewport.getAlignment().getSequenceAt(i);\r
+        if (!sg.getSequences(viewport.getHiddenRepSequences()).contains(seq))\r
         {\r
           continue;\r
         }\r
 \r
-        SequenceI temp = viewport.alignment.getSequenceAt(i + 1);\r
-        if (sg.getSequences(viewport.hiddenRepSequences).contains(temp))\r
+        SequenceI temp = viewport.getAlignment().getSequenceAt(i + 1);\r
+        if (sg.getSequences(viewport.getHiddenRepSequences()).contains(temp))\r
         {\r
           continue;\r
         }\r
 \r
-        viewport.alignment.getSequences().setElementAt(temp, i);\r
-        viewport.alignment.getSequences().setElementAt(seq, i + 1);\r
+        viewport.getAlignment().getSequences().setElementAt(temp, i);\r
+        viewport.getAlignment().getSequences().setElementAt(seq, i + 1);\r
       }\r
     }\r
 \r
@@ -1406,15 +1413,15 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     Vector sg = new Vector();\r
     if (viewport.cursorMode)\r
     {\r
-      sg.addElement(viewport.alignment\r
+      sg.addElement(viewport.getAlignment()\r
               .getSequenceAt(alignPanel.seqPanel.seqCanvas.cursorY));\r
     }\r
     else if (viewport.getSelectionGroup() != null\r
-            && viewport.getSelectionGroup().getSize() != viewport.alignment\r
+            && viewport.getSelectionGroup().getSize() != viewport.getAlignment()\r
                     .getHeight())\r
     {\r
       sg = viewport.getSelectionGroup().getSequences(\r
-              viewport.hiddenRepSequences);\r
+              viewport.getHiddenRepSequences());\r
     }\r
 \r
     if (sg.size() < 1)\r
@@ -1424,10 +1431,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
     Vector invertGroup = new Vector();\r
 \r
-    for (int i = 0; i < viewport.alignment.getHeight(); i++)\r
+    for (int i = 0; i < viewport.getAlignment().getHeight(); i++)\r
     {\r
-      if (!sg.contains(viewport.alignment.getSequenceAt(i)))\r
-        invertGroup.addElement(viewport.alignment.getSequenceAt(i));\r
+      if (!sg.contains(viewport.getAlignment().getSequenceAt(i)))\r
+        invertGroup.addElement(viewport.getAlignment().getSequenceAt(i));\r
     }\r
 \r
     SequenceI[] seqs1 = new SequenceI[sg.size()];\r
@@ -1502,14 +1509,14 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     for (int i = 0; i < sg.getSize(); i++)\r
     {\r
       SequenceI seq = sg.getSequenceAt(i);\r
-      int index = viewport.alignment.findIndex(seq);\r
+      int index = viewport.getAlignment().findIndex(seq);\r
       orderedSeqs.put(index + "", seq);\r
     }\r
 \r
     int index = 0, startRes, endRes;\r
     char ch;\r
 \r
-    if (viewport.hasHiddenColumns && viewport.getSelectionGroup() != null)\r
+    if (viewport.hasHiddenColumns() && viewport.getSelectionGroup() != null)\r
     {\r
       copiedHiddenColumns = new Vector();\r
       int hiddenOffset = viewport.getSelectionGroup().getStartRes();\r
@@ -1656,17 +1663,17 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   {\r
     for (int i = 0; i < seqs.length; i++)\r
     {\r
-      viewport.alignment.addSequence(seqs[i]);\r
+      viewport.getAlignment().addSequence(seqs[i]);\r
     }\r
 \r
     // !newAlignment\r
     addHistoryItem(new EditCommand("Add sequences", EditCommand.PASTE,\r
-            seqs, 0, viewport.alignment.getWidth(), viewport.alignment));\r
+            seqs, 0, viewport.getAlignment().getWidth(), viewport.getAlignment()));\r
 \r
-    viewport.setEndSeq(viewport.alignment.getHeight());\r
-    viewport.alignment.getWidth();\r
+    viewport.setEndSeq(viewport.getAlignment().getHeight());\r
+    viewport.getAlignment().getWidth();\r
     viewport.firePropertyChange("alignment", null,\r
-            viewport.alignment.getSequences());\r
+            viewport.getAlignment().getSequences());\r
 \r
   }\r
 \r
@@ -1694,7 +1701,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     }\r
 \r
     // If the cut affects all sequences, remove highlighted columns\r
-    if (sg.getSize() == viewport.alignment.getHeight())\r
+    if (sg.getSize() == viewport.getAlignment().getHeight())\r
     {\r
       viewport.getColumnSelection().removeElements(sg.getStartRes(),\r
               sg.getEndRes() + 1);\r
@@ -1711,10 +1718,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
      */\r
     addHistoryItem(new EditCommand("Cut Sequences", EditCommand.CUT, cut,\r
             sg.getStartRes(), sg.getEndRes() - sg.getStartRes() + 1,\r
-            viewport.alignment));\r
+            viewport.getAlignment()));\r
 \r
     viewport.setSelectionGroup(null);\r
-    viewport.alignment.deleteGroup(sg);\r
+    viewport.getAlignment().deleteGroup(sg);\r
 \r
     viewport.firePropertyChange("alignment", null, viewport.getAlignment()\r
             .getSequences());\r
@@ -1784,8 +1791,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
               viewport.getSequenceSelection(),\r
               viewport.getAlignmentView(true).getSequenceStrings(\r
                       viewport.getGapCharacter()),\r
-              viewport.alignment.getGroups());\r
-      viewport.alignment.deleteAllGroups();\r
+              viewport.getAlignment().getGroups());\r
+      viewport.getAlignment().deleteAllGroups();\r
       viewport.sequenceColours = null;\r
       viewport.setSelectionGroup(null);\r
       // set view properties for each group\r
@@ -1793,7 +1800,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       {\r
         // gps[g].setShowunconserved(viewport.getShowUnconserved());\r
         gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo());\r
-        viewport.alignment.addGroup(gps[g]);\r
+        viewport.getAlignment().addGroup(gps[g]);\r
         Color col = new Color((int) (Math.random() * 255),\r
                 (int) (Math.random() * 255), (int) (Math.random() * 255));\r
         col = col.brighter();\r
@@ -1810,7 +1817,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
   protected void deleteGroups_actionPerformed()\r
   {\r
-    viewport.alignment.deleteAllGroups();\r
+    viewport.getAlignment().deleteAllGroups();\r
     viewport.sequenceColours = null;\r
     viewport.setSelectionGroup(null);\r
 \r
@@ -1824,7 +1831,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     {\r
       sg.addSequence(viewport.getAlignment().getSequenceAt(i), false);\r
     }\r
-    sg.setEndRes(viewport.alignment.getWidth() - 1);\r
+    sg.setEndRes(viewport.getAlignment().getWidth() - 1);\r
     viewport.setSelectionGroup(sg);\r
     alignPanel.paintAlignment(true);\r
     PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());\r
@@ -1888,11 +1895,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       if (viewport.getSelectionGroup() != null)\r
       {\r
         seqs = viewport.getSelectionGroup().getSequencesAsArray(\r
-                viewport.hiddenRepSequences);\r
+                viewport.getHiddenRepSequences());\r
       }\r
       else\r
       {\r
-        seqs = viewport.alignment.getSequencesArray();\r
+        seqs = viewport.getAlignment().getSequencesArray();\r
       }\r
 \r
       TrimRegionCommand trimRegion;\r
@@ -1900,23 +1907,23 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       {\r
         trimRegion = new TrimRegionCommand("Remove Left",\r
                 TrimRegionCommand.TRIM_LEFT, seqs, column,\r
-                viewport.alignment, viewport.colSel,\r
-                viewport.selectionGroup);\r
+                viewport.getAlignment(), viewport.getColumnSelection(),\r
+                viewport.getSelectionGroup());\r
         viewport.setStartRes(0);\r
       }\r
       else\r
       {\r
         trimRegion = new TrimRegionCommand("Remove Right",\r
                 TrimRegionCommand.TRIM_RIGHT, seqs, column,\r
-                viewport.alignment, viewport.colSel,\r
-                viewport.selectionGroup);\r
+                viewport.getAlignment(), viewport.getColumnSelection(),\r
+                viewport.getSelectionGroup());\r
       }\r
 \r
       statusBar.setText("Removed " + trimRegion.getSize() + " columns.");\r
 \r
       addHistoryItem(trimRegion);\r
 \r
-      Vector groups = viewport.alignment.getGroups();\r
+      Vector groups = viewport.getAlignment().getGroups();\r
 \r
       for (int i = 0; i < groups.size(); i++)\r
       {\r
@@ -1925,7 +1932,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
         if ((trimLeft && !sg.adjustForRemoveLeft(column))\r
                 || (!trimLeft && !sg.adjustForRemoveRight(column)))\r
         {\r
-          viewport.alignment.deleteGroup(sg);\r
+          viewport.getAlignment().deleteGroup(sg);\r
         }\r
       }\r
 \r
@@ -1936,23 +1943,23 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
   public void removeGappedColumnMenuItem_actionPerformed()\r
   {\r
-    int start = 0, end = viewport.alignment.getWidth() - 1;\r
+    int start = 0, end = viewport.getAlignment().getWidth() - 1;\r
 \r
     SequenceI[] seqs;\r
     if (viewport.getSelectionGroup() != null)\r
     {\r
       seqs = viewport.getSelectionGroup().getSequencesAsArray(\r
-              viewport.hiddenRepSequences);\r
+              viewport.getHiddenRepSequences());\r
       start = viewport.getSelectionGroup().getStartRes();\r
       end = viewport.getSelectionGroup().getEndRes();\r
     }\r
     else\r
     {\r
-      seqs = viewport.alignment.getSequencesArray();\r
+      seqs = viewport.getAlignment().getSequencesArray();\r
     }\r
 \r
     RemoveGapColCommand removeGapCols = new RemoveGapColCommand(\r
-            "Remove Gapped Columns", seqs, start, end, viewport.alignment);\r
+            "Remove Gapped Columns", seqs, start, end, viewport.getAlignment());\r
 \r
     addHistoryItem(removeGapCols);\r
 \r
@@ -1961,7 +1968,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
     // This is to maintain viewport position on first residue\r
     // of first sequence\r
-    SequenceI seq = viewport.alignment.getSequenceAt(0);\r
+    SequenceI seq = viewport.getAlignment().getSequenceAt(0);\r
     int startRes = seq.findPosition(viewport.startRes);\r
     // ShiftList shifts;\r
     // viewport.getAlignment().removeGaps(shifts=new ShiftList());\r
@@ -1976,28 +1983,28 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
   public void removeAllGapsMenuItem_actionPerformed()\r
   {\r
-    int start = 0, end = viewport.alignment.getWidth() - 1;\r
+    int start = 0, end = viewport.getAlignment().getWidth() - 1;\r
 \r
     SequenceI[] seqs;\r
     if (viewport.getSelectionGroup() != null)\r
     {\r
       seqs = viewport.getSelectionGroup().getSequencesAsArray(\r
-              viewport.hiddenRepSequences);\r
+              viewport.getHiddenRepSequences());\r
       start = viewport.getSelectionGroup().getStartRes();\r
       end = viewport.getSelectionGroup().getEndRes();\r
     }\r
     else\r
     {\r
-      seqs = viewport.alignment.getSequencesArray();\r
+      seqs = viewport.getAlignment().getSequencesArray();\r
     }\r
 \r
     // This is to maintain viewport position on first residue\r
     // of first sequence\r
-    SequenceI seq = viewport.alignment.getSequenceAt(0);\r
+    SequenceI seq = viewport.getAlignment().getSequenceAt(0);\r
     int startRes = seq.findPosition(viewport.startRes);\r
 \r
     addHistoryItem(new RemoveGapsCommand("Remove Gaps", seqs, start, end,\r
-            viewport.alignment));\r
+            viewport.getAlignment()));\r
 \r
     viewport.setStartRes(seq.findIndex(startRes) - 1);\r
 \r
@@ -2020,30 +2027,30 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   public AlignFrame newView(String viewtitle)\r
   {\r
     AlignmentI newal;\r
-    if (viewport.hasHiddenRows)\r
+    if (viewport.hasHiddenRows())\r
     {\r
       newal = new Alignment(viewport.getAlignment().getHiddenSequences()\r
               .getFullAlignment().getSequencesArray());\r
     }\r
     else\r
     {\r
-      newal = new Alignment(viewport.alignment.getSequencesArray());\r
+      newal = new Alignment(viewport.getAlignment().getSequencesArray());\r
     }\r
 \r
-    if (viewport.alignment.getAlignmentAnnotation() != null)\r
+    if (viewport.getAlignment().getAlignmentAnnotation() != null)\r
     {\r
-      for (int i = 0; i < viewport.alignment.getAlignmentAnnotation().length; i++)\r
+      for (int i = 0; i < viewport.getAlignment().getAlignmentAnnotation().length; i++)\r
       {\r
-        if (!viewport.alignment.getAlignmentAnnotation()[i].autoCalculated)\r
+        if (!viewport.getAlignment().getAlignmentAnnotation()[i].autoCalculated)\r
         {\r
-          newal.addAnnotation(viewport.alignment.getAlignmentAnnotation()[i]);\r
+          newal.addAnnotation(viewport.getAlignment().getAlignmentAnnotation()[i]);\r
         }\r
       }\r
     }\r
 \r
     AlignFrame newaf = new AlignFrame(newal, viewport.applet, "", false);\r
 \r
-    newaf.viewport.sequenceSetID = alignPanel.av.getSequenceSetId();\r
+    newaf.viewport.setSequenceSetId(alignPanel.av.getSequenceSetId());\r
     PaintRefresher.Register(alignPanel, alignPanel.av.getSequenceSetId());\r
     PaintRefresher.Register(newaf.alignPanel,\r
             newaf.alignPanel.av.getSequenceSetId());\r
@@ -2223,7 +2230,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
       if (viewport.getConservationSelected())\r
       {\r
 \r
-        Alignment al = (Alignment) viewport.alignment;\r
+        Alignment al = (Alignment) viewport.getAlignment();\r
         Conservation c = new Conservation("All",\r
                 ResidueProperties.propHash, 3, al.getSequences(), 0,\r
                 al.getWidth() - 1);\r
@@ -2242,14 +2249,14 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
         cs.setConservation(null);\r
       }\r
 \r
-      cs.setConsensus(viewport.hconsensus);\r
+      cs.setConsensus(viewport.getSequenceConsensusHash());\r
 \r
     }\r
     viewport.setGlobalColourScheme(cs);\r
 \r
     if (viewport.getColourAppliesToAllGroups())\r
     {\r
-      Vector groups = viewport.alignment.getGroups();\r
+      Vector groups = viewport.getAlignment().getGroups();\r
       for (int i = 0; i < groups.size(); i++)\r
       {\r
         SequenceGroup sg = (SequenceGroup) groups.elementAt(i);\r
@@ -2262,7 +2269,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
         if (cs instanceof ClustalxColourScheme)\r
         {\r
           sg.cs = new ClustalxColourScheme(\r
-                  sg.getSequences(viewport.hiddenRepSequences),\r
+                  sg.getSequences(viewport.getHiddenRepSequences()),\r
                   sg.getWidth());\r
         }\r
         else\r
@@ -2283,7 +2290,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
         {\r
           sg.cs.setThreshold(threshold, viewport.getIgnoreGapsConsensus());\r
           sg.cs.setConsensus(AAFrequency.calculate(\r
-                  sg.getSequences(viewport.hiddenRepSequences), 0,\r
+                  sg.getSequences(viewport.getHiddenRepSequences()), 0,\r
                   sg.getWidth()));\r
         }\r
         else\r
@@ -2295,8 +2302,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
         {\r
           Conservation c = new Conservation("Group",\r
                   ResidueProperties.propHash, 3,\r
-                  sg.getSequences(viewport.hiddenRepSequences), 0,\r
-                  viewport.alignment.getWidth() - 1);\r
+                  sg.getSequences(viewport.getHiddenRepSequences()), 0,\r
+                  viewport.getAlignment().getWidth() - 1);\r
           c.calculate();\r
           c.verdict(false, viewport.getConsPercGaps());\r
           sg.cs.setConservation(c);\r
@@ -2325,7 +2332,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   protected void modifyPID_actionPerformed()\r
   {\r
     if (viewport.getAbovePIDThreshold()\r
-            && viewport.globalColourScheme != null)\r
+            && viewport.getGlobalColourScheme() != null)\r
     {\r
       SliderPanel.setPIDSliderSource(alignPanel,\r
               viewport.getGlobalColourScheme(), "Background");\r
@@ -2336,10 +2343,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   protected void modifyConservation_actionPerformed()\r
   {\r
     if (viewport.getConservationSelected()\r
-            && viewport.globalColourScheme != null)\r
+            && viewport.getGlobalColourScheme() != null)\r
     {\r
       SliderPanel.setConservationSlider(alignPanel,\r
-              viewport.globalColourScheme, "Background");\r
+              viewport.getGlobalColourScheme(), "Background");\r
       SliderPanel.showConservationSlider();\r
     }\r
   }\r
@@ -2375,7 +2382,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
             .getAlignment().getSequenceAt(0), null);\r
 \r
     addHistoryItem(new OrderCommand("Pairwise Sort", oldOrder,\r
-            viewport.alignment));\r
+            viewport.getAlignment()));\r
     alignPanel.paintAlignment(true);\r
   }\r
 \r
@@ -2383,7 +2390,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   {\r
     SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();\r
     AlignmentSorter.sortByID(viewport.getAlignment());\r
-    addHistoryItem(new OrderCommand("ID Sort", oldOrder, viewport.alignment));\r
+    addHistoryItem(new OrderCommand("ID Sort", oldOrder, viewport.getAlignment()));\r
     alignPanel.paintAlignment(true);\r
   }\r
 \r
@@ -2392,7 +2399,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();\r
     AlignmentSorter.sortByLength(viewport.getAlignment());\r
     addHistoryItem(new OrderCommand("Length Sort", oldOrder,\r
-            viewport.alignment));\r
+            viewport.getAlignment()));\r
     alignPanel.paintAlignment(true);\r
   }\r
 \r
@@ -2401,7 +2408,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();\r
     AlignmentSorter.sortByGroup(viewport.getAlignment());\r
     addHistoryItem(new OrderCommand("Group Sort", oldOrder,\r
-            viewport.alignment));\r
+            viewport.getAlignment()));\r
     alignPanel.paintAlignment(true);\r
 \r
   }\r
@@ -2426,7 +2433,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   public void PCAMenuItem_actionPerformed()\r
   {\r
     // are the sequences aligned?\r
-    if (!viewport.alignment.isAligned(false))\r
+    if (!viewport.getAlignment().isAligned(false))\r
     {\r
       SequenceI current;\r
       int Width = viewport.getAlignment().getWidth();\r
@@ -2483,7 +2490,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   void NewTreePanel(String type, String pwType, String title)\r
   {\r
     // are the sequences aligned?\r
-    if (!viewport.alignment.isAligned(false))\r
+    if (!viewport.getAlignment().isAligned(false))\r
     {\r
       SequenceI current;\r
       int Width = viewport.getAlignment().getWidth();\r
@@ -2503,7 +2510,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 \r
     if ((viewport.getSelectionGroup() != null && viewport\r
             .getSelectionGroup().getSize() > 1)\r
-            || (viewport.getSelectionGroup() == null && viewport.alignment\r
+            || (viewport.getSelectionGroup() == null && viewport.getAlignment()\r
                     .getHeight() > 1))\r
     {\r
       final TreePanel tp = new TreePanel(alignPanel, type, pwType);\r
@@ -2547,7 +2554,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     // addHistoryItem(new HistoryItem("Sort", viewport.alignment,\r
     // HistoryItem.SORT));\r
     addHistoryItem(new OrderCommand("Order by " + title, oldOrder,\r
-            viewport.alignment));\r
+            viewport.getAlignment()));\r
     alignPanel.paintAlignment(true);\r
   }\r
 \r
@@ -2599,7 +2606,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     AlignmentSorter.sortBy(viewport.getAlignment(), alorder);\r
     if (undoname!=null)\r
     {\r
-      addHistoryItem(new OrderCommand(undoname, oldOrder, viewport.alignment));\r
+      addHistoryItem(new OrderCommand(undoname, oldOrder, viewport.getAlignment()));\r
     }\r
     alignPanel.paintAlignment(true);\r
     return true;\r