[jbpm-commits] JBoss JBPM SVN: r2882 - in projects/gwt-console/trunk: rpc/src/main/java/org/jboss/bpm/console/client/model and 11 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Nov 11 09:34:01 EST 2008
Author: heiko.braun at jboss.com
Date: 2008-11-11 09:34:01 -0500 (Tue, 11 Nov 2008)
New Revision: 2882
Added:
projects/gwt-console/trunk/war/src/test/examples/
projects/gwt-console/trunk/war/src/test/examples/TaskAssignmentExample.par
Modified:
projects/gwt-console/trunk/pom.xml
projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReference.java
projects/gwt-console/trunk/server/gwt-server.iml
projects/gwt-console/trunk/server/pom.xml
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.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/JBPM3TaskDAO.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/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/task/TaskList.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/task/TaskListEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java
Log:
Task assigment and simplified lifecycle done
Modified: projects/gwt-console/trunk/pom.xml
===================================================================
--- projects/gwt-console/trunk/pom.xml 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/pom.xml 2008-11-11 14:34:01 UTC (rev 2882)
@@ -26,7 +26,7 @@
<gson.version>1.2.2</gson.version>
<commons.fileupload.version>1.2.1</commons.fileupload.version>
<commons.io.version>1.3.2</commons.io.version>
- <jbpm.version>3.3.0-SNAPSHOT</jbpm.version>
+ <jbpm.version>3.3.1-SNAPSHOT</jbpm.version>
<javax.jaxb.version>2.1</javax.jaxb.version>
<javax.ejb.version>3.0</javax.ejb.version>
<jboss.common.version>2.2.7.GA</jboss.common.version>
@@ -45,7 +45,7 @@
<!-- JBPM -->
<dependency>
<groupId>org.jbpm.jbpm3</groupId>
- <artifactId>jbpm-core</artifactId>
+ <artifactId>jbpm-jpdl</artifactId>
<scope>provided</scope>
<version>${jbpm.version}</version>
</dependency>
Modified: projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReference.java
===================================================================
--- projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReference.java 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReference.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -22,8 +22,8 @@
package org.jboss.bpm.console.client.model;
import javax.xml.bind.annotation.XmlRootElement;
+import java.util.ArrayList;
import java.util.List;
-import java.util.ArrayList;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
@@ -37,8 +37,8 @@
private long processId;
private String name;
- private String actor;
-
+ private String actor = "";
+
private boolean isBlocking;
private boolean isSignalling = true;
@@ -46,7 +46,6 @@
private List<String> pooledActors = new ArrayList<String>();
public enum STATE {OPEN, IN_PROGRESS, CLOSED};
-
private STATE currentState;
public TaskReference()
@@ -66,9 +65,10 @@
this.processInstanceId = processInstanceId;
this.processId = processId;
this.name = taskName;
- this.actor = actorName;
+ setActor(actorName);
isBlocking = blocking;
isSignalling = signalling;
+
initOrUpdateState();
}
@@ -119,6 +119,8 @@
public void setActor(String actor)
{
+ if(null==actor)
+ actor = "";
this.actor = actor;
initOrUpdateState();
}
@@ -151,22 +153,13 @@
public void addPooledActor(String actorId)
{
pooledActors.add(actorId);
- initOrUpdateState();
- }
- public long getProcessId()
- {
- return processId;
+ initOrUpdateState();
}
- public STATE getCurrentState()
- {
- return currentState;
- }
-
private void initOrUpdateState()
{
- if(actor==null)
+ if(actor==null || actor.equals(""))
{
currentState = STATE.OPEN;
}
@@ -177,11 +170,26 @@
else
currentState = STATE.IN_PROGRESS;
}
+ }
+ public long getProcessId()
+ {
+ return processId;
}
+ public STATE getCurrentState()
+ {
+ return currentState;
+ }
+
public String toString()
{
return "TaskRef{id:"+id+",state:"+currentState+"}";
}
+
+ public boolean hasPooledActors()
+ {
+ return !pooledActors.isEmpty();
+ }
+
}
Modified: projects/gwt-console/trunk/server/gwt-server.iml
===================================================================
--- projects/gwt-console/trunk/server/gwt-server.iml 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/server/gwt-server.iml 2008-11-11 14:34:01 UTC (rev 2882)
@@ -537,6 +537,7 @@
<SOURCES />
</library>
</orderEntry>
+ <orderEntry type="module" module-name="gwt-rpc" />
<orderEntryProperties />
</component>
</module>
Modified: projects/gwt-console/trunk/server/pom.xml
===================================================================
--- projects/gwt-console/trunk/server/pom.xml 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/server/pom.xml 2008-11-11 14:34:01 UTC (rev 2882)
@@ -34,7 +34,7 @@
</dependency>
<dependency>
<groupId>org.jbpm.jbpm3</groupId>
- <artifactId>jbpm-core</artifactId>
+ <artifactId>jbpm-jpdl</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -23,6 +23,7 @@
import com.google.gson.Gson;
import org.jboss.bpm.console.client.model.TaskReferenceWrapper;
+import org.jboss.bpm.console.client.model.TaskReference;
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.util.MapEntry;
@@ -79,7 +80,7 @@
new TaskReferenceWrapper(getTaskDAO().getTasksByActor(actorName));
return createJsonResponse(wrapper);
}
-
+
@GET
@Path("forms/{processId}")
@Produces("application/json")
@@ -100,6 +101,36 @@
return createJsonResponse( entries );
}
+ @POST
+ @Path("{taskId}/assignment/{actorId}")
+ @Produces("application/json")
+ public Response assignTask(
+ @PathParam("taskId")
+ long taskId,
+ @PathParam("actorId")
+ String actorId
+ )
+ {
+ log.debug("Reassign task " + taskId + " to '" + actorId +"'");
+ String actualActor = actorId.equalsIgnoreCase("none") ? null : actorId;
+ getTaskDAO().reassignTask(taskId, actualActor);
+ return Response.ok().build();
+ }
+
+ @POST
+ @Path("{taskId}/assignment")
+ @Produces("application/json")
+ public Response releaseTask(
+ @PathParam("taskId")
+ long taskId
+ )
+ {
+ log.debug("Release task " + taskId);
+ getTaskDAO().reassignTask(taskId, null);
+ return Response.ok().build();
+ }
+
+
@GET
@Path("forms/{processId}/{taskId}")
@Produces("application/json")
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.java 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -32,7 +32,9 @@
public interface TaskDAO
{
List<TaskReference> getTasksByActor(String actorName);
- List<TaskReference> getTasksByInstanceId(long instanceId);
Map<String, String> getAvailableTaskForms(long processId);
byte[] getTaskFormByTaskName(long processId, long taskId);
+
+ TaskReference getTaskById(long taskId);
+ void reassignTask(long taskId, String actorId);
}
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-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -42,7 +42,6 @@
*/
class JBPM3CommandDelegate
{
-
private LocalCommandService facade;
private static final String DEFAULT_JNDI_NAME = "java:ejb/CommandServiceBean";
@@ -175,8 +174,22 @@
public TaskInstance getTaskById(long taskId)
{
-
// include variables, but no logs
return (TaskInstance) facade.execute( new GetTaskInstanceCommand(taskId, true, false));
}
+
+ public void assignToAuthenticatedUser(long taskId, String actorId)
+ {
+ if(actorId!=null)
+ {
+ StartWorkOnTaskCommand command = new StartWorkOnTaskCommand(taskId, true);
+ command.setActorId(actorId);
+ facade.execute(command);
+ }
+ else
+ {
+ CancelWorkOnTaskCommand command = new CancelWorkOnTaskCommand(taskId);
+ facade.execute(command);
+ }
+ }
}
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3TaskDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3TaskDAO.java 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3TaskDAO.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -23,16 +23,18 @@
import org.jboss.bpm.console.client.model.TaskReference;
import org.jboss.bpm.console.server.dao.TaskDAO;
+import org.jbpm.file.def.FileDefinition;
import org.jbpm.graph.def.ProcessDefinition;
-import org.jbpm.file.def.FileDefinition;
import org.jbpm.util.XmlUtil;
-import org.jbpm.identity.Group;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-import java.util.*;
import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
@@ -47,7 +49,6 @@
this.delegate = new JBPM3CommandDelegate();
}
-
public List<TaskReference> getTasksByActor(String actorName)
{
@@ -68,12 +69,6 @@
return copy;
}
- // TODO: If not reqired please remove
- public List<TaskReference> getTasksByInstanceId(long instanceId)
- {
- throw new RuntimeException("Not implemented");
- }
-
public Map<String, String> getAvailableTaskForms(long processId)
{
org.jbpm.graph.def.ProcessDefinition processDefinition =
@@ -131,4 +126,18 @@
throw new RuntimeException("No form definition for taskId '"+taskId+"'");
}
+
+ public TaskReference getTaskById(long taskId)
+ {
+ org.jbpm.taskmgmt.exe.TaskInstance t0 = delegate.getTaskById(taskId);
+ TaskReference taskRef = Transform.taskInstance(t0);
+ return taskRef;
+ }
+
+
+ public void reassignTask(long taskId, String actorId)
+ {
+ // TODO: validation of actorId?
+ delegate.assignToAuthenticatedUser(taskId, actorId);
+ }
}
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-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -22,6 +22,7 @@
package org.jboss.bpm.console.client;
import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.TaskReference;
import java.util.List;
@@ -125,4 +126,10 @@
{
return getBaseUrl() + "/rs/tasks/forms/"+processId+"/"+taskId;
}
+
+ public String getTaskAssignmentURL(long id, String actor)
+ {
+ String actualActor = actor == null ? "none" : actor;
+ return getBaseUrl() + "/rs/tasks/"+id+"/assignment/"+actualActor;
+ }
}
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-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -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.util.JSONWalk;
@@ -84,7 +85,6 @@
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/process/ProcessInstanceListEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessInstanceListEditor.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -174,7 +174,7 @@
}
);
instanceList.setRowSelectionModel(sm);
-
+
outerFormPanel.add(formPanel);
// ----------------------------------
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/task/TaskList.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/task/TaskList.java 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/task/TaskList.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -25,12 +25,13 @@
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.json.client.JSONObject;
import com.gwtext.client.core.SortDir;
+import com.gwtext.client.core.Function;
+import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.*;
import com.gwtext.client.data.event.StoreListenerAdapter;
-import com.gwtext.client.widgets.ComponentMgr;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.Component;
+import com.gwtext.client.widgets.*;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.form.FormPanel;
import com.gwtext.client.widgets.grid.*;
import org.jboss.bpm.console.client.MainView;
@@ -54,6 +55,7 @@
private GroupingStore store;
private String title;
private RowSelectionModel rowSelectionModel;
+ public static final int PAGE_SIZE = 15;
public TaskList(String titleName, final MainView view)
{
@@ -300,20 +302,43 @@
gridView.setGroupTextTpl("{text} ({[values.rs.length]} {[values.rs.length > 1 ? \"Items\" : \"Item\"]})");
if(rowSelectionModel!=null)
+ {
grid.setSelectionModel(rowSelectionModel);
-
+ grid.doOnRender(new Function() {
+ public void execute() {
+ rowSelectionModel.selectFirstRow();
+ }
+ }, 10);
+ }
grid.setView(gridView);
grid.setFrame(true);
grid.setWidth(UIConstants.EDITOR_PANEL_WIDTH);
grid.setHeight(250);
grid.setEnableHdMenu(false);
+
+ grid.setBottomToolbar(createToolbar(store));
+
return grid;
}
+ private PagingToolbar createToolbar(final Store store)
+ {
+ PagingToolbar pagingToolbar = new PagingToolbar(store);
+ pagingToolbar.setPageSize(PAGE_SIZE);
+ pagingToolbar.setDisplayInfo(true);
+ pagingToolbar.setDisplayMsg("{0} - {1} of {2}");
+
+ pagingToolbar.addSeparator();
+ pagingToolbar.addSpacer();
+
+ return pagingToolbar;
+ }
+
+
public void reloadStore()
{
Log.debug("Reload " + this.getId());
- store.load(0, 15);
+ store.load(0, PAGE_SIZE);
}
public GridPanel getGrid()
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/task/TaskListEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/task/TaskListEditor.java 2008-11-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/task/TaskListEditor.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -21,28 +21,27 @@
*/
package org.jboss.bpm.console.client.task;
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.http.client.*;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.Position;
+import com.gwtext.client.data.Record;
+import com.gwtext.client.widgets.*;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.event.PanelListenerAdapter;
+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.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 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.TaskReference;
import org.jboss.bpm.console.client.widgets.TeaserPanel;
-import com.gwtext.client.widgets.layout.ColumnLayout;
-import com.gwtext.client.widgets.layout.ColumnLayoutData;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.Component;
-import com.gwtext.client.widgets.PaddedPanel;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.grid.RowSelectionModel;
-import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter;
-import com.gwtext.client.widgets.form.FormPanel;
-import com.gwtext.client.widgets.form.FieldSet;
-import com.gwtext.client.widgets.form.TextField;
-import com.gwtext.client.widgets.form.DateField;
-import com.gwtext.client.widgets.event.PanelListenerAdapter;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.core.Position;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.data.Record;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
@@ -126,7 +125,7 @@
formContainer.setBorder(false);
leftHand.add(formContainer);
*/
-
+
// ----------------------------------
teaserPanel = new TeaserPanel();
@@ -151,7 +150,7 @@
private Panel assembleFormPanel()
{
- // ---------------
+ // ---------------
Panel outerFormPanel = new Panel();
outerFormPanel.setBorder(false);
@@ -181,35 +180,44 @@
fieldSet.add(new TextField("Id", "id", 230));
fieldSet.add(new TextField("Name", "name", 230));
fieldSet.add(new TextField("Actor", "actor", 230));
- fieldSet.add(new DateField("State", "currentState", 230));
-
+ fieldSet.add(new TextField("State", "currentState", 230));
+
Panel inner = new PaddedPanel(fieldSet, 0, 10, 0, 0);
formPanel.add(inner);
final Button startBtn = new Button("Start Progress",
- new ButtonListenerAdapter()
- {
+ new ButtonListenerAdapter()
+ {
- public void onClick(Button button, EventObject eventObject)
- {
- //selectedInstance.setState(ProcessInstance.STATE.SUSPENDED);
- //persistStateChange();
- }
- }
+ public void onClick(Button button, EventObject eventObject)
+ {
+ if(null==selectedInstance)
+ {
+ MessageBox.alert("Please select a task.");
+ return;
+ }
+ selectedInstance.setActor(mainView.getUsername());
+ persistChanges();
+ }
+ }
);
- //startBtn.setIcon("images/icons/pause.png");
final Button stopBtn = new Button("Stop",
- new ButtonListenerAdapter()
- {
+ new ButtonListenerAdapter()
+ {
- public void onClick(Button button, EventObject eventObject)
- {
- //selectedInstance.setState(ProcessInstance.STATE.RUNNING);
- //persistStateChange();
- }
- }
+ public void onClick(Button button, EventObject eventObject)
+ {
+ if(null==selectedInstance)
+ {
+ MessageBox.alert("Please select a task.");
+ return;
+ }
+ selectedInstance.setActor(null);
+ persistChanges();
+ }
+ }
);
formPanel.addButton(startBtn);
@@ -219,27 +227,33 @@
final RowSelectionModel sm = new RowSelectionModel(true);
sm.addListener(
- new RowSelectionListenerAdapter()
- {
- public void onRowSelect(RowSelectionModel sm, int rowIndex, Record record)
- {
- selectedInstance = TaskList.transform(record);
+ new RowSelectionListenerAdapter()
+ {
+ public void onRowSelect(RowSelectionModel sm, int rowIndex, Record record)
+ {
+ selectedInstance = TaskList.transform(record);
- if(TaskReference.STATE.IN_PROGRESS == selectedInstance.getCurrentState())
- {
- startBtn.disable();
- stopBtn.enable();
- }
- else
- {
- startBtn.enable();
- stopBtn.disable();
- }
+ if(!selectedInstance.hasPooledActors())
+ {
+ // no group assignment available
+ startBtn.disable();
+ stopBtn.disable();
+ }
+ else if(TaskReference.STATE.IN_PROGRESS == selectedInstance.getCurrentState())
+ {
+ startBtn.disable();
+ stopBtn.enable();
+ }
+ else
+ {
+ startBtn.enable();
+ stopBtn.disable();
+ }
- formPanel.getForm().loadRecord(record);
- formPanel.doLayout();
- }
- }
+ formPanel.getForm().loadRecord(record);
+ formPanel.doLayout();
+ }
+ }
);
taskList.setRowSelectionModel(sm);
@@ -247,4 +261,38 @@
return outerFormPanel;
}
+
+ private void persistChanges()
+ {
+ RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,
+ mainView.getUrlBuilder().getTaskAssignmentURL(
+ selectedInstance.getId(), selectedInstance.getActor()
+ )
+ );
+
+ try
+ {
+ rb.sendRequest(null,
+ new RequestCallback() {
+
+ public void onResponseReceived(Request request, Response response)
+ {
+ // testSuccess
+ taskList.reloadStore();
+ selectedInstance = null;
+ }
+
+ public void onError(Request request, Throwable t)
+ {
+ // Unknown error
+ Log.error("Unknown error", t);
+ }
+ });
+ }
+ catch (RequestException e1)
+ {
+ mainView.setError(e1.getMessage());
+ Log.error("Request failed" ,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-11 13:59:20 UTC (rev 2881)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java 2008-11-11 14:34:01 UTC (rev 2882)
@@ -67,7 +67,7 @@
match = JSONWalk.on(child).next(name);
}
}
-
+
return match;
}
Added: projects/gwt-console/trunk/war/src/test/examples/TaskAssignmentExample.par
===================================================================
(Binary files differ)
Property changes on: projects/gwt-console/trunk/war/src/test/examples/TaskAssignmentExample.par
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jbpm-commits
mailing list