diff --git a/src/main/jastadd/common/Tracing.jadd b/src/main/jastadd/common/Tracing.jadd index bce1ccbaaf50f82503af10b69bbed6cb556b51c5..115846d3450729903551dfbc6fc5811857313b9e 100644 --- a/src/main/jastadd/common/Tracing.jadd +++ b/src/main/jastadd/common/Tracing.jadd @@ -37,15 +37,31 @@ aspect Tracing { de.tudresden.inf.st.jastadd.dumpAst.ast.Dumper.read(world) .setNameMethod(o -> o == null ? "null" : o.getClass().getSimpleName()) .setBackgroundColorMethod(n -> (n == highlightNode ? highlightColor : DEFAULT_COLOR)) - .includeTokensWhen((node, tokenName, value) -> !tokenName.matches("Q.") && !tokenName.equals("TimeStamp")) // FIXME remove domain-specific code + .includeTokensWhen((node, tokenName, value) -> !tokenName.matches("Q.") && !tokenName.equals("TimeStamp") && !tokenName.startsWith("_ragconnect_")) // FIXME remove domain-specific code .includeAttributeWhen((node, attributeName, isNTA, value) -> isNTA) - .<ASTNode>includeChildWhen((parentNode, childNode, contextName) -> !((contextName.equals("Pose") || contextName.equals("Robot")) && childNode.inDemonstrationTable())) + .<ASTNode>includeChildWhen((parentNode, childNode, contextName) -> { + if (contextName.equals("DemonstrationTable")) { + return false; + } else if ("Selection".equals(contextName) && childNode instanceof Selection && parentNode instanceof RobotWorld) { + Selection s = (Selection) childNode; + RobotWorld w = (RobotWorld) parentNode; + int LAST_X_SELECTIONS = 5; + for (int i = w.getNumSelection() - 1; i > 0 && i > w.getNumSelection() - 1 - LAST_X_SELECTIONS; i--) { + if (w.getSelection(i) == childNode) { + return true; + } + } + return false; + } else { + return true; + } + }) .<ASTNode>includeRelationsWhen((sourceNode, targetNode, roleName) -> !roleName.equals("AttachedRobot") && !(sourceNode != null && sourceNode.inDemonstrationTable()) && !(targetNode != null && targetNode.inDemonstrationTable())) // !sourceNode.inDemonstrationTable() .dumpAsSVG(svgPath); } catch (java.io.IOException e) { e.printStackTrace(); } - de.tudresden.inf.st.mg.ImmersiveSortingController.getInstance().publish(now, 0, step, svgPath, "context"); + de.tudresden.inf.st.mg.common.Webserver.getInstance().publish(now, 0, step, svgPath, "context"); } }