diff --git a/pom.xml b/pom.xml
index 00a6575..b8130c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,17 +91,17 @@
org.gcube.common
home-library
- runtime
+ compile
org.gcube.common
home-library-jcr
- runtime
+ compile
org.gcube.common
home-library-model
- runtime
+ compile
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartBasicPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartBasicPanel.java
index b56920a..52a1a95 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartBasicPanel.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartBasicPanel.java
@@ -9,6 +9,7 @@ import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.S
import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.TimeUnitMeasure;
import org.gcube.portlets.admin.accountingmanager.client.resource.AccountingManagerResources;
import org.gcube.portlets.admin.accountingmanager.client.state.AccountingClientStateData;
+import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingPeriodMode;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesService;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceBasic;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData;
@@ -16,6 +17,7 @@ import org.gcube.portlets.admin.accountingmanager.shared.export.ExportType;
import com.allen_sauer.gwt.log.client.Log;
import com.github.highcharts4gwt.client.view.widget.HighchartsLayoutPanel;
+import com.github.highcharts4gwt.model.array.api.Array;
import com.github.highcharts4gwt.model.array.api.ArrayNumber;
import com.github.highcharts4gwt.model.array.api.ArrayString;
import com.github.highcharts4gwt.model.factory.api.HighchartsOptionFactory;
@@ -23,6 +25,7 @@ import com.github.highcharts4gwt.model.factory.jso.JsoHighchartsOptionFactory;
import com.github.highcharts4gwt.model.highcharts.option.api.ChartOptions;
import com.github.highcharts4gwt.model.highcharts.option.api.SeriesArea;
import com.github.highcharts4gwt.model.highcharts.option.api.SeriesColumn;
+import com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.Data;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.event.shared.EventBus;
@@ -56,7 +59,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
.getFormat(PredefinedFormat.YEAR_MONTH_DAY);
private static final String TIME_UNIT = "Time Unit";
private static final String SINGLE_AXIS = "Single Axis";
-
+
private EventBus eventBus;
private AccountingClientStateData accountingStateData;
private HighchartsLayoutPanel highchartsLayoutPanel;
@@ -83,10 +86,10 @@ public class ServiceChartBasicPanel extends SimpleContainer {
private String unitMeasureLabel = TimeUnitMeasure.MS;
private TextButton unitButton;
private ToggleButton toggleButton;
-
- public ServiceChartBasicPanel(EventBus eventBus, AccountingClientStateData accountingStateData) {
- this.eventBus=eventBus;
+ public ServiceChartBasicPanel(EventBus eventBus,
+ AccountingClientStateData accountingStateData) {
+ this.eventBus = eventBus;
this.accountingStateData = accountingStateData;
forceLayoutOnResize = true;
create();
@@ -252,7 +255,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
downloadSVGItem = new MenuItem(DownloadConstants.DOWNLOAD_SVG,
AccountingManagerResources.INSTANCE.accountingFileSVG24());
downloadSVGItem.setHeight(30);
-
+
downloadCSVItem.addSelectionHandler(new SelectionHandler- () {
@Override
@@ -261,9 +264,8 @@ public class ServiceChartBasicPanel extends SimpleContainer {
}
-
});
-
+
downloadXMLItem.addSelectionHandler(new SelectionHandler
- () {
@Override
@@ -273,7 +275,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
}
});
-
+
downloadJSONItem.addSelectionHandler(new SelectionHandler
- () {
@Override
@@ -283,7 +285,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
}
});
-
+
downloadPNGItem.addSelectionHandler(new SelectionHandler
- () {
@Override
@@ -320,7 +322,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
onDownloadSVG(id);
}
});
-
+
menuDownload.add(downloadCSVItem);
menuDownload.add(downloadXMLItem);
menuDownload.add(downloadJSONItem);
@@ -331,26 +333,25 @@ public class ServiceChartBasicPanel extends SimpleContainer {
return menuDownload;
}
-
+
private void onDownloadCSV() {
- ExportRequestEvent event = new ExportRequestEvent(
- ExportType.CSV, accountingStateData.getAccountingType());
+ ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV,
+ accountingStateData.getAccountingType());
eventBus.fireEvent(event);
}
-
+
private void onDownloadXML() {
- ExportRequestEvent event = new ExportRequestEvent(
- ExportType.XML, accountingStateData.getAccountingType());
+ ExportRequestEvent event = new ExportRequestEvent(ExportType.XML,
+ accountingStateData.getAccountingType());
eventBus.fireEvent(event);
}
private void onDownloadJSON() {
- ExportRequestEvent event = new ExportRequestEvent(
- ExportType.JSON, accountingStateData.getAccountingType());
+ ExportRequestEvent event = new ExportRequestEvent(ExportType.JSON,
+ accountingStateData.getAccountingType());
eventBus.fireEvent(event);
}
-
// chart.options.exporting.buttons.contextButton.menuItems[0].onclick();
public static native void onDownloadPNG(String id) /*-{
@@ -414,23 +415,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
SeriesServiceBasic seriesServiceBasic = (SeriesServiceBasic) seriesService
.getSerieServiceDefinition();
- double minRange = ChartTimeMeasure
- .calculateMinRange(accountingStateData.getSeriesRequest()
- .getAccountingPeriod());
-
- double interval = ChartTimeMeasure
- .calculateInterval(accountingStateData.getSeriesRequest()
- .getAccountingPeriod());
-
- Date dateStart = dtf.parse(accountingStateData.getSeriesRequest()
- .getAccountingPeriod().getStartDate());
-
- dateStart.setTime(dateStart.getTime()
- + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE);
-
- Log.debug("BuildChart DateStart: "
- + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL)
- .format(dateStart));
+
HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory();
options = highchartsFactory.createChartOptions();
@@ -447,8 +432,6 @@ public class ServiceChartBasicPanel extends SimpleContainer {
// colors.setValue(0, "#cc0038");
// colors.setValue(1, "#32cd32");
- // xAxis
- options.xAxis().type("datetime").minRange(minRange);
// yAxis
String multiAxis = "[{" + " \"id\": \""
@@ -491,8 +474,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
;
options.setFieldAsJsonObject("yAxis", multiAxis);
-
- // does not seem to be working
+
String fillcolor = "{" + "\"linearGradient\": {" + "\"x1\": 0,"
+ "\"y1\": 0," + "\"x2\": 0," + "\"y2\": 1" + "},"
+ "\"stops\": [" + "[" + "0, \"#058DC7\"" + "]," + "["
@@ -509,21 +491,11 @@ public class ServiceChartBasicPanel extends SimpleContainer {
seriesOperationCount.color(colors.get(1));
seriesOperationCount.type("column");
- ArrayNumber dataOperationCount = seriesOperationCount
- .dataAsArrayNumber();
-
- seriesOperationCount.pointInterval(interval).pointStart(
- dateStart.getTime());
-
SeriesArea seriesDuration = highchartsFactory.createSeriesArea();
seriesDuration.name(ServiceChartMeasure.Duration.getLabel());
seriesDuration.color(colors.get(0));
seriesDuration.yAxisAsString(ServiceChartMeasure.Duration.name());
- ArrayNumber dataDuration = seriesDuration.dataAsArrayNumber();
-
- seriesDuration.pointInterval(interval).pointStart(dateStart.getTime());
-
SeriesArea seriesMaxInvocationTime = highchartsFactory
.createSeriesArea();
seriesMaxInvocationTime.name(ServiceChartMeasure.MaxInvocationTime
@@ -532,12 +504,6 @@ public class ServiceChartBasicPanel extends SimpleContainer {
seriesMaxInvocationTime
.yAxisAsString(ServiceChartMeasure.MaxInvocationTime.name());
- ArrayNumber dataMaxInvocationTime = seriesMaxInvocationTime
- .dataAsArrayNumber();
-
- seriesMaxInvocationTime.pointInterval(interval).pointStart(
- dateStart.getTime());
-
SeriesArea seriesMinInvocationTime = highchartsFactory
.createSeriesArea();
seriesMinInvocationTime.name(ServiceChartMeasure.MinInvocationTime
@@ -545,30 +511,155 @@ public class ServiceChartBasicPanel extends SimpleContainer {
seriesMinInvocationTime.color(colors.get(3));
seriesMinInvocationTime
.yAxisAsString(ServiceChartMeasure.MinInvocationTime.name());
+
+
+ if (accountingStateData.getSeriesRequest().getAccountingPeriod()
+ .getPeriod().compareTo(AccountingPeriodMode.DAILY) == 0
+ || accountingStateData.getSeriesRequest().getAccountingPeriod()
+ .getPeriod().compareTo(AccountingPeriodMode.HOURLY) == 0
+ || accountingStateData.getSeriesRequest().getAccountingPeriod()
+ .getPeriod().compareTo(AccountingPeriodMode.MINUTELY) == 0) {
- ArrayNumber dataMinInvocationTime = seriesMinInvocationTime
- .dataAsArrayNumber();
+ double minRange = ChartTimeMeasure
+ .calculateMinRange(accountingStateData.getSeriesRequest()
+ .getAccountingPeriod());
- seriesMinInvocationTime.pointInterval(interval).pointStart(
- dateStart.getTime());
+ double interval = ChartTimeMeasure
+ .calculateInterval(accountingStateData.getSeriesRequest()
+ .getAccountingPeriod());
+
+ Date dateStart = dtf.parse(accountingStateData.getSeriesRequest()
+ .getAccountingPeriod().getStartDate());
+
+ dateStart.setTime(dateStart.getTime()
+ + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE);
+
+ Log.debug("BuildChart DateStart: "
+ + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL)
+ .format(dateStart));
+
+ // xAxis
+ options.xAxis().type("datetime");
+ options.xAxis().minRange(minRange);
+
+ ArrayNumber dataOperationCount = seriesOperationCount
+ .dataAsArrayNumber();
+
+ seriesOperationCount.pointInterval(interval);
+ seriesOperationCount.pointStart(dateStart.getTime());
+
+ ArrayNumber dataDuration = seriesDuration.dataAsArrayNumber();
+
+ seriesDuration.pointInterval(interval);
+ seriesDuration.pointStart(dateStart.getTime());
+
+ ArrayNumber dataMaxInvocationTime = seriesMaxInvocationTime
+ .dataAsArrayNumber();
+
+ seriesMaxInvocationTime.pointInterval(interval);
+ seriesMaxInvocationTime.pointStart(dateStart.getTime());
+
+ ArrayNumber dataMinInvocationTime = seriesMinInvocationTime
+ .dataAsArrayNumber();
+
+ seriesMinInvocationTime.pointInterval(interval);
+ seriesMinInvocationTime.pointStart(dateStart.getTime());
+
+ for (SeriesServiceData seriesServiceData : seriesServiceBasic
+ .getSeries()) {
+ dataOperationCount.push(seriesServiceData.getOperationCount());
+ dataDuration
+ .push(seriesServiceData.getDuration() / unitMeasure);
+ dataMaxInvocationTime.push(seriesServiceData
+ .getMaxInvocationTime() / unitMeasure);
+ dataMinInvocationTime.push(seriesServiceData
+ .getMinInvocationTime() / unitMeasure);
+ }
+
+ options.series().addToEnd(seriesOperationCount);
+ options.series().addToEnd(seriesDuration);
+ options.series().addToEnd(seriesMaxInvocationTime);
+ options.series().addToEnd(seriesMinInvocationTime);
+
+ } else {
+ // xAxis
+ options.xAxis().type("datetime");
+
+ if (accountingStateData.getSeriesRequest().getAccountingPeriod()
+ .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0){
+ options.tooltip().xDateFormat("%b, %Y");
+ //options.tooltip().xDateFormat("");
+
+
+
+ } else {
+ if (accountingStateData.getSeriesRequest().getAccountingPeriod()
+ .getPeriod().compareTo(AccountingPeriodMode.YEARLY) == 0){
+ options.tooltip().xDateFormat("%Y");
+ //options.tooltip().xDateFormat("");
+
+ } else {
+
+ }
+
+ }
+
+ Array arrayDataOperationCount = seriesOperationCount
+ .dataAsArrayObject();
+ Array arrayDataDuration = seriesDuration
+ .dataAsArrayObject();
+ Array arrayDataMaxInvocationTime = seriesMaxInvocationTime
+ .dataAsArrayObject();
+ Array arrayDataMinInvocationTime = seriesMinInvocationTime
+ .dataAsArrayObject();
+
+ for (SeriesServiceData seriesServiceData : seriesServiceBasic
+ .getSeries()) {
+ long dateFrom1970=seriesServiceData.getDate().getTime();
+
+ Log.debug("SeriersServiceData: "+seriesServiceData.getDate());
+ Log.debug("SeriersServiceData: "+dateFrom1970);
+ //dateFrom1970=dateFrom1970+7200000;
+ //Log.debug("SeriersServiceData: "+dateFrom1970);
+
+ Data dataOperationCount = highchartsFactory
+ .createSeriesColumnData();
+ dataOperationCount.x(dateFrom1970);
+ dataOperationCount.y(seriesServiceData.getOperationCount()
+ / unitMeasure);
+ arrayDataOperationCount.addToEnd(dataOperationCount);
+
+ com.github.highcharts4gwt.model.highcharts.option.api.seriesarea.Data dataDuration = highchartsFactory
+ .createSeriesAreaData();
+ dataDuration.x(dateFrom1970);
+ dataDuration.y(seriesServiceData.getDuration()
+ / unitMeasure);
+ arrayDataDuration.addToEnd(dataDuration);
+
+ com.github.highcharts4gwt.model.highcharts.option.api.seriesarea.Data dataMaxInvocationTime = highchartsFactory
+ .createSeriesAreaData();
+ dataMaxInvocationTime.x(dateFrom1970);
+ dataMaxInvocationTime.y(seriesServiceData.getMaxInvocationTime()
+ / unitMeasure);
+ arrayDataMaxInvocationTime.addToEnd(dataMaxInvocationTime);
+
+ com.github.highcharts4gwt.model.highcharts.option.api.seriesarea.Data dataMinInvocationTime = highchartsFactory
+ .createSeriesAreaData();
+ dataMinInvocationTime.x(dateFrom1970);
+ dataMinInvocationTime.y(seriesServiceData.getMinInvocationTime()
+ / unitMeasure);
+ arrayDataMinInvocationTime.addToEnd(dataMinInvocationTime);
+
+ }
+
+ options.series().addToEnd(seriesOperationCount);
+ options.series().addToEnd(seriesDuration);
+ options.series().addToEnd(seriesMaxInvocationTime);
+ options.series().addToEnd(seriesMinInvocationTime);
- for (SeriesServiceData seriesServiceData : seriesServiceBasic
- .getSeries()) {
- dataOperationCount.push(seriesServiceData.getOperationCount());
- dataDuration.push(seriesServiceData.getDuration() / unitMeasure);
- dataMaxInvocationTime.push(seriesServiceData.getMaxInvocationTime()
- / unitMeasure);
- dataMinInvocationTime.push(seriesServiceData.getMinInvocationTime()
- / unitMeasure);
}
- options.series().addToEnd(seriesOperationCount);
- options.series().addToEnd(seriesDuration);
- options.series().addToEnd(seriesMaxInvocationTime);
- options.series().addToEnd(seriesMinInvocationTime);
-
options.chart().showAxes(true);
-
options.legend().enabled(true);
return;
}
@@ -675,7 +766,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
SeriesArea seriesDuration = highchartsFactory.createSeriesArea();
seriesDuration.name(ServiceChartMeasure.Duration.getLabel());
seriesDuration.color(colors.get(0));
- //seriesDuration.yAxisAsString("ServiceData");
+ // seriesDuration.yAxisAsString("ServiceData");
ArrayNumber dataDuration = seriesDuration.dataAsArrayNumber();
@@ -686,7 +777,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
seriesMaxInvocationTime.name(ServiceChartMeasure.MaxInvocationTime
.getLabel());
seriesMaxInvocationTime.color(colors.get(2));
- //seriesMaxInvocationTime.yAxisAsString("ServiceData");
+ // seriesMaxInvocationTime.yAxisAsString("ServiceData");
ArrayNumber dataMaxInvocationTime = seriesMaxInvocationTime
.dataAsArrayNumber();
@@ -699,7 +790,7 @@ public class ServiceChartBasicPanel extends SimpleContainer {
seriesMinInvocationTime.name(ServiceChartMeasure.MinInvocationTime
.getLabel());
seriesMinInvocationTime.color(colors.get(3));
- //seriesMinInvocationTime.yAxisAsString("ServiceData");
+ // seriesMinInvocationTime.yAxisAsString("ServiceData");
ArrayNumber dataMinInvocationTime = seriesMinInvocationTime
.dataAsArrayNumber();
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/utils/ChartTimeMeasure.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/utils/ChartTimeMeasure.java
index 5f23bfb..038f551 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/utils/ChartTimeMeasure.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/utils/ChartTimeMeasure.java
@@ -24,7 +24,8 @@ public class ChartTimeMeasure {
Log.error("AccountingPeriodMode is null");
return 0;
}
-
+
+
switch (accountingPeriod.getPeriod()) {
case DAILY:
// 1 day=24hour * 60min *60sec * 1000 millisec
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCallerTester.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCallerTester.java
index 7515127..bdb253a 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCallerTester.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCallerTester.java
@@ -1,10 +1,15 @@
package org.gcube.portlets.admin.accountingmanager.server.amservice;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Calendar;
import java.util.Date;
+import java.util.GregorianCalendar;
import java.util.List;
+import org.gcube.accounting.analytics.TemporalConstraint;
import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterTop;
import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingType;
import org.gcube.portlets.admin.accountingmanager.shared.data.FilterKey;
@@ -41,9 +46,11 @@ import org.slf4j.LoggerFactory;
*
*/
public class AccountingCallerTester implements AccountingCallerInterface {
- static Logger logger = LoggerFactory
+ private static Logger logger = LoggerFactory
.getLogger(AccountingCallerTester.class);
+ protected SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMMMM dd");
+
public AccountingCallerTester() {
super();
}
@@ -125,6 +132,33 @@ public class AccountingCallerTester implements AccountingCallerInterface {
logger.debug("getSeries(): [AccountingType=" + accountingType
+ " , seriesRequest=" + seriesRequest + "]");
SeriesResponse seriesResponse = null;
+
+ Calendar startCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
+
+
+ try {
+ startCalendar.setTime(sdf.parse(seriesRequest
+ .getAccountingPeriod().getStartDate()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ throw new ServiceException("Start Date not valid!");
+ }
+
+ Calendar endCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
+
+
+ //GregorianCalendar endCalendar = new GregorianCalendar();
+ //.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
+
+ //GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
+ try {
+ endCalendar.setTime(sdf.parse(seriesRequest
+ .getAccountingPeriod().getEndDate()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ throw new ServiceException("End Date not valid!");
+ }
+
switch (accountingType) {
case JOB:
SeriesJobDefinition serieJobDefinition = null;
@@ -190,16 +224,55 @@ public class AccountingCallerTester implements AccountingCallerInterface {
if (seriesRequest.getAccountingFilterDefinition()
.getChartType() != null) {
ArrayList seriesServiceData = new ArrayList<>();
- for (int i = 0; i < 30; i++) {
- SeriesServiceData data = new SeriesServiceData(
- new Date(),
- new Double(50 * Math.random()).longValue(),
- new Double(10000 * Math.random()).longValue(),
- new Double(10000 * Math.random()).longValue(),
- new Double(10000 * Math.random()).longValue());
- seriesServiceData.add(data);
+ switch (seriesRequest.getAccountingPeriod().getPeriod()) {
+ case DAILY:
+ case HOURLY:
+ case MINUTELY:
+ for (int i = 0; i < 30; i++) {
+ SeriesServiceData data = new SeriesServiceData(
+ new Date(),
+ new Double(50 * Math.random()).longValue(),
+ new Double(10000 * Math.random())
+ .longValue(), new Double(
+ 10000 * Math.random()).longValue(),
+ new Double(10000 * Math.random())
+ .longValue());
+ seriesServiceData.add(data);
+ }
+ break;
+ case MONTHLY:
+ while (startCalendar.compareTo(endCalendar) <= 0) {
+ SeriesServiceData data = new SeriesServiceData(
+ startCalendar.getTime(), new Double(
+ 50 * Math.random()).longValue(),
+ new Double(10000 * Math.random())
+ .longValue(), new Double(
+ 10000 * Math.random()).longValue(),
+ new Double(10000 * Math.random())
+ .longValue());
+ seriesServiceData.add(data);
+ startCalendar.add(Calendar.MONTH, 1);
+ }
+ break;
+ case YEARLY:
+ while (startCalendar.compareTo(endCalendar) <= 0) {
+ SeriesServiceData data = new SeriesServiceData(
+ startCalendar.getTime(), new Double(
+ 50 * Math.random()).longValue(),
+ new Double(10000 * Math.random())
+ .longValue(), new Double(
+ 10000 * Math.random()).longValue(),
+ new Double(10000 * Math.random())
+ .longValue());
+ seriesServiceData.add(data);
+ startCalendar.add(Calendar.YEAR, 1);
+ }
+ break;
+ default:
+ break;
}
+
switch (seriesRequest.getAccountingFilterDefinition()
.getChartType()) {
case Basic:
@@ -207,19 +280,70 @@ public class AccountingCallerTester implements AccountingCallerInterface {
seriesServiceData);
break;
case Top:
-
AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest
.getAccountingFilterDefinition();
ArrayList seriesServiceDataTopList = new ArrayList<>();
if (accountingFilterTop.getShowOthers()) {
- for (int i = 0; i < 40; i++) {
+
+ try {
+ startCalendar.setTime(sdf.parse(seriesRequest
+ .getAccountingPeriod().getStartDate()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ throw new ServiceException("Start Date not valid!");
+ }
- SeriesServiceDataTop seriesServiceDataTop1 = new SeriesServiceDataTop(
- new FilterValue("User" + i),
- seriesServiceData);
- seriesServiceDataTopList
- .add(seriesServiceDataTop1);
+ try {
+ endCalendar.setTime(sdf.parse(seriesRequest
+ .getAccountingPeriod().getEndDate()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ throw new ServiceException("End Date not valid!");
+ }
+
+ int k=0;
+
+ switch (seriesRequest.getAccountingPeriod()
+ .getPeriod()) {
+ case DAILY:
+ case HOURLY:
+ case MINUTELY:
+ for (int i = 0; i < 40; i++) {
+
+ SeriesServiceDataTop seriesServiceDataTop1 = new SeriesServiceDataTop(
+ new FilterValue("User" + i),
+ seriesServiceData);
+ seriesServiceDataTopList
+ .add(seriesServiceDataTop1);
+ }
+ break;
+ case MONTHLY:
+ k=0;
+ while (startCalendar.compareTo(endCalendar) <= 0) {
+ SeriesServiceDataTop seriesServiceDataTop1 = new SeriesServiceDataTop(
+ new FilterValue("User" + k),
+ seriesServiceData);
+ seriesServiceDataTopList
+ .add(seriesServiceDataTop1);
+ startCalendar.add(Calendar.MONTH, 1);
+ k++;
+ }
+ break;
+ case YEARLY:
+ k=0;
+ while (startCalendar.compareTo(endCalendar) <= 0) {
+ SeriesServiceDataTop seriesServiceDataTop1 = new SeriesServiceDataTop(
+ new FilterValue("User" + k),
+ seriesServiceData);
+ seriesServiceDataTopList
+ .add(seriesServiceDataTop1);
+ startCalendar.add(Calendar.YEAR, 1);
+ k++;
+ }
+ break;
+ default:
+ break;
}
} else {
@@ -324,5 +448,4 @@ public class AccountingCallerTester implements AccountingCallerInterface {
}
}
-
}
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml b/src/main/resources/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml
index 4a5a477..24283f2 100644
--- a/src/main/resources/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml
@@ -47,16 +47,16 @@
values="en" /> -->
-
+
+ /> -->
-
+