From 85d9c92f21df239bbacdfa36862228fb4a66ea03 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Fri, 24 Feb 2023 11:28:40 +0100 Subject: [PATCH] fixes a tree display issue in transaction details view --- .../scviewer/database/ftr/TxAttribute.java | 4 ++++ .../txTableTree/TransactionTreeNode.java | 22 +++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxAttribute.java b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxAttribute.java index 19042a9..4bbebfc 100644 --- a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxAttribute.java +++ b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/TxAttribute.java @@ -81,4 +81,8 @@ public class TxAttribute implements ITxAttribute, Serializable { return value; } + @Override + public String toString() { + return "FtxAttr: " + attributeType.toString() + "=" + value; + } } diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/txTableTree/TransactionTreeNode.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/txTableTree/TransactionTreeNode.java index 4c1c17e..539d2d9 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/txTableTree/TransactionTreeNode.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/txTableTree/TransactionTreeNode.java @@ -1,11 +1,13 @@ package com.minres.scviewer.e4.application.parts.txTableTree; import java.util.AbstractMap; +import java.util.AbstractMap.SimpleEntry; import java.util.Map; import java.util.TreeMap; import java.util.stream.Collectors; import com.minres.scviewer.database.tx.ITx; +import com.minres.scviewer.database.tx.ITxAttribute; import com.minres.scviewer.e4.application.Messages; /** @@ -59,20 +61,22 @@ public class TransactionTreeNode implements Comparable{ public Object[] getAttributeListForHier() { if(childs==null) { Map res = element.getAttributes().stream() - .filter(txAttr -> txAttr.getName().startsWith(hier_path)) - .map(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])); - }) + .filter(txAttr -> hier_path.length()== 0 || txAttr.getName().startsWith(hier_path+'.')) + .map(txAttr -> mapElemet(txAttr)) .collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue(), (first, second) -> first)); childs = new TreeMap(res).values().toArray(); } return childs; } + + private SimpleEntry 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;