Skip to content

Commit 22915f4

Browse files
author
mpschr
committed
Fix #151 : Hierarchical cluster sort
1 parent 4f41d48 commit 22915f4

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

org.gitools.analysis/src/main/java/org/gitools/analysis/clustering/hierarchical/HierarchicalClusterer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ public int compare(String o1, String o2) {
134134
// Set cluster names ordered by weight
135135
HierarchicalCluster root = builder.getRootCluster();
136136
root.setName("");
137+
root.setSortName("");
137138
Color color = nameClusters(root.getChildren(), 1);
138139
root.setColor(color.getRGB());
139140
root.setName("root");
@@ -168,20 +169,20 @@ private Color nameClusters(List<HierarchicalCluster> children, int level) {
168169
} else {
169170
child.setName(child.getParentName() + createLabel(i, digits));
170171
}
172+
child.setSortName(child.getParentName() + createLabel(i, digits));
171173
Color colorChild = nameClusters(child.getChildren(), level+1);
172174
child.setColor(colorChild.getRGB());
173175

174176
if (colorParent == null) {
175177
colorParent = colorChild;
176-
weightParent = (child.getChildren().isEmpty() ? 0.0 : child.getWeight());
177178
} else {
178179
colorParent = mixColors(colorParent, weightParent, colorChild, child.getWeight());
179-
weightParent += (child.getChildren().isEmpty() ? 0.0 : child.getWeight());
180180
}
181+
weightParent = child.getWeight();
181182

182183
}
183184

184-
if (level > 10) {
185+
if (level > 20) {
185186
return next();
186187
}
187188

org.gitools.heatmap/src/main/java/org/gitools/heatmap/header/HierarchicalCluster.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,13 @@
4545
import java.util.*;
4646

4747
@XmlAccessorType(XmlAccessType.FIELD)
48-
@XmlType(propOrder = {"name", "parentName", "leaves", "distance", "weight", "color", "children"})
48+
@XmlType(propOrder = {"name", "sortName", "parentName", "leaves", "distance", "weight", "color", "children"})
4949
public class HierarchicalCluster implements Clusters, Comparable<HierarchicalCluster> {
5050

5151
private String name;
5252

53+
private String sortName;
54+
5355
private String parentName;
5456

5557
private int leaves;
@@ -116,7 +118,7 @@ public Set<String> getIdentifiers(Set<String> idSet) {
116118

117119
public Map<String, String> getMaxLevel(Map<String, String> idSet) {
118120
if (isLeaf()) {
119-
idSet.put(name, parentName);
121+
idSet.put(name, sortName == null ? parentName : sortName );
120122
} else {
121123
for (HierarchicalCluster child : children) {
122124
child.getMaxLevel(idSet);
@@ -140,6 +142,14 @@ public void setName(String name) {
140142
}
141143
}
142144

145+
public String getSortName() {
146+
return sortName;
147+
}
148+
149+
public void setSortName(String sortName) {
150+
this.sortName = sortName;
151+
}
152+
143153
public void addChild(HierarchicalCluster cluster) {
144154
getChildren().add(cluster);
145155
}

0 commit comments

Comments
 (0)