X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FContactMatrix.java;h=8434b4abcb7d1fd45f8e8d3419655aa6772b522c;hb=b7e9e2edf0c1557089eff0e4b5c17c0b31e698c2;hp=25aefd3851dd04bdc6e5672449f70606c93cf68d;hpb=10d0fcd66355b5444126323e209241a414287518;p=jalview.git diff --git a/src/jalview/datamodel/ContactMatrix.java b/src/jalview/datamodel/ContactMatrix.java index 25aefd3..8434b4a 100644 --- a/src/jalview/datamodel/ContactMatrix.java +++ b/src/jalview/datamodel/ContactMatrix.java @@ -1,6 +1,9 @@ package jalview.datamodel; +import java.awt.Color; import java.util.ArrayList; +import java.util.BitSet; +import java.util.HashMap; import java.util.List; import java.util.StringTokenizer; @@ -170,6 +173,63 @@ public abstract class ContactMatrix implements ContactMatrixI return "Contact Matrix"; } + List groups = null; + + @Override + public void updateGroups(List colGroups) + { + groups = colGroups; + colorMap = new HashMap<>(); + } + + @Override + public boolean hasGroups() + { + return groups != null && groups.size() > 0; + } + + @Override + public List 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 colorMap = new HashMap<>(); + + @Override + public Color getColourForGroup(BitSet bs) + { + if (bs == null) + { + return Color.white; + } + Color groupCol = colorMap.get(bs); + if (groupCol == null) + { + return Color.white; + } + return groupCol; + } + + @Override + public void setColorForGroup(BitSet bs, Color color) + { + colorMap.put(bs, color); + } + public static String contactToFloatString(ContactMatrixI cm) { StringBuilder sb = new StringBuilder();