Author: heiko.braun(a)jboss.com
Date: 2010-04-22 07:35:12 -0400 (Thu, 22 Apr 2010)
New Revision: 1039
Modified:
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/model/JSOParser.java
Log:
Fix BPMC-42: Current activity of a process instance is always 'n/a'
Modified:
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/model/JSOParser.java
===================================================================
---
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/model/JSOParser.java 2010-04-22
09:49:28 UTC (rev 1038)
+++
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/model/JSOParser.java 2010-04-22
11:35:12 UTC (rev 1039)
@@ -94,7 +94,13 @@
start, end,
suspended
);
-
+
+ JSOModel rootTokenJson = root.getObject("rootToken");
+
+ if (rootTokenJson != null) {
+ TokenReference rootToken = parseTokenReference(rootTokenJson);
+ processInstance.setRootToken(rootToken);
+ }
// tokens
/*JSONWalk.JSONWrapper rootTokenJSON =
JSONWalk.on(root).next("rootToken");
if (rootTokenJSON != null) {
@@ -108,6 +114,43 @@
}
+ private static TokenReference parseTokenReference(JSOModel rootToken) {
+ TokenReference tokenReference = new TokenReference();
+ tokenReference.setId(rootToken.get("id"));
+ tokenReference.setCurrentNodeName(rootToken.get("currentNodeName"));
+ tokenReference.setCanBeSignaled(rootToken.getBoolean("canBeSignaled"));
+
+ if (rootToken.hasKey("name")) {
+ tokenReference.setName(rootToken.get("name"));
+ }
+
+ JsArray<JSOModel> tokenChildrenJson =
rootToken.getArray("children");
+ // parse children elements
+ if (tokenChildrenJson != null) {
+ List<TokenReference> children = new ArrayList<TokenReference>();
+
+ for (int i = 0; i < tokenChildrenJson.length(); i++) {
+ children.add(parseTokenReference(tokenChildrenJson.get(i)));
+ }
+
+ tokenReference.setChildren(children);
+ }
+
+ JsArray<JSOModel> tokenSignalsJson =
rootToken.getArray("availableSignals");
+ // parse availableSignals elements
+ if (tokenSignalsJson != null) {
+ // this will be probably always an empty array - as described in ModelAdaptor in
adoptExecution method
+ List<String> availableSignals = new ArrayList<String>();
+ for (int i = 0; i < tokenSignalsJson.length(); i++) {
+ availableSignals.add(tokenSignalsJson.get(i).toString());
+ }
+
+ tokenReference.setAvailableSignals(availableSignals);
+ }
+
+ return tokenReference;
+ }
+
public static List<ReportReference> parseReportConfig(String json)
{
List<ReportReference> results = new ArrayList<ReportReference>();
Show replies by date