[jbpm-commits] JBoss JBPM SVN: r5148 - in projects/gwt-console/trunk: gui/war/src/main/java/org/jboss/bpm/console/client/process and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Jun 29 07:43:06 EDT 2009


Author: heiko.braun at jboss.com
Date: 2009-06-29 07:43:05 -0400 (Mon, 29 Jun 2009)
New Revision: 5148

Added:
   projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/ExecuteJobAction.java
Modified:
   projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/EngineEditor.java
   projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/JobListView.java
   projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDetailView.java
   projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
   projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/EngineFacade.java
Log:
Enable job execution from within the console

Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/EngineEditor.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/EngineEditor.java	2009-06-29 11:00:18 UTC (rev 5147)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/EngineEditor.java	2009-06-29 11:43:05 UTC (rev 5148)
@@ -108,6 +108,7 @@
       controller.addAction(DeleteDeploymentAction.ID, new DeleteDeploymentAction(appContext));
       controller.addAction(SuspendDeploymentAction.ID, new SuspendDeploymentAction(appContext));
       controller.addAction(ResumeDeploymentAction.ID, new ResumeDeploymentAction(appContext));
+      controller.addAction(ExecuteJobAction.ID, new ExecuteJobAction(appContext));
 
       // display tab, needs to visible for correct rendering
       tabPanel.selectTab( view2index.get(DeploymentListView.ID ));

Added: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/ExecuteJobAction.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/ExecuteJobAction.java	                        (rev 0)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/ExecuteJobAction.java	2009-06-29 11:43:05 UTC (rev 5148)
@@ -0,0 +1,69 @@
+/*
+ * 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.engine;
+
+import org.jboss.bpm.console.client.common.AbstractRESTAction;
+import org.jboss.bpm.console.client.ApplicationContext;
+import com.google.gwt.http.client.RequestBuilder;
+import com.google.gwt.http.client.Response;
+import com.mvc4g.client.Controller;
+import com.mvc4g.client.Event;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class ExecuteJobAction extends AbstractRESTAction
+{
+
+  public final static String ID = ExecuteJobAction.class.getName();
+
+  public ExecuteJobAction(ApplicationContext appContetext)
+  {
+    super(appContetext);
+  }
+
+  public String getId()
+  {
+    return ID;
+  }
+
+  public String getUrl(Object event)
+  {
+    String id = (String)event;
+    return appContext.getUrlBuilder().getExecuteJobURL(id);
+  }
+
+  public RequestBuilder.Method getRequestMethod()
+  {
+    return RequestBuilder.POST;
+  }
+
+  public void handleSuccessfulResponse(final Controller controller, final Object event, Response response)
+  {
+    String id = (String)event;
+
+    // reload job list
+    controller.handleEvent(
+        new Event(UpdateJobsAction.ID, null)
+    );
+  }
+}

Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/JobListView.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/JobListView.java	2009-06-29 11:00:18 UTC (rev 5147)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/engine/JobListView.java	2009-06-29 11:43:05 UTC (rev 5148)
@@ -30,11 +30,13 @@
 import org.gwt.mosaic.ui.client.ListBox;
 import org.gwt.mosaic.ui.client.ToolBar;
 import org.gwt.mosaic.ui.client.ToolButton;
+import org.gwt.mosaic.ui.client.MessageBox;
 import org.gwt.mosaic.ui.client.layout.*;
 import org.gwt.mosaic.ui.client.list.DefaultListModel;
 import org.jboss.bpm.console.client.common.AbstractView;
 import org.jboss.bpm.console.client.icons.ConsoleIconBundle;
 import org.jboss.bpm.console.client.model.JobRef;
+import org.jboss.bpm.console.client.model.ProcessDefinitionRef;
 import org.jboss.bpm.console.client.model.util.SimpleDateFormat;
 import org.jboss.bpm.console.client.ApplicationContext;
 
@@ -168,6 +170,28 @@
           }
           )
       );
+
+      toolBar.addSeparator();
+
+      toolBar.add(
+          new ToolButton("Execute", new ClickListener() {
+            public void onClick(Widget sender) {
+              JobRef selection = getSelection();
+              if(null==selection)
+              {
+                MessageBox.alert("Missing selection", "Please select a job!");
+              }
+              else
+              {
+                controller.handleEvent(
+                    new Event(ExecuteJobAction.ID, selection.getId())
+                );
+              }
+            }
+          }
+          )
+      );
+
       toolBox.add(toolBar, new BoxLayoutData(BoxLayoutData.FillStyle.HORIZONTAL));
 
       // filter
@@ -271,4 +295,12 @@
       ); */
     }
   }
+
+  public JobRef getSelection()
+  {
+    JobRef selection = null;
+    if(isInitialized() && listBox.getSelectedIndex()!=-1)
+      selection = listBox.getItem( listBox.getSelectedIndex());
+    return selection;
+  }
 }

Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDetailView.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDetailView.java	2009-06-29 11:00:18 UTC (rev 5147)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDetailView.java	2009-06-29 11:43:05 UTC (rev 5148)
@@ -37,6 +37,7 @@
 import org.gwt.mosaic.ui.client.layout.LayoutPanel;
 import org.jboss.bpm.console.client.common.PropertyGrid;
 import org.jboss.bpm.console.client.model.ProcessInstanceRef;
+import org.jboss.bpm.console.client.model.util.SimpleDateFormat;
 import org.jboss.bpm.console.client.util.WindowUtil;
 import org.jboss.bpm.console.client.ApplicationContext;
 import org.jboss.bpm.console.client.ServerPlugins;
@@ -64,6 +65,8 @@
 
   private boolean hasDiagramPlugin;
 
+  private SimpleDateFormat dateFormat = new SimpleDateFormat();
+  
   public InstanceDetailView(ApplicationContext appContext)
   {
     super("Instance details");
@@ -73,12 +76,12 @@
     super.setLayout(new BoxLayout(BoxLayout.Orientation.HORIZONTAL));
 
     grid = new PropertyGrid(
-        new String[] {"ID:", "Key:", "State", "Start Date:"}
+        new String[] {"ID:", "Key:", "State", "Start Date:", "Activity:"}
     );
 
     this.add(grid, new BoxLayoutData(BoxLayoutData.FillStyle.BOTH));
 
-    activityBtn = new Button("Activity",
+    activityBtn = new Button("Diagram",
         new ClickListener()
         {
           public void onClick(Widget widget)
@@ -157,7 +160,8 @@
         instance.getId(),
         instance.getKey(),
         String.valueOf( instance.getState() ),
-        String.valueOf( instance.getStartDate() )
+        dateFormat.format(instance.getStartDate()),
+        instance.getRootToken().getCurrentNodeName()
     };
 
     grid.update(values);

Modified: projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java	2009-06-29 11:00:18 UTC (rev 5147)
+++ projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java	2009-06-29 11:43:05 UTC (rev 5148)
@@ -219,4 +219,10 @@
   {
     return config.getConsoleServerUrl() + "/rs/engine/jobs";
   }
+
+  public String getExecuteJobURL(String id)
+  {
+    String encodedId = URL.encode(id);
+    return config.getConsoleServerUrl() + "/rs/engine/job/"+encodedId+"/execute";
+  }
 }

Modified: projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/EngineFacade.java
===================================================================
--- projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/EngineFacade.java	2009-06-29 11:00:18 UTC (rev 5147)
+++ projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/EngineFacade.java	2009-06-29 11:43:05 UTC (rev 5148)
@@ -163,6 +163,29 @@
 
   }
 
+  @POST
+  @Path("job/{id}/execute")
+  @Produces("application/json")
+  public Response executeJob(
+      @PathParam("id")
+      String id
+  )
+  {
+
+    ProcessEnginePlugin dplPlugin = getDeploymentPlugin();
+    if(processEnginePlugin !=null)
+    {
+      dplPlugin.executeJob(id);
+      return Response.ok().build();
+    }
+    else
+    {
+      log.error("ProcessEnginePlugin not available");
+      return Response.serverError().build();
+    }
+
+  }
+
   private Response createJsonResponse(Object wrapper)
   {
     Gson gson = GsonFactory.createInstance();




More information about the jbpm-commits mailing list