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

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Fri Mar 12 06:41:29 EST 2010


Author: heiko.braun at jboss.com
Date: 2010-03-12 06:41:27 -0500 (Fri, 12 Mar 2010)
New Revision: 1004

Added:
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset.js
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset2.js
   activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/metric/Grouping.java
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/client/RecentActivityView.java
   activity-monitor/trunk/gui/war/war/App.html
   activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/DefaultBPAFDataSource.java
   activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/JsonExport.java
   activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/XYDataSetJSO.java
Log:
First working chart impl

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 09:50:59 UTC (rev 1003)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/App.gwt.xml	2010-03-12 11:41:27 UTC (rev 1004)
@@ -5,12 +5,12 @@
     <inherits name="com.google.gwt.uibinder.UiBinder"/>
     <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" />
 
-    <inherits name='org.timepedia.chronoscope.Chronoscope'/>
-    
     <entry-point class='org.jboss.bpm.monitor.gui.client.MonitorUI'/>
     
 </module>
\ No newline at end of file

Modified: 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 09:50:59 UTC (rev 1003)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/RecentActivityView.java	2010-03-12 11:41:27 UTC (rev 1004)
@@ -1,6 +1,7 @@
 /* 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.workspaces.client.api.ProvisioningCallback;
 import org.jboss.errai.workspaces.client.api.WidgetProvider;
@@ -51,12 +52,10 @@
 
       final Datasets<Tuple2D> datasets = new Datasets<Tuple2D>();
       datasets.add(chronoscope.getDatasetReader().createDatasetFromJson(
-          new GwtJsonDataset(getJson("interestRates01")))
+          new GwtJsonDataset(getJson("dataset")))
       );
-      datasets.add(chronoscope.getDatasetReader().createDatasetFromJson(
-          new GwtJsonDataset(getJson("interestRates02")))
-      );
 
+
 //      MockDatasetFactory datasetFactory = new MockDatasetFactory();
 //      Dataset mockDataset = datasetFactory.getBasicDataset();
 //      datasets.add(mockDataset);
@@ -68,7 +67,7 @@
 
       chartPanel.setReadyListener(new ViewReadyCallback() {
         public void onViewReady(final View view) {
-          Dataset dataset = datasets.get(0);
+          /*Dataset dataset = datasets.get(0);
           final Marker m = new Marker(
               dataset.getDomainExtrema().midpoint(), "A", 0);
           m.addOverlayClickListener(new OverlayClickListener() {
@@ -80,13 +79,15 @@
           XYPlot plot = view.getChart().getPlot();
           //plot.setDatasetRenderer(1, new BarChartXYRenderer());
           plot.addOverlay(m);
-          plot.redraw();
+          plot.redraw();*/
         }
       });
 
+      panel.add(chartPanel);
     }
     catch (Exception e)
     {
+      GWT.log("Failed to create chart", e);      
     }
 
 

Added: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset.js
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset.js	                        (rev 0)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset.js	2010-03-12 11:41:27 UTC (rev 1004)
@@ -0,0 +1,8 @@
+var dataset = {
+"id": "OrderCheckoutProcess",
+"preferredRenderer": "line",
+"domain": [1267787761970,1267874161970,1267960561970,1268046961970,1268133361970,1268219761970,1268306161970],
+"range": [0,0,0,0,8,26,82],
+"label": "Process Instances last 7 days",
+"axis": "unit"
+}

Added: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset2.js
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset2.js	                        (rev 0)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/public/dataset2.js	2010-03-12 11:41:27 UTC (rev 1004)
@@ -0,0 +1,9 @@
+var dataset = {
+"id": "unrate",
+"domainscale": 1000,
+"preferredRenderer": "line",
+"domain": [-694306739,-691628339,-689122739,-686444339,-683852339,-681173939,-678581939,-675903539,-673225139,-670633139,-667954739,-665362739,-662684339,-660005939,-657586739,-654908339,-652316339,-649637939,-647045939,-644367539,-641689139,-639097139,-636418739,-633826739,-631148339,-628469939,-626050739,-623372339,-620780339,-618101939,-615509939,-612831539,-610153139,-607561139,-604882739,-602290739,-599612339,-596933939,-594514739,-591836339,-589244339,-586565939,-583973939,-581295539,-578617139,-576025139,-573346739,-570754739,-568076339,-565397939,-562892339,-560213939,-557621939,-554943539,-552351539,-549673139,-546994739,-544402739,-541724339,-539132339,-536453939,-533775539,-531356339,-528677939,-526085939,-523407539,-520815539,-518137139,-515458739,-512866739,-510188339,-507596339,-504917939,-502239539,-499820339,-497141939,-494549939,-491871539,-489279539,-486601139,-483922739,-481330739,-478652339,-476060339,-473381939,-470703539,-468284339,-465605939,-46301393!
 9,-460335539,-457743539,-455065139,-452386739,-449794739,-447116339,-444524339,-441845939,-439167539,-436661939,-433983539,-431391539,-428713139,-426121139,-423442739,-420764339,-418172339,-415493939,-412901939,-410223539,-407545139,-405125939,-402447539,-399855539,-397177139,-394585139,-391906739,-389228339,-386636339,-383957939,-381365939,-378687539,-376009139,-373589939,-370911539,-368319539,-365641139,-363049139,-360370739,-357692339,-355100339,-352421939,-349829939,-347151539,-344473139,-342053939,-339375539,-336783539,-334105139,-331513139,-328834739,-326156339,-323564339,-320885939,-318293939,-315615539,-312937139,-310431539,-307753139,-305161139,-302482739,-299890739,-297212339,-294533939,-291941939,-289263539,-286671539,-283993139,-281314739,-278895539,-276217139,-273625139,-270946739,-268354739,-265676339,-262997939,-260405939,-257727539,-255135539,-252457139,-249778739,-247359539,-244681139,-242089139,-239410739,-236818739,-234140339,-231461939,-228869939,-226191!
 539,-223599539,-220921139,-218242739,-215823539,-213145139,-21!
 0553139,
-207874739,-205282739,-202604339,-199925939,-197333939,-194655539,-192063539,-189385139,-186706739,-184201139,-181522739,-178930739,-176252339,-173660339,-170981939,-168303539,-165711539,-163033139,-160441139,-157762739,-155084339,-152665139,-149986739,-147394739,-144716339,-142124339,-139445939,-136767539,-134175539,-131497139,-128905139,-126226739,-123548339,-121129139,-118450739,-115858739,-113180339,-110588339,-107909939,-105231539,-102639539,-99961139,-97369139,-94690739,-92012339,-89593139,-86914739,-84322739,-81644339,-79052339,-76373939,-73695539,-71103539,-68425139,-65833139,-63154739,-60476339,-57970739,-55292339,-52700339,-50021939,-47429939,-44751539,-42073139,-39481139,-36802739,-34210739,-31532339,-28853939,-26434739,-23756339,-21164339,-18485939,-15893939,-13215539,-10537139,-7945139,-5266739,-2674739,3661,2682061,5101261,7779661,10371661,13050061,15642061,18320461,20998861,23590861,26269261,28861261,31539661,34218061,36637261,39315661,41907661,44586061,471780!
 61,49856461,52534861,55126861,57805261,60397261,63075661,65754061,68259661,70938061,73530061,76208461,78800461,81478861,84157261,86749261,89427661,92019661,94698061,97376461,99795661,102474061,105066061,107744461,110336461,113014861,115693261,118285261,120963661,123555661,126234061,128912461,131331661,134010061,136602061,139280461,141872461,144550861,147229261,149821261,152499661,155091661,157770061,160448461,162867661,165546061,168138061,170816461,173408461,176086861,178765261,181357261,184035661,186627661,189306061,191984461,194490061,197168461,199760461,202438861,205030861,207709261,210387661,212979661,215658061,218250061,220928461,223606861,226026061,228704461,231296461,233974861,236566861,239245261,241923661,244515661,247194061,249786061,252464461,255142861,257562061,260240461,262832461,265510861,268102861,270781261,273459661,276051661,278730061,281322061,284000461,286678861,289098061,291776461,294368461,297046861,299638861,302317261,304995661,307587661,310266061,31285!
 8061,315536461,318214861,320720461,323398861,325990861,3286692!
 61,33126
1261,333939661,336618061,339210061,341888461,344480461,347158861,349837261,352256461,354934861,357526861,360205261,362797261,365475661,368154061,370746061,373424461,376016461,378694861,381373261,383792461,386470861,389062861,391741261,394333261,397011661,399690061,402282061,404960461,407552461,410230861,412909261,415328461,418006861,420598861,423277261,425869261,428547661,431226061,433818061,436496461,439088461,441766861,444445261,446950861,449629261,452221261,454899661,457491661,460170061,462848461,465440461,468118861,470710861,473389261,476067661,478486861,481165261,483757261,486435661,489027661,491706061,494384461,496976461,499654861,502246861,504925261,507603661,510022861,512701261,515293261,517971661,520563661,523242061,525920461,528512461,531190861,533782861,536461261,539139661,541558861,544237261,546829261,549507661,552099661,554778061,557456461,560048461,562726861,565318861,567997261,570675661,573181261,575859661,578451661,581130061,583722061,586400461,589078861,5916!
 70861,594349261,596941261,599619661,602298061,604717261,607395661,609987661,612666061,615258061,617936461,620614861,623206861,625885261,628477261,631155661,633834061,636253261,638931661,641523661,644202061,646794061,649472461,652150861,654742861,657421261,660013261,662691661,665370061,667789261,670467661,673059661,675738061,678330061,681008461,683686861,686278861,688957261,691549261,694227661,696906061,699411661,702090061,704682061,707360461,709952461,712630861,715309261,717901261,720579661,723171661,725850061,728528461,730947661,733626061,736218061,738896461,741488461,744166861,746845261,749437261,752115661,754707661,757386061,760064461,762483661,765162061,767754061,770432461,773024461,775702861,778381261,780973261,783651661,786243661,788922061,791600461,794019661,796698061,799290061,801968461,804560461,807238861,809917261,812509261,815187661,817779661,820458061,823136461,825642061,828320461,830912461,833590861,836182861,838861261,841539661,844131661,846810061,849402061,85!
 2080461,854758861,857178061,859856461,862448461,865126861,8677!
 18861,87
0397261,873075661,875667661,878346061,880938061,883616461,886294861,888714061,891392461,893984461,896662861,899254861,901933261,904611661,907203661,909882061,912474061,915152461,917830861,920250061,922928461,925520461,928198861,930790861,933469261,936147661,938739661,941418061,944010061,946688461,949366861,951872461,954550861,957142861,959821261,962413261,965091661,967770061,970362061,973040461,975632461,978310861,980989261,983408461,986086861,988678861,991357261,993949261,996627661,999306061,1001898061,1004576461,1007168461,1009846861,1012525261,1014944461,1017622861,1020214861,1022893261,1025485261,1028163661,1030842061,1033434061,1036112461,1038704461,1041382861,1044061261,1046480461,1049158861,1051750861,1054429261,1057021261,1059699661,1062378061,1064970061,1067648461,1070240461,1072918861,1075597261,1078102861,1080781261,1083373261,1086051661,1088643661,1091322061,1094000461,1096592461,1099270861,1101862861,1104541261,1107219661,1109638861,1112317261,1114909261,1117587!
 661,1120179661,1122858061,1125536461,1128128461,1130806861,1133398861,1136077261,1138755661,1141174861],
+"range": [3.4,3.8,4.0,3.9,3.5,3.6,3.6,3.9,3.8,3.7,3.8,4.0,4.3,4.7,5.0,5.3,6.1,6.2,6.7,6.8,6.6,7.9,6.4,6.6,6.5,6.4,6.3,5.8,5.5,5.4,5.0,4.5,4.4,4.2,4.2,4.3,3.7,3.4,3.4,3.1,3.0,3.2,3.1,3.1,3.3,3.5,3.5,3.1,3.2,3.1,2.9,2.9,3.0,3.0,3.2,3.4,3.1,3.0,2.8,2.7,2.9,2.6,2.6,2.7,2.5,2.5,2.6,2.7,2.9,3.1,3.5,4.5,4.9,5.2,5.7,5.9,5.9,5.6,5.8,6.0,6.1,5.7,5.3,5.0,4.9,4.7,4.6,4.7,4.3,4.2,4.0,4.2,4.1,4.3,4.2,4.2,4.0,3.9,4.2,4.0,4.3,4.3,4.4,4.1,3.9,3.9,4.3,4.2,4.2,3.9,3.7,3.9,4.1,4.3,4.2,4.1,4.4,4.5,5.1,5.2,5.8,6.4,6.7,7.4,7.4,7.3,7.5,7.4,7.1,6.7,6.2,6.2,6.0,5.9,5.6,5.2,5.1,5.0,5.1,5.2,5.5,5.7,5.8,5.3,5.2,4.8,5.4,5.2,5.1,5.4,5.5,5.6,5.5,6.1,6.1,6.6,6.6,6.9,6.9,7.0,7.1,6.9,7.0,6.6,6.7,6.5,6.1,6.0,5.8,5.5,5.6,5.6,5.5,5.5,5.4,5.7,5.6,5.4,5.7,5.5,5.7,5.9,5.7,5.7,5.9,5.6,5.6,5.4,5.5,5.5,5.7,5.5,5.6,5.4,5.4,5.3,5.1,5.2,4.9,5.0,5.1,5.1,4.8,5.0,4.9,5.1,4.7,4.8,4.6,4.6,4.4,4.4,4.3,4.2,4.1,4.0,4.0,3.8,3.8,3.8,3.9,3.8,3.8,3.8,3.7,3.7,3.6,3.8,3.9,3.8,3.8,3.8,3.8,3.9,3.8,3.8,3.8,4.0,3.9,3.8,3.7,3.8,3.7,3.5,3.!
 5,3.7,3.7,3.5,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.5,3.5,3.5,3.7,3.7,3.5,3.5,3.9,4.2,4.4,4.6,4.8,4.9,5.0,5.1,5.4,5.5,5.9,6.1,5.9,5.9,6.0,5.9,5.9,5.9,6.0,6.1,6.0,5.8,6.0,6.0,5.8,5.7,5.8,5.7,5.7,5.7,5.6,5.6,5.5,5.6,5.3,5.2,4.9,5.0,4.9,5.0,4.9,4.9,4.8,4.8,4.8,4.6,4.8,4.9,5.1,5.2,5.1,5.1,5.1,5.4,5.5,5.5,5.9,6.0,6.6,7.2,8.1,8.1,8.6,8.8,9.0,8.8,8.6,8.4,8.4,8.4,8.3,8.2,7.9,7.7,7.6,7.7,7.4,7.6,7.8,7.8,7.6,7.7,7.8,7.8,7.5,7.6,7.4,7.2,7.0,7.2,6.9,7.0,6.8,6.8,6.8,6.4,6.4,6.3,6.3,6.1,6.0,5.9,6.2,5.9,6.0,5.8,5.9,6.0,5.9,5.9,5.8,5.8,5.6,5.7,5.7,6.0,5.9,6.0,5.9,6.0,6.3,6.3,6.3,6.9,7.5,7.6,7.8,7.7,7.5,7.5,7.5,7.2,7.5,7.4,7.4,7.2,7.5,7.5,7.2,7.4,7.6,7.9,8.3,8.5,8.6,8.9,9.0,9.3,9.4,9.6,9.8,9.8,10.1,10.4,10.8,10.8,10.4,10.4,10.3,10.2,10.1,10.1,9.4,9.5,9.2,8.8,8.5,8.3,8.0,7.8,7.8,7.7,7.4,7.2,7.5,7.5,7.3,7.4,7.2,7.3,7.3,7.2,7.2,7.3,7.2,7.4,7.4,7.1,7.1,7.1,7.0,7.0,6.7,7.2,7.2,7.1,7.2,7.2,7.0,6.9,7.0,7.0,6.9,6.6,6.6,6.6,6.6,6.3,6.3,6.2,6.1,6.0,5.9,6.0,5.8,5.7,5.7,5.7,5.7,5.4,5.6,5.4,5.4,5.6,5.4,!
 5.4,5.3,5.3,5.4,5.2,5.0,5.2,5.2,5.3,5.2,5.2,5.3,5.3,5.4,5.4,5.!
 4,5.3,5.
2,5.4,5.4,5.2,5.5,5.7,5.9,5.9,6.2,6.3,6.4,6.6,6.8,6.7,6.9,6.9,6.8,6.9,6.9,7.0,7.0,7.3,7.3,7.4,7.4,7.4,7.6,7.8,7.7,7.6,7.6,7.3,7.4,7.4,7.3,7.1,7.0,7.1,7.1,7.0,6.9,6.8,6.7,6.8,6.6,6.5,6.6,6.6,6.5,6.4,6.1,6.1,6.1,6.0,5.9,5.8,5.6,5.5,5.6,5.4,5.4,5.8,5.6,5.6,5.7,5.7,5.6,5.5,5.6,5.6,5.6,5.5,5.5,5.6,5.6,5.3,5.5,5.1,5.2,5.2,5.4,5.4,5.3,5.2,5.2,5.1,4.9,5.0,4.9,4.8,4.9,4.7,4.6,4.7,4.6,4.6,4.7,4.3,4.4,4.5,4.5,4.5,4.6,4.5,4.4,4.4,4.3,4.4,4.2,4.3,4.2,4.3,4.3,4.2,4.2,4.1,4.1,4.0,4.0,4.1,4.0,3.8,4.0,4.0,4.0,4.1,3.9,3.9,3.9,3.9,4.2,4.2,4.3,4.4,4.3,4.5,4.6,4.9,5.0,5.3,5.5,5.7,5.7,5.7,5.7,5.9,5.8,5.8,5.8,5.7,5.7,5.7,5.9,6.0,5.8,5.9,5.9,6.0,6.1,6.3,6.2,6.1,6.1,6.0,5.9,5.7,5.7,5.6,5.7,5.5,5.6,5.6,5.5,5.4,5.4,5.4,5.4,5.4,5.2,5.4,5.1,5.1,5.1,5.0,5.0,4.9,5.1,4.9,5.0,4.9,4.7,4.8,4.7],
+"label": "Unemployment",
+"axis": "percent"
+}

Modified: activity-monitor/trunk/gui/war/war/App.html
===================================================================
--- activity-monitor/trunk/gui/war/war/App.html	2010-03-12 09:50:59 UTC (rev 1003)
+++ activity-monitor/trunk/gui/war/war/App.html	2010-03-12 11:41:27 UTC (rev 1004)
@@ -1,7 +1,8 @@
 <html>
 <head>
     <title>Errai Application</title>
-    <link rel="stylesheet" type="text/css" href="App.css">    
+    <link rel="stylesheet" type="text/css" href="App.css">
+    <script language='javascript' src='app/dataset.js'></script>
     <script type="text/javascript" language="javascript" src="app/app.nocache.js"></script>    
 </head>
 <body>

Modified: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/DefaultBPAFDataSource.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/DefaultBPAFDataSource.java	2010-03-12 09:50:59 UTC (rev 1003)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/DefaultBPAFDataSource.java	2010-03-12 11:41:27 UTC (rev 1004)
@@ -133,7 +133,7 @@
             "and e1.processDefinitionID='"+processDefinition+"' "+
             "and e1.timeStamp>="+timespan.getStart()+" "+
             "and e2.timeStamp<="+timespan.getEnd()+" "+
-            "order by e1.timeStamp;");
+            "order by e1.eventID;");
 
         query.addEntity(Event.class);
 

Modified: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/JsonExport.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/JsonExport.java	2010-03-12 09:50:59 UTC (rev 1003)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/JsonExport.java	2010-03-12 11:41:27 UTC (rev 1004)
@@ -4,8 +4,8 @@
 import org.jboss.bpm.monitor.model.BPAFDataSource;
 import org.jboss.bpm.monitor.model.DefaultBPAFDataSource;
 import org.jboss.bpm.monitor.model.bpaf.Event;
-import org.jboss.bpm.monitor.model.bpaf.State;
 import org.jboss.bpm.monitor.model.metric.Average;
+import org.jboss.bpm.monitor.model.metric.Grouping;
 import org.jboss.bpm.monitor.model.metric.Metrics;
 import org.jboss.bpm.monitor.model.metric.Timespan;
 
@@ -35,81 +35,48 @@
     System.out.println("Instances events for: "+timespan + ": "+events.size());
     
     Average avg = Metrics.getInstanceAverage(events);
+
+
+    SortedMap<Date, List<Event>> grouped = groupEventsByUnit(events, timespan);
+
+    /*System.out.println("--");
+    for(Date d : grouped.keySet())
+      System.out.println(d+": "+grouped.get(d).size());*/
+
+    // ----------
+
+
     XYDataSetJSO dataSet = new XYDataSetJSO("Process Instances last 7 days", s0);
 
-    Map<Date, Long> sorted = sortEventsByUnit(events, timespan);
-    
-    for(Date d : sorted.keySet())
-      System.out.println(d+": "+sorted.get(d));
-    
+    List<Long> domainData = new ArrayList<Long>(grouped.size());
+    List<Long> rangeData = new ArrayList<Long>(grouped.size());
+    for(Date d : grouped.keySet())
+    {
+      domainData.add(d.getTime());
+      rangeData.add(new Integer(grouped.get(d).size()).longValue());
+    }
+
+    dataSet.getDomain().add(domainData);
+    dataSet.getRange().add(rangeData);
     dataSet.setAxis("time");
     dataSet.setRangeBottom(avg.getMin());
     dataSet.setRangeTop(avg.getMax());
 
+    System.out.println(dataSet.toJSO());
   }
 
-  private static Map<Date, Long> sortEventsByUnit(List<Event> events, Timespan timespan)
+  private static SortedMap<Date, List<Event>> groupEventsByUnit(List<Event> events, Timespan timespan)
   {
-    Map<Date, Long> result = null;
+    SortedMap<Date, List<Event>> result = null;
     switch (timespan.getUnit() )
     {
       case DAY:
-          result = groupByDay(events, timespan);
+          result = Grouping.byDay(events, timespan);
         break;
     }
 
     return result;
   }
 
-  private static Map<Date, Long> groupByDay(List<Event> events, Timespan timespan)
-  {    
-    Map<Date, Long> slotCount = new HashMap<Date, Long>();
 
-    // create daily slots first
-    Calendar cal = Calendar.getInstance();
-    cal.setTimeInMillis(timespan.getStart());
-    while(cal.getTimeInMillis()<timespan.getEnd())
-    {
-      slotCount.put(new Date(cal.getTimeInMillis()), 0l); // left inclusive
-      cal.roll(Calendar.DAY_OF_YEAR, 1);
-    }
-
-    // sort events according to slots
-    for(Event e : events)
-    {
-      State state = e.getEventDetails().getCurrentState();
-      
-      // only State.Open events matter in this case
-      if(State.Open.equals(state))
-      {        
-        for(Date from : slotCount.keySet())
-        {
-          cal.setTime(from);
-          cal.roll(Calendar.DAY_OF_YEAR, 1);
-          Date to = cal.getTime();
-
-          Date actual = new Date(e.getTimestamp());
-                
-          if(actual.after(from) && actual.before(to))
-          {
-            // matching slot
-            if(null==slotCount.get(from))
-            {
-              slotCount.put(from, 1l);
-            }
-            else
-            {
-              Long aLong = slotCount.get(from);
-              slotCount.put(from, ++aLong);
-            }
-
-            break;
-          }
-        }
-      }
-    }
-    
-    return slotCount;
-  }
-
 }

Modified: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/XYDataSetJSO.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/XYDataSetJSO.java	2010-03-12 09:50:59 UTC (rev 1003)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/json/XYDataSetJSO.java	2010-03-12 11:41:27 UTC (rev 1004)
@@ -14,7 +14,7 @@
   dataset = {
     id: "unique id for this dataset",
     mipped: true,
-    domain: [ [level 0 values], [level 1 values], ... ],
+    domain: [ [level 0 values], [level 1 values], ... ],  =>  [UTCTimeInMilliseconds_1, UTCtimeInMilliseconds_2, ...]
     range: [ [level 0 values], [level 1 values], ... ],
     rangeBottom: min over level 0 values,
     rangeTop: max over level 0 values,
@@ -27,8 +27,8 @@
   String id;
   boolean mipped = true;
 
-  List<List<Double>> domain = new ArrayList<List<Double>>();
-  List<List<Double>> range = new ArrayList<List<Double>>();
+  List<List<Long>> domain = new ArrayList<List<Long>>();
+  List<List<Long>> range = new ArrayList<List<Long>>();
 
   double rangeBottom, rangeTop;
 
@@ -65,12 +65,12 @@
     this.mipped = mipped;
   }
 
-  public List<List<Double>> getDomain()
+  public List<List<Long>> getDomain()
   {
     return domain;
   }
 
-  public List<List<Double>> getRange()
+  public List<List<Long>> getRange()
   {
     return range;
   }
@@ -137,27 +137,31 @@
 
     sb.append("domain:[");
     int idx = 1;
-    for(List<Double> list : domain)
+    for(List<Long> list : domain)
     {
-      for(Double d : list)
+      sb.append("[");
+      for(Long d : list)
       {
-        sb.append("[").append(d).append("]");
+        sb.append(d);
         if(idx<list.size()) sb.append(",");
         idx++;
       }
+      sb.append("]");
     }
     sb.append("],");
 
     sb.append("range:[");
     idx = 1;
-    for(List<Double> list : domain)
+    for(List<Long> list : range)
     {
-      for(Double d : list)
+      sb.append("[");
+      for(Long d : list)
       {
-        sb.append("[").append(d).append("]");
+        sb.append(d);
         if(idx<list.size()) sb.append(",");
         idx++;
       }
+      sb.append("]");
     }
     sb.append("],");
 

Added: activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/metric/Grouping.java
===================================================================
--- activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/metric/Grouping.java	                        (rev 0)
+++ activity-monitor/trunk/model/src/main/java/org/jboss/bpm/monitor/model/metric/Grouping.java	2010-03-12 11:41:27 UTC (rev 1004)
@@ -0,0 +1,58 @@
+/* jboss.org */
+package org.jboss.bpm.monitor.model.metric;
+
+import org.jboss.bpm.monitor.model.bpaf.Event;
+
+import java.util.*;
+
+/**
+ * Grouping algorithms. Non-optimized.<br>
+ * These may show bad execution times when being used on large scale data sets.
+ *
+ * @author: Heiko Braun <hbraun at redhat.com>
+ * @date: Mar 12, 2010
+ */
+public class Grouping
+{
+  public static SortedMap<Date, List<Event>> byDay(List<Event> events, Timespan timespan)
+  {
+    long s0 = System.currentTimeMillis();
+    SortedMap<Date, List<Event>> slotCount = new TreeMap<Date, List<Event>>();
+
+    // create daily slots first
+    final Calendar cal = Calendar.getInstance();
+    cal.setTimeInMillis(timespan.getStart());
+    while(cal.getTimeInMillis()<timespan.getEnd())
+    {
+      slotCount.put(new Date(cal.getTimeInMillis()), new ArrayList<Event>()); // left inclusive
+      cal.roll(Calendar.DAY_OF_YEAR, 1);
+    }
+
+    // sort events according to slots
+    final Set<Date> startingDates = slotCount.keySet();
+    Iterator<Date> it = startingDates.iterator();
+    while(it.hasNext())
+    {
+      Date from = it.next();
+
+      for(Event e : events)
+      {
+        cal.setTime(from);
+        cal.roll(Calendar.DAY_OF_YEAR, 1);
+        Date to = cal.getTime();
+
+        Date actual = new Date(e.getTimestamp());
+
+        if(actual.after(from) && actual.before(to))
+        {
+          slotCount.get(from).add(e);         
+        }
+
+      }
+    }
+
+    //System.out.println("exectime: "+(System.currentTimeMillis()-s0)+ " ms");
+    return slotCount;
+  }
+
+}



More information about the overlord-commits mailing list