[overlord-commits] Overlord SVN: r1007 - in activity-monitor/trunk: gui/war/src/main/java/org/jboss/bpm/monitor/gui and 1 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Fri Mar 12 10:44:57 EST 2010


Author: heiko.braun at jboss.com
Date: 2010-03-12 10:44:56 -0500 (Fri, 12 Mar 2010)
New Revision: 1007

Added:
   activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/RefillStockProcess.java
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java
Removed:
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/RecentActivityView.java
Modified:
   activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/App.gwt.xml
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/MonitorUI.java
Log:
Enable process selection and chart updates

Modified: activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java
===================================================================
--- activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java	2010-03-12 14:26:06 UTC (rev 1006)
+++ activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/Emulation.java	2010-03-12 15:44:56 UTC (rev 1007)
@@ -46,9 +46,9 @@
   private boolean suspend = false;
   private EventHandler eventHandler;
 
-  /*private static Class[] processDefinitions = new Class[] {
-      OrderCheckoutProcess.class
-  };*/
+  private static Class[] processDefinitions = new Class[] {
+      OrderCheckoutProcess.class, RefillStockProcess.class
+  };
 
   public Emulation(EventHandler handler)
   {
@@ -68,13 +68,14 @@
         if(!suspend)
         {
 
-          OrderCheckoutProcess p = new OrderCheckoutProcess();
 
+          Process p = Math.random()<0.8 ? new OrderCheckoutProcess() : new RefillStockProcess();
+
           ProcessRunnable process = new ProcessRunnable(p, eventHandler);
           try
           {
             pool.execute(process);
-            System.out.println("\tStart new process");
+            System.out.println("\tStart new process: "+ p.getClass().getSimpleName());
 
           }
           catch (RejectedExecutionException e)

Added: activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/RefillStockProcess.java
===================================================================
--- activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/RefillStockProcess.java	                        (rev 0)
+++ activity-monitor/trunk/emu/src/main/java/org/jboss/bpm/monitor/emu/RefillStockProcess.java	2010-03-12 15:44:56 UTC (rev 1007)
@@ -0,0 +1,109 @@
+/* jboss.org */
+package org.jboss.bpm.monitor.emu;
+
+import java.util.UUID;
+
+/**
+ * @author: Heiko Braun <hbraun at redhat.com>
+ * @date: Mar 12, 2010
+ */
+public class RefillStockProcess implements Process
+{
+  private final String correlationId;
+
+  public enum Activity {
+    None,
+    CheckStock,
+    PlaceOrder,
+    VerifyReceit,
+    NotifyWarehouse,    
+    Ended
+  };
+
+  private Activity current = Activity.None;
+
+  private long start;
+  private long end;
+
+  public RefillStockProcess()
+  {
+    this.correlationId = UUID.randomUUID().toString();
+  }
+
+  public String getName()
+  {
+    return getClass().getSimpleName();
+  }
+
+  public long getStarted()
+  {
+    return start;
+  }
+
+  public long getEnded()
+  {
+    return end;
+  }
+
+  public String getInstanceId()
+  {
+    return this.correlationId;
+  }
+
+  public String getActivity()
+  {
+    return current.toString();
+  }
+
+  public String invoke()
+  {
+    Activity next = null;
+
+    switch (current)
+    {
+      case None:
+        start = System.currentTimeMillis();
+        next = Activity.CheckStock;
+        break;
+      case CheckStock:
+        next = Activity.PlaceOrder;
+        break;
+      case PlaceOrder:
+        next = Activity.VerifyReceit;
+        break;
+      case VerifyReceit:
+        next = Activity.NotifyWarehouse;
+        break;
+      case NotifyWarehouse:
+        next = Activity.Ended;
+        end = System.currentTimeMillis();
+        break;      
+      default:
+        throw new IllegalStateException("Unknown state "+ current);
+    }
+
+    current = next;
+    return current.toString();
+  }
+
+  public boolean isActive()
+  {
+    return (current!=Activity.Ended && current!=Activity.None);
+  }
+
+  public long getExectime()
+  {
+    if(0==start)
+      throw new IllegalArgumentException("No start time recorded");
+
+    return end -  start;
+  }
+
+  @Override
+  public String toString()
+  {
+    return "RefillStockProcess{" +
+        "activity=" + current +
+        '}';
+  }
+}
\ No newline at end of file

Modified: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/App.gwt.xml
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/App.gwt.xml	2010-03-12 14:26:06 UTC (rev 1006)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/App.gwt.xml	2010-03-12 15:44:56 UTC (rev 1007)
@@ -6,7 +6,7 @@
     <inherits name="com.google.gwt.resources.Resources" />
 
     <inherits name='org.timepedia.chronoscope.Chronoscope'/>
-
+    
     <inherits name="org.jboss.errai.common.ErraiCommon"/>
     <inherits name="org.jboss.errai.bus.ErraiBus"/>
     <inherits name="org.jboss.errai.workspaces.ErraiWorkspaces" />

Copied: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java (from rev 1006, activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/RecentActivityView.java)
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java	                        (rev 0)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java	2010-03-12 15:44:56 UTC (rev 1007)
@@ -0,0 +1,134 @@
+/* jboss.org */
+package org.jboss.bpm.monitor.gui.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
+import com.google.gwt.user.client.ui.ListBox;
+import org.gwt.mosaic.ui.client.layout.BoxLayout;
+import org.gwt.mosaic.ui.client.layout.LayoutPanel;
+import org.jboss.errai.bus.client.api.RemoteCallback;
+import org.jboss.errai.bus.client.api.base.MessageBuilder;
+import org.jboss.errai.workspaces.client.api.ProvisioningCallback;
+import org.jboss.errai.workspaces.client.api.WidgetProvider;
+import org.jboss.errai.workspaces.client.api.annotations.LoadTool;
+import org.timepedia.chronoscope.client.Dataset;
+import org.timepedia.chronoscope.client.Datasets;
+import org.timepedia.chronoscope.client.browser.ChartPanel;
+import org.timepedia.chronoscope.client.browser.Chronoscope;
+import org.timepedia.chronoscope.client.browser.json.GwtJsonDataset;
+import org.timepedia.chronoscope.client.browser.json.JsonDatasetJSO;
+import org.timepedia.chronoscope.client.data.tuple.Tuple2D;
+
+import java.util.List;
+
+/**
+ * @author: Heiko Braun <hbraun at redhat.com>
+ * @date: Mar 11, 2010
+ */
+ at LoadTool(name="Process Activity", group = "History")
+public class DefinitionHistoryView implements WidgetProvider
+{
+
+  private static final String TIMEPEDIA_FONTBOOK_SERVICE = "http://api.timepedia.org/fr";
+
+  private static volatile double GOLDEN__RATIO = 1.618;
+
+  private LayoutPanel panel;
+  private ListBox listBox;
+  private ChartPanel chartPanel;
+
+  public void provideWidget(ProvisioningCallback callback)
+  {
+    panel = new LayoutPanel(new BoxLayout(BoxLayout.Orientation.VERTICAL));
+
+    listBox = new ListBox();
+    panel.add(listBox);
+    listBox.addItem("Select a process");
+    listBox.addChangeHandler(new ChangeHandler()
+    {
+      public void onChange(ChangeEvent changeEvent)
+      {
+        ChartData rpcService = MessageBuilder.createCall(
+            new RemoteCallback<String>()
+            {
+              public void callback(String response)
+              {
+                renderChart(response);
+              }
+            },
+            ChartData.class
+        );
+
+        if(listBox.getSelectedIndex()>0)
+        {
+          String processDefinitionID = listBox.getItemText(listBox.getSelectedIndex());
+          rpcService.getDefinitionActivity(processDefinitionID, "Last 7 Days");
+        }
+      }
+    });
+
+    loadDefinitions();
+
+    callback.onSuccess(panel);
+  }
+
+
+  private void loadDefinitions()
+  {
+    HistoryRecords rpcService = MessageBuilder.createCall(
+        new RemoteCallback<List<String>>()
+        {
+
+          public void callback(List<String> response)
+          {
+            for(String s : response)
+              listBox.addItem(s);
+          }
+        },
+        HistoryRecords.class
+    );
+
+    rpcService.getProcessDefinitionKeys();
+
+  }
+
+  private void renderChart(String jsonData)
+  {
+    try
+    {
+      final Datasets<Tuple2D> datasets = new Datasets<Tuple2D>();
+      datasets.add(MonitorUI.chronoscope.getDatasetReader().createDatasetFromJson(
+          new GwtJsonDataset(JSOModel.fromJson(jsonData)))
+      );
+      Dataset[] dsArray = datasets.toArray();
+
+      // if exists remove. I don't know how to update at this point
+      if(chartPanel!=null)
+        panel.remove(chartPanel);
+
+      initChartPanel(dsArray);
+            
+      panel.layout();
+    }
+    catch (Exception e)
+    {
+      GWT.log("Failed to create chart", e);
+    }
+  }
+
+  private void initChartPanel(Dataset[] datasets)
+  {
+    int chartWidth = 450;
+    int chartHeight = (int) (chartWidth / GOLDEN__RATIO);
+
+    chartPanel = Chronoscope
+        .createTimeseriesChart(datasets, chartWidth, chartHeight);
+
+    panel.add(chartPanel);
+  }
+
+  private static native JsonDatasetJSO getJson(String varName) /*-{
+       return $wnd[varName];
+    }-*/;
+}

Modified: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/MonitorUI.java
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/MonitorUI.java	2010-03-12 14:26:06 UTC (rev 1006)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/MonitorUI.java	2010-03-12 15:44:56 UTC (rev 1007)
@@ -29,6 +29,8 @@
 import org.jboss.errai.bus.client.ErraiBus;
 import org.jboss.errai.bus.client.api.base.MessageBuilder;
 import org.jboss.errai.bus.client.framework.MessageBus;
+import org.timepedia.chronoscope.client.ChronoscopeOptions;
+import org.timepedia.chronoscope.client.browser.Chronoscope;
 
 public class MonitorUI implements EntryPoint
 {
@@ -37,7 +39,18 @@
    */
   private MessageBus bus = ErraiBus.get();
 
+  public static Chronoscope chronoscope;
+  
   public void onModuleLoad() {
-    
+
+    // Chronoscope.enableHistorySupport(true);
+    Chronoscope.setFontBookRendering(true);
+    ChronoscopeOptions.setErrorReporting(true);
+    Chronoscope.setMicroformatsEnabled(false);
+    Chronoscope.setShowCredits(false);
+    Chronoscope.initialize();
+
+
+    chronoscope = Chronoscope.getInstance();
   }
 }

Deleted: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/RecentActivityView.java
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/RecentActivityView.java	2010-03-12 14:26:06 UTC (rev 1006)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/RecentActivityView.java	2010-03-12 15:44:56 UTC (rev 1007)
@@ -1,92 +0,0 @@
-/* jboss.org */
-package org.jboss.bpm.monitor.gui.client;
-
-import com.google.gwt.core.client.GWT;
-import org.gwt.mosaic.ui.client.layout.LayoutPanel;
-import org.jboss.errai.bus.client.api.RemoteCallback;
-import org.jboss.errai.bus.client.api.base.MessageBuilder;
-import org.jboss.errai.workspaces.client.api.ProvisioningCallback;
-import org.jboss.errai.workspaces.client.api.WidgetProvider;
-import org.jboss.errai.workspaces.client.api.annotations.LoadTool;
-import org.timepedia.chronoscope.client.ChronoscopeOptions;
-import org.timepedia.chronoscope.client.Dataset;
-import org.timepedia.chronoscope.client.Datasets;
-import org.timepedia.chronoscope.client.browser.ChartPanel;
-import org.timepedia.chronoscope.client.browser.Chronoscope;
-import org.timepedia.chronoscope.client.browser.json.GwtJsonDataset;
-import org.timepedia.chronoscope.client.browser.json.JsonDatasetJSO;
-import org.timepedia.chronoscope.client.data.tuple.Tuple2D;
-
-/**
- * @author: Heiko Braun <hbraun at redhat.com>
- * @date: Mar 11, 2010
- */
- at LoadTool(name="Recent Activity", group = "Process History")
-public class RecentActivityView implements WidgetProvider
-{
-
-  private static final String TIMEPEDIA_FONTBOOK_SERVICE = "http://api.timepedia.org/fr";
-
-  private static volatile double GOLDEN__RATIO = 1.618;
-
-  private LayoutPanel panel;
-
-  public void provideWidget(ProvisioningCallback callback)
-  {
-    panel = new LayoutPanel();
-
-    ChartData rpcService = MessageBuilder.createCall(
-        new RemoteCallback<String>()
-        {
-          public void callback(String response)
-          {
-            renderChart(response);
-          }
-        },
-        ChartData.class
-    );
-
-    rpcService.getDefinitionActivity("OrderCheckoutProcess", "Last 7 Days");
-
-    callback.onSuccess(panel);
-  }
-
-  private void renderChart(String jsonData)
-  {
-    // Chronoscope.enableHistorySupport(true);
-    Chronoscope.setFontBookRendering(true);
-    ChronoscopeOptions.setErrorReporting(true);
-    Chronoscope.setMicroformatsEnabled(false);
-    Chronoscope.setShowCredits(false);
-    Chronoscope.initialize();
-
-    Chronoscope chronoscope = Chronoscope.getInstance();
-
-    try
-    {
-      int chartWidth = 450;
-      int chartHeight = (int) (chartWidth / GOLDEN__RATIO);
-
-      final Datasets<Tuple2D> datasets = new Datasets<Tuple2D>();
-      datasets.add(chronoscope.getDatasetReader().createDatasetFromJson(
-          new GwtJsonDataset(JSOModel.fromJson(jsonData)))
-      );
-
-      Dataset[] dsArray = datasets.toArray();
-
-      final ChartPanel chartPanel = Chronoscope
-          .createTimeseriesChart(dsArray, chartWidth, chartHeight);
-
-      panel.add(chartPanel);
-    }
-    catch (Exception e)
-    {
-      GWT.log("Failed to create chart", e);
-    }
-
-  }
-
-  private static native JsonDatasetJSO getJson(String varName) /*-{
-       return $wnd[varName];
-    }-*/;
-}



More information about the overlord-commits mailing list