JBoss JBPM SVN: r2904 - in projects/gwt-console/trunk: server/src/main/java/org/jboss/bpm/console/server/dao and 3 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 06:47:13 -0500 (Thu, 13 Nov 2008)
New Revision: 2904
Added:
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ExtensionDAO.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ExtensionDAO.java
Removed:
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DiagramDAO.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java
Modified:
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java
Log:
Start remote signaling implementation
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/JBPM3Management.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -30,7 +30,7 @@
import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
import org.jboss.bpm.console.server.dao.DAOFactory;
-import org.jboss.bpm.console.server.dao.DiagramDAO;
+import org.jboss.bpm.console.server.dao.ExtensionDAO;
import org.jboss.bpm.console.server.dao.ProcessDAO;
import javax.servlet.http.HttpServletRequest;
@@ -48,7 +48,7 @@
{
private static final Log log = LogFactory.getLog(JBPM3Management.class);
- private DiagramDAO diagramDAO = null;
+ private ExtensionDAO extensionDAO = null;
private ProcessDAO processDAO = null;
private ProcessDAO getProcessDAO()
@@ -64,15 +64,15 @@
}
- private DiagramDAO getDiagramDAO()
+ private ExtensionDAO getExtensionDAO()
{
- if(null==this.diagramDAO)
+ if(null==this.extensionDAO)
{
DAOFactory factory = DAOFactory.newInstance();
- this.diagramDAO = factory.createDiagramDAO();
+ this.extensionDAO = factory.createDiagramDAO();
}
- return this.diagramDAO;
+ return this.extensionDAO;
}
@@ -137,7 +137,7 @@
long id
)
{
- byte[] image = getDiagramDAO().getProcessImage(id);
+ byte[] image = getExtensionDAO().getProcessImage(id);
if(null==image)
return Response.serverError().build();
else
@@ -152,7 +152,7 @@
long id
)
{
- return getDiagramDAO().getDiagramInfo(id);
+ return getExtensionDAO().getDiagramInfo(id);
}
@GET
@@ -163,8 +163,34 @@
long id
)
{
- ActiveNodeInfo activNodeInfo = getDiagramDAO().getActivNodeInfo(id);
+ ActiveNodeInfo activNodeInfo = getExtensionDAO().getActivNodeInfo(id);
return activNodeInfo;
}
+ @POST
+ @Path("tokens/{id}/signal/{signalName}")
+ @Produces("application/json")
+ public Response signalToken(
+ @PathParam("id")
+ long id,
+ @PathParam("signalName")
+ String signalName)
+ {
+ getExtensionDAO().signalToken(id, signalName);
+ return Response.ok().build();
+ }
+
+ /*@GET
+ @Path("token/{tokenId}/signal")
+ @Produces("application/json")
+ public Response signalTokenDefault(
+ @PathParam("tokenId")
+ long tokenId
+
+ )
+ {
+ // take default transition
+ return signalToken(tokenId, null);
+ } */
+
}
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -123,6 +123,7 @@
@PathParam("next")
String next)
{
+ log.debug("Change instance (ID "+instanceId+") to state " +next);
getProcessDAO().changeState(instanceId, next);
return Response.ok().build();
}
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -30,7 +30,7 @@
{
public abstract ProcessDAO createProcessDAO();
- public abstract DiagramDAO createDiagramDAO();
+ public abstract ExtensionDAO createDiagramDAO();
public abstract TaskDAO createTaskDAO();
Deleted: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DiagramDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DiagramDAO.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DiagramDAO.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -1,40 +0,0 @@
-/*
- * 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.server.dao;
-
-import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
-import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
-import org.jboss.bpm.console.server.dao.ProcessDAO;
-
-/**
- * Proprietary to jBPM3, no sure if it will stay.
- *
- * @author Heiko.Braun <heiko.braun(a)jboss.com>
- */
-public interface DiagramDAO
-{
- byte[] getProcessImage(long processId);
-
- DiagramInfo getDiagramInfo(long processId);
-
- ActiveNodeInfo getActivNodeInfo(long instanceId);
-}
Copied: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ExtensionDAO.java (from rev 2755, projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DiagramDAO.java)
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ExtensionDAO.java (rev 0)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ExtensionDAO.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -0,0 +1,42 @@
+/*
+ * 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.server.dao;
+
+import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
+import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
+import org.jboss.bpm.console.server.dao.ProcessDAO;
+
+/**
+ * Proprietary to jBPM3, no sure if it will stay.
+ *
+ * @author Heiko.Braun <heiko.braun(a)jboss.com>
+ */
+public interface ExtensionDAO
+{
+ byte[] getProcessImage(long processId);
+
+ DiagramInfo getDiagramInfo(long processId);
+
+ ActiveNodeInfo getActivNodeInfo(long instanceId);
+
+ void signalToken(long tokenId, String signal);
+}
Property changes on: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ExtensionDAO.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -192,4 +192,10 @@
facade.execute(command);
}
}
+
+ public void signalToken(long tokenId, String signalName)
+ {
+ SignalCommand command = new SignalCommand(tokenId, signalName);
+ facade.execute(command);
+ }
}
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -34,9 +34,9 @@
return (ProcessDAO) DAOProxy.newInstance(new JBPM3ProcessDAO());
}
- public DiagramDAO createDiagramDAO()
+ public ExtensionDAO createDiagramDAO()
{
- return (DiagramDAO) DAOProxy.newInstance( new JBPM3DiagramDAO() );
+ return (ExtensionDAO) DAOProxy.newInstance( new JBPM3ExtensionDAO() );
}
Deleted: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -1,84 +0,0 @@
-/*
- * 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.server.dao.internal;
-
-import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
-import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
-import org.jboss.bpm.console.client.model.jbpm3.DiagramNodeInfo;
-import org.jboss.bpm.console.server.dao.DiagramDAO;
-
-import java.io.InputStream;
-import java.util.List;
-
-/**
- * @author Heiko.Braun <heiko.braun(a)jboss.com>
- */
-public class JBPM3DiagramDAO implements DiagramDAO
-{
- private JBPM3CommandDelegate delegate;
-
- private static final String PROCESSIMAGE_FILENAME = "processimage.jpg";
- private static final String GPD_XML_FILENAME = "gpd.xml";
-
- public JBPM3DiagramDAO()
- {
- this.delegate = new JBPM3CommandDelegate();
- }
-
- public byte[] getProcessImage(long processId)
- {
- org.jbpm.graph.def.ProcessDefinition p0 = delegate.getActualDefinition(processId);
- return p0.getFileDefinition().getBytes(PROCESSIMAGE_FILENAME);
- }
-
- public DiagramInfo getDiagramInfo(long processId)
- {
- org.jbpm.graph.def.ProcessDefinition p0 = delegate.getActualDefinition(processId);
- InputStream in = p0.getFileDefinition().getInputStream(GPD_XML_FILENAME);
- return DiagramInfoParser.parse(in);
- }
-
- public ActiveNodeInfo getActivNodeInfo(long instanceId)
- {
- org.jbpm.graph.exe.ProcessInstance instance = delegate.getActualInstance(instanceId);
- String currentNodeName = instance.getRootToken().getNode().getName();
-
- DiagramInfo diagram = getDiagramInfo(instance.getProcessDefinition().getId());
- List<DiagramNodeInfo> nodes = diagram.getNodeList();
-
- DiagramNodeInfo activeNode = null;
- int i = 0;
- for(DiagramNodeInfo n : nodes)
- {
- if(currentNodeName.equals(n.getName()))
- {
- activeNode = n;
- break;
- }
- }
-
- if(null==activeNode)
- throw new RuntimeException("Failed to retrieve activeNodeInfo for instance " + instanceId);
-
- return new ActiveNodeInfo(diagram.getWidth(), diagram.getHeight(), activeNode);
- }
-}
Copied: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ExtensionDAO.java (from rev 2755, projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java)
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ExtensionDAO.java (rev 0)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ExtensionDAO.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -0,0 +1,90 @@
+/*
+ * 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.server.dao.internal;
+
+import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
+import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
+import org.jboss.bpm.console.client.model.jbpm3.DiagramNodeInfo;
+import org.jboss.bpm.console.server.dao.ExtensionDAO;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @author Heiko.Braun <heiko.braun(a)jboss.com>
+ */
+public class JBPM3ExtensionDAO implements ExtensionDAO
+{
+ private JBPM3CommandDelegate delegate;
+
+ private static final String PROCESSIMAGE_FILENAME = "processimage.jpg";
+ private static final String GPD_XML_FILENAME = "gpd.xml";
+
+ public JBPM3ExtensionDAO()
+ {
+ this.delegate = new JBPM3CommandDelegate();
+ }
+
+ public byte[] getProcessImage(long processId)
+ {
+ org.jbpm.graph.def.ProcessDefinition p0 = delegate.getActualDefinition(processId);
+ return p0.getFileDefinition().getBytes(PROCESSIMAGE_FILENAME);
+ }
+
+ public DiagramInfo getDiagramInfo(long processId)
+ {
+ org.jbpm.graph.def.ProcessDefinition p0 = delegate.getActualDefinition(processId);
+ InputStream in = p0.getFileDefinition().getInputStream(GPD_XML_FILENAME);
+ return DiagramInfoParser.parse(in);
+ }
+
+ public ActiveNodeInfo getActivNodeInfo(long instanceId)
+ {
+ org.jbpm.graph.exe.ProcessInstance instance = delegate.getActualInstance(instanceId);
+ String currentNodeName = instance.getRootToken().getNode().getName();
+
+ DiagramInfo diagram = getDiagramInfo(instance.getProcessDefinition().getId());
+ List<DiagramNodeInfo> nodes = diagram.getNodeList();
+
+ DiagramNodeInfo activeNode = null;
+ int i = 0;
+ for(DiagramNodeInfo n : nodes)
+ {
+ if(currentNodeName.equals(n.getName()))
+ {
+ activeNode = n;
+ break;
+ }
+ }
+
+ if(null==activeNode)
+ throw new RuntimeException("Failed to retrieve activeNodeInfo for instance " + instanceId);
+
+ return new ActiveNodeInfo(diagram.getWidth(), diagram.getHeight(), activeNode);
+ }
+
+
+ public void signalToken(long tokenId, String signal)
+ {
+ delegate.signalToken(tokenId, signal);
+ }
+}
Property changes on: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ExtensionDAO.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-11-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -21,13 +21,11 @@
*/
package org.jboss.bpm.console.client;
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.http.client.URL;
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 java.util.List;
-
-import com.allen_sauer.gwt.log.client.Log;
-
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
*/
@@ -74,7 +72,7 @@
StringBuffer sb = new StringBuffer();
for(int i=0; i<possibleRoles.length; i++)
{
- sb.append(possibleRoles[i]);
+ sb.append(URL.encode(possibleRoles[i]));
if(i<possibleRoles.length-1)
sb.append(",");
}
@@ -119,7 +117,7 @@
public String getTaskListByActorURL(String actor)
{
- return getBaseUrl() + "/rs/tasks/actor/"+actor;
+ return getBaseUrl() + "/rs/tasks/actor/"+URL.encode(actor);
}
public String getTaskFormDefURL(long processId, long taskId)
@@ -130,6 +128,12 @@
public String getTaskAssignmentURL(long id, String actor)
{
String actualActor = actor == null ? "none" : actor;
- return getBaseUrl() + "/rs/tasks/"+id+"/assignment/"+actualActor;
+ return getBaseUrl() + "/rs/tasks/"+id+"/assignment/"+URL.encode(actualActor);
}
+
+ public String getTokenSignalUrl(TokenReference tok, String signal)
+ {
+ String encodedSignal = URL.encode(signal);
+ return getBaseUrl() + "/rs/tokens/"+tok.getId()+"/signal/"+encodedSignal;
+ }
}
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-13 11:46:06 UTC (rev 2903)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-13 11:47:13 UTC (rev 2904)
@@ -145,7 +145,6 @@
final Button suspendButton = new Button("Suspend",
new ButtonListenerAdapter()
{
-
public void onClick(Button button, EventObject eventObject)
{
selectedInstance.setState(ProcessInstance.STATE.SUSPENDED);
@@ -198,6 +197,7 @@
public void onSignalToken(TokenReference tok, String signal)
{
Log.debug("signal -> " +signal );
+ remoteSignal(tok, signal);
}
};
@@ -228,7 +228,38 @@
formPanel.setLabelWidth(120);
return formPanel;
}
+
+ private void remoteSignal(TokenReference tok, String signal)
+ {
+ String url = view.getUrlBuilder().getTokenSignalUrl(tok, signal);
+ RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, url);
+ try
+ {
+ rb.sendRequest(null,
+ new RequestCallback() {
+
+ public void onResponseReceived(Request request, Response response)
+ {
+ if(response.getStatusCode()!=200)
+ Log.error("Signaling failed: " +response.getText());
+ else
+ resetEditor();
+ }
+
+ public void onError(Request request, Throwable t)
+ {
+ // Unknown error
+ Log.error("Unknown error", t);
+ }
+ });
+ }
+ catch (RequestException e1)
+ {
+ Log.error("Request failed", e1);
+ }
+ }
+
private void persistStateChange()
{
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, view.getUrlBuilder().getStateChangeURL(
@@ -242,9 +273,10 @@
public void onResponseReceived(Request request, Response response)
{
- // testSuccess
- instanceList.reloadStore();
- selectedInstance = null;
+ if(response.getStatusCode()!=200)
+ Log.error("Failed to change state: " +response.getStatusText());
+ else
+ resetEditor();
}
public void onError(Request request, Throwable t)
@@ -256,8 +288,7 @@
}
catch (RequestException e1)
{
- view.setError(e1.getMessage());
- e1.printStackTrace();
+ Log.error("Request failed", e1);
}
}
@@ -277,5 +308,11 @@
{
return "bpm-instance-icon";
}
+
+ private void resetEditor()
+ {
+ instanceList.reloadStore();
+ selectedInstance = null;
+ }
}
17 years, 5 months
JBoss JBPM SVN: r2903 - projects/gwt-console/trunk/war/src/main/java/jmaki/xhp.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 06:46:06 -0500 (Thu, 13 Nov 2008)
New Revision: 2903
Modified:
projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java
Log:
Use url encoding when proxy is set to 'passthrough'
Modified: projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java 2008-11-13 11:37:07 UTC (rev 2902)
+++ projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java 2008-11-13 11:46:06 UTC (rev 2903)
@@ -8,6 +8,7 @@
import java.util.*;
import java.net.URL;
import java.net.URLConnection;
+import java.net.URLEncoder;
import java.util.logging.*;
import javax.servlet.*;
@@ -282,11 +283,22 @@
if(passthrough)
{
+ StringBuffer sb = new StringBuffer();
+ sb.append(serviceURL);
+
// override service url and url params
String path = req.getPathInfo();
path = path.substring(path.indexOf("xhp/")+3, path.length());
- urlString = serviceURL + path + "?" + req.getQueryString();
+ StringTokenizer tok = new StringTokenizer(path, "/");
+ while(tok.hasMoreTokens())
+ {
+ sb.append("/").append(URLEncoder.encode(tok.nextToken()));
+ }
+
+ sb.append("?").append(req.getQueryString());
+
+ urlString = sb.toString();
}
}
else
17 years, 5 months
JBoss JBPM SVN: r2902 - in projects/gwt-console/trunk/war/src: main/java/org/jboss/bpm/console/client/util and 1 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 06:37:07 -0500 (Thu, 13 Nov 2008)
New Revision: 2902
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/util/JSONWalk.java
projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java
Log:
Fix dto parser test case. Pooled actors were missing
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-13 11:17:21 UTC (rev 2901)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java 2008-11-13 11:37:07 UTC (rev 2902)
@@ -87,6 +87,7 @@
public static TaskReference parseTaskReference(JSONObject item)
{
+
long id = JSONWalk.on(item).next("id").asLong();
long tokenId = JSONWalk.on(item).next("tokenId").asLong();
long instanceId = JSONWalk.on(item).next("processInstanceId").asLong();
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-13 11:17:21 UTC (rev 2901)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java 2008-11-13 11:37:07 UTC (rev 2902)
@@ -69,7 +69,10 @@
match = JSONWalk.on(child).next(name);
}
}
-
+
+ if(null==match)
+ throw new IllegalArgumentException("No such element '" + name +"'");
+
return match;
}
Modified: projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java
===================================================================
--- projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java 2008-11-13 11:17:21 UTC (rev 2901)
+++ projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java 2008-11-13 11:37:07 UTC (rev 2902)
@@ -45,13 +45,12 @@
}
public void testTaskRefParsing()
- {
- //{"tasks":[{"id":14,"tokenId":6,"processInstanceId":4,"processId":2,"name":"manager evaluation","actor":"manager","isBlocking":false,"isSignalling":true,"transitionNames":["reject","approve"]},{"id":15,"tokenId":12,"processInstanceId":10,"processId":3,"name":"submit raise request","actor":"manager","isBlocking":false,"isSignalling":true,"transitionNames":["submit request"]}]}
-
- String json = "{\"tasks\":[{\"id\":14,\"tokenId\":6,\"processInstanceId\":4,\"processId\":2,\"name\":\"manager evaluation\",\"actor\":\"manager\",\"isBlocking\":false,\"isSignalling\":true,\"transitionNames\":[\"reject\",\"approve\"]},{\"id\":15,\"tokenId\":12,\"processInstanceId\":10,\"processId\":3,\"name\":\"submit raise request\",\"actor\":\"manager\",\"isBlocking\":false,\"isSignalling\":true,\"transitionNames\":[\"submit request\"]}]}";
+ {
+ String json = "{\"tasks\":[{\"id\":14,\"tokenId\":6,\"processInstanceId\":4,\"processId\":2,\"name\":\"manager evaluation\",\"actor\":\"manager\",\"isBlocking\":false,\"isSignalling\":true,\"transitionNames\":[\"reject\",\"approve\"],\"pooledActors\":[\"hr\",\"sales\"]}]}";
List<TaskReference> result = DTOParser.parseTaskReferenceList(json);
- assertTrue("Failed to parse TaskReferenceList", result.size()==2);
+ assertTrue("Failed to parse TaskReferenceList", result.size()==1);
assertTrue("Failed to parse transitionNames", result.get(0).getTransitionNames().size()==2);
+ assertTrue("Failed to parse pooledActors", result.get(0).hasPooledActors());
}
17 years, 5 months
JBoss JBPM SVN: r2901 - in jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm: scheduler/ejbtimer and 1 other directory.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2008-11-13 06:17:21 -0500 (Thu, 13 Nov 2008)
New Revision: 2901
Modified:
jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java
jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java
Log:
removed unintended dependency on jdk 5
Modified: jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java
===================================================================
--- jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java 2008-11-13 10:12:36 UTC (rev 2900)
+++ jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java 2008-11-13 11:17:21 UTC (rev 2901)
@@ -247,7 +247,7 @@
private static final long serialVersionUID = 1L;
public Object execute(JbpmContext jbpmContext) throws Exception {
- return jbpmContext.loadProcessInstance(processId).hasEnded();
+ return Boolean.valueOf(jbpmContext.loadProcessInstance(processId).hasEnded());
}
});
return isFinished.booleanValue();
Modified: jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java
===================================================================
--- jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java 2008-11-13 10:12:36 UTC (rev 2900)
+++ jbpm3/branches/jpdl-3.2.3.GA_JBPM-1704/enterprise/src/test/java/org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java 2008-11-13 11:17:21 UTC (rev 2901)
@@ -291,7 +291,7 @@
private static final long serialVersionUID = 1L;
public Object execute(JbpmContext jbpmContext) throws Exception {
- return jbpmContext.loadProcessInstance(processId).hasEnded();
+ return Boolean.valueOf(jbpmContext.loadProcessInstance(processId).hasEnded());
}
});
return isFinished.booleanValue();
17 years, 5 months
JBoss JBPM SVN: r2900 - in projects/spec/trunk/modules/cts: src/test/java/org/jbpm/test and 19 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-13 05:12:36 -0500 (Thu, 13 Nov 2008)
New Revision: 2900
Added:
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/
Removed:
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/
Modified:
projects/spec/trunk/modules/cts/pom.xml
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/ExecutionContextTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal/SignalMultithreadTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal/SignalServiceTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredMarshallerTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java
Log:
Move preview cts tests
Modified: projects/spec/trunk/modules/cts/pom.xml
===================================================================
--- projects/spec/trunk/modules/cts/pom.xml 2008-11-13 09:58:13 UTC (rev 2899)
+++ projects/spec/trunk/modules/cts/pom.xml 2008-11-13 10:12:36 UTC (rev 2900)
@@ -46,7 +46,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <exclude>org/jbpm/test/cts/preview/**/*Test.java</exclude>
+ <exclude>org/jbpm/test/preview/**/*Test.java</exclude>
<exclude>org/jbpm/test/pattern/**/*Test.java</exclude>
</excludes>
</configuration>
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java 2008-11-13 09:58:13 UTC (rev 2899)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -35,14 +35,14 @@
import org.jbpm.api.test.CTSTestCase;
/**
- * Test the basic execution sequence
+ * Test the basic wait state sequence
*
* @author thomas.diesler(a)jboss.com
- * @since 03-Jul-2008
+ * @since 10-Nov-2008
*/
public class WaitStateTest extends CTSTestCase
{
- public void testSequence() throws Exception
+ public void testBasicWaitState() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
Process proc = procDef.newInstance();
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/endevent)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/endevent/EndEventMessageTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.endevent;
+package org.jbpm.test.preview.endevent;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/executioncontext)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/ExecutionContextTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/executioncontext/ExecutionContextTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/executioncontext/ExecutionContextTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.executioncontext;
+package org.jbpm.test.preview.executioncontext;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.gateway.inclusive;
+package org.jbpm.test.preview.gateway.inclusive;
// $Id$
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewaySplitTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.gateway.inclusive;
+package org.jbpm.test.preview.gateway.inclusive;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewayMergeTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.gateway.parallel;
+package org.jbpm.test.preview.gateway.parallel;
// $Id$
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewaySplitTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.gateway.parallel;
+package org.jbpm.test.preview.gateway.parallel;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeInputSetTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.node;
+package org.jbpm.test.preview.node;
// $Id$
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeOutputSetTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.node;
+package org.jbpm.test.preview.node;
// $Id$
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodePropertyTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.node;
+package org.jbpm.test.preview.node;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/process)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/process/ProcessPropertyTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.process;
+package org.jbpm.test.preview.process;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/service/signal)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal/SignalMultithreadTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/service/signal/SignalMultithreadTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal/SignalMultithreadTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.service.signal;
+package org.jbpm.test.preview.service.signal;
// $Id$
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal/SignalServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/service/signal/SignalServiceTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/service/signal/SignalServiceTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.service.signal;
+package org.jbpm.test.preview.service.signal;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/startevent)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/startevent/StartEventSignalTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.startevent;
+package org.jbpm.test.preview.startevent;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/java)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/java/JavaTaskTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.task.java;
+package org.jbpm.test.preview.task.java;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/receive)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/receive/ReceiveTaskTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.task.receive;
+package org.jbpm.test.preview.task.receive;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/send)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/send/SendTaskTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.task.send;
+package org.jbpm.test.preview.task.send;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskCallbackTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.task.user;
+package org.jbpm.test.preview.task.user;
// $Id$
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.task.user;
+package org.jbpm.test.preview.task.user;
// $Id$
Copied: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction (from rev 2897, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction)
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredMarshallerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredMarshallerTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredMarshallerTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.transaction;
+package org.jbpm.test.preview.transaction;
// $Id$
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredTest.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java 2008-11-13 10:12:36 UTC (rev 2900)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.jbpm.test.cts.preview.transaction;
+package org.jbpm.test.preview.transaction;
// $Id$
17 years, 5 months
JBoss JBPM SVN: r2899 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/service and 5 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-13 04:58:13 -0500 (Thu, 13 Nov 2008)
New Revision: 2899
Added:
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitStateImpl.java
Removed:
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitTaskImpl.java
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml
Log:
Token.signal() - ok
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -58,12 +58,12 @@
/**
* Suspend a {@link Token}
*/
- String suspend(Token token);
+ void suspend(Token token);
/**
* Activate a {@link Token}
*/
- Token activate(String tokenID);
+ void activate(Token token);
/**
* Move a given {@link Token} along a given flow.
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -55,14 +55,6 @@
}
/**
- * Start the Process
- *
- * @param proc The Process to start
- * @param att The Attachments in the ExecutionContext
- */
- public abstract void startProcess(Process proc, Attachments att);
-
- /**
* Start the Process from a given start event
*
* @param start The StartEvent that triggers the process
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -38,11 +38,15 @@
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.jbpm.api.Constants;
+import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessDefinition;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.client.Token;
+import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.Node;
+import org.jbpm.api.model.StartEvent;
+import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.builder.preview.ObjectNameFactory;
import org.jbpm.api.model.preview.Assignment;
import org.jbpm.api.model.preview.Group;
@@ -241,11 +245,25 @@
private Token startProcessInternal(Attachments att)
{
+ @SuppressWarnings("serial")
+ class InitialFlow extends SequenceFlowImpl
+ {
+ InitialFlow(StartEvent start)
+ {
+ super(start.getName());
+ }
+ }
+
// Prepare the process to start
- startProcessPrepare();
+ StartEvent start = prepareProcessStart();
+ setProcessStatus(ProcessStatus.Active);
+
+ // Setup the initial token
+ TokenImpl token = new TokenImpl(this, att);
+ token.setLastFlow(new InitialFlow(start));
+ token.setTokenStatus(TokenStatus.Started);
- TokenImpl token = new TokenImpl(this, att);
- return token;
+ return token.signal();
}
public ObjectName startProcessAsync()
@@ -261,13 +279,13 @@
private ObjectName startProcessAsyncInternal(Attachments att)
{
// Prepare the process to start
- startProcessPrepare();
+ StartEvent start = prepareProcessStart();
ProcessEngine engine = getProcessEngine();
ExecutionService exService = engine.getService(ExecutionService.class);
try
{
- exService.startProcess(this, att);
+ exService.startProcess(this, start, att);
return getKey();
}
catch (RuntimeException rte)
@@ -279,20 +297,40 @@
}
}
- private void startProcessPrepare()
+ private StartEvent prepareProcessStart()
{
// Veriy the process state
ProcessStatus procStatus = getProcessStatus();
if (procStatus != ProcessStatus.None && procStatus != ProcessStatus.Ready)
throw new IllegalStateException("Cannot start process in state: " + procStatus);
+ // Get the None Start Event if there is one and start the initial flow
+ StartEvent start = null;
+ for (StartEvent aux : getNodes(StartEvent.class))
+ {
+ if (aux.getTriggerType() == EventDetailType.None)
+ {
+ if (start != null)
+ throw new InvalidProcessException("Process cannot have multiple start events with no trigger");
+ start = aux;
+ }
+ }
+ if (start == null)
+ {
+ List<StartEvent> startEvents = getNodes(StartEvent.class);
+ throw new IllegalStateException("Cannot obtain StartEvent of type 'None' to start the process explicitly: " + startEvents);
+ }
+
// Register the process if needed
ProcessEngine engine = getProcessEngine();
ProcessInstanceService procService = engine.getService(ProcessInstanceService.class);
if (procService.getProcess(getKey()) == null)
procService.registerProcess(this);
+
+ return start;
}
+
public ProcessStatus waitForEnd()
{
return waitForEndInternal(0);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -142,7 +142,7 @@
// Activate the suspended token
if (suspendedToken != null)
{
- tokenExecutor.activate(suspendedToken.getTokenID());
+ tokenExecutor.activate(suspendedToken);
suspendedToken = null;
}
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -176,7 +176,7 @@
// Activate the suspended token
if (suspendedToken != null)
{
- tokenExecutor.activate(suspendedToken.getTokenID());
+ tokenExecutor.activate(suspendedToken);
suspendedToken = null;
}
}
Copied: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitStateImpl.java (from rev 2897, projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitTaskImpl.java)
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitStateImpl.java (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitStateImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.jbpm.ri.model;
+
+//$Id$
+
+import javax.persistence.Entity;
+
+import org.jbpm.api.client.Token;
+import org.jbpm.api.model.Node;
+import org.jbpm.api.model.ProcessStructure;
+import org.jbpm.api.model.WaitState;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
+import org.jbpm.ri.model.builder.SingleInFlowSupport;
+import org.jbpm.ri.model.builder.SingleOutFlowSupport;
+
+/**
+ * A WaitTask is an Atomic Activity that suspends the Token.
+ *
+ * If the Process is executed in the Thread of the calling client, this will return
+ * control to the client.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 11-Nov-2008
+ */
+@Entity(name = "BPMWaitState")
+public class WaitStateImpl extends TaskImpl implements WaitState, SingleOutFlowSupport, SingleInFlowSupport
+{
+ // provide serial version UID
+ private static final long serialVersionUID = 1L;
+
+ public WaitStateImpl(ProcessStructure procStruct, String name)
+ {
+ super(procStruct, TaskType.Wait, name);
+ }
+
+ // Persistence ctor
+ protected WaitStateImpl()
+ {
+ }
+
+ @Override
+ protected FlowHandler getDefaultFlowHandler()
+ {
+ final Node thisNode = this;
+ return new FlowHandler()
+ {
+ private static final long serialVersionUID = 1L;
+
+ public void execute(TokenExecutor tokenExecutor, Token token)
+ {
+ tokenExecutor.suspend(token);
+ }
+
+ @Override
+ public Node getNode()
+ {
+ return thisNode;
+ }
+
+ @Override
+ public void setNode(Node node)
+ {
+ }
+ };
+ }
+
+ public String toString()
+ {
+ return "Task[" + getTaskType() + "," + getName() + "]";
+ }
+}
\ No newline at end of file
Deleted: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitTaskImpl.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitTaskImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -1,92 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt 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.jbpm.ri.model;
-
-//$Id$
-
-import javax.persistence.Entity;
-
-import org.jbpm.api.client.Token;
-import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessStructure;
-import org.jbpm.api.model.WaitState;
-import org.jbpm.api.runtime.preview.FlowHandler;
-import org.jbpm.api.runtime.preview.TokenExecutor;
-import org.jbpm.ri.model.builder.SingleInFlowSupport;
-import org.jbpm.ri.model.builder.SingleOutFlowSupport;
-
-/**
- * A WaitTask is an Atomic Activity that suspends the Token.
- *
- * If the Process is executed in the Thread of the calling client, this will return
- * control to the client.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 11-Nov-2008
- */
-@Entity(name = "BPMWaitTask")
-public class WaitTaskImpl extends TaskImpl implements WaitState, SingleOutFlowSupport, SingleInFlowSupport
-{
- // provide serial version UID
- private static final long serialVersionUID = 1L;
-
- public WaitTaskImpl(ProcessStructure procStruct, String name)
- {
- super(procStruct, TaskType.Wait, name);
- }
-
- // Persistence ctor
- protected WaitTaskImpl()
- {
- }
-
- @Override
- protected FlowHandler getDefaultFlowHandler()
- {
- final Node thisNode = this;
- return new FlowHandler()
- {
- private static final long serialVersionUID = 1L;
-
- public void execute(TokenExecutor tokenExecutor, Token token)
- {
- tokenExecutor.suspend(token);
- }
-
- @Override
- public Node getNode()
- {
- return thisNode;
- }
-
- @Override
- public void setNode(Node node)
- {
- }
- };
- }
-
- public String toString()
- {
- return "Task[" + getTaskType() + "," + getName() + "]";
- }
-}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -61,7 +61,7 @@
import org.jbpm.ri.model.StartEventImpl;
import org.jbpm.ri.model.TaskImpl;
import org.jbpm.ri.model.UserTaskImpl;
-import org.jbpm.ri.model.WaitTaskImpl;
+import org.jbpm.ri.model.WaitStateImpl;
/**
* The ProcessBuilder can be used to dynamically build a {@link Process}.
@@ -182,7 +182,7 @@
}
else if (type == TaskType.Wait)
{
- node = new WaitTaskImpl(procStruct, name);
+ node = new WaitStateImpl(procStruct, name);
}
else if (type == TaskType.Script)
{
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -123,9 +123,9 @@
}
@Override
- public void signal()
+ public Token signal()
{
- delegateToken.signal();
+ return delegateToken.signal();
}
public String toString()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -23,10 +23,8 @@
//$Id$
-import org.jbpm.api.NotImplementedException;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.client.Token.TokenStatus;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.runtime.preview.TokenExecutor;
@@ -44,6 +42,7 @@
// provide logging
final static Logger log = LoggerFactory.getLogger(InProcessTokenExecutor.class);
+ @SuppressWarnings("unused")
private Process proc;
public InProcessTokenExecutor(Process proc)
@@ -51,38 +50,35 @@
this.proc = proc;
}
+ @Override
public void create(Token token, SequenceFlow initialFlow)
{
MutableToken mutableToken = (MutableToken)token;
mutableToken.setTokenStatus(TokenStatus.Created);
mutableToken.setLastFlow(initialFlow);
-
log.debug("Create Token: " + token);
}
+ @Override
public void start(Token token)
{
- ProcessStatus procStatus = proc.getProcessStatus();
- if (procStatus != ProcessStatus.Ready && procStatus != ProcessStatus.Active)
- throw new IllegalStateException("Cannot start token to process in state: " + procStatus);
-
log.debug("Start Token: " + token);
MutableToken mutableToken = (MutableToken)token;
mutableToken.setTokenStatus(TokenStatus.Started);
}
+ @Override
public void move(Token token, SequenceFlow flow)
{
+ log.debug("Move Token: " + token);
if (flow == null)
- throw new IllegalArgumentException("Flow cannot be null");
-
- if (token.getTokenStatus() != TokenStatus.Started)
- throw new IllegalStateException("Cannot move token in state: " + token.getTokenStatus());
-
+ throw new IllegalArgumentException("SequenceFlow cannot be null");
+
MutableToken mutableToken = (MutableToken)token;
mutableToken.setLastFlow(flow);
}
+ @Override
public void stop(Token token)
{
log.debug("Stop Token: " + token);
@@ -90,6 +86,7 @@
mutableToken.setTokenStatus(TokenStatus.Stoped);
}
+ @Override
public void destroy(Token token)
{
log.debug("Destroy Token: " + token);
@@ -97,13 +94,19 @@
mutableToken.setTokenStatus(TokenStatus.Destroyed);
}
- public String suspend(Token token)
+ @Override
+ public void suspend(Token token)
{
- throw new NotImplementedException();
+ log.debug("Suspend Token: " + token);
+ MutableToken mutableToken = (MutableToken)token;
+ mutableToken.setTokenStatus(TokenStatus.Suspended);
}
- public Token activate(String tokenID)
+ @Override
+ public void activate(Token token)
{
- throw new NotImplementedException();
+ log.debug("Activate Token: " + token);
+ MutableToken mutableToken = (MutableToken)token;
+ mutableToken.setTokenStatus(TokenStatus.Started);
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -81,6 +81,7 @@
}
}
+ @Override
public void create(Token token, SequenceFlow initialFlow)
{
synchronized (runnableTokens)
@@ -96,6 +97,7 @@
}
}
+ @Override
public void start(Token token)
{
synchronized (runnableTokens)
@@ -113,6 +115,7 @@
}
}
+ @Override
public void move(Token token, SequenceFlow flow)
{
synchronized (runnableTokens)
@@ -128,6 +131,7 @@
}
}
+ @Override
public void stop(Token token)
{
synchronized (runnableTokens)
@@ -138,6 +142,7 @@
}
}
+ @Override
public void destroy(Token token)
{
synchronized (runnableTokens)
@@ -149,7 +154,8 @@
}
}
- public String suspend(Token token)
+ @Override
+ public void suspend(Token token)
{
synchronized (runnableTokens)
{
@@ -163,20 +169,19 @@
// Release the thread for a suspended token
rtToken.releaseThread();
-
- return token.getTokenID();
}
}
- public Token activate(String tokenID)
+ @Override
+ public void activate(Token token)
{
synchronized (runnableTokens)
{
+ String tokenID = token.getTokenID();
RunnableToken rtToken = runnableTokens.get(tokenID);
if (rtToken == null)
throw new IllegalStateException("Not a runnable token: " + tokenID);
- Token token = rtToken.getToken();
if (token.getTokenStatus() != TokenStatus.Suspended)
throw new IllegalStateException("Activate token in state: " + token.getTokenStatus());
@@ -187,8 +192,6 @@
rtToken = new RunnableToken(this, rtProc, mutableToken);
runnableTokens.put(token.getTokenID(), rtToken);
executor.submit(rtToken);
-
- return token;
}
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -25,26 +25,31 @@
import org.hibernate.Session;
import org.jboss.util.id.UID;
+import org.jbpm.api.client.Process;
import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process;
+import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
+import org.jbpm.api.model.WaitState;
import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.Attachments.Key;
import org.jbpm.api.runtime.preview.BasicExecutionContext;
import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.TokenExecutor;
+import org.jbpm.api.service.ProcessInstanceService;
+import org.jbpm.ri.service.ProcessServiceImpl;
/**
* A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
*
- * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths,
- * and gets split into parallel paths, the normal Sequence Flow should be completely definable.
+ * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths, and gets split into
+ * parallel paths, the normal Sequence Flow should be completely definable.
*
- * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of
- * concurrent process instances or the splitting of the Token for parallel processing within a single process instance.
+ * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of concurrent
+ * process instances or the splitting of the Token for parallel processing within a single process instance.
*
* @author Thomas.Diesler(a)jboss.com
- * @since 20-Apr-2007
+ * @since 29-Sep-2008
*/
public class TokenImpl implements MutableToken
{
@@ -52,7 +57,7 @@
private SequenceFlow flow;
private ExecutionContext context;
private TokenStatus status;
- private Process process;
+ private Process proc;
private Session session;
/**
@@ -63,7 +68,7 @@
this.context = new BasicExecutionContext(att);
this.id = new UID().toString();
this.status = TokenStatus.Created;
- this.process = process;
+ this.proc = process;
}
@Override
@@ -83,11 +88,11 @@
{
this.status = status;
}
-
+
@Override
public Process getProcess()
{
- return process;
+ return proc;
}
@Override
@@ -95,14 +100,14 @@
{
return context;
}
-
+
@Override
public Node getCurrentNode()
{
String targetRef = flow.getTargetRef();
return getProcess().getNode(targetRef);
}
-
+
@Override
public SequenceFlow getLastFlow()
{
@@ -114,13 +119,55 @@
{
this.flow = flow;
}
-
+
@Override
public Token signal()
{
+ Node node = getCurrentNode();
+ if (node == null)
+ throw new IllegalStateException("Cannot obtain current node");
+
+ TokenExecutor tokenExecutor = new InProcessTokenExecutor(proc);
+ RuntimeContext rtContext = new RuntimeContext(tokenExecutor);
+
+ // Add the interceptors that are defined on the ProcessService
+ ProcessServiceImpl procService = (ProcessServiceImpl)node.getProcessEngine().getService(ProcessInstanceService.class);
+ for (NodeInterceptor itor : procService.getNodeInterceptors())
+ rtContext.addInterceptor(itor);
+
+ // Activate a suspened token
+ if (getTokenStatus() == TokenStatus.Suspended)
+ {
+ WaitState task = (WaitState)node;
+ SequenceFlow outFlow = task.getOutFlow();
+ tokenExecutor.activate(this);
+ tokenExecutor.move(this, outFlow);
+ }
+
+ // Travers the token along the nodes
+ while (continueTokenExecution())
+ {
+ // Get the target node
+ node = getCurrentNode();
+
+ // Create a Token that includes node properties
+ DelegatingToken tokCopy = new DelegatingToken(this);
+ rtContext.setToken(tokCopy);
+
+ // Call the interceptor chain
+ rtContext.next();
+ }
+
return this;
}
+ private boolean continueTokenExecution()
+ {
+ TokenStatus tokStatus = getTokenStatus();
+ ProcessStatus procStatus = getProcess().getProcessStatus();
+ return procStatus == ProcessStatus.Active && tokStatus == TokenStatus.Started;
+ }
+
@Override
public Session getSession()
{
@@ -136,24 +183,24 @@
@Override
public MutableToken copyToken()
{
- return new TokenImpl(process, context);
+ return new TokenImpl(proc, context);
}
-
+
@Override
public void mergeToken(Token token)
{
ExecutionContext mergeContext = token.getExecutionContext();
- for(Key key : mergeContext.getAttachmentKeys())
+ for (Key key : mergeContext.getAttachmentKeys())
{
Object mergeValue = mergeContext.getAttachment(key.getClassPart(), key.getNamePart());
Object existValue = context.getAttachment(key.getClassPart(), key.getNamePart());
if (existValue != null && existValue.equals(mergeValue) == false)
throw new IllegalStateException("Cannot merge the same key with different values: " + key);
-
+
context.addAttachment(key.getClassPart(), key.getNamePart(), mergeValue);
}
}
-
+
public String toString()
{
return "[sf=" + getLastFlow() + ",status=" + getTokenStatus() + ",ctx=" + getExecutionContext() + ",id=" + id + "]";
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-13 09:58:13 UTC (rev 2899)
@@ -24,21 +24,18 @@
// $Id$
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.management.ObjectName;
import org.jbpm.api.BPMException;
-import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.ProcessTimeoutException;
-import org.jbpm.api.client.Token;
import org.jbpm.api.client.Process;
import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.client.Token;
import org.jbpm.api.client.Process.ProcessStatus;
import org.jbpm.api.model.Expression;
import org.jbpm.api.model.StartEvent;
-import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.preview.Assignment;
import org.jbpm.api.model.preview.Assignment.AssignTime;
import org.jbpm.api.model.preview.Signal.SignalType;
@@ -82,23 +79,6 @@
}
@Override
- public void startProcess(Process proc, Attachments att)
- {
- // Get the None Start Event if there is one and start the initial flow
- StartEvent start = getNoneStartEvent(proc);
- if (start == null)
- {
- List<StartEvent> startEvents = proc.getNodes(StartEvent.class);
- throw new IllegalStateException("Cannot obtain StartEvent.None to start the process explicitly: " + startEvents);
- }
-
- if (proc.getProcessStatus() == ProcessStatus.Active)
- throw new IllegalStateException("Cannot start an already active process");
-
- startProcessInternal(proc, start, att);
- }
-
- @Override
public void startProcess(Process proc, StartEvent start, Attachments att)
{
startProcessInternal(proc, start, att);
@@ -114,7 +94,7 @@
super(start.getName());
}
}
-
+
RuntimeProcess rtProc = getRuntimeProcess(proc, false);
boolean startProcessThread = (rtProc == null);
@@ -260,21 +240,6 @@
return status == ProcessStatus.Cancelled || status == ProcessStatus.Completed || status == ProcessStatus.Aborted;
}
- private StartEvent getNoneStartEvent(Process proc)
- {
- StartEvent start = null;
- for (StartEvent aux : proc.getNodes(StartEvent.class))
- {
- if (aux.getTriggerType() == EventDetailType.None)
- {
- if (start != null)
- throw new InvalidProcessException("Process cannot have multiple start events with no trigger");
- start = aux;
- }
- }
- return start;
- }
-
private RuntimeProcess getRuntimeProcess(Process proc, boolean createNew)
{
RuntimeProcess rtProcess;
Modified: projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml
===================================================================
--- projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml 2008-11-13 08:55:02 UTC (rev 2898)
+++ projects/spec/trunk/modules/ri/src/main/resources/jbpm-cfg-beans.xml 2008-11-13 09:58:13 UTC (rev 2899)
@@ -53,6 +53,7 @@
<value>org.jbpm.ri.model.StartEventImpl</value>
<value>org.jbpm.ri.model.TaskImpl</value>
<value>org.jbpm.ri.model.UserTaskImpl</value>
+ <value>org.jbpm.ri.model.WaitStateImpl</value>
</set>
</property>
</bean>
17 years, 5 months
JBoss JBPM SVN: r2898 - in projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client: process and 1 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-13 03:55:02 -0500 (Thu, 13 Nov 2008)
New Revision: 2898
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/process/ProcessInstanceListEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
Log:
Implement TokenEditor signal callback
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 22:09:31 UTC (rev 2897)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java 2008-11-13 08:55:02 UTC (rev 2898)
@@ -22,6 +22,7 @@
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.model.jbpm3.TokenReference;
@@ -180,7 +181,7 @@
public static ProcessInstance parseProcessInstance(JSONObject root)
{
- //Log.debug("parse " + root);
+ Log.debug("parse " + root);
long id = JSONWalk.on(root).next("instanceId").asLong();
long parentId = JSONWalk.on(root).next("parentId").asLong();
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 22:09:31 UTC (rev 2897)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-13 08:55:02 UTC (rev 2898)
@@ -193,7 +193,7 @@
detailsForm.getForm().loadRecord(record);
detailsForm.doLayout();
- TokenEditor.SignalCallback callback = new TokenEditor.SignalCallback()
+ final TokenEditor.SignalCallback callback = new TokenEditor.SignalCallback()
{
public void onSignalToken(TokenReference tok, String signal)
{
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java 2008-11-13 08:55:02 UTC (rev 2898)
@@ -69,8 +69,7 @@
// ----------------
- tokenForm = new TokenForm(callback);
- tokenForm.display(instance); // shows the root token
+ tokenForm = new TokenForm(callback);
// ----------------
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java 2008-11-12 22:09:31 UTC (rev 2897)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java 2008-11-13 08:55:02 UTC (rev 2898)
@@ -45,8 +45,8 @@
*/
public class TokenForm extends Panel
{
- private FormPanel tokenForm;
- private Button signalButton;
+ private final FormPanel tokenForm;
+ private final Button signalButton;
final ArrayReader reader = new ArrayReader(new RecordDef(
new FieldDef[]{
new StringFieldDef("signal")
@@ -102,28 +102,27 @@
cb.setEditable(false);
tokenForm.add(cb);
- signalButton = new Button("Signal",
- new ButtonListenerAdapter()
- {
- public void onClick(Button button, EventObject eventObject)
- {
- System.out.println("signal signal");
-
- /*ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
- String signalValue = cb.getValueAsString();
- if(signalValue.equals(""))
- MessageBox.alert("Please select a signal");
- else
- callback.onSignalToken(lastSelectedToken, signalValue);
- */
- }
- }
- );
+ final ButtonListenerAdapter listenerAdapter = new ButtonListenerAdapter()
+ {
+ public void onClick(Button button, EventObject eventObject)
+ {
+ ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
+ String signalValue = cb.getValueAsString();
+ if(signalValue.equals(""))
+ MessageBox.alert("Please select a signal");
+ else
+ callback.onSignalToken(lastSelectedToken, signalValue);
+ }
+
+ };
+ signalButton = new Button("Signal", listenerAdapter);
+
+
tokenForm.addButton(signalButton);
// -------------------
-
+
this.add(tokenForm);
}
@@ -133,14 +132,14 @@
*/
void display(ProcessInstance processInstance)
{
- display(processInstance, processInstance.getRootToken());
+ display(processInstance, processInstance.getRootToken());
}
/**
* display a particular token
*/
- void display(ProcessInstance processInstance, TokenReference tok)
- {
+ void display(final ProcessInstance processInstance, final TokenReference tok)
+ {
Form form = tokenForm.getForm();
if(form.findField("id")!=null) // TODO: the fields are not initialized on first callback?
@@ -163,7 +162,7 @@
else
signalButton.enable();
- }
+ }
// -----------
17 years, 5 months
JBoss JBPM SVN: r2897 - in projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client: widgets and 1 other directory.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-12 17:09:31 -0500 (Wed, 12 Nov 2008)
New Revision: 2897
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/widgets/TokenEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
Log:
Fine tune token editor
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 21:42:38 UTC (rev 2896)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-12 22:09:31 UTC (rev 2897)
@@ -80,7 +80,7 @@
Panel leftHand = new Panel();
leftHand.setFrame(false);
leftHand.setHeader(false);
- leftHand.setBorder(false);
+ leftHand.setBorder(false);
instanceList = new ProcessInstanceList(
proc, "Process Instances", view
@@ -99,7 +99,7 @@
// ----------------------------------------
Panel detailsForm = assembleDetailsForm();
- tokenEditorPanel = new Panel("Tokens");
+ tokenEditorPanel = new Panel("Tokens");
tabPanel.add( detailsForm );
tabPanel.add(tokenEditorPanel);
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java 2008-11-12 21:42:38 UTC (rev 2896)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java 2008-11-12 22:09:31 UTC (rev 2897)
@@ -25,6 +25,8 @@
import com.gwtext.client.data.Node;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.layout.HorizontalLayout;
+import com.gwtext.client.widgets.layout.ColumnLayout;
+import com.gwtext.client.widgets.layout.ColumnLayoutData;
import com.gwtext.client.widgets.tree.TreeNode;
import com.gwtext.client.widgets.tree.TreePanel;
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
@@ -36,8 +38,9 @@
*/
public class TokenEditor extends Panel
{
-
+
private TokenForm tokenForm;
+ private TokenTree tokenTree;
public TokenEditor(final ProcessInstance instance, final SignalCallback callback)
{
@@ -47,22 +50,32 @@
this.setBorder(false);
this.setFrame(false);
- this.setLayout(new HorizontalLayout(10));
+ this.setLayout(new ColumnLayout());
- this.add( new TokenTree(instance.getRootToken(),
+ // ----------------
+
+ tokenTree = new TokenTree(instance.getRootToken(),
new TokenSelectionCallback()
{
public void onSelectedToken(TokenReference tok)
- {
+ {
// update form
tokenForm.display(instance, tok);
}
}
- ) );
+ );
+ tokenTree.expandAll();
+
+ // ----------------
+
tokenForm = new TokenForm(callback);
tokenForm.display(instance); // shows the root token
- this.add(tokenForm);
+
+ // ----------------
+
+ this.add(tokenTree, new ColumnLayoutData(0.3));
+ this.add(tokenForm, new ColumnLayoutData(0.7));
}
class TokenTree extends TreePanel
@@ -74,6 +87,8 @@
{
this.callback = callback;
+ this.setBorder(false);
+
TreeNode outermost = new TreeNode("Tokens");
TreeNode rootNode = buildTreeNode(rootToken);
outermost.appendChild(rootNode);
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java 2008-11-12 21:42:38 UTC (rev 2896)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java 2008-11-12 22:09:31 UTC (rev 2897)
@@ -32,6 +32,7 @@
import com.gwtext.client.widgets.form.Form;
import com.gwtext.client.widgets.form.FormPanel;
import com.gwtext.client.widgets.form.TextField;
+import com.allen_sauer.gwt.log.client.Log;
import org.jboss.bpm.console.client.UIConstants;
import org.jboss.bpm.console.client.model.ProcessInstance;
import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
@@ -69,7 +70,7 @@
tokenForm.setFrame(false);
tokenForm.setBorder(false);
tokenForm.setPaddings(5, 5, 5, 0);
- tokenForm.setLabelWidth(120);
+ tokenForm.setLabelWidth(50);
// ----------
@@ -78,7 +79,7 @@
tokenForm.add(idField);
//tokenForm.add(new TextField("Token Name", "name", 230));
- TextField nameField = new TextField("Current Node Name", "nodeName", 230);
+ TextField nameField = new TextField("Node Name", "nodeName", 230);
nameField.setReadOnly(true);
tokenForm.add(nameField);
@@ -106,12 +107,15 @@
{
public void onClick(Button button, EventObject eventObject)
{
- ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
+ System.out.println("signal signal");
+
+ /*ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
String signalValue = cb.getValueAsString();
if(signalValue.equals(""))
MessageBox.alert("Please select a signal");
else
callback.onSignalToken(lastSelectedToken, signalValue);
+ */
}
}
);
@@ -159,7 +163,7 @@
else
signalButton.enable();
- }
+ }
// -----------
17 years, 5 months
JBoss JBPM SVN: r2896 - in projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client: widgets and 1 other directory.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-12 16:42:38 -0500 (Wed, 12 Nov 2008)
New Revision: 2896
Added:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
Modified:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java
Log:
Refactor token management into dedicated TokenEditor (sweet)
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 20:07:07 UTC (rev 2895)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-12 21:42:38 UTC (rev 2896)
@@ -23,14 +23,17 @@
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.http.client.*;
-import com.google.gwt.json.client.JSONObject;
-import com.google.gwt.user.client.ui.ListBox;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Position;
-import com.gwtext.client.data.*;
-import com.gwtext.client.widgets.*;
+import com.gwtext.client.data.Record;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.PaddedPanel;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.TabPanel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.form.*;
+import com.gwtext.client.widgets.form.DateField;
+import com.gwtext.client.widgets.form.FormPanel;
+import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.grid.RowSelectionModel;
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
import com.gwtext.client.widgets.layout.ColumnLayout;
@@ -40,17 +43,11 @@
import org.jboss.bpm.console.client.UIConstants;
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.model.jbpm3.TokenReference;
-import org.jboss.bpm.console.client.util.JSONWalk;
import org.jboss.bpm.console.client.widgets.HelpPanel;
import org.jboss.bpm.console.client.widgets.TeaserPanel;
+import org.jboss.bpm.console.client.widgets.TokenEditor;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
*
@@ -62,14 +59,7 @@
private ProcessDefinition parent;
private ProcessInstanceList instanceList;
- private FormPanel tokenForm;
- private Button signalButton;
- final ArrayReader reader = new ArrayReader(new RecordDef(
- new FieldDef[]{
- new StringFieldDef("signal")
- }
- ));
-
+ private Panel tokenEditorPanel;
private ProcessInstance selectedInstance;
public ProcessInstanceListEditor(ProcessDefinition proc, MainView view)
@@ -109,10 +99,10 @@
// ----------------------------------------
Panel detailsForm = assembleDetailsForm();
- Panel tokenForm = assembleTokenForm();
+ tokenEditorPanel = new Panel("Tokens");
tabPanel.add( detailsForm );
- tabPanel.add( tokenForm );
+ tabPanel.add(tokenEditorPanel);
// ----------------------------------
@@ -131,71 +121,6 @@
}
- private Panel assembleTokenForm()
- {
- Panel outerFormPanel = new Panel();
- outerFormPanel.setTitle("Tokens");
- outerFormPanel.setBorder(false);
- outerFormPanel.setFrame(false);
-
- tokenForm = createBaseFormPanel();
-
- TextField idField = new TextField("Id", "id", 230);
- idField.setReadOnly(true);
- tokenForm.add(idField);
-
- //tokenForm.add(new TextField("Token Name", "name", 230));
- TextField nameField = new TextField("Current Node Name", "nodeName", 230);
- nameField.setReadOnly(true);
- tokenForm.add(nameField);
-
-
- MemoryProxy dataProxy = createMemoryProxy(new ArrayList<String>());
- Store store = new Store(dataProxy, reader);
- store.load();
-
- ComboBox cb = new ComboBox();
- cb.setFieldLabel("Signal");
- cb.setHiddenName("signal");
- cb.setStore(store);
- cb.setDisplayField("signal");
- cb.setMode(ComboBox.LOCAL);
- cb.setTriggerAction(ComboBox.ALL);
- cb.setEmptyText("");
- cb.setSelectOnFocus(true);
- cb.setWidth(190);
- cb.setEditable(false);
- tokenForm.add(cb);
-
- signalButton = new Button("Signal",
- new ButtonListenerAdapter()
- {
-
- public void onClick(Button button, EventObject eventObject)
- {
- ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
- String signalValue = cb.getValueAsString();
- if(signalValue.equals(""))
- MessageBox.alert("Please select a signal");
- else
- Log.debug("Singal -> " + signalValue); // TODO: integration
- }
- }
- );
-
- tokenForm.addButton(signalButton);
- outerFormPanel.add(tokenForm);
-
- return outerFormPanel;
- }
-
- private MemoryProxy createMemoryProxy(List signals)
- {
- return new MemoryProxy(
- new Object[][]{ signals.toArray()}
- );
- }
-
private Panel assembleDetailsForm()
{
// ---------------
@@ -268,8 +193,20 @@
detailsForm.getForm().loadRecord(record);
detailsForm.doLayout();
+ TokenEditor.SignalCallback callback = new TokenEditor.SignalCallback()
+ {
+ public void onSignalToken(TokenReference tok, String signal)
+ {
+ Log.debug("signal -> " +signal );
+ }
+ };
+
// token form update
- populateTokenForm(selectedInstance);
+ tokenEditorPanel.clear();
+ tokenEditorPanel.add( // TODO: LRU caching (i.e. last 5)
+ new TokenEditor(selectedInstance, callback)
+ );
+ tokenEditorPanel.doLayout();
}
}
);
@@ -279,47 +216,17 @@
return outerFormPanel;
}
- /**
- * on row selection callback
- */
- private void populateTokenForm(ProcessInstance selectedInstance)
- {
- TokenReference tok = selectedInstance.getRootToken();
- Form form = tokenForm.getForm();
-
- if(form.findField("id")!=null) // TODO: the fields are not initialized on first callback?
- {
- form.findField("id").setRawValue(tok.getId()+"");
- form.findField("nodeName").setRawValue(tok.getCurrentNodeName());
-
- // refresh combo box
- ComboBox cb = (ComboBox)form.findField("signal");
- cb.reset();
-
- MemoryProxy dataProxy = createMemoryProxy(tok.getAvailableSignals());
- Store store = new Store(dataProxy, reader);
- store.load();
- cb.setStore(store);
-
- // suspended instances cannot be signaled
- if(selectedInstance.isSuspended())
- signalButton.disable();
- else
- signalButton.enable();
- }
- }
-
private FormPanel createBaseFormPanel()
{
- final FormPanel detailsForm = new FormPanel();
- detailsForm.setLabelAlign(Position.LEFT);
- detailsForm.setWidth(UIConstants.EDITOR_PANEL_WIDTH);
- detailsForm.setHeader(false);
- detailsForm.setFrame(false);
- detailsForm.setBorder(false);
- detailsForm.setPaddings(5, 5, 5, 0);
- detailsForm.setLabelWidth(120);
- return detailsForm;
+ final FormPanel formPanel = new FormPanel();
+ formPanel.setLabelAlign(Position.LEFT);
+ formPanel.setWidth(UIConstants.EDITOR_PANEL_WIDTH);
+ formPanel.setHeader(false);
+ formPanel.setFrame(false);
+ formPanel.setBorder(false);
+ formPanel.setPaddings(5, 5, 5, 0);
+ formPanel.setLabelWidth(120);
+ return formPanel;
}
private void persistStateChange()
Added: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java (rev 0)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenEditor.java 2008-11-12 21:42:38 UTC (rev 2896)
@@ -0,0 +1,125 @@
+/*
+ * 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.widgets;
+
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.data.Node;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.layout.HorizontalLayout;
+import com.gwtext.client.widgets.tree.TreeNode;
+import com.gwtext.client.widgets.tree.TreePanel;
+import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
+import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
+
+/**
+ * @author Heiko.Braun <heiko.braun(a)jboss.com>
+ */
+public class TokenEditor extends Panel
+{
+
+ private TokenForm tokenForm;
+
+ public TokenEditor(final ProcessInstance instance, final SignalCallback callback)
+ {
+ super();
+
+ this.setHeader(false);
+ this.setBorder(false);
+ this.setFrame(false);
+
+ this.setLayout(new HorizontalLayout(10));
+
+ this.add( new TokenTree(instance.getRootToken(),
+ new TokenSelectionCallback()
+ {
+ public void onSelectedToken(TokenReference tok)
+ {
+ // update form
+ tokenForm.display(instance, tok);
+ }
+ }
+ ) );
+
+ tokenForm = new TokenForm(callback);
+ tokenForm.display(instance); // shows the root token
+ this.add(tokenForm);
+ }
+
+ class TokenTree extends TreePanel
+ {
+ private TokenSelectionCallback callback;
+
+ public TokenTree(final TokenReference rootToken,
+ final TokenSelectionCallback callback)
+ {
+ this.callback = callback;
+
+ TreeNode outermost = new TreeNode("Tokens");
+ TreeNode rootNode = buildTreeNode(rootToken);
+ outermost.appendChild(rootNode);
+
+ buildChildNodes(rootNode, rootToken);
+
+ setRootVisible(true);
+ setRootNode(outermost);
+ outermost.setExpanded(true);
+ }
+
+ private void buildChildNodes(TreeNode parent, TokenReference rootToken)
+ {
+ for(final TokenReference childToken : rootToken.getChildren())
+ {
+ TreeNode child = buildTreeNode(childToken);
+ buildChildNodes(child, childToken); // recursive
+ parent.appendChild(child);
+ }
+ }
+
+ private TreeNode buildTreeNode(final TokenReference tok)
+ {
+ TreeNode treeNode = new TreeNode("Token " +tok.getId());
+ treeNode.setExpanded(true);
+ treeNode.addListener(
+ new TreeNodeListenerAdapter()
+ {
+ public void onClick(Node node, EventObject eventObject)
+ {
+ callback.onSelectedToken(tok);
+ }
+ }
+ );
+ return treeNode;
+ }
+ }
+
+ interface TokenSelectionCallback
+ {
+ void onSelectedToken(TokenReference tok);
+ }
+
+ public interface SignalCallback
+ {
+ void onSignalToken(TokenReference tok, String signal);
+ }
+}
+
Added: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java (rev 0)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/widgets/TokenForm.java 2008-11-12 21:42:38 UTC (rev 2896)
@@ -0,0 +1,176 @@
+/*
+ * 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.widgets;
+
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.Position;
+import com.gwtext.client.data.*;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.MessageBox;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.form.ComboBox;
+import com.gwtext.client.widgets.form.Form;
+import com.gwtext.client.widgets.form.FormPanel;
+import com.gwtext.client.widgets.form.TextField;
+import org.jboss.bpm.console.client.UIConstants;
+import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Heiko.Braun <heiko.braun(a)jboss.com>
+ */
+public class TokenForm extends Panel
+{
+ private FormPanel tokenForm;
+ private Button signalButton;
+ final ArrayReader reader = new ArrayReader(new RecordDef(
+ new FieldDef[]{
+ new StringFieldDef("signal")
+ }
+ ));
+
+ private TokenReference lastSelectedToken;
+
+ public TokenForm(final TokenEditor.SignalCallback callback)
+ {
+ super();
+
+ this.setHeader(false);
+ this.setBorder(false);
+ this.setFrame(false);
+
+ tokenForm = new FormPanel();
+ tokenForm.setLabelAlign(Position.LEFT);
+ tokenForm.setWidth(UIConstants.EDITOR_PANEL_WIDTH);
+ tokenForm.setHeader(false);
+ tokenForm.setFrame(false);
+ tokenForm.setBorder(false);
+ tokenForm.setPaddings(5, 5, 5, 0);
+ tokenForm.setLabelWidth(120);
+
+ // ----------
+
+ TextField idField = new TextField("Id", "id", 230);
+ idField.setReadOnly(true);
+ tokenForm.add(idField);
+
+ //tokenForm.add(new TextField("Token Name", "name", 230));
+ TextField nameField = new TextField("Current Node Name", "nodeName", 230);
+ nameField.setReadOnly(true);
+ tokenForm.add(nameField);
+
+
+ // ----------
+ MemoryProxy dataProxy = createMemoryProxy(new ArrayList<String>());
+ Store store = new Store(dataProxy, reader);
+ store.load();
+
+ ComboBox cb = new ComboBox();
+ cb.setFieldLabel("Signal");
+ cb.setHiddenName("signal");
+ cb.setStore(store);
+ cb.setDisplayField("signal");
+ cb.setMode(ComboBox.LOCAL);
+ cb.setTriggerAction(ComboBox.ALL);
+ cb.setEmptyText("");
+ cb.setSelectOnFocus(true);
+ cb.setWidth(190);
+ cb.setEditable(false);
+ tokenForm.add(cb);
+
+ signalButton = new Button("Signal",
+ new ButtonListenerAdapter()
+ {
+ public void onClick(Button button, EventObject eventObject)
+ {
+ ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
+ String signalValue = cb.getValueAsString();
+ if(signalValue.equals(""))
+ MessageBox.alert("Please select a signal");
+ else
+ callback.onSignalToken(lastSelectedToken, signalValue);
+ }
+ }
+ );
+
+ tokenForm.addButton(signalButton);
+
+ // -------------------
+
+ this.add(tokenForm);
+
+ }
+
+ /**
+ * display the root token
+ */
+ void display(ProcessInstance processInstance)
+ {
+ display(processInstance, processInstance.getRootToken());
+ }
+
+ /**
+ * display a particular token
+ */
+ void display(ProcessInstance processInstance, TokenReference tok)
+ {
+ Form form = tokenForm.getForm();
+
+ if(form.findField("id")!=null) // TODO: the fields are not initialized on first callback?
+ {
+ form.findField("id").setRawValue(tok.getId()+"");
+ form.findField("nodeName").setRawValue(tok.getCurrentNodeName());
+
+ // refresh combo box
+ ComboBox cb = (ComboBox)form.findField("signal");
+ cb.reset();
+
+ MemoryProxy dataProxy = createMemoryProxy(tok.getAvailableSignals());
+ Store store = new Store(dataProxy, reader);
+ store.load();
+ cb.setStore(store);
+
+ // suspended instances cannot be signaled
+ if(processInstance.isSuspended())
+ signalButton.disable();
+ else
+ signalButton.enable();
+
+ }
+
+ // -----------
+
+
+ lastSelectedToken = tok;
+ }
+
+ private MemoryProxy createMemoryProxy(List signals)
+ {
+ return new MemoryProxy(
+ new Object[][]{ signals.toArray()}
+ );
+ }
+}
17 years, 5 months
JBoss JBPM SVN: r2895 - in projects/gwt-console/trunk: rpc/src/main/java/org/jboss/bpm/console/server/gson and 4 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-11-12 15:07:07 -0500 (Wed, 12 Nov 2008)
New Revision: 2895
Modified:
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/server/gson/GsonFactory.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:
Offer available signals when working on tokens
Modified: 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 2008-11-12 16:51:13 UTC (rev 2894)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/jbpm3/TokenReference.java 2008-11-12 20:07:07 UTC (rev 2895)
@@ -24,6 +24,8 @@
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Set;
import java.util.HashSet;
+import java.util.List;
+import java.util.ArrayList;
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
@@ -32,15 +34,43 @@
public class TokenReference
{
private long id;
+ private String name;
+
+ private String currentNodeName;
+
private Set<TokenReference> children = new HashSet<TokenReference>();
+ private List<String> availableSignals = new ArrayList<String>();
- public TokenReference(long id)
+ public TokenReference(long id, String name, String nodeName)
{
this.id = id;
+ this.name = name!=null ? name : "";
+ this.currentNodeName = nodeName;
}
+ public long getId()
+ {
+ return id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
public Set<TokenReference> getChildren()
{
return children;
}
+
+ public List<String> getAvailableSignals()
+ {
+ return availableSignals;
+ }
+
+ public String getCurrentNodeName()
+ {
+ return currentNodeName;
+ }
+
}
Modified: projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/server/gson/GsonFactory.java
===================================================================
--- projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/server/gson/GsonFactory.java 2008-11-12 16:51:13 UTC (rev 2894)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/server/gson/GsonFactory.java 2008-11-12 20:07:07 UTC (rev 2895)
@@ -32,7 +32,7 @@
public static Gson createInstance()
{
Gson gson = new GsonBuilder()
- .setDateFormat("y-M-d HH:mm:ss")
+ .setDateFormat("yyyy-M-d HH:mm:ss")
.registerTypeAdapter(java.sql.Timestamp.class, new SQLDateTypeAdapter())
.create();
return gson;
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 16:51:13 UTC (rev 2894)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java 2008-11-12 20:07:07 UTC (rev 2895)
@@ -61,7 +61,7 @@
private static TokenReference tokenReference(Token t0)
{
- TokenReference rootToken = new TokenReference(t0.getId());
+ TokenReference token = new TokenReference(t0.getId(), t0.getName(), t0.getNode().getName());
Map children = t0.getChildren();
if(children!=null)
@@ -69,10 +69,18 @@
for(Object o : children.values())
{
Token t1 = (Token)o;
- rootToken.getChildren().add( Transform.tokenReference(t1) );
+ token.getChildren().add( Transform.tokenReference(t1) );
}
}
- return rootToken;
+
+ // signals
+ for(Object tr0 : t0.getNode().getLeavingTransitionsList())
+ {
+ Transition transition = (Transition)tr0;
+ token.getAvailableSignals().add(transition.getName());
+ }
+
+ return token;
}
public static void doTransition(org.jbpm.graph.exe.ProcessInstance p0, String nextState)
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 16:51:13 UTC (rev 2894)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java 2008-11-12 20:07:07 UTC (rev 2895)
@@ -24,6 +24,7 @@
import com.google.gwt.json.client.*;
import org.jboss.bpm.console.client.model.forms.FieldDef;
import org.jboss.bpm.console.client.model.forms.FormDef;
+import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
import org.jboss.bpm.console.client.util.JSONWalk;
import java.util.ArrayList;
@@ -179,6 +180,7 @@
public static ProcessInstance parseProcessInstance(JSONObject root)
{
+ //Log.debug("parse " + root);
long id = JSONWalk.on(root).next("instanceId").asLong();
long parentId = JSONWalk.on(root).next("parentId").asLong();
@@ -191,10 +193,44 @@
boolean suspended = JSONWalk.on(root).next("suspended").asBool();
- return new ProcessInstance(
+ ProcessInstance processInstance = new ProcessInstance(
id, parentId,
start, end,
suspended
);
+
+ // tokens
+ JSONObject tokJso = JSONWalk.on(root).next("rootToken").asObject();
+ TokenReference rootToken = parseTokenReference(tokJso);
+ processInstance.setRootToken(rootToken);
+ return processInstance;
}
+
+ public static TokenReference parseTokenReference(JSONObject jso)
+ {
+ long rootTokenId = JSONWalk.on(jso).next("id").asLong();
+ String name = JSONWalk.on(jso).next("name").asString();
+ String nodeName = JSONWalk.on(jso).next("currentNodeName").asString();
+ TokenReference rt = new TokenReference(rootTokenId, name, nodeName);
+
+ JSONArray signals = JSONWalk.on(jso).next("availableSignals").asArray();
+ for(int i=0; i<signals.size(); i++)
+ {
+ JSONValue jsonValue = signals.get(i);
+ if(jsonValue.toString().equals("null"))
+ continue; // TODO: JBPM-1828
+ JSONString item = jsonValue.isString();
+ rt.getAvailableSignals().add(item.stringValue());
+ }
+
+ JSONArray childArr = JSONWalk.on(jso).next("children").asArray();
+ for(int i=0; i<childArr.size(); i++)
+ {
+ JSONObject item = childArr.get(i).isObject();
+ rt.getChildren().add(parseTokenReference(item));
+ }
+
+ return rt;
+ }
+
}
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 16:51:13 UTC (rev 2894)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceList.java 2008-11-12 20:07:07 UTC (rev 2895)
@@ -48,7 +48,7 @@
private Map<Integer, ProcessInstance> row2InstanceMap = new HashMap<Integer, ProcessInstance>();
private ProcessDefinition parent;
- private static final String DATE_FORMAT = "y-m-j H:i:s"; //08-10-02 13:51:27
+ private static final String DATE_FORMAT = "yyyy-m-j H:i:s"; //08-10-02 13:51:27
public ProcessInstanceList(ProcessDefinition procDef, String titleName, MainView view)
{
@@ -178,13 +178,6 @@
public static ProcessInstance transform(Record r)
{
- /*ProcessInstance processInstance = new ProcessInstance(
- Long.valueOf(r.getAsString("instanceId")),
- Long.valueOf( r.getAsString("parentId")),
- r.getAsDate("startDate"),
- r.getAsDate("endDate"),
- r.getAsBoolean("suspended"));*/
-
ProcessInstance processInstance = null;
try
{
@@ -210,7 +203,7 @@
//new ColumnConfig("Key", "key", 50, true),
new ColumnConfig("State", "state", 100, true, null, "expand"),
new ColumnConfig("Start Date", "startDate", 125, true, new DateRenderer("startDate")),
- new ColumnConfig("End Date", "endDate", 125, true, new DateRenderer("endDate"))
+ //new ColumnConfig("End Date", "endDate", 125, true, new DateRenderer("endDate"))
}
);
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 16:51:13 UTC (rev 2894)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-12 20:07:07 UTC (rev 2895)
@@ -23,31 +23,34 @@
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.http.client.*;
+import com.google.gwt.json.client.JSONObject;
+import com.google.gwt.user.client.ui.ListBox;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Position;
-import com.gwtext.client.data.Record;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.PaddedPanel;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.TabPanel;
+import com.gwtext.client.data.*;
+import com.gwtext.client.widgets.*;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.form.DateField;
-import com.gwtext.client.widgets.form.FieldSet;
-import com.gwtext.client.widgets.form.FormPanel;
-import com.gwtext.client.widgets.form.TextField;
+import com.gwtext.client.widgets.form.*;
import com.gwtext.client.widgets.grid.RowSelectionModel;
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
import com.gwtext.client.widgets.layout.ColumnLayout;
import com.gwtext.client.widgets.layout.ColumnLayoutData;
-import com.gwtext.client.widgets.layout.FormLayout;
import org.jboss.bpm.console.client.Editor;
import org.jboss.bpm.console.client.MainView;
import org.jboss.bpm.console.client.UIConstants;
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.model.jbpm3.TokenReference;
+import org.jboss.bpm.console.client.util.JSONWalk;
import org.jboss.bpm.console.client.widgets.HelpPanel;
import org.jboss.bpm.console.client.widgets.TeaserPanel;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Set;
+
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
*
@@ -55,12 +58,20 @@
*/
public class ProcessInstanceListEditor extends Editor
{
-
+ private MainView view;
private ProcessDefinition parent;
- private ProcessInstance selectedInstance;
- private MainView view;
private ProcessInstanceList instanceList;
+ private FormPanel tokenForm;
+ private Button signalButton;
+ final ArrayReader reader = new ArrayReader(new RecordDef(
+ new FieldDef[]{
+ new StringFieldDef("signal")
+ }
+ ));
+
+ private ProcessInstance selectedInstance;
+
public ProcessInstanceListEditor(ProcessDefinition proc, MainView view)
{
super();
@@ -80,32 +91,33 @@
leftHand.setFrame(false);
leftHand.setHeader(false);
leftHand.setBorder(false);
-
+
instanceList = new ProcessInstanceList(
- proc, "Process Instances", view
+ proc, "Process Instances", view
);
// ---------------
TabPanel tabPanel = new TabPanel();
tabPanel.setPaddings(10);
- tabPanel.setPlain(true);
+ tabPanel.setPlain(true);
tabPanel.setActiveTab(0);
tabPanel.setWidth(UIConstants.EDITOR_PANEL_WIDTH);
- PaddedPanel tabPadding = new PaddedPanel(tabPanel, 0,10,0,10);
+ PaddedPanel tabPadding = new PaddedPanel(tabPanel, 0,10,0,10);
// ----------------------------------------
Panel detailsForm = assembleDetailsForm();
-
+ Panel tokenForm = assembleTokenForm();
- tabPanel.add(detailsForm);
- tabPanel.add( new Panel("Advanced") );
+ tabPanel.add( detailsForm );
+ tabPanel.add( tokenForm );
+
// ----------------------------------
-
- HelpPanel help = new HelpPanel(UIConstants.TEASER_PANEL_WIDTH, 200, "Managing process instances");
+ HelpPanel help = new HelpPanel(UIConstants.TEASER_PANEL_WIDTH, 200, "Managing process instances");
+
TeaserPanel teaserPanel = new TeaserPanel();
teaserPanel.add(help);
@@ -113,12 +125,77 @@
leftHand.add(instanceList);
leftHand.add(tabPadding);
-
+
this.add(leftHand, new ColumnLayoutData(0.7) );
- this.add(teaserPanel , new ColumnLayoutData(0.3) );
+ this.add(teaserPanel , new ColumnLayoutData(0.3) );
}
+ private Panel assembleTokenForm()
+ {
+ Panel outerFormPanel = new Panel();
+ outerFormPanel.setTitle("Tokens");
+ outerFormPanel.setBorder(false);
+ outerFormPanel.setFrame(false);
+
+ tokenForm = createBaseFormPanel();
+
+ TextField idField = new TextField("Id", "id", 230);
+ idField.setReadOnly(true);
+ tokenForm.add(idField);
+
+ //tokenForm.add(new TextField("Token Name", "name", 230));
+ TextField nameField = new TextField("Current Node Name", "nodeName", 230);
+ nameField.setReadOnly(true);
+ tokenForm.add(nameField);
+
+
+ MemoryProxy dataProxy = createMemoryProxy(new ArrayList<String>());
+ Store store = new Store(dataProxy, reader);
+ store.load();
+
+ ComboBox cb = new ComboBox();
+ cb.setFieldLabel("Signal");
+ cb.setHiddenName("signal");
+ cb.setStore(store);
+ cb.setDisplayField("signal");
+ cb.setMode(ComboBox.LOCAL);
+ cb.setTriggerAction(ComboBox.ALL);
+ cb.setEmptyText("");
+ cb.setSelectOnFocus(true);
+ cb.setWidth(190);
+ cb.setEditable(false);
+ tokenForm.add(cb);
+
+ signalButton = new Button("Signal",
+ new ButtonListenerAdapter()
+ {
+
+ public void onClick(Button button, EventObject eventObject)
+ {
+ ComboBox cb = (ComboBox)tokenForm.getForm().findField("signal");
+ String signalValue = cb.getValueAsString();
+ if(signalValue.equals(""))
+ MessageBox.alert("Please select a signal");
+ else
+ Log.debug("Singal -> " + signalValue); // TODO: integration
+ }
+ }
+ );
+
+ tokenForm.addButton(signalButton);
+ outerFormPanel.add(tokenForm);
+
+ return outerFormPanel;
+ }
+
+ private MemoryProxy createMemoryProxy(List signals)
+ {
+ return new MemoryProxy(
+ new Object[][]{ signals.toArray()}
+ );
+ }
+
private Panel assembleDetailsForm()
{
// ---------------
@@ -130,14 +207,7 @@
// ---------------
- final FormPanel detailsForm = new FormPanel();
- detailsForm.setLabelAlign(Position.LEFT);
- detailsForm.setWidth(UIConstants.EDITOR_PANEL_WIDTH);
- detailsForm.setHeader(false);
- detailsForm.setFrame(false);
- detailsForm.setBorder(false);
- detailsForm.setPaddings(5, 5, 5, 0);
- detailsForm.setLabelWidth(120);
+ final FormPanel detailsForm = createBaseFormPanel();
// ---------------
@@ -145,30 +215,30 @@
detailsForm.add(new TextField("Key", "key", 230));
detailsForm.add(new TextField("State", "state", 230));
detailsForm.add(new DateField("Start Date", "startDate", 230));
- detailsForm.add(new DateField("End Date", "endDate", 230));
+ //detailsForm.add(new DateField("End Date", "endDate", 230));
final Button suspendButton = new Button("Suspend",
- new ButtonListenerAdapter()
- {
+ new ButtonListenerAdapter()
+ {
- public void onClick(Button button, EventObject eventObject)
- {
- selectedInstance.setState(ProcessInstance.STATE.SUSPENDED);
- persistStateChange();
- }
- }
+ public void onClick(Button button, EventObject eventObject)
+ {
+ selectedInstance.setState(ProcessInstance.STATE.SUSPENDED);
+ persistStateChange();
+ }
+ }
);
final Button resumeButton = new Button("Resume",
- new ButtonListenerAdapter()
- {
+ new ButtonListenerAdapter()
+ {
- public void onClick(Button button, EventObject eventObject)
- {
- selectedInstance.setState(ProcessInstance.STATE.RUNNING);
- persistStateChange();
- }
- }
+ public void onClick(Button button, EventObject eventObject)
+ {
+ selectedInstance.setState(ProcessInstance.STATE.RUNNING);
+ persistStateChange();
+ }
+ }
);
detailsForm.addButton(suspendButton);
@@ -178,26 +248,30 @@
final RowSelectionModel sm = new RowSelectionModel(true);
sm.addListener(
- new RowSelectionListenerAdapter()
- {
- public void onRowSelect(RowSelectionModel sm, int rowIndex, Record record)
- {
- selectedInstance = ProcessInstanceList.transform(record);
- if(selectedInstance.isSuspended())
- {
- suspendButton.disable();
- resumeButton.enable();
- }
- else
- {
- resumeButton.disable();
- suspendButton.enable();
- }
+ new RowSelectionListenerAdapter()
+ {
+ public void onRowSelect(RowSelectionModel sm, int rowIndex, Record record)
+ {
+ selectedInstance = ProcessInstanceList.transform(record);
- detailsForm.getForm().loadRecord(record);
- detailsForm.doLayout();
- }
- }
+ if(selectedInstance.isSuspended())
+ {
+ suspendButton.disable();
+ resumeButton.enable();
+ }
+ else
+ {
+ resumeButton.disable();
+ suspendButton.enable();
+ }
+
+ detailsForm.getForm().loadRecord(record);
+ detailsForm.doLayout();
+
+ // token form update
+ populateTokenForm(selectedInstance);
+ }
+ }
);
instanceList.setRowSelectionModel(sm);
@@ -205,30 +279,73 @@
return outerFormPanel;
}
+ /**
+ * on row selection callback
+ */
+ private void populateTokenForm(ProcessInstance selectedInstance)
+ {
+ TokenReference tok = selectedInstance.getRootToken();
+ Form form = tokenForm.getForm();
+
+ if(form.findField("id")!=null) // TODO: the fields are not initialized on first callback?
+ {
+ form.findField("id").setRawValue(tok.getId()+"");
+ form.findField("nodeName").setRawValue(tok.getCurrentNodeName());
+
+ // refresh combo box
+ ComboBox cb = (ComboBox)form.findField("signal");
+ cb.reset();
+
+ MemoryProxy dataProxy = createMemoryProxy(tok.getAvailableSignals());
+ Store store = new Store(dataProxy, reader);
+ store.load();
+ cb.setStore(store);
+
+ // suspended instances cannot be signaled
+ if(selectedInstance.isSuspended())
+ signalButton.disable();
+ else
+ signalButton.enable();
+ }
+ }
+
+ private FormPanel createBaseFormPanel()
+ {
+ final FormPanel detailsForm = new FormPanel();
+ detailsForm.setLabelAlign(Position.LEFT);
+ detailsForm.setWidth(UIConstants.EDITOR_PANEL_WIDTH);
+ detailsForm.setHeader(false);
+ detailsForm.setFrame(false);
+ detailsForm.setBorder(false);
+ detailsForm.setPaddings(5, 5, 5, 0);
+ detailsForm.setLabelWidth(120);
+ return detailsForm;
+ }
+
private void persistStateChange()
{
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, view.getUrlBuilder().getStateChangeURL(
- selectedInstance.getInstanceId(), selectedInstance.getState())
+ selectedInstance.getInstanceId(), selectedInstance.getState())
);
try
{
rb.sendRequest(null,
- new RequestCallback() {
+ new RequestCallback() {
- public void onResponseReceived(Request request, Response response)
- {
- // testSuccess
- instanceList.reloadStore();
- selectedInstance = null;
- }
+ public void onResponseReceived(Request request, Response response)
+ {
+ // testSuccess
+ instanceList.reloadStore();
+ selectedInstance = null;
+ }
- public void onError(Request request, Throwable t)
- {
- // Unknown error
- Log.error("Unknown error", t);
- }
- });
+ public void onError(Request request, Throwable t)
+ {
+ // Unknown error
+ Log.error("Unknown error", t);
+ }
+ });
}
catch (RequestException e1)
{
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 16:51:13 UTC (rev 2894)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java 2008-11-12 20:07:07 UTC (rev 2895)
@@ -21,16 +21,15 @@
*/
package org.jboss.bpm.console.client.util;
+import com.google.gwt.json.client.JSONArray;
+import com.google.gwt.json.client.JSONException;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
-import com.google.gwt.json.client.JSONException;
-import com.google.gwt.json.client.JSONArray;
+import org.jboss.bpm.console.client.model.util.SimpleDateFormat;
+import java.util.Date;
import java.util.Iterator;
-import java.util.Date;
-import org.jboss.bpm.console.client.model.util.SimpleDateParser;
-
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
*/
@@ -148,7 +147,8 @@
{
if(value.isString()!=null)
{
- return SimpleDateParser.parse(value.isString().stringValue(), "dd-MM-yy HH:mm:ss");
+ SimpleDateFormat df = new SimpleDateFormat();
+ return df.parse(value.isString().stringValue());
}
else
{
17 years, 5 months