[jbpm-commits] JBoss JBPM SVN: r2892 - in projects/gwt-console/trunk: rpc/src/main/java/org/jboss/bpm/console/client/model/jbpm3 and 5 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Nov 12 06:37:12 EST 2008


Author: heiko.braun at jboss.com
Date: 2008-11-12 06:37:11 -0500 (Wed, 12 Nov 2008)
New Revision: 2892

Added:
   projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/jbpm3/TokenReference.java
Modified:
   projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/ProcessInstance.java
   projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/util/SimpleDateParser.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java
   projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java
   projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceList.java
   projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java
   projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java
Log:
Added token references to process instance DTO

Modified: projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/ProcessInstance.java
===================================================================
--- projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/ProcessInstance.java	2008-11-12 11:00:17 UTC (rev 2891)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/ProcessInstance.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -22,6 +22,8 @@
 package org.jboss.bpm.console.client.model;
 
 
+import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
+
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import java.util.Date;
@@ -47,6 +49,8 @@
 
    private transient Lifecycle lifecycle;
 
+   private TokenReference rootToken;
+
    public ProcessInstance()
    {
       initLifecycle();
@@ -244,4 +248,14 @@
          super("Illegal transition current " + current + " next " + next);
       }
    }
+
+   public TokenReference getRootToken()
+   {
+      return rootToken;
+   }
+
+   public void setRootToken(TokenReference rootToken)
+   {
+      this.rootToken = rootToken;
+   }
 }

Added: projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/jbpm3/TokenReference.java
===================================================================
--- projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/jbpm3/TokenReference.java	                        (rev 0)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/jbpm3/TokenReference.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.console.client.model.jbpm3;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+ at XmlRootElement(name = "tokenReference")
+public class TokenReference
+{
+   private long id;
+   private Set<TokenReference> children = new HashSet<TokenReference>();
+
+   public TokenReference(long id)
+   {
+      this.id = id;
+   }
+
+   public Set<TokenReference> getChildren()
+   {
+      return children;
+   }
+}

Modified: projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/util/SimpleDateParser.java
===================================================================
--- projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/util/SimpleDateParser.java	2008-11-12 11:00:17 UTC (rev 2891)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/util/SimpleDateParser.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -77,7 +77,7 @@
 
 	private String instructions = "";
 
-	private static void _parse(String format, String[] args) {
+   private static void _parse(String format, String[] args) {
 		if (format.length() == 0)
 			return;
 		if (format.startsWith("'")){

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java	2008-11-12 11:00:17 UTC (rev 2891)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -24,12 +24,15 @@
 import org.jboss.bpm.console.client.model.ProcessDefinition;
 import org.jboss.bpm.console.client.model.ProcessInstance;
 import org.jboss.bpm.console.client.model.TaskReference;
+import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
 import org.jbpm.graph.def.Transition;
+import org.jbpm.graph.exe.Token;
 import org.jbpm.taskmgmt.exe.PooledActor;
 
 import java.util.Date;
 import java.util.List;
 import java.util.Set;
+import java.util.Map;
 
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
@@ -48,9 +51,30 @@
       boolean suspended = i0.isSuspended();
       long processId = i0.getProcessDefinition().getId();
       long instanceId = i0.getId();
-      return new ProcessInstance(instanceId, processId, start, end, suspended);
+      ProcessInstance processInstance = new ProcessInstance(instanceId, processId, start, end, suspended);
+
+      // token
+      Token t0 = i0.getRootToken();
+      processInstance.setRootToken(Transform.tokenReference(t0));
+      return processInstance;
    }
 
+   private static TokenReference tokenReference(Token t0)
+   {
+      TokenReference rootToken = new TokenReference(t0.getId());
+
+      Map children = t0.getChildren();
+      if(children!=null)
+      {
+         for(Object o : children.values())
+         {
+            Token t1 = (Token)o;
+            rootToken.getChildren().add( Transform.tokenReference(t1) );
+         }
+      }
+      return rootToken;
+   }
+
    public static void doTransition(org.jbpm.graph.exe.ProcessInstance p0, String nextState)
    {
       ProcessInstance instance = Transform.processInstance(p0);

Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java	2008-11-12 11:00:17 UTC (rev 2891)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -22,12 +22,12 @@
 package org.jboss.bpm.console.client.model;
 
 import com.google.gwt.json.client.*;
-import com.allen_sauer.gwt.log.client.Log;
 import org.jboss.bpm.console.client.model.forms.FieldDef;
 import org.jboss.bpm.console.client.model.forms.FormDef;
 import org.jboss.bpm.console.client.util.JSONWalk;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -177,4 +177,24 @@
       return formDef;
    }
 
+   public static ProcessInstance parseProcessInstance(JSONObject root)
+   {
+
+      long id = JSONWalk.on(root).next("instanceId").asLong();
+      long parentId = JSONWalk.on(root).next("parentId").asLong();
+      Date start = JSONWalk.on(root).next("startDate").asDate();
+
+      JSONWalk.JSONWrapper endDateJSON = JSONWalk.on(root).next("endDate");
+      Date end = null;
+      if(endDateJSON!=null)
+         end = endDateJSON.asDate();
+
+      boolean suspended = JSONWalk.on(root).next("suspended").asBool();
+
+      return new ProcessInstance(
+            id, parentId,
+            start, end,
+            suspended
+      );
+   }
 }

Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceList.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceList.java	2008-11-12 11:00:17 UTC (rev 2891)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceList.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -22,6 +22,8 @@
 package org.jboss.bpm.console.client.process;
 
 import com.google.gwt.http.client.*;
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.json.client.JSONObject;
 import com.gwtext.client.data.*;
 import com.gwtext.client.widgets.MessageBox;
 import com.gwtext.client.widgets.MessageBoxConfig;
@@ -32,6 +34,7 @@
 import org.jboss.bpm.console.client.util.DateRenderer;
 import org.jboss.bpm.console.client.model.ProcessDefinition;
 import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.DTOParser;
 import org.jboss.bpm.console.client.widgets.RemoteListView;
 
 import java.util.HashMap;
@@ -175,13 +178,26 @@
 
    public static ProcessInstance transform(Record r)
    {
-      ProcessInstance pd = new ProcessInstance(
+      /*ProcessInstance processInstance = new ProcessInstance(
         Long.valueOf(r.getAsString("instanceId")),
         Long.valueOf( r.getAsString("parentId")),
         r.getAsDate("startDate"),
         r.getAsDate("endDate"),
-        r.getAsBoolean("suspended"));
-      return pd;
+        r.getAsBoolean("suspended"));*/
+
+      ProcessInstance processInstance = null;
+      try
+      {
+         JavaScriptObject js = r.getDataAsJsObject();
+         JSONObject jso = new JSONObject(js);
+         processInstance = DTOParser.parseProcessInstance(jso);
+      }
+      catch (Throwable t)
+      {
+         Log.error("Failed to parse process instance", t);
+      } 
+      
+      return processInstance;
    }
 
    protected ColumnModel createColumnModel()

Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java	2008-11-12 11:00:17 UTC (rev 2891)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -95,10 +95,11 @@
 
       PaddedPanel tabPadding = new PaddedPanel(tabPanel, 0,10,0,10);      
 
+      // ----------------------------------------
+
       Panel detailsForm = assembleDetailsForm();
+      
 
-      // ----------------------------------------
-
       tabPanel.add(detailsForm);
       tabPanel.add( new Panel("Advanced") );
       // ----------------------------------

Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java	2008-11-12 11:00:17 UTC (rev 2891)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java	2008-11-12 11:37:11 UTC (rev 2892)
@@ -27,7 +27,10 @@
 import com.google.gwt.json.client.JSONArray;
 
 import java.util.Iterator;
+import java.util.Date;
 
+import org.jboss.bpm.console.client.model.util.SimpleDateParser;
+
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
@@ -141,6 +144,19 @@
          }
       }
 
+      public Date asDate()
+           {
+              if(value.isString()!=null)
+              {
+                 return SimpleDateParser.parse(value.isString().stringValue(), "dd-MM-yy HH:mm:ss");
+              }
+              else
+              {
+                 throw new IllegalArgumentException("Not a date string: " + value);
+              }
+           }
+
+
       public JSONArray asArray()
       {
          if(value.isArray()!=null)




More information about the jbpm-commits mailing list