Merge branch 'develop' into features/JAL-4134_use_annotation_row_for_colours_and_groups
[jalview.git] / src / jalview / datamodel / ContactMatrix.java
index 8434b4a..48b6e6b 100644 (file)
@@ -1,10 +1,12 @@
 package jalview.datamodel;
 
 import java.awt.Color;
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.BitSet;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Spliterator;
 import java.util.StringTokenizer;
 
 import jalview.bin.Console;
@@ -148,20 +150,6 @@ public abstract class ContactMatrix implements ContactMatrixI
   }
 
   @Override
-  public boolean hasReferenceSeq()
-  {
-    // TODO Auto-generated method stub
-    return false;
-  }
-
-  @Override
-  public SequenceI getReferenceSeq()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  @Override
   public String getAnnotLabel()
   {
     return "Contact Matrix";
@@ -172,64 +160,17 @@ public abstract class ContactMatrix implements ContactMatrixI
   {
     return "Contact Matrix";
   }
-
-  List<BitSet> groups = null;
-
-  @Override
-  public void updateGroups(List<BitSet> colGroups)
-  {
-    groups = colGroups;
-    colorMap = new HashMap<>();
-  }
-
-  @Override
-  public boolean hasGroups()
-  {
-    return groups != null && groups.size() > 0;
-  }
-
-  @Override
-  public List<BitSet> getGroups()
-  {
-    return groups;
-  }
-
-  @Override
-  public BitSet getGroupsFor(int column)
-  {
-    for (BitSet gp : groups)
-    {
-      if (gp.get(column))
-      {
-        return gp;
-      }
-    }
-    return ContactMatrixI.super.getGroupsFor(column);
-  }
-
-  HashMap<BitSet, Color> colorMap = new HashMap<>();
-
+  GroupSet grps = new GroupSet();
   @Override
-  public Color getColourForGroup(BitSet bs)
+  public GroupSetI getGroupSet()
   {
-    if (bs == null)
-    {
-      return Color.white;
-    }
-    Color groupCol = colorMap.get(bs);
-    if (groupCol == null)
-    {
-      return Color.white;
-    }
-    return groupCol;
+    return grps;
   }
-
   @Override
-  public void setColorForGroup(BitSet bs, Color color)
+  public void setGroupSet(GroupSet makeGroups)
   {
-    colorMap.put(bs, color);
+    grps = makeGroups;
   }
-
   public static String contactToFloatString(ContactMatrixI cm)
   {
     StringBuilder sb = new StringBuilder();
@@ -257,7 +198,6 @@ public abstract class ContactMatrix implements ContactMatrixI
     float[][] vals = new float[cols][rows];
     StringTokenizer tabsep = new StringTokenizer(values, "" + '\t');
     int c = 0, r = 0;
-
     while (tabsep.hasMoreTokens())
     {
       double elem = Double.valueOf(tabsep.nextToken());
@@ -269,7 +209,6 @@ public abstract class ContactMatrix implements ContactMatrixI
       }
       if (c >= vals.length)
       {
-
         break;
       }
     }
@@ -278,7 +217,6 @@ public abstract class ContactMatrix implements ContactMatrixI
       Console.warn(
               "Ignoring additional elements for Float string to contact matrix parsing.");
     }
-
     return vals;
   }
 }