Merge branch 'develop' into spike/JAL-4047/JAL-4048_columns_in_sequenceID
[jalview.git] / src / jalview / viewmodel / AlignmentViewport.java
index 975b292..d41a5be 100644 (file)
@@ -50,6 +50,8 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentView;
 import jalview.datamodel.Annotation;
 import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.ContactListI;
+import jalview.datamodel.ContactMatrixI;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.HiddenSequences;
 import jalview.datamodel.ProfilesI;
@@ -58,6 +60,7 @@ import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceCollectionI;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
+import jalview.gui.QuitHandler;
 import jalview.project.Jalview2XML;
 import jalview.renderer.ResidueShader;
 import jalview.renderer.ResidueShaderI;
@@ -69,6 +72,7 @@ import jalview.util.Comparison;
 import jalview.util.MapList;
 import jalview.util.MappingUtils;
 import jalview.util.MessageManager;
+import jalview.viewmodel.seqfeatures.IdColumns;
 import jalview.viewmodel.styles.ViewStyle;
 import jalview.workers.AlignCalcManager;
 import jalview.workers.ComplementConsensusThread;
@@ -104,7 +108,7 @@ public abstract class AlignmentViewport
   /**
    * used to determine if quit should be confirmed
    */
-  private boolean savedUpToDate = true;
+  private boolean savedUpToDate = false;
 
   /**
    * alignment displayed in the viewport. Please use get/setter
@@ -2940,6 +2944,20 @@ public abstract class AlignmentViewport
     return searchResults;
   }
 
+  @Override
+  public ContactListI getContactList(AlignmentAnnotation _aa, int column)
+  {
+    return alignment.getContactListFor(_aa, column);
+  }
+
+  @Override
+  public ContactMatrixI getContactMatrix(
+          AlignmentAnnotation alignmentAnnotation)
+  {
+    return alignment.getContactMatrixFor(alignmentAnnotation);
+  }
+
+
   /**
    * get the consensus sequence as displayed under the PID consensus annotation
    * row.
@@ -3106,11 +3124,39 @@ public abstract class AlignmentViewport
             false));
   }
 
+  /**
+   * ordered list of annotation values displayed per sequence in ID panel
+   */
+  private IdColumns id_columns = null;
+
+  /**
+   * available and currently visible columns for this view
+   */
+  @Override
+  public IdColumns getIdColumns()
+  {
+    if (alignment == null)
+    {
+      return null;
+    }
+    if (id_columns == null)
+    {
+      id_columns = new IdColumns(alignment);
+    }
+    return id_columns;
+  }
+
   public void setSavedUpToDate(boolean s)
   {
+    setSavedUpToDate(s, QuitHandler.Message.UNSAVED_CHANGES);
+  }
+
+  public void setSavedUpToDate(boolean s, QuitHandler.Message m)
+  {
     Console.debug(
             "Setting " + this.getViewId() + " setSavedUpToDate to " + s);
     savedUpToDate = s;
+    QuitHandler.setMessage(m);
   }
 
   public boolean savedUpToDate()