Merge remote-tracking branch 'origin/develop' into features/JAL-2388OverviewWindow
[jalview.git] / src / jalview / viewmodel / AlignmentViewport.java
index 230864e..41248b1 100644 (file)
@@ -78,6 +78,8 @@ import java.util.Map;
 public abstract class AlignmentViewport implements AlignViewportI,
         CommandListener, VamsasSource
 {
+  protected ViewportPositionProps posProps;
+
   protected ViewStyleI viewStyle = new ViewStyle();
 
   /**
@@ -1073,7 +1075,8 @@ public abstract class AlignmentViewport implements AlignViewportI,
   }
 
   /**
-   * Set the selection group for this window.
+   * Set the selection group for this window. Also sets the current alignment as
+   * the context for the group, if it does not already have one.
    * 
    * @param sg
    *          - group holding references to sequences in this alignment view
@@ -1083,6 +1086,10 @@ public abstract class AlignmentViewport implements AlignViewportI,
   public void setSelectionGroup(SequenceGroup sg)
   {
     selectionGroup = sg;
+    if (sg != null && sg.getContext() == null)
+    {
+      sg.setContext(alignment);
+    }
   }
 
   public void setHiddenColumns(ColumnSelection colsel)
@@ -1280,14 +1287,13 @@ public abstract class AlignmentViewport implements AlignViewportI,
    */
   private boolean followHighlight = true;
 
-  // TODO private with getters and setters?
-  public int startRes;
+  /*private int startRes;
 
-  public int endRes;
+  private int endRes;
 
-  public int startSeq;
+  private int startSeq;
 
-  public int endSeq;
+  private int endSeq;*/
 
   /**
    * Property change listener for changes in alignment
@@ -2425,6 +2431,11 @@ public abstract class AlignmentViewport implements AlignViewportI,
   public void setViewStyle(ViewStyleI settingsForView)
   {
     viewStyle = new ViewStyle(settingsForView);
+    if (residueShading != null)
+    {
+      residueShading.setConservationApplied(settingsForView
+              .isConservationColourSelected());
+    }
   }
 
   @Override
@@ -2635,35 +2646,46 @@ public abstract class AlignmentViewport implements AlignViewportI,
     this.followHighlight = b;
   }
 
+  @Override
+  public ViewportPositionProps getPosProps()
+  {
+    return posProps;
+  }
+
+  @Override
   public int getStartRes()
   {
-    return startRes;
+    return posProps.getStartRes();
   }
 
   @Override
   public int getEndRes()
   {
-    return endRes;
+    return posProps.getEndRes();
   }
 
+  @Override
   public int getStartSeq()
   {
-    return startSeq;
+    return posProps.getStartSeq();
   }
 
   public void setStartRes(int res)
   {
-    this.startRes = res;
+    posProps.setStartRes(res);
+    // this.startRes = res;
   }
 
   public void setStartSeq(int seq)
   {
-    this.startSeq = seq;
+    posProps.setStartSeq(seq);
+    // this.startSeq = seq;
   }
 
   public void setEndRes(int res)
   {
-    if (res > alignment.getWidth() - 1)
+    posProps.setEndRes(res);
+    /*if (res > alignment.getWidth() - 1)
     {
       // log.System.out.println(" Corrected res from " + res + " to maximum " +
       // (alignment.getWidth()-1));
@@ -2673,12 +2695,13 @@ public abstract class AlignmentViewport implements AlignViewportI,
     {
       res = 0;
     }
-    this.endRes = res;
+    this.endRes = res;*/
   }
 
   public void setEndSeq(int seq)
   {
-    if (seq > alignment.getHeight())
+    posProps.setEndSeq(seq);
+    /*if (seq > alignment.getHeight())
     {
       seq = alignment.getHeight();
     }
@@ -2686,12 +2709,14 @@ public abstract class AlignmentViewport implements AlignViewportI,
     {
       seq = 0;
     }
-    this.endSeq = seq;
+    this.endSeq = seq;*/
   }
 
+  @Override
   public int getEndSeq()
   {
-    return endSeq;
+    return posProps.getEndSeq();
+    // return endSeq;
   }
 
   /**