JAL-1551 spotless
[jalview.git] / src / jalview / datamodel / SeqDistanceContactMatrix.java
1 package jalview.datamodel;
2
3 import java.awt.Color;
4 import java.util.BitSet;
5 import java.util.HashMap;
6 import java.util.List;
7
8 /**
9  * Dummy contact matrix based on sequence distance
10  * 
11  * @author jprocter
12  *
13  */
14 public class SeqDistanceContactMatrix implements ContactMatrixI
15 {
16   private static final String SEQUENCE_DISTANCE = "SEQUENCE_DISTANCE";
17
18   private int width = 0;
19
20   public SeqDistanceContactMatrix(int width)
21   {
22     this.width = width;
23   }
24
25   @Override
26   public float getMin()
27   {
28     return 0f;
29   }
30
31   @Override
32   public float getMax()
33   {
34     return width;
35   }
36
37   @Override
38   public ContactListI getContactList(final int column)
39   {
40     if (column < 0 || column >= width)
41     {
42       return null;
43     }
44     return new ContactListImpl(new ContactListProviderI()
45     {
46
47       int p = column;
48
49       // @Override
50       // public Color getColorForScore(int column)
51       // {
52       // return jalview.util.ColorUtils.getGraduatedColour(Math.abs(column-p),
53       // 0, Color.white, width, Color.magenta);
54       // }
55       // @Override
56       // public Color getColorForRange(int from_column, int to_column)
57       // {
58       // return jalview.util.ColorUtils.getGraduatedColour(
59       // Math.abs(to_column + from_column - 2 * p) / 2, 0, Color.white, width,
60       // Color.magenta);
61       // }
62
63       @Override
64       public int getContactHeight()
65       {
66         return width;
67
68       }
69
70       @Override
71       public int getPosition()
72       {
73         return p;
74       }
75
76       @Override
77       public double getContactAt(int column)
78       {
79         return Math.abs(column - p);
80       }
81     });
82   }
83
84   @Override
85   public boolean hasReferenceSeq()
86   {
87     // TODO Auto-generated method stub
88     return false;
89   }
90
91   @Override
92   public SequenceI getReferenceSeq()
93   {
94     // TODO Auto-generated method stub
95     return null;
96   }
97
98   @Override
99   public String getAnnotDescr()
100   {
101     return "Sequence distance matrix";
102   }
103
104   @Override
105   public String getAnnotLabel()
106   {
107     return "Sequence Distance";
108   }
109
110   @Override
111   public String getType()
112   {
113     return SEQUENCE_DISTANCE;
114   }
115
116   @Override
117   public int getWidth()
118   {
119     return width;
120   }
121
122   @Override
123   public int getHeight()
124   {
125     return width;
126   }
127
128   private List<BitSet> groups = null;
129
130   @Override
131   public void updateGroups(List<BitSet> colGroups)
132   {
133     groups = colGroups;
134   }
135
136   @Override
137   public boolean hasGroups()
138   {
139     return groups != null;
140   }
141
142   @Override
143   public List<BitSet> getGroups()
144   {
145     return groups;
146   }
147
148   HashMap<BitSet, Color> colorMap = new HashMap<>();
149
150   @Override
151   public Color getColourForGroup(BitSet bs)
152   {
153     if (bs == null)
154     {
155       return Color.white;
156     }
157     Color groupCol = colorMap.get(bs);
158     if (groupCol == null)
159     {
160       return Color.white;
161     }
162     return groupCol;
163   }
164
165   @Override
166   public void setColorForGroup(BitSet bs, Color color)
167   {
168     colorMap.put(bs, color);
169   }
170 }