fixes a tree display issue in transaction details view
This commit is contained in:
parent
2885cb9602
commit
85d9c92f21
|
@ -81,4 +81,8 @@ public class TxAttribute implements ITxAttribute, Serializable {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "FtxAttr: " + attributeType.toString() + "=" + value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package com.minres.scviewer.e4.application.parts.txTableTree;
|
package com.minres.scviewer.e4.application.parts.txTableTree;
|
||||||
|
|
||||||
import java.util.AbstractMap;
|
import java.util.AbstractMap;
|
||||||
|
import java.util.AbstractMap.SimpleEntry;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.minres.scviewer.database.tx.ITx;
|
import com.minres.scviewer.database.tx.ITx;
|
||||||
|
import com.minres.scviewer.database.tx.ITxAttribute;
|
||||||
import com.minres.scviewer.e4.application.Messages;
|
import com.minres.scviewer.e4.application.Messages;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,20 +61,22 @@ public class TransactionTreeNode implements Comparable<TransactionTreeNode>{
|
||||||
public Object[] getAttributeListForHier() {
|
public Object[] getAttributeListForHier() {
|
||||||
if(childs==null) {
|
if(childs==null) {
|
||||||
Map<String, Object> res = element.getAttributes().stream()
|
Map<String, Object> res = element.getAttributes().stream()
|
||||||
.filter(txAttr -> txAttr.getName().startsWith(hier_path))
|
.filter(txAttr -> hier_path.length()== 0 || txAttr.getName().startsWith(hier_path+'.'))
|
||||||
.map(txAttr -> {
|
.map(txAttr -> mapElemet(txAttr))
|
||||||
String target = hier_path.length()==0?txAttr.getName():txAttr.getName().replace(hier_path+'.', "");
|
|
||||||
String[] tokens = target.split("\\.");
|
|
||||||
if(tokens.length==1)
|
|
||||||
return new AbstractMap.SimpleEntry<>(tokens[0], txAttr);
|
|
||||||
else
|
|
||||||
return new AbstractMap.SimpleEntry<>(tokens[0], new TransactionTreeNode(element, hier_path.length()>0?hier_path+"."+tokens[0]:tokens[0]));
|
|
||||||
})
|
|
||||||
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue(), (first, second) -> first));
|
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue(), (first, second) -> first));
|
||||||
childs = new TreeMap<String, Object>(res).values().toArray();
|
childs = new TreeMap<String, Object>(res).values().toArray();
|
||||||
}
|
}
|
||||||
return childs;
|
return childs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SimpleEntry<String, ? extends Object> mapElemet(ITxAttribute txAttr) {
|
||||||
|
String target = hier_path.length()==0?txAttr.getName():txAttr.getName().replace(hier_path+'.', "");
|
||||||
|
String[] tokens = target.split("\\.");
|
||||||
|
if(tokens.length==1)
|
||||||
|
return new AbstractMap.SimpleEntry<>(tokens[0], txAttr);
|
||||||
|
else
|
||||||
|
return new AbstractMap.SimpleEntry<>(tokens[0], new TransactionTreeNode(element, hier_path.length()>0?hier_path+"."+tokens[0]:tokens[0]));
|
||||||
|
}
|
||||||
|
|
||||||
private Object[] childs=null;
|
private Object[] childs=null;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue