[jboss-svn-commits] JBL Code SVN: r32681 - labs/jbossrules/trunk/drools-process/drools-gwt-form/src/main/java/org/drools/integration/console/forms.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Apr 29 13:34:25 EDT 2010


Author: KrisVerlaenen
Date: 2010-04-29 13:34:25 -0400 (Thu, 29 Apr 2010)
New Revision: 32681

Modified:
   labs/jbossrules/trunk/drools-process/drools-gwt-form/src/main/java/org/drools/integration/console/forms/TaskFormDispatcher.java
Log:
JBRULES-2491: Expose task content in task forms
 - adding content parameter to task form

Modified: labs/jbossrules/trunk/drools-process/drools-gwt-form/src/main/java/org/drools/integration/console/forms/TaskFormDispatcher.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-gwt-form/src/main/java/org/drools/integration/console/forms/TaskFormDispatcher.java	2010-04-29 16:48:35 UTC (rev 32680)
+++ labs/jbossrules/trunk/drools-process/drools-gwt-form/src/main/java/org/drools/integration/console/forms/TaskFormDispatcher.java	2010-04-29 17:34:25 UTC (rev 32681)
@@ -1,6 +1,9 @@
 package org.drools.integration.console.forms;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.ObjectInputStream;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 import java.util.HashMap;
@@ -11,10 +14,12 @@
 
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
 import org.drools.SystemEventListenerFactory;
+import org.drools.task.Content;
 import org.drools.task.I18NText;
 import org.drools.task.Task;
 import org.drools.task.service.MinaTaskClient;
 import org.drools.task.service.TaskClientHandler;
+import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
 import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
 import org.jboss.bpm.console.server.plugin.FormAuthorityRef;
 
@@ -48,6 +53,24 @@
 		BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
     	client.getTask(new Long(ref.getReferenceId()), getTaskResponseHandler);
 		Task task = getTaskResponseHandler.getTask();
+		Object input = null;
+		long contentId = task.getTaskData().getDocumentContentId();
+		if (contentId != -1) {
+			BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+	    	client.getContent(contentId, getContentResponseHandler);
+	    	Content content = getContentResponseHandler.getContent();
+	    	ByteArrayInputStream bis = new ByteArrayInputStream(content.getContent());
+			ObjectInputStream in;
+			try {
+				in = new ObjectInputStream(bis);
+				input = in.readObject();
+				in.close();
+			} catch (IOException e) {
+				e.printStackTrace();
+			} catch (ClassNotFoundException e) {
+				e.printStackTrace();
+			}
+		}
 
 		// check if a template exists
 		String name = null;
@@ -64,7 +87,16 @@
 
 		// merge template with process variables
 		Map<String, Object> renderContext = new HashMap<String, Object>();
-		renderContext.put("task", task);	
+		renderContext.put("task", task);
+		renderContext.put("content", input);
+		if (input instanceof Map) {
+			Map<?, ?> map = (Map) input;
+			for (Map.Entry<?, ?> entry: map.entrySet()) {
+				if (entry.getKey() instanceof String) {
+					renderContext.put((String) entry.getKey(), entry.getValue());
+				}
+			}
+		}
 		return processTemplate(name, template, renderContext);
 	}
 



More information about the jboss-svn-commits mailing list