diff --git a/.classpath b/.classpath index dde1fed..cddc194 100644 --- a/.classpath +++ b/.classpath @@ -1,12 +1,12 @@ - + - + @@ -45,5 +45,5 @@ - + diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index ecbb20a..05c213d 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,5 +1,5 @@ - + diff --git a/CHANGELOG.md b/CHANGELOG.md index 10598f4..55795ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm # Changelog for "accounting-manager" +## [v1.15.0-SNAPSHOT] - 2021-11-30 + +### Features + +- Improve query support of the new persistence [#21354] + + ## [v1.14.0] - 2021-06-28 ### Fixes diff --git a/changelog.xml b/changelog.xml index 9541355..aabc4be 100644 --- a/changelog.xml +++ b/changelog.xml @@ -1,4 +1,8 @@ + + Improve query support of the new persistence [#21354] + Fixed display errors generated in Root scope [#21729] diff --git a/pom.xml b/pom.xml index 8aba4ec..f02821a 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ 4.0.0 org.gcube.portlets.admin accounting-manager - 1.14.0 + 1.15.0-SNAPSHOT war @@ -108,7 +108,7 @@ org.gcube.accounting accounting-lib - [4.0.0,5.0.0-SNAPSHOT) + provided @@ -235,6 +235,13 @@ compile + + + org.gcube.data.publishing + document-store-lib + provided + + org.gcube.accounting @@ -246,14 +253,7 @@ org.gcube.accounting accounting-analytics - [3.0.0,4.0.0-SNAPSHOT) - - - - - org.gcube.data.publishing - document-store-lib - provided + [4.0.0-SNAPSHOT,5.0.0-SNAPSHOT) @@ -261,7 +261,7 @@ org.gcube.accounting accounting-analytics-persistence-postgresql - [1.0.0,2.0.0-SNAPSHOT) + [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) runtime diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml b/src/main/java/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml index e566422..772a767 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/accountingman.gwt.xml @@ -46,7 +46,8 @@ - @@ -56,8 +57,7 @@ - - + diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/AccountingManagerController.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/AccountingManagerController.java index ed3ec4c..59e196b 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/AccountingManagerController.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/AccountingManagerController.java @@ -430,7 +430,8 @@ public class AccountingManagerController { AccountingClientStateData accountingStateData = accountingState.getState(accountingType); SeriesRequest seriesRequest = null; - + Context defaultContext=availableContext; + switch (accountingType) { case JOB: case PORTLET: @@ -439,9 +440,8 @@ public class AccountingManagerController { case TASK: seriesRequest = new SeriesRequest( new AccountingPeriod(dtf.format(lastMonth), dtf.format(date), AccountingPeriodMode.DAILY), - new AccountingFilterBasic()); + new AccountingFilterBasic(defaultContext)); Log.debug("DefaultSeriesRequest: " + seriesRequest); - break; case SPACE: accountingStateData.setAvailableSpaces(spaces); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/ActiveFiltersPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/ActiveFiltersPanel.java index e70ff5a..0fe780b 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/ActiveFiltersPanel.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/ActiveFiltersPanel.java @@ -9,26 +9,25 @@ import org.gcube.portlets.admin.accountingmanager.client.event.SessionExpiredEve import org.gcube.portlets.admin.accountingmanager.client.event.StateChangeEvent; import org.gcube.portlets.admin.accountingmanager.client.monitor.AccountingMonitor; import org.gcube.portlets.admin.accountingmanager.client.properties.AccountingFilterProperties; -import org.gcube.portlets.admin.accountingmanager.client.properties.GenresDataProperties; -import org.gcube.portlets.admin.accountingmanager.client.properties.GenresDataPropertiesCombo; +import org.gcube.portlets.admin.accountingmanager.client.properties.ContextDataProperties; import org.gcube.portlets.admin.accountingmanager.client.resource.AccountingManagerResources; import org.gcube.portlets.admin.accountingmanager.client.rpc.AccountingManagerServiceAsync; import org.gcube.portlets.admin.accountingmanager.client.state.AccountingClientStateData; import org.gcube.portlets.admin.accountingmanager.client.type.SessionExpiredType; import org.gcube.portlets.admin.accountingmanager.client.util.UtilsGXT3; +import org.gcube.portlets.admin.accountingmanager.shared.Constants; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilter; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterContext; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterDefinition; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterSpaces; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterTop; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; +import org.gcube.portlets.admin.accountingmanager.shared.data.Context; +import org.gcube.portlets.admin.accountingmanager.shared.data.ContextData; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterKey; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValuesRequest; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValuesResponse; -import org.gcube.portlets.admin.accountingmanager.shared.data.GenresData; -import org.gcube.portlets.admin.accountingmanager.shared.data.Spaces; +import org.gcube.portlets.admin.accountingmanager.shared.exception.NoScopeSelectedException; import org.gcube.portlets.admin.accountingmanager.shared.exception.SessionExpiredException; import com.allen_sauer.gwt.log.client.Log; @@ -39,21 +38,17 @@ import com.google.gwt.editor.client.Editor.Path; import com.google.gwt.editor.client.EditorError; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; -import com.google.gwt.event.logical.shared.ValueChangeEvent; -import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.EventBus; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.HasValue; import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction; import com.sencha.gxt.core.client.IdentityValueProvider; import com.sencha.gxt.core.client.Style.SelectionMode; import com.sencha.gxt.core.client.XTemplates; import com.sencha.gxt.core.client.util.Margins; -import com.sencha.gxt.core.client.util.ToggleGroup; import com.sencha.gxt.data.shared.LabelProvider; import com.sencha.gxt.data.shared.ListStore; import com.sencha.gxt.data.shared.ModelKeyProvider; @@ -66,9 +61,6 @@ import com.sencha.gxt.dnd.core.client.GridDropTarget; import com.sencha.gxt.widget.core.client.button.ButtonBar; import com.sencha.gxt.widget.core.client.button.TextButton; import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; -import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; -import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer; -import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign; import com.sencha.gxt.widget.core.client.container.MarginData; import com.sencha.gxt.widget.core.client.container.SimpleContainer; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; @@ -85,10 +77,11 @@ import com.sencha.gxt.widget.core.client.form.ComboBox; import com.sencha.gxt.widget.core.client.form.FieldLabel; import com.sencha.gxt.widget.core.client.form.FieldSet; import com.sencha.gxt.widget.core.client.form.IntegerSpinnerField; -import com.sencha.gxt.widget.core.client.form.Radio; import com.sencha.gxt.widget.core.client.form.StringComboBox; import com.sencha.gxt.widget.core.client.form.error.DefaultEditorError; import com.sencha.gxt.widget.core.client.form.validator.EmptyValidator; +import com.sencha.gxt.widget.core.client.form.validator.MaxNumberValidator; +import com.sencha.gxt.widget.core.client.form.validator.MinNumberValidator; import com.sencha.gxt.widget.core.client.grid.CheckBoxSelectionModel; import com.sencha.gxt.widget.core.client.grid.ColumnConfig; import com.sencha.gxt.widget.core.client.grid.ColumnModel; @@ -96,6 +89,8 @@ import com.sencha.gxt.widget.core.client.grid.Grid; import com.sencha.gxt.widget.core.client.grid.Grid.GridCell; import com.sencha.gxt.widget.core.client.grid.GridSelectionModel; import com.sencha.gxt.widget.core.client.grid.editing.GridRowEditing; +import com.sencha.gxt.widget.core.client.grid.filters.GridFilters; +import com.sencha.gxt.widget.core.client.grid.filters.StringFilter; import com.sencha.gxt.widget.core.client.toolbar.ToolBar; /** @@ -106,16 +101,16 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar; */ public class ActiveFiltersPanel extends SimpleContainer { - private static final int TOP_NUMBER_DEFAULT = 5; - private static final int TOP_NUMBER_MAX = 10; - private static final int TOP_NUMBER_MIN = 1; + private static final String CONTEXT = "Context"; private EventBus eventBus; private Grid gridFilter; private ListStore storeFilter; - private Grid gridGenres; - private ListStore storeGenres; - private CheckBoxSelectionModel smGenres; - private ColumnConfig labelGenresCol; + private Grid gridScopes; + private ListStore storeScopes; + private CheckBoxSelectionModel smScopes; + private ColumnConfig labelScopesCol; + private StringFilter scopeFilter; + private boolean addStatus; private AccountingClientStateData accountingStateData; private ListStore storeComboFilterKey; @@ -128,16 +123,12 @@ public class ActiveFiltersPanel extends SimpleContainer { private FieldLabel comboChartTypeLabel; private ListStore storeComboChartType; private ComboBox comboChartType; - private ListStore storeComboScope; - private ComboBox comboScope; - private FieldLabel comboScopeLabel; private ListStore storeComboTopFilterKey; private ComboBox comboTopFilterKey; private FieldLabel comboTopFilterKeyLabel; private ToolBar toolBar; - // private CheckBox showOthers; - private FieldLabel showOthersLabel; - private FieldLabel noContextLabel; + + // private FieldLabel showOthersLabel; private IntegerSpinnerField topNumber; private FieldLabel topNumberLabel; @@ -145,13 +136,9 @@ public class ActiveFiltersPanel extends SimpleContainer { private boolean cancelValue; private AccountingMonitor accountingMonitor; - private Radio showOthersYes; - private Radio showOthersNo; - private ToggleGroup showOthersToggle; - - private Radio noContextYes; - private Radio noContextNo; - private ToggleGroup noContextToggle; + // private Radio showOthersYes; + // private Radio showOthersNo; + // private ToggleGroup showOthersToggle; public interface FilterKeyPropertiesCombo extends PropertyAccess { @@ -162,17 +149,6 @@ public class ActiveFiltersPanel extends SimpleContainer { } - /* - * public interface FilterValuePropertiesCombo extends - * PropertyAccess { - * - * @Path("id") ModelKeyProvider id(); - * - * LabelProvider value(); - * - * } - */ - interface FilterKeyTemplates extends XTemplates { @XTemplate("{value}") SafeHtml format(String value); @@ -297,11 +273,8 @@ public class ActiveFiltersPanel extends SimpleContainer { comboFilterKey.setTriggerAction(TriggerAction.ALL); addHandlersForComboFilterKey(filterKeyPropertiesCombo.key()); - // Value - /* - * FilterValuePropertiesCombo filterValuePropertiesCombo = GWT - * .create(FilterValuePropertiesCombo.class); - */ + // Filter Value + storeComboFilterValue = new ListStore(new ModelKeyProvider() { @Override @@ -414,8 +387,61 @@ public class ActiveFiltersPanel extends SimpleContainer { toolBar = new ToolBar(); toolBar.add(addButton, new BoxLayoutData(new Margins(0))); - // ChartTypeSelection + // Grid Context + ContextDataProperties propsScopeData = GWT.create(ContextDataProperties.class); + IdentityValueProvider identity = new IdentityValueProvider(); + smScopes = new CheckBoxSelectionModel(identity); + + labelScopesCol = new ColumnConfig(propsScopeData.label(), 356, CONTEXT); + + labelScopesCol.setCell(new AbstractCell() { + + @Override + public void render(Context context, String value, SafeHtmlBuilder sb) { + sb.appendHtmlConstant("" + SafeHtmlUtils.htmlEscape(value) + ""); + + } + + }); + + List> lcolumnsScopes = new ArrayList>(); + lcolumnsScopes.add(smScopes.getColumn()); + lcolumnsScopes.add(labelScopesCol); + ColumnModel cmContextData = new ColumnModel(lcolumnsScopes); + + storeScopes = new ListStore(propsScopeData.id()); + + gridScopes = new Grid(storeScopes, cmContextData); + + sm.setSelectionMode(SelectionMode.MULTI); + gridScopes.setHeight("130px"); + gridScopes.setSelectionModel(smScopes); + gridScopes.getView().setStripeRows(true); + gridScopes.getView().setColumnLines(true); + gridScopes.getView().setAutoFill(true); + gridScopes.setBorders(true); + gridScopes.setColumnReordering(false); + gridScopes.getView().setAutoExpandColumn(labelScopesCol); + gridScopes.getView().setSortingEnabled(true); + + // gridScopes.setStateful(true); + // gridScopes.setStateId("gridScopesDefault"); + + scopeFilter = new StringFilter(propsScopeData.label()); + + GridFilters gridScopesFilters = new GridFilters(); + gridScopesFilters.initPlugin(gridScopes); + gridScopesFilters.setLocal(true); + gridScopesFilters.addFilter(scopeFilter); + + // GridFilterStateHandler handler = new + // GridFilterStateHandler(gridScopes, + // gridScopesFilters); + // handler.loadState(); + + // ChartTypeSelection storeComboChartType = new ListStore(new ModelKeyProvider() { @Override @@ -435,76 +461,15 @@ public class ActiveFiltersPanel extends SimpleContainer { }; - // /Grid Context - GenresDataProperties propsGenresData = GWT.create(GenresDataProperties.class); - - IdentityValueProvider identity = new IdentityValueProvider(); - smGenres = new CheckBoxSelectionModel(identity); - - labelGenresCol = new ColumnConfig(propsGenresData.label(), 356, "Genres"); - - labelGenresCol.setCell(new AbstractCell() { - - @Override - public void render(Context context, String value, SafeHtmlBuilder sb) { - sb.appendHtmlConstant("" + SafeHtmlUtils.htmlEscape(value) + ""); - - } - - }); - - List> lGenres = new ArrayList>(); - lGenres.add(smGenres.getColumn()); - lGenres.add(labelGenresCol); - ColumnModel cmGenresData = new ColumnModel(lGenres); - - storeGenres = new ListStore(propsGenresData.id()); - - gridGenres = new Grid(storeGenres, cmGenresData); - - sm.setSelectionMode(SelectionMode.MULTI); - gridGenres.setHeight("130px"); - gridGenres.setSelectionModel(smGenres); - gridGenres.getView().setStripeRows(true); - gridGenres.getView().setColumnLines(true); - gridGenres.getView().setAutoFill(true); - gridGenres.setBorders(true); - gridGenres.setColumnReordering(false); - gridGenres.getView().setAutoExpandColumn(labelGenresCol); - gridGenres.getView().setSortingEnabled(true); - - // / - comboChartType = new ComboBox<>(storeComboChartType, comboChartTypeLabelProvider); comboChartType.setClearValueOnParseError(false); comboChartType.setEditable(false); comboChartType.setForceSelection(true); - // comboFilterValue.setAllowBlank(false); comboChartType.setValue(ChartType.Basic); - // comboFilterValue.setFinishEditOnEnter(false); - // comboFilterValue.setAutoValidate(true); - // comboFilterValue.addValidator(new EmptyValidator()); comboChartType.setTriggerAction(TriggerAction.ALL); addHandlersForComboChartType(comboChartTypeLabelProvider); comboChartTypeLabel = new FieldLabel(comboChartType, "Chart"); - // TODO ScopeCombo for Top and Basic - GenresDataPropertiesCombo genresDataPropertiesCombo = GWT.create(GenresDataPropertiesCombo.class); - - storeComboScope = new ListStore(genresDataPropertiesCombo.id()); - comboScope = new ComboBox(storeComboScope, genresDataPropertiesCombo.label()); - comboScope.setClearValueOnParseError(false); - //comboScope.setEditable(false); - comboScope.setTypeAhead(true); - comboScope.setTriggerAction(TriggerAction.ALL); - - comboScope.getListView().addStyleName(AccountingManagerResources.INSTANCE.accountingManagerCSS().getScopeListView()); - - addHandlersForComboScope(genresDataPropertiesCombo.label()); - - comboScopeLabel = new FieldLabel(comboScope, "Scope"); - // FileterKeyCombo for Top Chart storeComboTopFilterKey = new ListStore(filterKeyPropertiesCombo.id()); @@ -517,103 +482,71 @@ public class ActiveFiltersPanel extends SimpleContainer { comboTopFilterKeyLabel = new FieldLabel(comboTopFilterKey, "Key"); - // ShowOthers - showOthersYes = new Radio(); - showOthersYes.setBoxLabel("Yes"); - - showOthersNo = new Radio(); - showOthersNo.setBoxLabel("No"); - showOthersNo.setValue(true); - - showOthersToggle = new ToggleGroup(); - showOthersToggle.add(showOthersYes); - showOthersToggle.add(showOthersNo); - - showOthersToggle.addValueChangeHandler(new ValueChangeHandler>() { - - @Override - public void onValueChange(ValueChangeEvent> event) { - ToggleGroup group = (ToggleGroup) event.getSource(); - Radio radio = (Radio) group.getValue(); - Log.debug("ShowOthers selected: " + radio.getBoxLabel()); - } - }); - - HBoxLayoutContainer hp = new HBoxLayoutContainer(); - hp.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); - hp.setPack(BoxLayoutPack.START); - hp.add(showOthersYes, new BoxLayoutData(new Margins(0))); - hp.add(showOthersNo, new BoxLayoutData(new Margins(0))); - - showOthersLabel = new FieldLabel(hp, "Show Others"); - - // TODO NoContext Flag - noContextYes = new Radio(); - noContextYes.setBoxLabel("Yes"); - - noContextNo = new Radio(); - noContextNo.setBoxLabel("No"); - noContextNo.setValue(true); - - noContextToggle = new ToggleGroup(); - noContextToggle.add(noContextYes); - noContextToggle.add(noContextNo); - - noContextToggle.addValueChangeHandler(new ValueChangeHandler>() { - - @Override - public void onValueChange(ValueChangeEvent> event) { - ToggleGroup group = (ToggleGroup) event.getSource(); - Radio radio = (Radio) group.getValue(); - Log.debug("No Context selected: " + radio.getBoxLabel()); - } - }); - - HBoxLayoutContainer hpNoContext = new HBoxLayoutContainer(); - hpNoContext.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); - hpNoContext.setPack(BoxLayoutPack.START); - hpNoContext.add(noContextYes, new BoxLayoutData(new Margins(0))); - hpNoContext.add(noContextNo, new BoxLayoutData(new Margins(0))); - - noContextLabel = new FieldLabel(hpNoContext, "No Context"); + /* + * ShowOthers showOthersYes = new Radio(); + * showOthersYes.setBoxLabel("Yes"); + * + * showOthersNo = new Radio(); showOthersNo.setBoxLabel("No"); + * showOthersNo.setValue(true); + * + * showOthersToggle = new ToggleGroup(); + * showOthersToggle.add(showOthersYes); + * showOthersToggle.add(showOthersNo); + * + * showOthersToggle.addValueChangeHandler(new + * ValueChangeHandler>() { + * + * @Override public void + * onValueChange(ValueChangeEvent> event) { + * ToggleGroup group = (ToggleGroup) event.getSource(); Radio radio = + * (Radio) group.getValue(); Log.debug("ShowOthers selected: " + + * radio.getBoxLabel()); } }); + * + * HBoxLayoutContainer hp = new HBoxLayoutContainer(); + * hp.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); + * hp.setPack(BoxLayoutPack.START); hp.add(showOthersYes, new + * BoxLayoutData(new Margins(0))); hp.add(showOthersNo, new + * BoxLayoutData(new Margins(0))); + * + * showOthersLabel = new FieldLabel(hp, "Show Others"); + */ // topNumber = new IntegerSpinnerField(); - topNumber.setMaxValue(TOP_NUMBER_MAX); - topNumber.setMinValue(TOP_NUMBER_MIN); + topNumber.setMaxValue(Constants.TOP_NUMBER_MAX); + topNumber.setMinValue(Constants.TOP_NUMBER_MIN); topNumber.setAllowNegative(false); topNumber.setAllowBlank(false); - topNumber.setValue(TOP_NUMBER_DEFAULT); - topNumber.setEditable(false); + topNumber.setValue(Constants.TOP_NUMBER_DEFAULT); + topNumber.setEditable(true); + topNumber.addValidator(new MinNumberValidator(Constants.TOP_NUMBER_MIN)); + topNumber.addValidator(new MaxNumberValidator(Constants.TOP_NUMBER_MAX)); topNumberLabel = new FieldLabel(topNumber, "Number"); // // VerticalLayoutContainer vlc = new VerticalLayoutContainer(); - vlc.add(comboChartTypeLabel, new VerticalLayoutData(1, -1, new Margins(0))); - vlc.add(comboScopeLabel, new VerticalLayoutData(1, -1, new Margins(0))); - vlc.add(gridGenres, new VerticalLayoutData(1, -1, new Margins(0))); - vlc.add(noContextLabel, new VerticalLayoutData(1, -1, new Margins(0))); + vlc.add(gridScopes, new VerticalLayoutData(1, -1, new Margins(0))); + vlc.add(comboChartTypeLabel, new VerticalLayoutData(1, -1, new Margins(10, 0, 0, 0))); vlc.add(comboTopFilterKeyLabel, new VerticalLayoutData(1, -1, new Margins(0))); - vlc.add(showOthersLabel, new VerticalLayoutData(1, -1, new Margins(0))); + // vlc.add(showOthersLabel, new VerticalLayoutData(1, -1, new + // Margins(0))); vlc.add(topNumberLabel, new VerticalLayoutData(1, -1, new Margins(0))); vlc.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); vlc.add(gridFilter, new VerticalLayoutData(1, 1, new Margins(0))); FieldSet fieldSet = new FieldSet(); - fieldSet.setHeight("360px"); + fieldSet.setHeight("450px"); fieldSet.setHeadingHtml("Active Filters"); fieldSet.setCollapsible(false); fieldSet.add(vlc); add(fieldSet, new MarginData(0)); + gridScopes.setVisible(false); comboChartTypeLabel.setVisible(false); - comboScopeLabel.setVisible(false); - gridGenres.setVisible(false); - noContextLabel.setVisible(false); comboTopFilterKeyLabel.setVisible(false); - showOthersLabel.setVisible(false); + // showOthersLabel.setVisible(false); topNumberLabel.setVisible(false); } @@ -727,11 +660,8 @@ public class ActiveFiltersPanel extends SimpleContainer { case Top: changeActiveFiltersForTop(); break; - case Context: - changeActiveFiltersForContext(); - break; case Spaces: - changeActiveFiltersForSpaces(); + // changeActiveFiltersForSpaces(); break; default: @@ -742,33 +672,76 @@ public class ActiveFiltersPanel extends SimpleContainer { } private void changeActiveFiltersForBasic() { + Log.debug("ChangeActiveFiltersForBasic"); if (accountingStateData.getSeriesRequest() != null && accountingStateData.getSeriesRequest().getAccountingFilterDefinition() != null && accountingStateData .getSeriesRequest().getAccountingFilterDefinition() instanceof AccountingFilterBasic) { AccountingFilterBasic accountingFilterBasic = (AccountingFilterBasic) accountingStateData.getSeriesRequest() .getAccountingFilterDefinition(); - - if (accountingStateData.getAvailableContext().getContexts() != null + if (accountingStateData.getAvailableContext() != null + && accountingStateData.getAvailableContext().getContexts() != null && !accountingStateData.getAvailableContext().getContexts().isEmpty()) { - ArrayList scopesAvailables = accountingStateData.getAvailableContext().getContexts(); - ArrayList scopes = new ArrayList<>(); - for (String scopeAvailable : scopesAvailables) { - scopes.add(new GenresData(scopeAvailable)); - } - storeComboScope.clear(); - storeComboScope.addAll(scopes); - storeComboScope.commitChanges(); - if (accountingFilterBasic.getScope() != null && !accountingFilterBasic.getScope().isEmpty()) { - comboScope.setValue(new GenresData(accountingFilterBasic.getScope())); + if (accountingFilterBasic.getContext() != null + && accountingFilterBasic.getContext().getContexts() != null + && !accountingFilterBasic.getContext().getContexts().isEmpty()) { + ArrayList contexts = accountingStateData.getAvailableContext().getContexts(); + ArrayList scopes = new ArrayList(); + for (String context : contexts) { + ContextData contextData = new ContextData(context); + scopes.add(contextData); + } + storeScopes.clear(); + storeScopes.setEnableFilters(false); + storeScopes.addAll(scopes); + storeScopes.commitChanges(); + + Log.debug("ScopeFilterActive: " + accountingFilterBasic.getScopeFilterActive()); + if (accountingFilterBasic.getScopeFilterActive() != null + && !accountingFilterBasic.getScopeFilterActive().isEmpty()) { + scopeFilter.setValue(accountingFilterBasic.getScopeFilterActive()); + scopeFilter.setActive(true, false); + storeScopes.setEnableFilters(true); + storeScopes.commitChanges(); + + } else { + scopeFilter.setValue(null); + scopeFilter.setActive(false, false); + } + + smScopes.deselectAll(); + + if (accountingFilterBasic.getContext().getContexts() != null + && !accountingFilterBasic.getContext().getContexts().isEmpty()) { + ArrayList selected = new ArrayList<>(); + for (String c : accountingFilterBasic.getContext().getContexts()) { + for (ContextData contextData : storeScopes.getAll()) { + if (c.compareTo(contextData.getContextData()) == 0) { + selected.add(contextData); + break; + } + } + } + if (!selected.isEmpty()) { + if (selected.size() == storeScopes.getAll().size()) { + Log.debug("Select All Scope"); + smScopes.selectAll(); + } else { + Log.debug("Select Scope: " + selected); + smScopes.select(selected, false); + } + } + } + + smScopes.refresh(); + } else { - comboScope.setValue(storeComboScope.get(0)); + repopulatesContexts(); } + } else { - storeComboScope.clear(); - storeComboScope.commitChanges(); + resetContexts(); } - if (accountingFilterBasic.getFilters() != null) { List filters = accountingFilterBasic.getFilters(); @@ -787,66 +760,24 @@ public class ActiveFiltersPanel extends SimpleContainer { seq = 0; } - if (accountingStateData.getRootScope()) { - noContextToggle.reset(); - if (accountingFilterBasic.isNoContext()) { - noContextYes.setValue(true); - } else { - noContextNo.setValue(true); - } - noContextLabel.setVisible(true); - } else { - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(false); - } - } else { + reconfigureContext(); storeFilter.clear(); storeFilter.commitChanges(); seq = 0; - if (accountingStateData.getAvailableContext().getContexts() != null - && !accountingStateData.getAvailableContext().getContexts().isEmpty()) { - - ArrayList scopesAvailables = accountingStateData.getAvailableContext().getContexts(); - ArrayList scopes = new ArrayList<>(); - for (String scopeAvailable : scopesAvailables) { - scopes.add(new GenresData(scopeAvailable)); - } - - storeComboScope.clear(); - storeComboScope.addAll(scopes); - storeComboScope.commitChanges(); - comboScope.setValue(storeComboScope.get(0)); - - } else { - storeComboScope.clear(); - storeComboScope.commitChanges(); - } - - - if (accountingStateData.getRootScope()) { - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(true); - } else { - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(false); - } - } + gridScopes.setVisible(true); + labelScopesCol.setHeader(CONTEXT); + gridScopes.getView().refresh(true); + comboChartType.setValue(ChartType.Basic); - comboScopeLabel.setVisible(true); - gridGenres.setVisible(false); comboTopFilterKey.reset(); comboTopFilterKeyLabel.setVisible(false); - showOthersToggle.reset(); - showOthersNo.setValue(true); - showOthersLabel.setVisible(false); - + // showOthersToggle.reset(); + // showOthersNo.setValue(true); + // showOthersLabel.setVisible(false); topNumber.reset(); topNumberLabel.setVisible(false); forceLayout(); @@ -854,34 +785,77 @@ public class ActiveFiltersPanel extends SimpleContainer { } private void changeActiveFiltersForTop() { + Log.debug("ChangeActiveFiltersForTop"); if (accountingStateData.getSeriesRequest() != null && accountingStateData.getSeriesRequest().getAccountingFilterDefinition() != null && accountingStateData .getSeriesRequest().getAccountingFilterDefinition() instanceof AccountingFilterTop) { AccountingFilterTop accountingFilterTop = (AccountingFilterTop) accountingStateData.getSeriesRequest() .getAccountingFilterDefinition(); - if (accountingStateData.getAvailableContext().getContexts() != null + if (accountingStateData.getAvailableContext() != null + && accountingStateData.getAvailableContext().getContexts() != null && !accountingStateData.getAvailableContext().getContexts().isEmpty()) { - ArrayList scopesAvailables = accountingStateData.getAvailableContext().getContexts(); - ArrayList scopes = new ArrayList<>(); - for (String scopeAvailable : scopesAvailables) { - scopes.add(new GenresData(scopeAvailable)); - } - storeComboScope.clear(); - storeComboScope.addAll(scopes); - storeComboScope.commitChanges(); - if (accountingFilterTop.getScope() != null && !accountingFilterTop.getScope().isEmpty()) { - comboScope.setValue(new GenresData(accountingFilterTop.getScope())); + if (accountingFilterTop.getContext() != null && accountingFilterTop.getContext().getContexts() != null + && !accountingFilterTop.getContext().getContexts().isEmpty()) { + ArrayList contexts = accountingStateData.getAvailableContext().getContexts(); + ArrayList scopes = new ArrayList(); + for (String context : contexts) { + ContextData contextData = new ContextData(context); + scopes.add(contextData); + } + + storeScopes.clear(); + storeScopes.setEnableFilters(false); + storeScopes.addAll(scopes); + storeScopes.commitChanges(); + + Log.debug("ScopeFilterActive: " + accountingFilterTop.getScopeFilterActive()); + if (accountingFilterTop.getScopeFilterActive() != null + && !accountingFilterTop.getScopeFilterActive().isEmpty()) { + scopeFilter.setValue(accountingFilterTop.getScopeFilterActive()); + scopeFilter.setActive(true, false); + storeScopes.setEnableFilters(true); + storeScopes.commitChanges(); + } else { + scopeFilter.setValue(null); + scopeFilter.setActive(false, false); + } + + smScopes.deselectAll(); + + if (accountingFilterTop.getContext().getContexts() != null + && !accountingFilterTop.getContext().getContexts().isEmpty()) { + ArrayList selected = new ArrayList<>(); + for (String c : accountingFilterTop.getContext().getContexts()) { + for (ContextData contextData : storeScopes.getAll()) { + if (c.compareTo(contextData.getContextData()) == 0) { + selected.add(contextData); + break; + } + } + } + if (!selected.isEmpty()) { + if (selected.size() == storeScopes.getAll().size()) { + Log.debug("Select All Scope"); + smScopes.selectAll(); + } else { + Log.debug("Select Scope: " + selected); + smScopes.select(selected, false); + } + } + } + + smScopes.refresh(); + } else { - comboScope.setValue(storeComboScope.get(0)); + repopulatesContexts(); } + } else { - storeComboScope.clear(); - storeComboScope.commitChanges(); - comboScope.reset(); + resetContexts(); } - + if (accountingFilterTop.getFilterKey() != null) { comboTopFilterKey.setValue(accountingFilterTop.getFilterKey()); topNumber.setValue(accountingFilterTop.getTopNumber()); @@ -906,10 +880,10 @@ public class ActiveFiltersPanel extends SimpleContainer { } else { comboTopFilterKey.reset(); - showOthersToggle.reset(); - showOthersNo.setValue(true); + // showOthersToggle.reset(); + // showOthersNo.setValue(true); topNumber.reset(); - topNumber.setValue(TOP_NUMBER_DEFAULT); + topNumber.setValue(Constants.TOP_NUMBER_DEFAULT); storeFilter.clear(); storeFilter.commitChanges(); seq = 0; @@ -919,144 +893,49 @@ public class ActiveFiltersPanel extends SimpleContainer { if (accountingStateData.getAvailableContext().getContexts() != null && !accountingStateData.getAvailableContext().getContexts().isEmpty()) { - ArrayList scopesAvailables = accountingStateData.getAvailableContext().getContexts(); - ArrayList scopes = new ArrayList<>(); - for (String scopeAvailable : scopesAvailables) { - scopes.add(new GenresData(scopeAvailable)); + ArrayList contexts = accountingStateData.getAvailableContext().getContexts(); + ArrayList scopes = new ArrayList<>(); + for (String context : contexts) { + scopes.add(new ContextData(context)); } - storeComboScope.clear(); - storeComboScope.addAll(scopes); - storeComboScope.commitChanges(); - comboScope.setValue(storeComboScope.get(0)); + storeScopes.clear(); + storeScopes.setEnableFilters(false); + storeScopes.addAll(scopes); + storeScopes.commitChanges(); } else { - storeComboScope.clear(); - storeComboScope.commitChanges(); - comboScope.reset(); + storeScopes.clear(); + storeScopes.setEnableFilters(false); + storeScopes.commitChanges(); } - comboScopeLabel.setVisible(true); + scopeFilter.setValue(null); + scopeFilter.setActive(false, false); + + smScopes.deselectAll(); + comboTopFilterKey.reset(); - showOthersToggle.reset(); - showOthersNo.setValue(true); + // showOthersToggle.reset(); + // showOthersNo.setValue(true); topNumber.reset(); - topNumber.setValue(TOP_NUMBER_DEFAULT); + topNumber.setValue(Constants.TOP_NUMBER_DEFAULT); storeFilter.clear(); storeFilter.commitChanges(); seq = 0; } + gridScopes.setVisible(true); + labelScopesCol.setHeader(CONTEXT); + gridScopes.getView().refresh(true); + comboChartType.setValue(ChartType.Top); - gridGenres.setVisible(false); comboTopFilterKeyLabel.setVisible(true); - showOthersLabel.setVisible(true); - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(false); + // showOthersLabel.setVisible(true); topNumberLabel.setVisible(true); forceLayout(); } - private void changeActiveFiltersForContext() { - if (accountingStateData.getSeriesRequest() != null - && accountingStateData.getSeriesRequest().getAccountingFilterDefinition() != null && accountingStateData - .getSeriesRequest().getAccountingFilterDefinition() instanceof AccountingFilterContext) { - AccountingFilterContext accountingFilterContext = (AccountingFilterContext) accountingStateData - .getSeriesRequest().getAccountingFilterDefinition(); - if (accountingStateData.getAvailableContext() != null - && accountingStateData.getAvailableContext().getContexts() != null - && !accountingStateData.getAvailableContext().getContexts().isEmpty()) { - - if (accountingFilterContext.getContext() != null - && accountingFilterContext.getContext().getContexts() != null - && !accountingFilterContext.getContext().getContexts().isEmpty()) { - ArrayList contexts = accountingStateData.getAvailableContext().getContexts(); - ArrayList genres = new ArrayList(); - for (String context : contexts) { - GenresData genresData = new GenresData(context); - genres.add(genresData); - } - storeGenres.clear(); - storeGenres.addAll(genres); - storeGenres.commitChanges(); - - smGenres.deselectAll(); - - if (accountingFilterContext.getContext().getContexts() == null - || accountingFilterContext.getContext().getContexts().isEmpty()) { - } else { - ArrayList selected = new ArrayList<>(); - for (String c : accountingFilterContext.getContext().getContexts()) { - for (GenresData genresData : storeGenres.getAll()) { - if (c.compareTo(genresData.getGenre()) == 0) { - selected.add(genresData); - break; - } - } - } - if (!selected.isEmpty()) { - if (selected.size() == storeGenres.getAll().size()) { - smGenres.selectAll(); - } else { - smGenres.select(selected, false); - } - } - } - - smGenres.refresh(); - - } else { - repopulatesContexts(); - } - - } else { - resetContexts(); - } - - if (accountingFilterContext.getFilters() != null) { - List filters = accountingFilterContext.getFilters(); - storeFilter.clear(); - storeFilter.addAll(filters); - seq = 0; - for (AccountingFilter filter : filters) { - if (filter.getId() > seq) { - seq = filter.getId(); - } - } - storeFilter.commitChanges(); - } else { - storeFilter.clear(); - storeFilter.commitChanges(); - seq = 0; - } - - } else { - reconfigureContext(); - storeFilter.clear(); - storeFilter.commitChanges(); - seq = 0; - - } - comboChartType.setValue(ChartType.Context); - comboScopeLabel.setVisible(false); - gridGenres.setVisible(true); - labelGenresCol.setHeader("Scope"); - gridGenres.getView().refresh(true); - comboTopFilterKey.reset(); - comboTopFilterKeyLabel.setVisible(false); - showOthersToggle.reset(); - showOthersNo.setValue(true); - showOthersLabel.setVisible(false); - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(false); - topNumber.reset(); - topNumberLabel.setVisible(false); - forceLayout(); - - } - private void reconfigureContext() { if (accountingStateData.getAvailableContext() != null && accountingStateData.getAvailableContext().getContexts() != null @@ -1068,155 +947,109 @@ public class ActiveFiltersPanel extends SimpleContainer { } private void resetContexts() { - storeGenres.clear(); - storeGenres.commitChanges(); - smGenres.deselectAll(); - smGenres.refresh(); + storeScopes.clear(); + storeScopes.commitChanges(); + scopeFilter.setValue(null); + scopeFilter.setActive(false, false); + smScopes.deselectAll(); + smScopes.refresh(); } private void repopulatesContexts() { ArrayList contexts = accountingStateData.getAvailableContext().getContexts(); - ArrayList genres = new ArrayList(); + ArrayList contextList = new ArrayList(); for (String context : contexts) { - GenresData genresData = new GenresData(context); - genres.add(genresData); + ContextData contextData = new ContextData(context); + contextList.add(contextData); } - storeGenres.clear(); - storeGenres.addAll(genres); - storeGenres.commitChanges(); - smGenres.selectAll(); - smGenres.refresh(); - } - - private void changeActiveFiltersForSpaces() { - if (accountingStateData.getSeriesRequest() != null - && accountingStateData.getSeriesRequest().getAccountingFilterDefinition() != null && accountingStateData - .getSeriesRequest().getAccountingFilterDefinition() instanceof AccountingFilterSpaces) { - AccountingFilterSpaces accountingFilterSapces = (AccountingFilterSpaces) accountingStateData - .getSeriesRequest().getAccountingFilterDefinition(); - if (accountingStateData.getAvailableSpaces() != null - && accountingStateData.getAvailableSpaces().getSpacesList() != null - && !accountingStateData.getAvailableSpaces().getSpacesList().isEmpty()) { - - if (accountingFilterSapces.getSpaces() != null - && accountingFilterSapces.getSpaces().getSpacesList() != null - && !accountingFilterSapces.getSpaces().getSpacesList().isEmpty()) { - ArrayList spacesList = accountingStateData.getAvailableSpaces().getSpacesList(); - ArrayList genres = new ArrayList(); - for (String space : spacesList) { - GenresData genresData = new GenresData(space); - genres.add(genresData); - } - storeGenres.clear(); - storeGenres.addAll(genres); - storeGenres.commitChanges(); - - smGenres.deselectAll(); - - if (accountingFilterSapces.getSpaces().getSpacesList() == null - || accountingFilterSapces.getSpaces().getSpacesList().isEmpty()) { - } else { - ArrayList selected = new ArrayList<>(); - for (String s : accountingFilterSapces.getSpaces().getSpacesList()) { - for (GenresData genresData : storeGenres.getAll()) { - if (s.compareTo(genresData.getGenre()) == 0) { - selected.add(genresData); - break; - } - } - } - if (!selected.isEmpty()) { - if (selected.size() == storeGenres.getAll().size()) { - smGenres.selectAll(); - } else { - smGenres.select(selected, false); - } - } - } - - smGenres.refresh(); - - } else { - repopulatesSpaces(); - } - - } else { - resetSpaces(); - } - - if (accountingFilterSapces.getFilters() != null) { - List filters = accountingFilterSapces.getFilters(); - storeFilter.clear(); - storeFilter.addAll(filters); - seq = 0; - for (AccountingFilter filter : filters) { - if (filter.getId() > seq) { - seq = filter.getId(); - } - } - storeFilter.commitChanges(); - } else { - storeFilter.clear(); - storeFilter.commitChanges(); - seq = 0; - } - - } else { - reconfigureSpaces(); - storeFilter.clear(); - storeFilter.commitChanges(); - seq = 0; - - } - comboChartType.setValue(ChartType.Spaces); - comboScopeLabel.setVisible(false); - gridGenres.setVisible(true); - labelGenresCol.setHeader("Space"); - gridGenres.getView().refresh(true); - comboTopFilterKey.reset(); - comboTopFilterKeyLabel.setVisible(false); - showOthersToggle.reset(); - showOthersNo.setValue(true); - showOthersLabel.setVisible(false); - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(false); - topNumber.reset(); - topNumberLabel.setVisible(false); - forceLayout(); + storeScopes.clear(); + storeScopes.addAll(contextList); + storeScopes.commitChanges(); + scopeFilter.setValue(null); + scopeFilter.setActive(false, false); + smScopes.selectAll(); + smScopes.refresh(); } - private void reconfigureSpaces() { - if (accountingStateData.getAvailableSpaces() != null - && accountingStateData.getAvailableSpaces().getSpacesList() != null - && !accountingStateData.getAvailableSpaces().getSpacesList().isEmpty()) { - repopulatesSpaces(); - } else { - resetSpaces(); - } - } - - private void resetSpaces() { - storeGenres.clear(); - storeGenres.commitChanges(); - smGenres.deselectAll(); - smGenres.refresh(); - } - - private void repopulatesSpaces() { - ArrayList spaces = accountingStateData.getAvailableSpaces().getSpacesList(); - ArrayList genres = new ArrayList(); - for (String space : spaces) { - GenresData genresData = new GenresData(space); - genres.add(genresData); - } - storeGenres.clear(); - storeGenres.addAll(genres); - storeGenres.commitChanges(); - smGenres.selectAll(); - smGenres.refresh(); - } + /* + * private void changeActiveFiltersForSpaces() { if + * (accountingStateData.getSeriesRequest() != null && + * accountingStateData.getSeriesRequest().getAccountingFilterDefinition() != + * null && accountingStateData + * .getSeriesRequest().getAccountingFilterDefinition() instanceof + * AccountingFilterSpaces) { AccountingFilterSpaces accountingFilterSapces = + * (AccountingFilterSpaces) accountingStateData + * .getSeriesRequest().getAccountingFilterDefinition(); if + * (accountingStateData.getAvailableSpaces() != null && + * accountingStateData.getAvailableSpaces().getSpacesList() != null && + * !accountingStateData.getAvailableSpaces().getSpacesList().isEmpty()) { + * + * if (accountingFilterSapces.getSpaces() != null && + * accountingFilterSapces.getSpaces().getSpacesList() != null && + * !accountingFilterSapces.getSpaces().getSpacesList().isEmpty()) { + * ArrayList spacesList = + * accountingStateData.getAvailableSpaces().getSpacesList(); + * ArrayList spaces = new ArrayList<>(); for (String space : + * spacesList) { SpacesData spacesData = new SpacesData(space); + * spaces.add(spacesData); } storeSpaces.clear(); + * storeSpaces.addAll(spaces); storeSpaces.commitChanges(); + * + * smSpaces.deselectAll(); + * + * if (accountingFilterSapces.getSpaces().getSpacesList() == null || + * accountingFilterSapces.getSpaces().getSpacesList().isEmpty()) { } else { + * ArrayList selected = new ArrayList<>(); for (String s : + * accountingFilterSapces.getSpaces().getSpacesList()) { for (SpacesData + * spacesData : storeSpaces.getAll()) { if + * (s.compareTo(spacesData.getSpace()) == 0) { selected.add(spacesData); + * break; } } } if (!selected.isEmpty()) { if (selected.size() == + * storeSpaces.getAll().size()) { smSpaces.selectAll(); } else { + * smSpaces.select(selected, false); } } } + * + * smSpaces.refresh(); + * + * } else { repopulatesSpaces(); } + * + * } else { resetSpaces(); } + * + * if (accountingFilterSapces.getFilters() != null) { List + * filters = accountingFilterSapces.getFilters(); storeFilter.clear(); + * storeFilter.addAll(filters); seq = 0; for (AccountingFilter filter : + * filters) { if (filter.getId() > seq) { seq = filter.getId(); } } + * storeFilter.commitChanges(); } else { storeFilter.clear(); + * storeFilter.commitChanges(); seq = 0; } + * + * } else { reconfigureSpaces(); storeFilter.clear(); + * storeFilter.commitChanges(); seq = 0; + * + * } gridScopes.setVisible(false); labelScopesCol.setHeader("Space"); + * gridScopes.getView().refresh(true); + * comboChartType.setValue(ChartType.Spaces); comboTopFilterKey.reset(); + * comboTopFilterKeyLabel.setVisible(false); showOthersToggle.reset(); + * showOthersNo.setValue(true); showOthersLabel.setVisible(false); + * topNumber.reset(); topNumberLabel.setVisible(false); forceLayout(); + * + * } + * + * private void reconfigureSpaces() { if + * (accountingStateData.getAvailableSpaces() != null && + * accountingStateData.getAvailableSpaces().getSpacesList() != null && + * !accountingStateData.getAvailableSpaces().getSpacesList().isEmpty()) { + * repopulatesSpaces(); } else { resetSpaces(); } } + * + * private void resetSpaces() { storeScopes.clear(); + * storeScopes.commitChanges(); smScopes.deselectAll(); smScopes.refresh(); + * } + * + * private void repopulatesSpaces() { ArrayList spaces = + * accountingStateData.getAvailableSpaces().getSpacesList(); + * ArrayList genres = new ArrayList(); for (String + * space : spaces) { ScopeData genresData = new ScopeData(space); + * genres.add(genresData); } storeScopes.clear(); + * storeScopes.addAll(genres); storeScopes.commitChanges(); + * smScopes.selectAll(); smScopes.refresh(); } + */ public AccountingFilterDefinition getActiveFilters() { try { @@ -1227,15 +1060,16 @@ public class ActiveFiltersPanel extends SimpleContainer { return getActiveFiltersForBasic(); case Top: return getActiveFiltersForTop(); - case Context: - return getActiveFiltersForContext(); - case Spaces: - return getActiveFiltersForSpaces(); + // case Spaces: + // return getActiveFiltersForSpaces(); default: return null; } + } catch (NoScopeSelectedException e) { + UtilsGXT3.alert("Attention", e.getLocalizedMessage()); + return null; } catch (Throwable e) { Log.error(e.getLocalizedMessage()); e.printStackTrace(); @@ -1245,26 +1079,35 @@ public class ActiveFiltersPanel extends SimpleContainer { } // TODO - private AccountingFilterDefinition getActiveFiltersForBasic() { - String scope = null; - if (comboScopeLabel != null && comboScopeLabel.isVisible()) { - GenresData genresData = comboScope.getCurrentValue(); - if (genresData != null) { - scope = genresData.getLabel(); + private AccountingFilterDefinition getActiveFiltersForBasic() throws NoScopeSelectedException { + ArrayList contextsSelected = new ArrayList(); + if (storeScopes != null && storeScopes.size() > 0 && smScopes != null) { + List selected = smScopes.getSelectedItems(); + for (ContextData cd : selected) { + contextsSelected.add(cd.getContextData()); } } - Log.debug("Scope selected: " + scope); - Boolean noContextValue = false; - if (noContextLabel != null && noContextLabel.isVisible()) { - noContextValue = noContextYes.getValue(); - } else { - noContextValue = false; + if (contextsSelected.isEmpty()) { + String msg = "No Scope selected! Please, select a Scope."; + Log.info(msg); + throw new NoScopeSelectedException(msg); } - Log.debug("noContextValue: " + noContextValue); + + Context context = new Context(contextsSelected); + + Log.debug("Context selected: " + context); + + String scopeFilterActive = null; + + if (scopeFilter.isActive()) { + scopeFilterActive = (String) scopeFilter.getValue(); + } + + Log.debug("Scope Filter Active: " + scopeFilterActive); if (storeFilter == null || storeFilter.size() <= 0) { - return new AccountingFilterBasic(scope, noContextValue); + return new AccountingFilterBasic(context, scopeFilterActive); } else { List filtersActives = storeFilter.getAll(); ArrayList filtersReady = new ArrayList(); @@ -1275,32 +1118,66 @@ public class ActiveFiltersPanel extends SimpleContainer { } if (filtersReady.size() > 0) { - return new AccountingFilterBasic(scope, filtersReady, noContextValue); + return new AccountingFilterBasic(context, scopeFilterActive, filtersReady); } else { - return new AccountingFilterBasic(scope, noContextValue); + return new AccountingFilterBasic(context, scopeFilterActive); } } } - private AccountingFilterDefinition getActiveFiltersForTop() { - String scope = null; - if (comboScopeLabel != null && comboScopeLabel.isVisible()) { - GenresData genresData = comboScope.getCurrentValue(); - if (genresData != null) { - scope = genresData.getLabel(); + private AccountingFilterDefinition getActiveFiltersForTop() throws NoScopeSelectedException { + ArrayList contextsSelected = new ArrayList(); + if (storeScopes != null && storeScopes.size() > 0 && smScopes != null) { + List selected = smScopes.getSelectedItems(); + for (ContextData cd : selected) { + contextsSelected.add(cd.getContextData()); } } - Log.debug("Scope selected: " + scope); - Boolean showOthersValue = showOthersYes.getValue(); + if (contextsSelected.isEmpty()) { + String msg = "No Scope selected! Please, select a Scope."; + Log.info(msg); + throw new NoScopeSelectedException(msg); + } + + Context context = new Context(contextsSelected); + + Log.debug("Context selected: " + context); + + String scopeFilterActive = null; + + if (scopeFilter.isActive()) { + scopeFilterActive = (String) scopeFilter.getValue(); + } + Log.debug("Scope Filter Active: " + scopeFilterActive); + + // Boolean showOthersValue = showOthersYes.getValue(); Integer topN = topNumber.getCurrentValue(); + if(topN!=null){ + if(topNConstants.TOP_NUMBER_MAX){ + topN=Constants.TOP_NUMBER_MAX; + topNumber.setValue(topN, true, true); + topNumber.clearInvalid(); + } + } + } else { + topN=Constants.TOP_NUMBER_DEFAULT; + topNumber.setValue(topN, true, true); + topNumber.clearInvalid(); + } + FilterKey filterKey = comboTopFilterKey.getCurrentValue(); if (filterKey == null) { - return new AccountingFilterTop(scope, showOthersValue, topN); + return new AccountingFilterTop(context, scopeFilterActive, topN); } else { if (storeFilter == null || storeFilter.size() <= 0) { - return new AccountingFilterTop(scope, filterKey, null, showOthersValue, topN); + return new AccountingFilterTop(context, scopeFilterActive, filterKey, null, topN); } else { List filtersActives = storeFilter.getAll(); ArrayList filtersReady = new ArrayList(); @@ -1310,9 +1187,11 @@ public class ActiveFiltersPanel extends SimpleContainer { } } if (filtersReady.size() > 0) { - return new AccountingFilterTop(scope, filterKey, filtersReady, showOthersValue, topN); + return new AccountingFilterTop(context, scopeFilterActive, filterKey, + filtersReady, topN); } else { - return new AccountingFilterTop(scope, filterKey, null, showOthersValue, topN); + return new AccountingFilterTop(context, scopeFilterActive, filterKey, + null, topN); } } @@ -1320,59 +1199,30 @@ public class ActiveFiltersPanel extends SimpleContainer { } - private AccountingFilterDefinition getActiveFiltersForContext() { - ArrayList contextsSelected = new ArrayList(); - if (storeGenres != null && storeGenres.size() > 0 && smGenres != null) { - List selected = smGenres.getSelectedItems(); - for (GenresData cd : selected) { - contextsSelected.add(cd.getGenre()); - } - } - org.gcube.portlets.admin.accountingmanager.shared.data.Context context = new org.gcube.portlets.admin.accountingmanager.shared.data.Context( - contextsSelected); - - List filtersActives = storeFilter.getAll(); - ArrayList filtersReady = new ArrayList(); - for (AccountingFilter filter : filtersActives) { - if (filter.getFilterValue() != null && !filter.getFilterValue().isEmpty()) { - filtersReady.add(filter); - } - } - if (filtersReady.size() > 0) { - return new AccountingFilterContext(context, filtersReady); - } else { - return new AccountingFilterContext(context, null); - } - - } - - private AccountingFilterDefinition getActiveFiltersForSpaces() { - ArrayList spacesSelected = new ArrayList(); - if (storeGenres != null && storeGenres.size() > 0 && smGenres != null) { - List selected = smGenres.getSelectedItems(); - for (GenresData cd : selected) { - spacesSelected.add(cd.getGenre()); - } - } - Spaces spaces = new Spaces(spacesSelected); - - List filtersActives = storeFilter.getAll(); - ArrayList filtersReady = new ArrayList(); - for (AccountingFilter filter : filtersActives) { - if (filter.getFilterValue() != null && !filter.getFilterValue().isEmpty()) { - filtersReady.add(filter); - } - } - if (filtersReady.size() > 0) { - return new AccountingFilterSpaces(spaces, filtersReady); - } else { - return new AccountingFilterSpaces(spaces, null); - } - - } + /* + * private AccountingFilterDefinition getActiveFiltersForSpaces() { + * ArrayList spacesSelected = new ArrayList(); if + * (storeSpaces != null && storeSpaces.size() > 0 && smSpaces != null) { + * List selected = smSpaces.getSelectedItems(); for (SpacesData + * cd : selected) { spacesSelected.add(cd.getSpace()); } } Spaces spaces = + * new Spaces(spacesSelected); + * + * Log.debug("Spaces selected: " + spaces); + * + * List filtersActives = storeFilter.getAll(); + * ArrayList filtersReady = new + * ArrayList(); for (AccountingFilter filter : + * filtersActives) { if (filter.getFilterValue() != null && + * !filter.getFilterValue().isEmpty()) { filtersReady.add(filter); } } if + * (filtersReady.size() > 0) { return new AccountingFilterSpaces(spaces, + * filtersReady); } else { return new AccountingFilterSpaces(spaces, null); + * } + * + * } + */ private void addNewFilter(SelectEvent event) { - List filtersSet = storeFilter.getAll(); + // List filtersSet = storeFilter.getAll(); FilterKey fk = null; if (accountingStateData == null || accountingStateData.getAvailableFilterKeys() == null @@ -1384,9 +1234,10 @@ public class ActiveFiltersPanel extends SimpleContainer { accountingStateData.getAvailableFilterKeys()); List removableFilterKeys = new ArrayList(); - for (AccountingFilter filterSet : filtersSet) { - removableFilterKeys.add(filterSet.getFilterKey()); - } + /* + * for (AccountingFilter filterSet : filtersSet) { + * removableFilterKeys.add(filterSet.getFilterKey()); } + */ if (comboChartType.getCurrentValue() != null && comboChartType.getCurrentValue().compareTo(ChartType.Top) == 0) { @@ -1398,14 +1249,6 @@ public class ActiveFiltersPanel extends SimpleContainer { remainingFilterKeys.removeAll(removableFilterKeys); if (remainingFilterKeys.size() > 0) { - /* - * if (comboChartType.getCurrentValue() != null && - * comboChartType.getCurrentValue().compareTo( ChartType.Top) == - * 0) { if(!(store.getAll().size()<2)){ - * UtilsGXT3.info("Attention", - * "You can add at most 2 filters for top chart!"); return; } } - */ - // fk = remainingFilterKeys.get(0); fk = new FilterKey(""); seq++; AccountingFilter newAccountingFilter = new AccountingFilter(seq, fk, ""); @@ -1494,7 +1337,7 @@ public class ActiveFiltersPanel extends SimpleContainer { int rowIndex = cell.getRow(); AccountingFilter editingFilter = storeFilter.get(rowIndex); - List filtersSet = storeFilter.getAll(); + // List filtersSet = storeFilter.getAll(); List remainingFilterKeys = null; if (accountingStateData == null || accountingStateData.getAvailableFilterKeys() == null) { @@ -1513,11 +1356,12 @@ public class ActiveFiltersPanel extends SimpleContainer { } } - for (AccountingFilter filterSet : filtersSet) { - if (filterSet.getFilterKey().getKey().compareTo(editingFilter.getFilterKey().getKey()) != 0) { - setFilterKeys.add(filterSet.getFilterKey()); - } - } + /* + * for (AccountingFilter filterSet : filtersSet) { if + * (filterSet.getFilterKey().getKey().compareTo(editingFilter. + * getFilterKey().getKey()) != 0) { + * setFilterKeys.add(filterSet.getFilterKey()); } } + */ remainingFilterKeys.removeAll(setFilterKeys); @@ -1564,24 +1408,11 @@ public class ActiveFiltersPanel extends SimpleContainer { } switch (chartType) { case Basic: - comboScopeLabel.setVisible(true); - gridGenres.setVisible(false); comboTopFilterKey.reset(); comboTopFilterKeyLabel.setVisible(false); - showOthersToggle.reset(); - showOthersNo.setValue(true); - showOthersLabel.setVisible(false); - - if (accountingStateData.getRootScope()) { - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(true); - } else { - noContextToggle.reset(); - noContextNo.setValue(true); - noContextLabel.setVisible(false); - } - + //showOthersToggle.reset(); + //showOthersNo.setValue(true); + //showOthersLabel.setVisible(false); topNumber.reset(); topNumberLabel.setVisible(false); storeFilter.clear(); @@ -1590,73 +1421,33 @@ public class ActiveFiltersPanel extends SimpleContainer { forceLayout(); break; case Top: - comboScopeLabel.setVisible(true); - gridGenres.setVisible(false); comboTopFilterKey.reset(); if (accountingStateData != null && accountingStateData.getAvailableFilterKeys() != null && accountingStateData.getAvailableFilterKeys().size() > 0) { comboTopFilterKey.setValue(accountingStateData.getAvailableFilterKeys().get(0)); } comboTopFilterKeyLabel.setVisible(true); - showOthersToggle.reset(); - showOthersNo.setValue(true); - showOthersLabel.setVisible(true); - noContextToggle.reset(); - noContextYes.setValue(false); - noContextNo.setValue(true); - noContextLabel.setVisible(false); + //showOthersToggle.reset(); + //showOthersNo.setValue(true); + //showOthersLabel.setVisible(true); topNumber.reset(); - topNumber.setValue(TOP_NUMBER_DEFAULT); + topNumber.setValue(Constants.TOP_NUMBER_DEFAULT); topNumberLabel.setVisible(true); storeFilter.clear(); storeFilter.commitChanges(); seq = 0; forceLayout(); break; - case Context: - reconfigureContext(); - comboScopeLabel.setVisible(false); - gridGenres.setVisible(true); - labelGenresCol.setHeader("Scope"); - gridGenres.getView().refresh(true); - comboTopFilterKey.reset(); - comboTopFilterKeyLabel.setVisible(false); - showOthersToggle.reset(); - showOthersNo.setValue(true); - showOthersLabel.setVisible(false); - noContextToggle.reset(); - noContextYes.setValue(false); - noContextNo.setValue(true); - noContextLabel.setVisible(false); - topNumber.reset(); - topNumberLabel.setVisible(false); - storeFilter.clear(); - storeFilter.commitChanges(); - seq = 0; - forceLayout(); - break; - case Spaces: - reconfigureSpaces(); - comboScopeLabel.setVisible(false); - gridGenres.setVisible(true); - labelGenresCol.setHeader("Space"); - gridGenres.getView().refresh(true); - comboTopFilterKey.reset(); - comboTopFilterKeyLabel.setVisible(false); - showOthersToggle.reset(); - showOthersNo.setValue(true); - showOthersLabel.setVisible(false); - noContextToggle.reset(); - noContextYes.setValue(false); - noContextNo.setValue(true); - noContextLabel.setVisible(false); - topNumber.reset(); - topNumberLabel.setVisible(false); - storeFilter.clear(); - storeFilter.commitChanges(); - seq = 0; - forceLayout(); - break; + /* + * case Spaces: reconfigureSpaces(); comboScopeLabel.setVisible(false); + * gridScopes.setVisible(true); labelScopesCol.setHeader("Space"); + * gridScopes.getView().refresh(true); comboTopFilterKey.reset(); + * comboTopFilterKeyLabel.setVisible(false); showOthersToggle.reset(); + * showOthersNo.setValue(true); showOthersLabel.setVisible(false); + * topNumber.reset(); topNumberLabel.setVisible(false); + * storeFilter.clear(); storeFilter.commitChanges(); seq = 0; + * forceLayout(); break; + */ default: break; @@ -1680,18 +1471,4 @@ public class ActiveFiltersPanel extends SimpleContainer { seq = 0; } - private void addHandlersForComboScope(final LabelProvider labelProvider) { - comboScope.addSelectionHandler(new SelectionHandler() { - public void onSelection(SelectionEvent event) { - Log.debug("Scope selected: " + event.getSelectedItem()); - updateScope(event.getSelectedItem()); - } - - }); - } - - private void updateScope(GenresData selectedFilterKey) { - - } - } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/FiltersPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/FiltersPanel.java index f45ef38..61b1a9e 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/FiltersPanel.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/filters/FiltersPanel.java @@ -92,7 +92,7 @@ public class FiltersPanel extends FramedPanel { AccountingFilterDefinition accountingFilterDefinition = activeFiltersPanel .getActiveFilters(); - if (accountingPeriod != null) { + if (accountingPeriod != null && accountingFilterDefinition!=null) { SeriesRequest seriesRequest = new SeriesRequest(accountingPeriod, accountingFilterDefinition); Log.debug("UpdateChart: " + seriesRequest); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java index 8646eb1..a700476 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java @@ -1,7 +1,6 @@ package org.gcube.portlets.admin.accountingmanager.client.maindata.charts; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartBasicPanel; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartContextPanel; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartTopPanel; import org.gcube.portlets.admin.accountingmanager.client.state.AccountingClientStateData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob; @@ -13,7 +12,7 @@ import com.sencha.gxt.widget.core.client.container.SimpleContainer; /** * Accounting Chart 4 Job * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ @@ -22,8 +21,7 @@ public class AccountingChart4Job extends AccountingChartBuilder { private AccountingClientStateData accountingStateData; private EventBus eventBus; - public AccountingChart4Job(EventBus eventBus, - AccountingClientStateData accountingStateData) { + public AccountingChart4Job(EventBus eventBus, AccountingClientStateData accountingStateData) { this.eventBus = eventBus; this.accountingStateData = accountingStateData; } @@ -32,10 +30,8 @@ public class AccountingChart4Job extends AccountingChartBuilder { public void buildChart() throws ChartDrawException { AccountingChartPanel accountingChartPanel = null; - if (accountingStateData == null - || accountingStateData.getAccountingType() == null - || accountingStateData.getSeriesRequest() == null - || accountingStateData.getSeriesResponse() == null) { + if (accountingStateData == null || accountingStateData.getAccountingType() == null + || accountingStateData.getSeriesRequest() == null || accountingStateData.getSeriesResponse() == null) { accountingChartSpec.setChart(accountingChartPanel); return; } @@ -55,25 +51,18 @@ public class AccountingChart4Job extends AccountingChartBuilder { private SimpleContainer createJobChartPanel() throws ChartDrawException { - if (accountingStateData == null - || accountingStateData.getSeriesRequest() == null - || accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition() == null - || accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition().getChartType() == null) { + if (accountingStateData == null || accountingStateData.getSeriesRequest() == null + || accountingStateData.getSeriesRequest().getAccountingFilterDefinition() == null + || accountingStateData.getSeriesRequest().getAccountingFilterDefinition().getChartType() == null) { return null; } - switch (accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition().getChartType()) { + switch (accountingStateData.getSeriesRequest().getAccountingFilterDefinition().getChartType()) { case Top: return new JobChartTopPanel(eventBus, accountingStateData); case Basic: return new JobChartBasicPanel(eventBus, accountingStateData); - case Context: - return new JobChartContextPanel(eventBus, accountingStateData); - default: return null; } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Service.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Service.java index 6db438b..ec9cb3f 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Service.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Service.java @@ -1,7 +1,6 @@ package org.gcube.portlets.admin.accountingmanager.client.maindata.charts; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartBasicPanel; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartContextPanel; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartTopPanel; import org.gcube.portlets.admin.accountingmanager.client.state.AccountingClientStateData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesService; @@ -13,17 +12,16 @@ import com.sencha.gxt.widget.core.client.container.SimpleContainer; /** * Accounting Chart 4 Service * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class AccountingChart4Service extends AccountingChartBuilder { private EventBus eventBus; private AccountingClientStateData accountingStateData; - public AccountingChart4Service(EventBus eventBus, AccountingClientStateData accountingStateData) { - this.eventBus=eventBus; + this.eventBus = eventBus; this.accountingStateData = accountingStateData; } @@ -31,10 +29,8 @@ public class AccountingChart4Service extends AccountingChartBuilder { public void buildChart() throws ChartDrawException { AccountingChartPanel accountingChartPanel = null; - if (accountingStateData == null - || accountingStateData.getAccountingType() == null - || accountingStateData.getSeriesRequest() == null - || accountingStateData.getSeriesResponse() == null) { + if (accountingStateData == null || accountingStateData.getAccountingType() == null + || accountingStateData.getSeriesRequest() == null || accountingStateData.getSeriesResponse() == null) { accountingChartSpec.setChart(accountingChartPanel); return; } @@ -52,28 +48,20 @@ public class AccountingChart4Service extends AccountingChartBuilder { } - private SimpleContainer createServiceChartPanel() - throws ChartDrawException { + private SimpleContainer createServiceChartPanel() throws ChartDrawException { - if (accountingStateData == null - || accountingStateData.getSeriesRequest() == null - || accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition() == null - || accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition().getChartType() == null) { + if (accountingStateData == null || accountingStateData.getSeriesRequest() == null + || accountingStateData.getSeriesRequest().getAccountingFilterDefinition() == null + || accountingStateData.getSeriesRequest().getAccountingFilterDefinition().getChartType() == null) { return null; } - switch (accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition().getChartType()) { + switch (accountingStateData.getSeriesRequest().getAccountingFilterDefinition().getChartType()) { case Top: - return new ServiceChartTopPanel(eventBus,accountingStateData); + return new ServiceChartTopPanel(eventBus, accountingStateData); case Basic: return new ServiceChartBasicPanel(eventBus, accountingStateData); - case Context: - return new ServiceChartContextPanel(eventBus, accountingStateData); - default: return null; diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Storage.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Storage.java index 0b2cb46..f70fe7f 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Storage.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Storage.java @@ -1,7 +1,6 @@ package org.gcube.portlets.admin.accountingmanager.client.maindata.charts; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage.StorageChartBasicPanel; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage.StorageChartContextPanel; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage.StorageChartTopPanel; import org.gcube.portlets.admin.accountingmanager.client.state.AccountingClientStateData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesStorage; @@ -13,7 +12,7 @@ import com.sencha.gxt.widget.core.client.container.SimpleContainer; /** * Accounting Chart 4 Storage * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ @@ -21,8 +20,7 @@ public class AccountingChart4Storage extends AccountingChartBuilder { private EventBus eventBus; private AccountingClientStateData accountingStateData; - public AccountingChart4Storage(EventBus eventBus, - AccountingClientStateData accountingStateData) { + public AccountingChart4Storage(EventBus eventBus, AccountingClientStateData accountingStateData) { this.eventBus = eventBus; this.accountingStateData = accountingStateData; } @@ -31,10 +29,8 @@ public class AccountingChart4Storage extends AccountingChartBuilder { public void buildChart() throws ChartDrawException { AccountingChartPanel accountingChartPanel = null; - if (accountingStateData == null - || accountingStateData.getAccountingType() == null - || accountingStateData.getSeriesRequest() == null - || accountingStateData.getSeriesResponse() == null) { + if (accountingStateData == null || accountingStateData.getAccountingType() == null + || accountingStateData.getSeriesRequest() == null || accountingStateData.getSeriesResponse() == null) { accountingChartSpec.setChart(accountingChartPanel); return; } @@ -54,25 +50,18 @@ public class AccountingChart4Storage extends AccountingChartBuilder { private SimpleContainer createStorageChartPanel() throws ChartDrawException { - if (accountingStateData == null - || accountingStateData.getSeriesRequest() == null - || accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition() == null - || accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition().getChartType() == null) { + if (accountingStateData == null || accountingStateData.getSeriesRequest() == null + || accountingStateData.getSeriesRequest().getAccountingFilterDefinition() == null + || accountingStateData.getSeriesRequest().getAccountingFilterDefinition().getChartType() == null) { return null; } - switch (accountingStateData.getSeriesRequest() - .getAccountingFilterDefinition().getChartType()) { + switch (accountingStateData.getSeriesRequest().getAccountingFilterDefinition().getChartType()) { case Top: return new StorageChartTopPanel(eventBus, accountingStateData); case Basic: return new StorageChartBasicPanel(eventBus, accountingStateData); - case Context: - return new StorageChartContextPanel(eventBus, accountingStateData); - default: return null; diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/job/JobChartContextPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/job/JobChartContextPanel.java deleted file mode 100644 index 0ea1338..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/job/JobChartContextPanel.java +++ /dev/null @@ -1,1003 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job; - -import java.util.ArrayList; -import java.util.Date; - -import org.gcube.portlets.admin.accountingmanager.client.event.ExportRequestEvent; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartDateTimeData; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartTimeMeasure; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.DownloadConstants; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.JobChartMeasure; -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.SeriesJob; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData; -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; -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.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; -import com.google.gwt.i18n.client.DateTimeFormat; -import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; -import com.sencha.gxt.cell.core.client.ButtonCell.ButtonArrowAlign; -import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; -import com.sencha.gxt.core.client.util.Margins; -import com.sencha.gxt.widget.core.client.button.TextButton; -import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; -import com.sencha.gxt.widget.core.client.container.MarginData; -import com.sencha.gxt.widget.core.client.container.SimpleContainer; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; -import com.sencha.gxt.widget.core.client.menu.Item; -import com.sencha.gxt.widget.core.client.menu.Menu; -import com.sencha.gxt.widget.core.client.menu.MenuItem; -import com.sencha.gxt.widget.core.client.toolbar.ToolBar; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class JobChartContextPanel extends SimpleContainer { - private static final int MAX_NUMBER_OF_CONTEXT = 20; - - private static final String TIME_UNIT = "Time Unit"; - // private static final String MEASURE_TYPE = "Measure"; - - private DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH_DAY); - - private EventBus eventBus; - private AccountingClientStateData accountingStateData; - private HighchartsLayoutPanel highchartsLayoutPanel; - - // Download Menu - private MenuItem downloadCSVItem; - private MenuItem downloadXMLItem; - private MenuItem downloadJSONItem; - private MenuItem downloadPNGItem; - private MenuItem downloadJPGItem; - private MenuItem downloadPDFItem; - private MenuItem downloadSVGItem; - - // Measure Menu - private MenuItem operationCountItem; - private MenuItem durationItem; - private MenuItem maxInvocationTimeItem; - private MenuItem minInvocationTimeItem; - - // Time Unit Menu - private MenuItem msItem; - private MenuItem sItem; - private MenuItem mItem; - private MenuItem hItem; - - private long unitMeasure = TimeUnitMeasure.getMilliseconds(); - private String unitMeasureLabel = TimeUnitMeasure.MS; - private TextButton unitButton; - - private ChartOptions options; - - private JobChartMeasure measure = JobChartMeasure.OperationCount; - private TextButton measureButton; - - private VerticalLayoutContainer vert; - - public JobChartContextPanel(EventBus eventBus, AccountingClientStateData accountingStateData) { - this.eventBus = eventBus; - this.accountingStateData = accountingStateData; - forceLayoutOnResize = true; - create(); - - } - - private void create() { - ToolBar toolBar = new ToolBar(); - toolBar.setSpacing(2); - // Download - final TextButton downloadButton = new TextButton(DownloadConstants.DOWNLOAD, - AccountingManagerResources.INSTANCE.accountingDownload24()); - // downloadButton.setScale(ButtonScale.MEDIUM); - downloadButton.setIconAlign(IconAlign.RIGHT); - downloadButton.setArrowAlign(ButtonArrowAlign.RIGHT); - downloadButton.setMenu(createDownloadMenu()); - - // Measure - measureButton = new TextButton(JobChartMeasure.OperationCount.getLabel(), - AccountingManagerResources.INSTANCE.accountingByte24()); - measureButton.setIconAlign(IconAlign.RIGHT); - measureButton.setArrowAlign(ButtonArrowAlign.RIGHT); - measureButton.setMenu(createMeasureMenu()); - - // Unit - unitButton = new TextButton(TIME_UNIT, AccountingManagerResources.INSTANCE.accountingUnitms24()); - unitButton.setIconAlign(IconAlign.RIGHT); - unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); - unitButton.setMenu(createUnitMenu()); - unitButton.setVisible(false); - - toolBar.add(downloadButton, new BoxLayoutData(new Margins(0))); - toolBar.add(measureButton, new BoxLayoutData(new Margins(0))); - toolBar.add(unitButton, new BoxLayoutData(new Margins(0))); - - // - createChart(); - - highchartsLayoutPanel = new HighchartsLayoutPanel(); - highchartsLayoutPanel.renderChart(options); - - // - vert = new VerticalLayoutContainer(); - vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); - vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new Margins(0))); - - add(vert, new MarginData(0)); - - } - - private void updateChart() { - createChart(); - highchartsLayoutPanel.renderChart(options); - forceLayout(); - } - - private Menu createDownloadMenu() { - Menu menuDownload = new Menu(); - downloadCSVItem = new MenuItem(DownloadConstants.DOWNLOAD_CSV, - AccountingManagerResources.INSTANCE.accountingFileCSV24()); - downloadCSVItem.setHeight(30); - downloadXMLItem = new MenuItem(DownloadConstants.DOWNLOAD_XML, - AccountingManagerResources.INSTANCE.accountingFileXML24()); - downloadXMLItem.setHeight(30); - downloadJSONItem = new MenuItem(DownloadConstants.DOWNLOAD_JSON, - AccountingManagerResources.INSTANCE.accountingFileJSON24()); - downloadJSONItem.setHeight(30); - downloadPNGItem = new MenuItem(DownloadConstants.DOWNLOAD_PNG, - AccountingManagerResources.INSTANCE.accountingFilePNG24()); - downloadPNGItem.setHeight(30); - downloadJPGItem = new MenuItem(DownloadConstants.DOWNLOAD_JPG, - AccountingManagerResources.INSTANCE.accountingFileJPG24()); - downloadJPGItem.setHeight(30); - downloadPDFItem = new MenuItem(DownloadConstants.DOWNLOAD_PDF, - AccountingManagerResources.INSTANCE.accountingFilePDF24()); - downloadPDFItem.setHeight(30); - downloadSVGItem = new MenuItem(DownloadConstants.DOWNLOAD_SVG, - AccountingManagerResources.INSTANCE.accountingFileSVG24()); - downloadSVGItem.setHeight(30); - - downloadCSVItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadCSV(); - - } - - }); - - downloadXMLItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadXML(); - - } - - }); - - downloadJSONItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadJSON(); - - } - - }); - - downloadPNGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadPNG(id); - - } - }); - - downloadJPGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadJPG(id); - } - }); - - downloadPDFItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadPDF(id); - } - }); - - downloadSVGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadSVG(id); - } - }); - - menuDownload.add(downloadCSVItem); - menuDownload.add(downloadXMLItem); - menuDownload.add(downloadJSONItem); - menuDownload.add(downloadPNGItem); - menuDownload.add(downloadJPGItem); - menuDownload.add(downloadPDFItem); - menuDownload.add(downloadSVGItem); - return menuDownload; - - } - - private Menu createMeasureMenu() { - Menu menuMeasure = new Menu(); - // TODO - durationItem = new MenuItem(JobChartMeasure.Duration.getLabel()); - durationItem.setHeight(30); - operationCountItem = new MenuItem(JobChartMeasure.OperationCount.getLabel()); - operationCountItem.setHeight(30); - maxInvocationTimeItem = new MenuItem(JobChartMeasure.MaxInvocationTime.getLabel()); - maxInvocationTimeItem.setHeight(30); - minInvocationTimeItem = new MenuItem(JobChartMeasure.MinInvocationTime.getLabel()); - minInvocationTimeItem.setHeight(30); - - durationItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(JobChartMeasure.Duration.getLabel()); - measure = JobChartMeasure.Duration; - unitButton.setVisible(true); - updateChart(); - } - }); - - operationCountItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(JobChartMeasure.OperationCount.getLabel()); - measure = JobChartMeasure.OperationCount; - unitButton.setVisible(false); - updateChart(); - } - }); - - maxInvocationTimeItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(JobChartMeasure.MaxInvocationTime.getLabel()); - measure = JobChartMeasure.MaxInvocationTime; - unitButton.setVisible(true); - updateChart(); - } - }); - - minInvocationTimeItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(JobChartMeasure.MinInvocationTime.getLabel()); - measure = JobChartMeasure.MinInvocationTime; - unitButton.setVisible(true); - updateChart(); - } - }); - - menuMeasure.add(durationItem); - menuMeasure.add(maxInvocationTimeItem); - menuMeasure.add(minInvocationTimeItem); - menuMeasure.add(operationCountItem); - - return menuMeasure; - - } - - private Menu createUnitMenu() { - Menu menuUnit = new Menu(); - msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, AccountingManagerResources.INSTANCE.accountingUnitms24()); - msItem.setHeight(30); - sItem = new MenuItem(TimeUnitMeasure.SECONDS, AccountingManagerResources.INSTANCE.accountingUnits24()); - sItem.setHeight(30); - mItem = new MenuItem(TimeUnitMeasure.MINUTES, AccountingManagerResources.INSTANCE.accountingUnitm24()); - mItem.setHeight(30); - hItem = new MenuItem(TimeUnitMeasure.HOURS, AccountingManagerResources.INSTANCE.accountingUnith24()); - hItem.setHeight(30); - - msItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getMilliseconds(); - unitMeasureLabel = TimeUnitMeasure.MS; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitms24()); - updateChart(); - } - }); - - sItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getSeconds(); - unitMeasureLabel = TimeUnitMeasure.S; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnits24()); - updateChart(); - } - }); - - mItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getMinutes(); - unitMeasureLabel = TimeUnitMeasure.M; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitm24()); - updateChart(); - } - }); - - hItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getHours(); - unitMeasureLabel = TimeUnitMeasure.H; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnith24()); - updateChart(); - } - }); - - menuUnit.add(msItem); - menuUnit.add(sItem); - menuUnit.add(mItem); - menuUnit.add(hItem); - return menuUnit; - - } - - private void onDownloadCSV() { - ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV, accountingStateData.getAccountingType()); - eventBus.fireEvent(event); - } - - private void onDownloadXML() { - ExportRequestEvent event = new ExportRequestEvent(ExportType.XML, accountingStateData.getAccountingType()); - eventBus.fireEvent(event); - } - - private void onDownloadJSON() { - 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) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartContextPanel::options); - console.log(chart); - chart.exportChart(); - - }-*/; - - public static native void onDownloadJPG(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'image/jpeg' - }); - - }-*/; - - public static native void onDownloadPDF(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'application/pdf' - }); - - }-*/; - - public static native void onDownloadSVG(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'image/svg+xml' - }); - - }-*/; - - private void createChart() { - SeriesJob seriesJob = (SeriesJob) accountingStateData.getSeriesResponse(); - - if (!(seriesJob.getSeriesJobDefinition() instanceof SeriesJobContext)) { - Log.debug("Invalid SeriesJobContext!"); - return; - } - SeriesJobContext seriesJobContext = (SeriesJobContext) seriesJob.getSeriesJobDefinition(); - - HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); - - options = highchartsFactory.createChartOptions(); - options.chart().zoomType("xy"); - options.exporting().buttons().contextButton().enabled(false); - options.exporting().filename("AccountingJobContext"); - options.title().text("Accounting Job Context"); - - /* - * options.subtitle().text("Click and drag in the plot area to zoom in" - * ); - */ - - ArrayString colors = options.colors(); - // colors.setValue(0, "#cc0038"); - // colors.setValue(1, "#32cd32"); - - // yAxis - options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); - - options.plotOptions().setFieldAsJsonObject("column", - "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " + " \"enabled\": \"true\"," - + " \"color\": \"white\", " + " \"style\": {" - + " \"textShadow\": \"0 0 3px black\"" + " }" + " }" + " }"); - - ArrayList seriesColumn = new ArrayList<>(); - /* - * if (seriesJobContext.getShowOthers()) { - * createSeriesColumnShowOthers(seriesJobContext, highchartsFactory, - * colors, seriesColumn); } else { - */ - createSeriesColumnSimple(seriesJobContext, highchartsFactory, colors, seriesColumn); - /* } */ - - for (SeriesColumn serie : seriesColumn) { - options.series().addToEnd(serie); - } - - options.chart().showAxes(true); - - options.legend().enabled(true); - return; - } - - private void createSeriesColumnShowOthers(SeriesJobContext seriesJobContext, - HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayList seriesColumn) { - Log.debug("Series ShowOthers"); - 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) { - - 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)); - - // xAxis - options.xAxis().type("datetime"); - options.xAxis().minRange(minRange); - options.tooltip().xDateFormat("Selected Data"); - - int i = 0; - for (; i < seriesJobContext.getSeriesJobDataContextList().size() && i < MAX_NUMBER_OF_CONTEXT; i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesJobContext.getSeriesJobDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (SeriesJobData seriesJobData : seriesJobContext.getSeriesJobDataContextList().get(i).getSeries()) { - switch (measure) { - case Duration: - data.push(seriesJobData.getDuration() / unitMeasure); - break; - case MaxInvocationTime: - data.push(seriesJobData.getMaxInvocationTime() / unitMeasure); - break; - case MinInvocationTime: - data.push(seriesJobData.getMinInvocationTime() / unitMeasure); - break; - case OperationCount: - data.push(seriesJobData.getOperationCount()); - break; - default: - data.push(seriesJobData.getDuration() / unitMeasure); - break; - - } - - } - - seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - - if (i < seriesJobContext.getSeriesJobDataContextList().size()) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name("Others"); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesJobContext.getSeriesJobDataContextList().size(); j++) { - Long value; - for (int k = 0; k < seriesJobContext.getSeriesJobDataContextList().get(j).getSeries().size(); k++) { - SeriesJobData seriesJobData = seriesJobContext.getSeriesJobDataContextList().get(j).getSeries() - .get(k); - if (j == i) { - switch (measure) { - case Duration: - othersData.add(seriesJobData.getDuration() / unitMeasure); - break; - case MaxInvocationTime: - othersData.add(seriesJobData.getMaxInvocationTime() / unitMeasure); - break; - case MinInvocationTime: - othersData.add(seriesJobData.getMinInvocationTime() / unitMeasure); - break; - case OperationCount: - othersData.add(seriesJobData.getOperationCount()); - break; - default: - othersData.add(seriesJobData.getDuration() / unitMeasure); - break; - } - } else { - switch (measure) { - case Duration: - value = (seriesJobData.getDuration() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - case MaxInvocationTime: - value = (seriesJobData.getMaxInvocationTime() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - case MinInvocationTime: - value = (seriesJobData.getMinInvocationTime() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - case OperationCount: - value = seriesJobData.getOperationCount() + othersData.get(k); - othersData.set(k, value); - break; - default: - value = (seriesJobData.getDuration() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - - } - - } - - } - } - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (Long value : othersData) { - data.push(value); - } - - seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - } else { - // xAxis - options.xAxis().type("datetime"); - - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.MONTHLY) == 0) { - // options.tooltip().xDateFormat("%b, %Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.YEARLY) == 0) { - // options.tooltip().xDateFormat("%Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - options.tooltip().xDateFormat("Selected Data"); - } - - } - - int i = 0; - for (; i < seriesJobContext.getSeriesJobDataContextList().size() && i < MAX_NUMBER_OF_CONTEXT; i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesJobContext.getSeriesJobDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (SeriesJobData seriesJobData : seriesJobContext.getSeriesJobDataContextList().get(i).getSeries()) { - long dateFrom1970 = seriesJobData.getDate().getTime(); - - Log.debug("SeriersJobData: " + seriesJobData.getDate()); - Log.debug("SeriersJobData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - switch (measure) { - case Duration: - data.x(dateFrom1970); - data.y(seriesJobData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - case MaxInvocationTime: - data.x(dateFrom1970); - data.y(seriesJobData.getMaxInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case MinInvocationTime: - data.x(dateFrom1970); - data.y(seriesJobData.getMinInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case OperationCount: - data.x(dateFrom1970); - data.y(seriesJobData.getOperationCount()); - arrayData.addToEnd(data); - break; - default: - data.x(dateFrom1970); - data.y(seriesJobData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - - } - - } - - seriesColumn.add(seriesColumnData); - - } - - if (i < seriesJobContext.getSeriesJobDataContextList().size()) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name("Others"); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesJobContext.getSeriesJobDataContextList().size(); j++) { - ChartDateTimeData chartDateTimeData; - for (int k = 0; k < seriesJobContext.getSeriesJobDataContextList().get(j).getSeries().size(); k++) { - SeriesJobData seriesJobData = seriesJobContext.getSeriesJobDataContextList().get(j).getSeries() - .get(k); - if (j == i) { - switch (measure) { - case Duration: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - seriesJobData.getDuration() / unitMeasure); - othersData.add(chartDateTimeData); - break; - case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - seriesJobData.getMaxInvocationTime() / unitMeasure); - othersData.add(chartDateTimeData); - break; - case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - seriesJobData.getMinInvocationTime() / unitMeasure); - othersData.add(chartDateTimeData); - break; - case OperationCount: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - seriesJobData.getOperationCount()); - othersData.add(chartDateTimeData); - break; - default: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - seriesJobData.getDuration() / unitMeasure); - othersData.add(chartDateTimeData); - break; - } - } else { - switch (measure) { - case Duration: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - (seriesJobData.getDuration() / unitMeasure) + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - (seriesJobData.getMaxInvocationTime() / unitMeasure) - + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - (seriesJobData.getMinInvocationTime() / unitMeasure) - + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - case OperationCount: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - seriesJobData.getOperationCount() + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - default: - chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), - (seriesJobData.getDuration() / unitMeasure) + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - - } - - } - - } - } - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (ChartDateTimeData chartDateTimeData : othersData) { - long dateFrom1970 = chartDateTimeData.getDate().getTime(); - - Log.debug("SeriersOthersData: " + chartDateTimeData.getDate()); - Log.debug("SeriersOthersData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - data.x(dateFrom1970); - data.y(chartDateTimeData.getValue()); - arrayData.addToEnd(data); - - } - - seriesColumn.add(seriesColumnData); - - } - } - } - - private void createSeriesColumnSimple(SeriesJobContext seriesJobContext, HighchartsOptionFactory highchartsFactory, - ArrayString colors, ArrayList seriesColumn) { - Log.debug("Series Simple"); - 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) { - - 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)); - - // xAxis - options.xAxis().type("datetime"); - options.xAxis().minRange(minRange); - options.tooltip().xDateFormat("Selected Data"); - - for (int i = 0; i < seriesJobContext.getSeriesJobDataContextList().size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesJobContext.getSeriesJobDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (SeriesJobData seriesJobData : seriesJobContext.getSeriesJobDataContextList().get(i).getSeries()) { - switch (measure) { - case Duration: - data.push(seriesJobData.getDuration() / unitMeasure); - break; - case MaxInvocationTime: - data.push(seriesJobData.getMaxInvocationTime() / unitMeasure); - break; - case MinInvocationTime: - data.push(seriesJobData.getMinInvocationTime() / unitMeasure); - break; - case OperationCount: - data.push(seriesJobData.getOperationCount()); - break; - default: - data.push(seriesJobData.getDuration() / unitMeasure); - break; - - } - - } - - seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - } else { - // xAxis - options.xAxis().type("datetime"); - - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.MONTHLY) == 0) { - // options.tooltip().xDateFormat("%b, %Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.YEARLY) == 0) { - // options.tooltip().xDateFormat("%Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - options.tooltip().xDateFormat("Selected Data"); - } - - } - - for (int i = 0; i < seriesJobContext.getSeriesJobDataContextList().size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesJobContext.getSeriesJobDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (SeriesJobData seriesJobData : seriesJobContext.getSeriesJobDataContextList().get(i).getSeries()) { - long dateFrom1970 = seriesJobData.getDate().getTime(); - - Log.debug("SeriersJobData: " + seriesJobData.getDate()); - Log.debug("SeriersJobData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - switch (measure) { - case Duration: - data.x(dateFrom1970); - data.y(seriesJobData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - case MaxInvocationTime: - data.x(dateFrom1970); - data.y(seriesJobData.getMaxInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case MinInvocationTime: - data.x(dateFrom1970); - data.y(seriesJobData.getMinInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case OperationCount: - data.x(dateFrom1970); - data.y(seriesJobData.getOperationCount()); - arrayData.addToEnd(data); - break; - default: - data.x(dateFrom1970); - data.y(seriesJobData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - - } - - } - - seriesColumn.add(seriesColumnData); - - } - - } - } - - private String retrieveYAxis(ArrayString colors) { - switch (measure) { - case Duration: - return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - case MaxInvocationTime: - return "[{" + " \"id\": \"" + JobChartMeasure.MaxInvocationTime.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.MaxInvocationTime.getLabel() + "\"," + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - case MinInvocationTime: - return "[{" + " \"id\": \"" + JobChartMeasure.MinInvocationTime.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.MinInvocationTime.getLabel() + "\"," + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - case OperationCount: - return "[{" + " \"id\": \"" + JobChartMeasure.OperationCount.name() + "\"," + " \"labels\": { " - + " \"format\": \"{value}\"," + " \"style\": { " + " \"color\": \"" + colors.get(1) - + "\"" + " }" + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {" - + " \"fontWeight\": \"bold\"," + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" + JobChartMeasure.OperationCount.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }" + "}]"; - - default: - return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - - } - - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/job/JobChartTopPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/job/JobChartTopPanel.java index 94fd86d..184cc46 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/job/JobChartTopPanel.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/job/JobChartTopPanel.java @@ -6,6 +6,7 @@ import java.util.Date; import org.gcube.portlets.admin.accountingmanager.client.event.ExportRequestEvent; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartDateTimeData; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartTimeMeasure; +import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ColorsPalette; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.DownloadConstants; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.JobChartMeasure; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.TimeUnitMeasure; @@ -57,8 +58,7 @@ public class JobChartTopPanel extends SimpleContainer { private static final String TIME_UNIT = "Time Unit"; // private static final String MEASURE_TYPE = "Measure"; - private DateTimeFormat dtf = DateTimeFormat - .getFormat(PredefinedFormat.YEAR_MONTH_DAY); + private DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH_DAY); private EventBus eventBus; private AccountingClientStateData accountingStateData; @@ -96,8 +96,7 @@ public class JobChartTopPanel extends SimpleContainer { private VerticalLayoutContainer vert; - public JobChartTopPanel(EventBus eventBus, - AccountingClientStateData accountingStateData) { + public JobChartTopPanel(EventBus eventBus, AccountingClientStateData accountingStateData) { this.eventBus = eventBus; this.accountingStateData = accountingStateData; forceLayoutOnResize = true; @@ -109,8 +108,7 @@ public class JobChartTopPanel extends SimpleContainer { ToolBar toolBar = new ToolBar(); toolBar.setSpacing(2); // Download - final TextButton downloadButton = new TextButton( - DownloadConstants.DOWNLOAD, + final TextButton downloadButton = new TextButton(DownloadConstants.DOWNLOAD, AccountingManagerResources.INSTANCE.accountingDownload24()); // downloadButton.setScale(ButtonScale.MEDIUM); downloadButton.setIconAlign(IconAlign.RIGHT); @@ -125,8 +123,7 @@ public class JobChartTopPanel extends SimpleContainer { measureButton.setMenu(createMeasureMenu()); // Unit - unitButton = new TextButton(TIME_UNIT, - AccountingManagerResources.INSTANCE.accountingUnitms24()); + unitButton = new TextButton(TIME_UNIT, AccountingManagerResources.INSTANCE.accountingUnitms24()); unitButton.setIconAlign(IconAlign.RIGHT); unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); unitButton.setMenu(createUnitMenu()); @@ -145,8 +142,7 @@ public class JobChartTopPanel extends SimpleContainer { // vert = new VerticalLayoutContainer(); vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); - vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, - new Margins(0))); + vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new Margins(0))); add(vert, new MarginData(0)); @@ -265,14 +261,11 @@ public class JobChartTopPanel extends SimpleContainer { // TODO durationItem = new MenuItem(JobChartMeasure.Duration.getLabel()); durationItem.setHeight(30); - operationCountItem = new MenuItem( - JobChartMeasure.OperationCount.getLabel()); + operationCountItem = new MenuItem(JobChartMeasure.OperationCount.getLabel()); operationCountItem.setHeight(30); - maxInvocationTimeItem = new MenuItem( - JobChartMeasure.MaxInvocationTime.getLabel()); + maxInvocationTimeItem = new MenuItem(JobChartMeasure.MaxInvocationTime.getLabel()); maxInvocationTimeItem.setHeight(30); - minInvocationTimeItem = new MenuItem( - JobChartMeasure.MinInvocationTime.getLabel()); + minInvocationTimeItem = new MenuItem(JobChartMeasure.MinInvocationTime.getLabel()); minInvocationTimeItem.setHeight(30); durationItem.addSelectionHandler(new SelectionHandler() { @@ -301,8 +294,7 @@ public class JobChartTopPanel extends SimpleContainer { @Override public void onSelection(SelectionEvent event) { - measureButton.setText(JobChartMeasure.MaxInvocationTime - .getLabel()); + measureButton.setText(JobChartMeasure.MaxInvocationTime.getLabel()); measure = JobChartMeasure.MaxInvocationTime; unitButton.setVisible(true); updateChart(); @@ -313,8 +305,7 @@ public class JobChartTopPanel extends SimpleContainer { @Override public void onSelection(SelectionEvent event) { - measureButton.setText(JobChartMeasure.MinInvocationTime - .getLabel()); + measureButton.setText(JobChartMeasure.MinInvocationTime.getLabel()); measure = JobChartMeasure.MinInvocationTime; unitButton.setVisible(true); updateChart(); @@ -332,17 +323,13 @@ public class JobChartTopPanel extends SimpleContainer { private Menu createUnitMenu() { Menu menuUnit = new Menu(); - msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, - AccountingManagerResources.INSTANCE.accountingUnitms24()); + msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, AccountingManagerResources.INSTANCE.accountingUnitms24()); msItem.setHeight(30); - sItem = new MenuItem(TimeUnitMeasure.SECONDS, - AccountingManagerResources.INSTANCE.accountingUnits24()); + sItem = new MenuItem(TimeUnitMeasure.SECONDS, AccountingManagerResources.INSTANCE.accountingUnits24()); sItem.setHeight(30); - mItem = new MenuItem(TimeUnitMeasure.MINUTES, - AccountingManagerResources.INSTANCE.accountingUnitm24()); + mItem = new MenuItem(TimeUnitMeasure.MINUTES, AccountingManagerResources.INSTANCE.accountingUnitm24()); mItem.setHeight(30); - hItem = new MenuItem(TimeUnitMeasure.HOURS, - AccountingManagerResources.INSTANCE.accountingUnith24()); + hItem = new MenuItem(TimeUnitMeasure.HOURS, AccountingManagerResources.INSTANCE.accountingUnith24()); hItem.setHeight(30); msItem.addSelectionHandler(new SelectionHandler() { @@ -351,8 +338,7 @@ public class JobChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getMilliseconds(); unitMeasureLabel = TimeUnitMeasure.MS; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitms24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitms24()); updateChart(); } }); @@ -363,8 +349,7 @@ public class JobChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getSeconds(); unitMeasureLabel = TimeUnitMeasure.S; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnits24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnits24()); updateChart(); } }); @@ -375,8 +360,7 @@ public class JobChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getMinutes(); unitMeasureLabel = TimeUnitMeasure.M; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitm24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitm24()); updateChart(); } }); @@ -387,8 +371,7 @@ public class JobChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getHours(); unitMeasureLabel = TimeUnitMeasure.H; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnith24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnith24()); updateChart(); } }); @@ -402,20 +385,17 @@ public class JobChartTopPanel extends SimpleContainer { } 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); } @@ -472,15 +452,13 @@ public class JobChartTopPanel extends SimpleContainer { }-*/; private void createChart() { - SeriesJob seriesJob = (SeriesJob) accountingStateData - .getSeriesResponse(); + SeriesJob seriesJob = (SeriesJob) accountingStateData.getSeriesResponse(); if (!(seriesJob.getSeriesJobDefinition() instanceof SeriesJobTop)) { Log.debug("Invalid SeriesJobTop!"); return; } - SeriesJobTop seriesJobTop = (SeriesJobTop) seriesJob - .getSeriesJobDefinition(); + SeriesJobTop seriesJobTop = (SeriesJobTop) seriesJob.getSeriesJobDefinition(); HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); @@ -491,32 +469,28 @@ public class JobChartTopPanel extends SimpleContainer { options.title().text("Accounting Job Top"); /* - * options.subtitle().text("Click and drag in the plot area to zoom in"); + * options.subtitle().text("Click and drag in the plot area to zoom in" + * ); */ + ColorsPalette colorsPalette=new ColorsPalette(); ArrayString colors = options.colors(); + colors=colorsPalette.getColorsPalette(colors); + options.colors(colors); + // colors.setValue(0, "#cc0038"); // colors.setValue(1, "#32cd32"); // yAxis options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); - options.plotOptions().setFieldAsJsonObject( - "column", - "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " - + " \"enabled\": \"true\"," + options.plotOptions().setFieldAsJsonObject("column", + "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " + " \"enabled\": \"true\"," + " \"color\": \"white\", " + " \"style\": {" - + " \"textShadow\": \"0 0 3px black\"" + " }" - + " }" + " }"); + + " \"textShadow\": \"0 0 3px black\"" + " }" + " }" + " }"); ArrayList seriesColumn = new ArrayList<>(); - if (seriesJobTop.getShowOthers()) { - createSeriesColumnShowOthers(seriesJobTop, highchartsFactory, - colors, seriesColumn); - } else { - createSeriesColumnSimple(seriesJobTop, highchartsFactory, colors, - seriesColumn); - } + createSeriesColumnSimple(seriesJobTop, highchartsFactory, colors, seriesColumn); for (SeriesColumn serie : seriesColumn) { options.series().addToEnd(serie); @@ -528,35 +502,28 @@ public class JobChartTopPanel extends SimpleContainer { return; } - private void createSeriesColumnShowOthers(SeriesJobTop seriesJobTop, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { + private void createSeriesColumnShowOthers(SeriesJobTop seriesJobTop, HighchartsOptionFactory highchartsFactory, + ArrayString colors, ArrayList seriesColumn) { Log.debug("Series ShowOthers"); - 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) { + 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) { double minRange = ChartTimeMeasure - .calculateMinRange(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod()); double interval = ChartTimeMeasure - .calculateInterval(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod()); - Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() - .getAccountingPeriod().getStartDate()); + Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate()); - dateStart.setTime(dateStart.getTime() - + ChartTimeMeasure.timeZoneOffset() - * ChartTimeMeasure.MINUTE); + dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE); Log.debug("BuildChart DateStart: " - + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) - .format(dateStart)); + + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart)); // xAxis options.xAxis().type("datetime"); @@ -564,31 +531,25 @@ public class JobChartTopPanel extends SimpleContainer { options.tooltip().xDateFormat("Selected Data"); int i = 0; - for (; i < seriesJobTop.getSeriesJobDataTopList().size() - && i < seriesJobTop.getTopNumber(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + for (; i < seriesJobTop.getSeriesJobDataTopList().size() && i < seriesJobTop.getTopNumber(); i++) { + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() - .get(i).getFilterValue().getValue()); + seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - for (SeriesJobData seriesJobData : seriesJobTop - .getSeriesJobDataTopList().get(i).getSeries()) { + for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) { switch (measure) { case Duration: data.push(seriesJobData.getDuration() / unitMeasure); break; case MaxInvocationTime: - data.push(seriesJobData.getMaxInvocationTime() - / unitMeasure); + data.push(seriesJobData.getMaxInvocationTime() / unitMeasure); break; case MinInvocationTime: - data.push(seriesJobData.getMinInvocationTime() - / unitMeasure); + data.push(seriesJobData.getMinInvocationTime() / unitMeasure); break; case OperationCount: data.push(seriesJobData.getOperationCount()); @@ -601,77 +562,61 @@ public class JobChartTopPanel extends SimpleContainer { } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } if (i < seriesJobTop.getSeriesJobDataTopList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); seriesColumnData.name("Others"); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesJobTop.getSeriesJobDataTopList() - .size(); j++) { + for (int j = i; j < seriesJobTop.getSeriesJobDataTopList().size(); j++) { Long value; - for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList() - .get(j).getSeries().size(); k++) { - SeriesJobData seriesJobData = seriesJobTop - .getSeriesJobDataTopList().get(j).getSeries() - .get(k); + for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().size(); k++) { + SeriesJobData seriesJobData = seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().get(k); if (j == i) { switch (measure) { case Duration: - othersData.add(seriesJobData.getDuration() - / unitMeasure); + othersData.add(seriesJobData.getDuration() / unitMeasure); break; case MaxInvocationTime: - othersData.add(seriesJobData - .getMaxInvocationTime() / unitMeasure); + othersData.add(seriesJobData.getMaxInvocationTime() / unitMeasure); break; case MinInvocationTime: - othersData.add(seriesJobData - .getMinInvocationTime() / unitMeasure); + othersData.add(seriesJobData.getMinInvocationTime() / unitMeasure); break; case OperationCount: - othersData.add(seriesJobData - .getOperationCount()); + othersData.add(seriesJobData.getOperationCount()); break; default: - othersData.add(seriesJobData.getDuration() - / unitMeasure); + othersData.add(seriesJobData.getDuration() / unitMeasure); break; } } else { switch (measure) { case Duration: - value = (seriesJobData.getDuration() / unitMeasure) - + othersData.get(k); + value = (seriesJobData.getDuration() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; case MaxInvocationTime: - value = (seriesJobData.getMaxInvocationTime() / unitMeasure) - + othersData.get(k); + value = (seriesJobData.getMaxInvocationTime() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; case MinInvocationTime: - value = (seriesJobData.getMinInvocationTime() / unitMeasure) - + othersData.get(k); + value = (seriesJobData.getMinInvocationTime() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; case OperationCount: - value = seriesJobData.getOperationCount() - + othersData.get(k); + value = seriesJobData.getOperationCount() + othersData.get(k); othersData.set(k, value); break; default: - value = (seriesJobData.getDuration() / unitMeasure) - + othersData.get(k); + value = (seriesJobData.getDuration() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; @@ -688,8 +633,7 @@ public class JobChartTopPanel extends SimpleContainer { data.push(value); } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } @@ -697,16 +641,15 @@ public class JobChartTopPanel extends SimpleContainer { // xAxis options.xAxis().type("datetime"); - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() + .compareTo(AccountingPeriodMode.MONTHLY) == 0) { + // options.tooltip().xDateFormat("%b, %Y"); options.tooltip().xDateFormat("Selected Data"); } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); + // options.tooltip().xDateFormat("%Y"); options.tooltip().xDateFormat("Selected Data"); } else { @@ -716,20 +659,16 @@ public class JobChartTopPanel extends SimpleContainer { } int i = 0; - for (; i < seriesJobTop.getSeriesJobDataTopList().size() - && i < seriesJobTop.getTopNumber(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + for (; i < seriesJobTop.getSeriesJobDataTopList().size() && i < seriesJobTop.getTopNumber(); i++) { + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() - .get(i).getFilterValue().getValue()); + seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); Array arrayData = seriesColumnData.dataAsArrayObject(); - for (SeriesJobData seriesJobData : seriesJobTop - .getSeriesJobDataTopList().get(i).getSeries()) { + for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) { long dateFrom1970 = seriesJobData.getDate().getTime(); Log.debug("SeriersJobData: " + seriesJobData.getDate()); @@ -745,14 +684,12 @@ public class JobChartTopPanel extends SimpleContainer { break; case MaxInvocationTime: data.x(dateFrom1970); - data.y(seriesJobData.getMaxInvocationTime() - / unitMeasure); + data.y(seriesJobData.getMaxInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case MinInvocationTime: data.x(dateFrom1970); - data.y(seriesJobData.getMinInvocationTime() - / unitMeasure); + data.y(seriesJobData.getMinInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case OperationCount: @@ -775,94 +712,72 @@ public class JobChartTopPanel extends SimpleContainer { } if (i < seriesJobTop.getSeriesJobDataTopList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); seriesColumnData.name("Others"); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesJobTop.getSeriesJobDataTopList() - .size(); j++) { + for (int j = i; j < seriesJobTop.getSeriesJobDataTopList().size(); j++) { ChartDateTimeData chartDateTimeData; - for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList() - .get(j).getSeries().size(); k++) { - SeriesJobData seriesJobData = seriesJobTop - .getSeriesJobDataTopList().get(j).getSeries() - .get(k); + for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().size(); k++) { + SeriesJobData seriesJobData = seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().get(k); if (j == i) { switch (measure) { case Duration: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), - seriesJobData.getDuration() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), + seriesJobData.getDuration() / unitMeasure); othersData.add(chartDateTimeData); break; case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), - seriesJobData.getMaxInvocationTime() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), + seriesJobData.getMaxInvocationTime() / unitMeasure); othersData.add(chartDateTimeData); break; case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), - seriesJobData.getMinInvocationTime() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), + seriesJobData.getMinInvocationTime() / unitMeasure); othersData.add(chartDateTimeData); break; case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), seriesJobData.getOperationCount()); othersData.add(chartDateTimeData); break; default: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), - seriesJobData.getDuration() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), + seriesJobData.getDuration() / unitMeasure); othersData.add(chartDateTimeData); break; } } else { switch (measure) { case Duration: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), - (seriesJobData.getDuration() / unitMeasure) - + othersData.get(k).getValue()); + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), + (seriesJobData.getDuration() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), (seriesJobData.getMaxInvocationTime() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), (seriesJobData.getMinInvocationTime() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), - seriesJobData.getOperationCount() - + othersData.get(k).getValue()); + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), + seriesJobData.getOperationCount() + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; default: - chartDateTimeData = new ChartDateTimeData( - seriesJobData.getDate(), - (seriesJobData.getDuration() / unitMeasure) - + othersData.get(k).getValue()); + chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(), + (seriesJobData.getDuration() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; @@ -878,8 +793,7 @@ public class JobChartTopPanel extends SimpleContainer { for (ChartDateTimeData chartDateTimeData : othersData) { long dateFrom1970 = chartDateTimeData.getDate().getTime(); - Log.debug("SeriersOthersData: " - + chartDateTimeData.getDate()); + Log.debug("SeriersOthersData: " + chartDateTimeData.getDate()); Log.debug("SeriersOthersData: " + dateFrom1970); Data data = highchartsFactory.createSeriesColumnData(); @@ -896,65 +810,53 @@ public class JobChartTopPanel extends SimpleContainer { } } - private void createSeriesColumnSimple(SeriesJobTop seriesJobTop, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { + private void createSeriesColumnSimple(SeriesJobTop seriesJobTop, HighchartsOptionFactory highchartsFactory, + ArrayString colors, ArrayList seriesColumn) { Log.debug("Series Simple"); - 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) { + 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) { double minRange = ChartTimeMeasure - .calculateMinRange(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod()); double interval = ChartTimeMeasure - .calculateInterval(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod()); - Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() - .getAccountingPeriod().getStartDate()); + Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate()); - dateStart.setTime(dateStart.getTime() - + ChartTimeMeasure.timeZoneOffset() - * ChartTimeMeasure.MINUTE); + dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE); Log.debug("BuildChart DateStart: " - + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) - .format(dateStart)); + + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart)); // xAxis options.xAxis().type("datetime"); options.xAxis().minRange(minRange); options.tooltip().xDateFormat("Selected Data"); - - for (int i = 0; i < seriesJobTop.getSeriesJobDataTopList().size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() - .get(i).getFilterValue().getValue()); + for (int i = 0; i < seriesJobTop.getSeriesJobDataTopList().size(); i++) { + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); + + seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - for (SeriesJobData seriesJobData : seriesJobTop - .getSeriesJobDataTopList().get(i).getSeries()) { + for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) { switch (measure) { case Duration: data.push(seriesJobData.getDuration() / unitMeasure); break; case MaxInvocationTime: - data.push(seriesJobData.getMaxInvocationTime() - / unitMeasure); + data.push(seriesJobData.getMaxInvocationTime() / unitMeasure); break; case MinInvocationTime: - data.push(seriesJobData.getMinInvocationTime() - / unitMeasure); + data.push(seriesJobData.getMinInvocationTime() / unitMeasure); break; case OperationCount: data.push(seriesJobData.getOperationCount()); @@ -967,8 +869,7 @@ public class JobChartTopPanel extends SimpleContainer { } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } @@ -976,16 +877,15 @@ public class JobChartTopPanel extends SimpleContainer { // xAxis options.xAxis().type("datetime"); - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() + .compareTo(AccountingPeriodMode.MONTHLY) == 0) { + // options.tooltip().xDateFormat("%b, %Y"); options.tooltip().xDateFormat("Selected Data"); } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); + // options.tooltip().xDateFormat("%Y"); options.tooltip().xDateFormat("Selected Data"); } else { @@ -995,18 +895,15 @@ public class JobChartTopPanel extends SimpleContainer { } for (int i = 0; i < seriesJobTop.getSeriesJobDataTopList().size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() - .get(i).getFilterValue().getValue()); + seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); Array arrayData = seriesColumnData.dataAsArrayObject(); - for (SeriesJobData seriesJobData : seriesJobTop - .getSeriesJobDataTopList().get(i).getSeries()) { + for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) { long dateFrom1970 = seriesJobData.getDate().getTime(); Log.debug("SeriersJobData: " + seriesJobData.getDate()); @@ -1022,14 +919,12 @@ public class JobChartTopPanel extends SimpleContainer { break; case MaxInvocationTime: data.x(dateFrom1970); - data.y(seriesJobData.getMaxInvocationTime() - / unitMeasure); + data.y(seriesJobData.getMaxInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case MinInvocationTime: data.x(dateFrom1970); - data.y(seriesJobData.getMinInvocationTime() - / unitMeasure); + data.y(seriesJobData.getMinInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case OperationCount: @@ -1057,68 +952,45 @@ public class JobChartTopPanel extends SimpleContainer { private String retrieveYAxis(ArrayString colors) { switch (measure) { case Duration: - return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.Duration.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + JobChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \"#434348\"" + + " }" + " }" + "}]"; case MaxInvocationTime: - return "[{" + " \"id\": \"" - + JobChartMeasure.MaxInvocationTime.name() + "\"," - + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.MaxInvocationTime.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + JobChartMeasure.MaxInvocationTime.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + JobChartMeasure.MaxInvocationTime.getLabel() + "\"," + " \"style\": {" + " \"color\": \"#434348\"" + + " }" + " }" + "}]"; case MinInvocationTime: - return "[{" + " \"id\": \"" - + JobChartMeasure.MinInvocationTime.name() + "\"," - + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.MinInvocationTime.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + JobChartMeasure.MinInvocationTime.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + JobChartMeasure.MinInvocationTime.getLabel() + "\"," + " \"style\": {" + " \"color\": \"#434348\"" + + " }" + " }" + "}]"; case OperationCount: - return "[{" + " \"id\": \"" + JobChartMeasure.OperationCount.name() - + "\"," + " \"labels\": { " - + " \"format\": \"{value}\"," + " \"style\": { " - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.OperationCount.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + JobChartMeasure.OperationCount.name() + "\"," + " \"labels\": { " + + " \"format\": \"{value}\"," + " \"style\": { " + " \"color\": \"#434348\"" + + " }" + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {" + + " \"fontWeight\": \"bold\"," + " \"color\": \"gray\"" + " } " + " }," + + " \"title\": { " + " \"text\": \"" + JobChartMeasure.OperationCount.getLabel() + "\"," + + " \"style\": {" + " \"color\": \"#434348\"" + " }" + " }" + "}]"; default: - return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + JobChartMeasure.Duration.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + JobChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \"#434348\"" + + " }" + " }" + "}]"; } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartContextPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartContextPanel.java deleted file mode 100644 index 6c1397a..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartContextPanel.java +++ /dev/null @@ -1,1010 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service; - -import java.util.ArrayList; -import java.util.Date; - -import org.gcube.portlets.admin.accountingmanager.client.event.ExportRequestEvent; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartDateTimeData; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartTimeMeasure; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.DownloadConstants; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ServiceChartMeasure; -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.SeriesServiceContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData; -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; -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.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; -import com.google.gwt.i18n.client.DateTimeFormat; -import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; -import com.sencha.gxt.cell.core.client.ButtonCell.ButtonArrowAlign; -import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; -import com.sencha.gxt.core.client.util.Margins; -import com.sencha.gxt.widget.core.client.button.TextButton; -import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; -import com.sencha.gxt.widget.core.client.container.MarginData; -import com.sencha.gxt.widget.core.client.container.SimpleContainer; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; -import com.sencha.gxt.widget.core.client.menu.Item; -import com.sencha.gxt.widget.core.client.menu.Menu; -import com.sencha.gxt.widget.core.client.menu.MenuItem; -import com.sencha.gxt.widget.core.client.toolbar.ToolBar; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class ServiceChartContextPanel extends SimpleContainer { - private static final int MAX_NUMBER_OF_CONTEXT = 20; - - private static final String TIME_UNIT = "Time Unit"; - // private static final String MEASURE_TYPE = "Measure"; - - private DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH_DAY); - - private EventBus eventBus; - private AccountingClientStateData accountingStateData; - private HighchartsLayoutPanel highchartsLayoutPanel; - - // Download Menu - private MenuItem downloadCSVItem; - private MenuItem downloadXMLItem; - private MenuItem downloadJSONItem; - private MenuItem downloadPNGItem; - private MenuItem downloadJPGItem; - private MenuItem downloadPDFItem; - private MenuItem downloadSVGItem; - - // Measure Menu - private MenuItem operationCountItem; - private MenuItem durationItem; - private MenuItem maxInvocationTimeItem; - private MenuItem minInvocationTimeItem; - - // Time Unit Menu - private MenuItem msItem; - private MenuItem sItem; - private MenuItem mItem; - private MenuItem hItem; - - private long unitMeasure = TimeUnitMeasure.getMilliseconds(); - private String unitMeasureLabel = TimeUnitMeasure.MS; - private TextButton unitButton; - - private ChartOptions options; - - private ServiceChartMeasure measure = ServiceChartMeasure.OperationCount; - private TextButton measureButton; - - private VerticalLayoutContainer vert; - - public ServiceChartContextPanel(EventBus eventBus, AccountingClientStateData accountingStateData) { - this.eventBus = eventBus; - this.accountingStateData = accountingStateData; - forceLayoutOnResize = true; - create(); - - } - - private void create() { - ToolBar toolBar = new ToolBar(); - toolBar.setSpacing(2); - // Download - final TextButton downloadButton = new TextButton(DownloadConstants.DOWNLOAD, - AccountingManagerResources.INSTANCE.accountingDownload24()); - // downloadButton.setScale(ButtonScale.MEDIUM); - downloadButton.setIconAlign(IconAlign.RIGHT); - downloadButton.setArrowAlign(ButtonArrowAlign.RIGHT); - downloadButton.setMenu(createDownloadMenu()); - - // Measure - measureButton = new TextButton(ServiceChartMeasure.OperationCount.getLabel(), - AccountingManagerResources.INSTANCE.accountingByte24()); - measureButton.setIconAlign(IconAlign.RIGHT); - measureButton.setArrowAlign(ButtonArrowAlign.RIGHT); - measureButton.setMenu(createMeasureMenu()); - - // Unit - unitButton = new TextButton(TIME_UNIT, AccountingManagerResources.INSTANCE.accountingUnitms24()); - unitButton.setIconAlign(IconAlign.RIGHT); - unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); - unitButton.setMenu(createUnitMenu()); - unitButton.setVisible(false); - - toolBar.add(downloadButton, new BoxLayoutData(new Margins(0))); - toolBar.add(measureButton, new BoxLayoutData(new Margins(0))); - toolBar.add(unitButton, new BoxLayoutData(new Margins(0))); - - // - createChart(); - - highchartsLayoutPanel = new HighchartsLayoutPanel(); - highchartsLayoutPanel.renderChart(options); - - // - vert = new VerticalLayoutContainer(); - vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); - vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new Margins(0))); - - add(vert, new MarginData(0)); - - } - - private void updateChart() { - createChart(); - highchartsLayoutPanel.renderChart(options); - forceLayout(); - } - - private Menu createDownloadMenu() { - Menu menuDownload = new Menu(); - downloadCSVItem = new MenuItem(DownloadConstants.DOWNLOAD_CSV, - AccountingManagerResources.INSTANCE.accountingFileCSV24()); - downloadCSVItem.setHeight(30); - downloadXMLItem = new MenuItem(DownloadConstants.DOWNLOAD_XML, - AccountingManagerResources.INSTANCE.accountingFileXML24()); - downloadXMLItem.setHeight(30); - downloadJSONItem = new MenuItem(DownloadConstants.DOWNLOAD_JSON, - AccountingManagerResources.INSTANCE.accountingFileJSON24()); - downloadJSONItem.setHeight(30); - downloadPNGItem = new MenuItem(DownloadConstants.DOWNLOAD_PNG, - AccountingManagerResources.INSTANCE.accountingFilePNG24()); - downloadPNGItem.setHeight(30); - downloadJPGItem = new MenuItem(DownloadConstants.DOWNLOAD_JPG, - AccountingManagerResources.INSTANCE.accountingFileJPG24()); - downloadJPGItem.setHeight(30); - downloadPDFItem = new MenuItem(DownloadConstants.DOWNLOAD_PDF, - AccountingManagerResources.INSTANCE.accountingFilePDF24()); - downloadPDFItem.setHeight(30); - downloadSVGItem = new MenuItem(DownloadConstants.DOWNLOAD_SVG, - AccountingManagerResources.INSTANCE.accountingFileSVG24()); - downloadSVGItem.setHeight(30); - - downloadCSVItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadCSV(); - - } - - }); - - downloadXMLItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadXML(); - - } - - }); - - downloadJSONItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadJSON(); - - } - - }); - - downloadPNGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadPNG(id); - - } - }); - - downloadJPGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadJPG(id); - } - }); - - downloadPDFItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadPDF(id); - } - }); - - downloadSVGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadSVG(id); - } - }); - - menuDownload.add(downloadCSVItem); - menuDownload.add(downloadXMLItem); - menuDownload.add(downloadJSONItem); - menuDownload.add(downloadPNGItem); - menuDownload.add(downloadJPGItem); - menuDownload.add(downloadPDFItem); - menuDownload.add(downloadSVGItem); - return menuDownload; - - } - - private Menu createMeasureMenu() { - Menu menuMeasure = new Menu(); - // TODO - durationItem = new MenuItem(ServiceChartMeasure.Duration.getLabel()); - durationItem.setHeight(30); - operationCountItem = new MenuItem(ServiceChartMeasure.OperationCount.getLabel()); - operationCountItem.setHeight(30); - maxInvocationTimeItem = new MenuItem(ServiceChartMeasure.MaxInvocationTime.getLabel()); - maxInvocationTimeItem.setHeight(30); - minInvocationTimeItem = new MenuItem(ServiceChartMeasure.MinInvocationTime.getLabel()); - minInvocationTimeItem.setHeight(30); - - durationItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(ServiceChartMeasure.Duration.getLabel()); - measure = ServiceChartMeasure.Duration; - unitButton.setVisible(true); - updateChart(); - } - }); - - operationCountItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(ServiceChartMeasure.OperationCount.getLabel()); - measure = ServiceChartMeasure.OperationCount; - unitButton.setVisible(false); - updateChart(); - } - }); - - maxInvocationTimeItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(ServiceChartMeasure.MaxInvocationTime.getLabel()); - measure = ServiceChartMeasure.MaxInvocationTime; - unitButton.setVisible(true); - updateChart(); - } - }); - - minInvocationTimeItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(ServiceChartMeasure.MinInvocationTime.getLabel()); - measure = ServiceChartMeasure.MinInvocationTime; - unitButton.setVisible(true); - updateChart(); - } - }); - - menuMeasure.add(durationItem); - menuMeasure.add(maxInvocationTimeItem); - menuMeasure.add(minInvocationTimeItem); - menuMeasure.add(operationCountItem); - - return menuMeasure; - - } - - private Menu createUnitMenu() { - Menu menuUnit = new Menu(); - msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, AccountingManagerResources.INSTANCE.accountingUnitms24()); - msItem.setHeight(30); - sItem = new MenuItem(TimeUnitMeasure.SECONDS, AccountingManagerResources.INSTANCE.accountingUnits24()); - sItem.setHeight(30); - mItem = new MenuItem(TimeUnitMeasure.MINUTES, AccountingManagerResources.INSTANCE.accountingUnitm24()); - mItem.setHeight(30); - hItem = new MenuItem(TimeUnitMeasure.HOURS, AccountingManagerResources.INSTANCE.accountingUnith24()); - hItem.setHeight(30); - - msItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getMilliseconds(); - unitMeasureLabel = TimeUnitMeasure.MS; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitms24()); - updateChart(); - } - }); - - sItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getSeconds(); - unitMeasureLabel = TimeUnitMeasure.S; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnits24()); - updateChart(); - } - }); - - mItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getMinutes(); - unitMeasureLabel = TimeUnitMeasure.M; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitm24()); - updateChart(); - } - }); - - hItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = TimeUnitMeasure.getHours(); - unitMeasureLabel = TimeUnitMeasure.H; - unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnith24()); - updateChart(); - } - }); - - menuUnit.add(msItem); - menuUnit.add(sItem); - menuUnit.add(mItem); - menuUnit.add(hItem); - return menuUnit; - - } - - private void onDownloadCSV() { - ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV, accountingStateData.getAccountingType()); - eventBus.fireEvent(event); - } - - private void onDownloadXML() { - ExportRequestEvent event = new ExportRequestEvent(ExportType.XML, accountingStateData.getAccountingType()); - eventBus.fireEvent(event); - } - - private void onDownloadJSON() { - 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) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartContextPanel::options); - console.log(chart); - chart.exportChart(); - - }-*/; - - public static native void onDownloadJPG(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'image/jpeg' - }); - - }-*/; - - public static native void onDownloadPDF(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'application/pdf' - }); - - }-*/; - - public static native void onDownloadSVG(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'image/svg+xml' - }); - - }-*/; - - private void createChart() { - SeriesService seriesService = (SeriesService) accountingStateData.getSeriesResponse(); - - if (!(seriesService.getSerieServiceDefinition() instanceof SeriesServiceContext)) { - Log.debug("Invalid SeriesServiceContext!"); - return; - } - SeriesServiceContext seriesServiceContext = (SeriesServiceContext) seriesService.getSerieServiceDefinition(); - - HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); - - options = highchartsFactory.createChartOptions(); - options.chart().zoomType("xy"); - options.exporting().buttons().contextButton().enabled(false); - options.exporting().filename("AccountingServiceContext"); - options.title().text("Accounting Service Context"); - - /* - * options.subtitle().text("Click and drag in the plot area to zoom in" - * ); - */ - - ArrayString colors = options.colors(); - // colors.setValue(0, "#cc0038"); - // colors.setValue(1, "#32cd32"); - - // yAxis - options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); - - options.plotOptions().setFieldAsJsonObject("column", - "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " + " \"enabled\": \"true\"," - + " \"color\": \"white\", " + " \"style\": {" - + " \"textShadow\": \"0 0 3px black\"" + " }" + " }" + " }"); - - ArrayList seriesColumn = new ArrayList<>(); - /* - * if (seriesServiceContext.getShowOthers()) { - * createSeriesColumnShowOthers(seriesServiceContext, highchartsFactory, - * colors, seriesColumn); } else { - */ - createSeriesColumnSimple(seriesServiceContext, highchartsFactory, colors, seriesColumn); - /* } */ - for (SeriesColumn serie : seriesColumn) { - options.series().addToEnd(serie); - } - - options.chart().showAxes(true); - - options.legend().enabled(true); - return; - } - - private void createSeriesColumnShowOthers(SeriesServiceContext seriesServiceContext, - HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayList seriesColumn) { - Log.debug("Series ShowOthers"); - 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) { - - 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)); - - // xAxis - options.xAxis().type("datetime"); - options.xAxis().minRange(minRange); - options.tooltip().xDateFormat("Selected Data"); - - int i = 0; - for (; i < seriesServiceContext.getSeriesServiceDataContextList().size() - && i < MAX_NUMBER_OF_CONTEXT; i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesServiceContext.getSeriesServiceDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (SeriesServiceData seriesServiceData : seriesServiceContext.getSeriesServiceDataContextList().get(i) - .getSeries()) { - switch (measure) { - case Duration: - data.push(seriesServiceData.getDuration() / unitMeasure); - break; - case MaxInvocationTime: - data.push(seriesServiceData.getMaxInvocationTime() / unitMeasure); - break; - case MinInvocationTime: - data.push(seriesServiceData.getMinInvocationTime() / unitMeasure); - break; - case OperationCount: - data.push(seriesServiceData.getOperationCount()); - break; - default: - data.push(seriesServiceData.getDuration() / unitMeasure); - break; - - } - - } - - seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - - if (i < seriesServiceContext.getSeriesServiceDataContextList().size()) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name("Others"); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesServiceContext.getSeriesServiceDataContextList().size(); j++) { - Long value; - for (int k = 0; k < seriesServiceContext.getSeriesServiceDataContextList().get(j).getSeries() - .size(); k++) { - SeriesServiceData seriesServiceData = seriesServiceContext.getSeriesServiceDataContextList() - .get(j).getSeries().get(k); - if (j == i) { - switch (measure) { - case Duration: - othersData.add(seriesServiceData.getDuration() / unitMeasure); - break; - case MaxInvocationTime: - othersData.add(seriesServiceData.getMaxInvocationTime() / unitMeasure); - break; - case MinInvocationTime: - othersData.add(seriesServiceData.getMinInvocationTime() / unitMeasure); - break; - case OperationCount: - othersData.add(seriesServiceData.getOperationCount()); - break; - default: - othersData.add(seriesServiceData.getDuration() / unitMeasure); - break; - } - } else { - switch (measure) { - case Duration: - value = (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - case MaxInvocationTime: - value = (seriesServiceData.getMaxInvocationTime() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - case MinInvocationTime: - value = (seriesServiceData.getMinInvocationTime() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - case OperationCount: - value = seriesServiceData.getOperationCount() + othersData.get(k); - othersData.set(k, value); - break; - default: - value = (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k); - othersData.set(k, value); - break; - - } - - } - - } - } - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (Long value : othersData) { - data.push(value); - } - - seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - } else { - // xAxis - options.xAxis().type("datetime"); - - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.MONTHLY) == 0) { - // options.tooltip().xDateFormat("%b, %Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.YEARLY) == 0) { - // options.tooltip().xDateFormat("%Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - options.tooltip().xDateFormat("Selected Data"); - } - - } - - int i = 0; - for (; i < seriesServiceContext.getSeriesServiceDataContextList().size() - && i < MAX_NUMBER_OF_CONTEXT; i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesServiceContext.getSeriesServiceDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (SeriesServiceData seriesServiceData : seriesServiceContext.getSeriesServiceDataContextList().get(i) - .getSeries()) { - long dateFrom1970 = seriesServiceData.getDate().getTime(); - - Log.debug("SeriersServiceData: " + seriesServiceData.getDate()); - Log.debug("SeriersServiceData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - switch (measure) { - case Duration: - data.x(dateFrom1970); - data.y(seriesServiceData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - case MaxInvocationTime: - data.x(dateFrom1970); - data.y(seriesServiceData.getMaxInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case MinInvocationTime: - data.x(dateFrom1970); - data.y(seriesServiceData.getMinInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case OperationCount: - data.x(dateFrom1970); - data.y(seriesServiceData.getOperationCount()); - arrayData.addToEnd(data); - break; - default: - data.x(dateFrom1970); - data.y(seriesServiceData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - - } - - } - - seriesColumn.add(seriesColumnData); - - } - - if (i < seriesServiceContext.getSeriesServiceDataContextList().size()) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name("Others"); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesServiceContext.getSeriesServiceDataContextList().size(); j++) { - ChartDateTimeData chartDateTimeData; - for (int k = 0; k < seriesServiceContext.getSeriesServiceDataContextList().get(j).getSeries() - .size(); k++) { - SeriesServiceData seriesServiceData = seriesServiceContext.getSeriesServiceDataContextList() - .get(j).getSeries().get(k); - if (j == i) { - switch (measure) { - case Duration: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - seriesServiceData.getDuration() / unitMeasure); - othersData.add(chartDateTimeData); - break; - case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - seriesServiceData.getMaxInvocationTime() / unitMeasure); - othersData.add(chartDateTimeData); - break; - case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - seriesServiceData.getMinInvocationTime() / unitMeasure); - othersData.add(chartDateTimeData); - break; - case OperationCount: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - seriesServiceData.getOperationCount()); - othersData.add(chartDateTimeData); - break; - default: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - seriesServiceData.getDuration() / unitMeasure); - othersData.add(chartDateTimeData); - break; - } - } else { - switch (measure) { - case Duration: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - (seriesServiceData.getMaxInvocationTime() / unitMeasure) - + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - (seriesServiceData.getMinInvocationTime() / unitMeasure) - + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - case OperationCount: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - seriesServiceData.getOperationCount() + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - default: - chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), - (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - - } - - } - - } - } - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (ChartDateTimeData chartDateTimeData : othersData) { - long dateFrom1970 = chartDateTimeData.getDate().getTime(); - - Log.debug("SeriersOthersData: " + chartDateTimeData.getDate()); - Log.debug("SeriersOthersData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - data.x(dateFrom1970); - data.y(chartDateTimeData.getValue()); - arrayData.addToEnd(data); - - } - - seriesColumn.add(seriesColumnData); - - } - - } - } - - private void createSeriesColumnSimple(SeriesServiceContext seriesServiceContext, - HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayList seriesColumn) { - Log.debug("Series Simple"); - 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) { - - 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)); - - // xAxis - options.xAxis().type("datetime"); - options.xAxis().minRange(minRange); - options.tooltip().xDateFormat("Selected Data"); - - for (int i = 0; i < seriesServiceContext.getSeriesServiceDataContextList().size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesServiceContext.getSeriesServiceDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (SeriesServiceData seriesServiceData : seriesServiceContext.getSeriesServiceDataContextList().get(i) - .getSeries()) { - switch (measure) { - case Duration: - data.push(seriesServiceData.getDuration() / unitMeasure); - break; - case MaxInvocationTime: - data.push(seriesServiceData.getMaxInvocationTime() / unitMeasure); - break; - case MinInvocationTime: - data.push(seriesServiceData.getMinInvocationTime() / unitMeasure); - break; - case OperationCount: - data.push(seriesServiceData.getOperationCount()); - break; - default: - data.push(seriesServiceData.getDuration() / unitMeasure); - break; - - } - - } - - seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - } else { - // xAxis - options.xAxis().type("datetime"); - - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.MONTHLY) == 0) { - // options.tooltip().xDateFormat("%b, %Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.YEARLY) == 0) { - // options.tooltip().xDateFormat("%Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - options.tooltip().xDateFormat("Selected Data"); - } - - } - - for (int i = 0; i < seriesServiceContext.getSeriesServiceDataContextList().size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - - seriesColumnData.name(seriesServiceContext.getSeriesServiceDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (SeriesServiceData seriesServiceData : seriesServiceContext.getSeriesServiceDataContextList().get(i) - .getSeries()) { - long dateFrom1970 = seriesServiceData.getDate().getTime(); - - Log.debug("SeriersServiceData: " + seriesServiceData.getDate()); - Log.debug("SeriersServiceData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - switch (measure) { - case Duration: - data.x(dateFrom1970); - data.y(seriesServiceData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - case MaxInvocationTime: - data.x(dateFrom1970); - data.y(seriesServiceData.getMaxInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case MinInvocationTime: - data.x(dateFrom1970); - data.y(seriesServiceData.getMinInvocationTime() / unitMeasure); - arrayData.addToEnd(data); - break; - case OperationCount: - data.x(dateFrom1970); - data.y(seriesServiceData.getOperationCount()); - arrayData.addToEnd(data); - break; - default: - data.x(dateFrom1970); - data.y(seriesServiceData.getDuration() / unitMeasure); - arrayData.addToEnd(data); - break; - - } - - } - - seriesColumn.add(seriesColumnData); - - } - } - } - - private String retrieveYAxis(ArrayString colors) { - switch (measure) { - case Duration: - return "[{" + " \"id\": \"" + ServiceChartMeasure.Duration.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - case MaxInvocationTime: - return "[{" + " \"id\": \"" + ServiceChartMeasure.MaxInvocationTime.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.MaxInvocationTime.getLabel() + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }" + "}]"; - case MinInvocationTime: - return "[{" + " \"id\": \"" + ServiceChartMeasure.MinInvocationTime.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.MinInvocationTime.getLabel() + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }" + "}]"; - case OperationCount: - return "[{" + " \"id\": \"" + ServiceChartMeasure.OperationCount.name() + "\"," + " \"labels\": { " - + " \"format\": \"{value}\"," + " \"style\": { " + " \"color\": \"" + colors.get(1) - + "\"" + " }" + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {" - + " \"fontWeight\": \"bold\"," + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" + ServiceChartMeasure.OperationCount.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }" + "}]"; - - default: - return "[{" + " \"id\": \"" + ServiceChartMeasure.Duration.name() + "\"," + " \"labels\": {" - + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {" - + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - - } - - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartTopPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartTopPanel.java index 4a3b173..d138c1f 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartTopPanel.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/service/ServiceChartTopPanel.java @@ -6,6 +6,7 @@ import java.util.Date; import org.gcube.portlets.admin.accountingmanager.client.event.ExportRequestEvent; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartDateTimeData; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartTimeMeasure; +import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ColorsPalette; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.DownloadConstants; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ServiceChartMeasure; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.TimeUnitMeasure; @@ -57,8 +58,7 @@ public class ServiceChartTopPanel extends SimpleContainer { private static final String TIME_UNIT = "Time Unit"; // private static final String MEASURE_TYPE = "Measure"; - private DateTimeFormat dtf = DateTimeFormat - .getFormat(PredefinedFormat.YEAR_MONTH_DAY); + private DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH_DAY); private EventBus eventBus; private AccountingClientStateData accountingStateData; @@ -96,8 +96,7 @@ public class ServiceChartTopPanel extends SimpleContainer { private VerticalLayoutContainer vert; - public ServiceChartTopPanel(EventBus eventBus, - AccountingClientStateData accountingStateData) { + public ServiceChartTopPanel(EventBus eventBus, AccountingClientStateData accountingStateData) { this.eventBus = eventBus; this.accountingStateData = accountingStateData; forceLayoutOnResize = true; @@ -109,8 +108,7 @@ public class ServiceChartTopPanel extends SimpleContainer { ToolBar toolBar = new ToolBar(); toolBar.setSpacing(2); // Download - final TextButton downloadButton = new TextButton( - DownloadConstants.DOWNLOAD, + final TextButton downloadButton = new TextButton(DownloadConstants.DOWNLOAD, AccountingManagerResources.INSTANCE.accountingDownload24()); // downloadButton.setScale(ButtonScale.MEDIUM); downloadButton.setIconAlign(IconAlign.RIGHT); @@ -118,16 +116,14 @@ public class ServiceChartTopPanel extends SimpleContainer { downloadButton.setMenu(createDownloadMenu()); // Measure - measureButton = new TextButton( - ServiceChartMeasure.OperationCount.getLabel(), + measureButton = new TextButton(ServiceChartMeasure.OperationCount.getLabel(), AccountingManagerResources.INSTANCE.accountingByte24()); measureButton.setIconAlign(IconAlign.RIGHT); measureButton.setArrowAlign(ButtonArrowAlign.RIGHT); measureButton.setMenu(createMeasureMenu()); // Unit - unitButton = new TextButton(TIME_UNIT, - AccountingManagerResources.INSTANCE.accountingUnitms24()); + unitButton = new TextButton(TIME_UNIT, AccountingManagerResources.INSTANCE.accountingUnitms24()); unitButton.setIconAlign(IconAlign.RIGHT); unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); unitButton.setMenu(createUnitMenu()); @@ -146,8 +142,7 @@ public class ServiceChartTopPanel extends SimpleContainer { // vert = new VerticalLayoutContainer(); vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); - vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, - new Margins(0))); + vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new Margins(0))); add(vert, new MarginData(0)); @@ -266,14 +261,11 @@ public class ServiceChartTopPanel extends SimpleContainer { // TODO durationItem = new MenuItem(ServiceChartMeasure.Duration.getLabel()); durationItem.setHeight(30); - operationCountItem = new MenuItem( - ServiceChartMeasure.OperationCount.getLabel()); + operationCountItem = new MenuItem(ServiceChartMeasure.OperationCount.getLabel()); operationCountItem.setHeight(30); - maxInvocationTimeItem = new MenuItem( - ServiceChartMeasure.MaxInvocationTime.getLabel()); + maxInvocationTimeItem = new MenuItem(ServiceChartMeasure.MaxInvocationTime.getLabel()); maxInvocationTimeItem.setHeight(30); - minInvocationTimeItem = new MenuItem( - ServiceChartMeasure.MinInvocationTime.getLabel()); + minInvocationTimeItem = new MenuItem(ServiceChartMeasure.MinInvocationTime.getLabel()); minInvocationTimeItem.setHeight(30); durationItem.addSelectionHandler(new SelectionHandler() { @@ -291,8 +283,7 @@ public class ServiceChartTopPanel extends SimpleContainer { @Override public void onSelection(SelectionEvent event) { - measureButton.setText(ServiceChartMeasure.OperationCount - .getLabel()); + measureButton.setText(ServiceChartMeasure.OperationCount.getLabel()); measure = ServiceChartMeasure.OperationCount; unitButton.setVisible(false); updateChart(); @@ -303,8 +294,7 @@ public class ServiceChartTopPanel extends SimpleContainer { @Override public void onSelection(SelectionEvent event) { - measureButton.setText(ServiceChartMeasure.MaxInvocationTime - .getLabel()); + measureButton.setText(ServiceChartMeasure.MaxInvocationTime.getLabel()); measure = ServiceChartMeasure.MaxInvocationTime; unitButton.setVisible(true); updateChart(); @@ -315,8 +305,7 @@ public class ServiceChartTopPanel extends SimpleContainer { @Override public void onSelection(SelectionEvent event) { - measureButton.setText(ServiceChartMeasure.MinInvocationTime - .getLabel()); + measureButton.setText(ServiceChartMeasure.MinInvocationTime.getLabel()); measure = ServiceChartMeasure.MinInvocationTime; unitButton.setVisible(true); updateChart(); @@ -334,17 +323,13 @@ public class ServiceChartTopPanel extends SimpleContainer { private Menu createUnitMenu() { Menu menuUnit = new Menu(); - msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, - AccountingManagerResources.INSTANCE.accountingUnitms24()); + msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, AccountingManagerResources.INSTANCE.accountingUnitms24()); msItem.setHeight(30); - sItem = new MenuItem(TimeUnitMeasure.SECONDS, - AccountingManagerResources.INSTANCE.accountingUnits24()); + sItem = new MenuItem(TimeUnitMeasure.SECONDS, AccountingManagerResources.INSTANCE.accountingUnits24()); sItem.setHeight(30); - mItem = new MenuItem(TimeUnitMeasure.MINUTES, - AccountingManagerResources.INSTANCE.accountingUnitm24()); + mItem = new MenuItem(TimeUnitMeasure.MINUTES, AccountingManagerResources.INSTANCE.accountingUnitm24()); mItem.setHeight(30); - hItem = new MenuItem(TimeUnitMeasure.HOURS, - AccountingManagerResources.INSTANCE.accountingUnith24()); + hItem = new MenuItem(TimeUnitMeasure.HOURS, AccountingManagerResources.INSTANCE.accountingUnith24()); hItem.setHeight(30); msItem.addSelectionHandler(new SelectionHandler() { @@ -353,8 +338,7 @@ public class ServiceChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getMilliseconds(); unitMeasureLabel = TimeUnitMeasure.MS; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitms24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitms24()); updateChart(); } }); @@ -365,8 +349,7 @@ public class ServiceChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getSeconds(); unitMeasureLabel = TimeUnitMeasure.S; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnits24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnits24()); updateChart(); } }); @@ -377,8 +360,7 @@ public class ServiceChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getMinutes(); unitMeasureLabel = TimeUnitMeasure.M; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitm24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitm24()); updateChart(); } }); @@ -389,8 +371,7 @@ public class ServiceChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = TimeUnitMeasure.getHours(); unitMeasureLabel = TimeUnitMeasure.H; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnith24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnith24()); updateChart(); } }); @@ -404,20 +385,17 @@ public class ServiceChartTopPanel extends SimpleContainer { } 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); } @@ -474,15 +452,13 @@ public class ServiceChartTopPanel extends SimpleContainer { }-*/; private void createChart() { - SeriesService seriesService = (SeriesService) accountingStateData - .getSeriesResponse(); + SeriesService seriesService = (SeriesService) accountingStateData.getSeriesResponse(); if (!(seriesService.getSerieServiceDefinition() instanceof SeriesServiceTop)) { Log.debug("Invalid SeriesServiceTop!"); return; } - SeriesServiceTop seriesServiceTop = (SeriesServiceTop) seriesService - .getSerieServiceDefinition(); + SeriesServiceTop seriesServiceTop = (SeriesServiceTop) seriesService.getSerieServiceDefinition(); HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); @@ -493,32 +469,30 @@ public class ServiceChartTopPanel extends SimpleContainer { options.title().text("Accounting Service Top"); /* - * options.subtitle().text("Click and drag in the plot area to zoom in"); + * options.subtitle().text("Click and drag in the plot area to zoom in" + * ); */ + ColorsPalette colorsPalette = new ColorsPalette(); ArrayString colors = options.colors(); + colors = colorsPalette.getColorsPalette(colors); + options.colors(colors); + // colors.setValue(0, "#cc0038"); // colors.setValue(1, "#32cd32"); // yAxis options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); - options.plotOptions().setFieldAsJsonObject( - "column", - "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " - + " \"enabled\": \"true\"," + options.plotOptions().setFieldAsJsonObject("column", + "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " + " \"enabled\": \"true\"," + " \"color\": \"white\", " + " \"style\": {" - + " \"textShadow\": \"0 0 3px black\"" + " }" - + " }" + " }"); + + " \"textShadow\": \"0 0 3px black\"" + " }" + " }" + " }"); ArrayList seriesColumn = new ArrayList<>(); - if (seriesServiceTop.getShowOthers()) { - createSeriesColumnShowOthers(seriesServiceTop, highchartsFactory, - colors, seriesColumn); - } else { - createSeriesColumnSimple(seriesServiceTop, highchartsFactory, - colors, seriesColumn); - } + + createSeriesColumnSimple(seriesServiceTop, highchartsFactory, colors, seriesColumn); + for (SeriesColumn serie : seriesColumn) { options.series().addToEnd(serie); } @@ -529,86 +503,69 @@ public class ServiceChartTopPanel extends SimpleContainer { return; } - private void createSeriesColumnShowOthers( - SeriesServiceTop seriesServiceTop, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { + private void createSeriesColumnShowOthers(SeriesServiceTop seriesServiceTop, + HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayList seriesColumn) { Log.debug("Series ShowOthers"); - 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) { + 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) { double minRange = ChartTimeMeasure - .calculateMinRange(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod()); double interval = ChartTimeMeasure - .calculateInterval(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod()); - Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() - .getAccountingPeriod().getStartDate()); + Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate()); - dateStart.setTime(dateStart.getTime() - + ChartTimeMeasure.timeZoneOffset() - * ChartTimeMeasure.MINUTE); + dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE); Log.debug("BuildChart DateStart: " - + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) - .format(dateStart)); + + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart)); // xAxis options.xAxis().type("datetime"); options.xAxis().minRange(minRange); options.tooltip().xDateFormat("Selected Data"); - + int i = 0; for (; i < seriesServiceTop.getSeriesServiceDataTopList().size() && i < seriesServiceTop.getTopNumber(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesServiceTop - .getSeriesServiceDataTopList().get(i).getFilterValue() - .getValue()); + seriesColumnData + .name(seriesServiceTop.getSeriesServiceDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); - seriesColumnData - .point() - .addClickHandler( + seriesColumnData.point().addClickHandler( new com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickHandler() { @Override public void onClick( com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickEvent clickEvent) { - Log.debug("Series name: " - + clickEvent.point().series().name()); - Log.debug("Point Selected: [" - + clickEvent.point().x() + ", " - + clickEvent.point().y() + "]"); + Log.debug("Series name: " + clickEvent.point().series().name()); + Log.debug("Point Selected: [" + clickEvent.point().x() + ", " + clickEvent.point().y() + + "]"); } }); - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - for (SeriesServiceData seriesServiceData : seriesServiceTop - .getSeriesServiceDataTopList().get(i).getSeries()) { + for (SeriesServiceData seriesServiceData : seriesServiceTop.getSeriesServiceDataTopList().get(i) + .getSeries()) { switch (measure) { case Duration: data.push(seriesServiceData.getDuration() / unitMeasure); break; case MaxInvocationTime: - data.push(seriesServiceData.getMaxInvocationTime() - / unitMeasure); + data.push(seriesServiceData.getMaxInvocationTime() / unitMeasure); break; case MinInvocationTime: - data.push(seriesServiceData.getMinInvocationTime() - / unitMeasure); + data.push(seriesServiceData.getMinInvocationTime() / unitMeasure); break; case OperationCount: data.push(seriesServiceData.getOperationCount()); @@ -621,97 +578,74 @@ public class ServiceChartTopPanel extends SimpleContainer { } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } if (i < seriesServiceTop.getSeriesServiceDataTopList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); seriesColumnData.name("Others"); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); - seriesColumnData - .point() - .addClickHandler( + seriesColumnData.point().addClickHandler( new com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickHandler() { @Override public void onClick( com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickEvent clickEvent) { - Log.debug("Series name: " - + clickEvent.point().series().name()); - Log.debug("Point Selected: [" - + clickEvent.point().x() + ", " - + clickEvent.point().y() + "]"); + Log.debug("Series name: " + clickEvent.point().series().name()); + Log.debug("Point Selected: [" + clickEvent.point().x() + ", " + clickEvent.point().y() + + "]"); } }); - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesServiceTop - .getSeriesServiceDataTopList().size(); j++) { + for (int j = i; j < seriesServiceTop.getSeriesServiceDataTopList().size(); j++) { Long value; - for (int k = 0; k < seriesServiceTop - .getSeriesServiceDataTopList().get(j).getSeries() - .size(); k++) { - SeriesServiceData seriesServiceData = seriesServiceTop - .getSeriesServiceDataTopList().get(j) + for (int k = 0; k < seriesServiceTop.getSeriesServiceDataTopList().get(j).getSeries().size(); k++) { + SeriesServiceData seriesServiceData = seriesServiceTop.getSeriesServiceDataTopList().get(j) .getSeries().get(k); if (j == i) { switch (measure) { case Duration: - othersData.add(seriesServiceData.getDuration() - / unitMeasure); + othersData.add(seriesServiceData.getDuration() / unitMeasure); break; case MaxInvocationTime: - othersData.add(seriesServiceData - .getMaxInvocationTime() / unitMeasure); + othersData.add(seriesServiceData.getMaxInvocationTime() / unitMeasure); break; case MinInvocationTime: - othersData.add(seriesServiceData - .getMinInvocationTime() / unitMeasure); + othersData.add(seriesServiceData.getMinInvocationTime() / unitMeasure); break; case OperationCount: - othersData.add(seriesServiceData - .getOperationCount()); + othersData.add(seriesServiceData.getOperationCount()); break; default: - othersData.add(seriesServiceData.getDuration() - / unitMeasure); + othersData.add(seriesServiceData.getDuration() / unitMeasure); break; } } else { switch (measure) { case Duration: - value = (seriesServiceData.getDuration() / unitMeasure) - + othersData.get(k); + value = (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; case MaxInvocationTime: - value = (seriesServiceData - .getMaxInvocationTime() / unitMeasure) - + othersData.get(k); + value = (seriesServiceData.getMaxInvocationTime() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; case MinInvocationTime: - value = (seriesServiceData - .getMinInvocationTime() / unitMeasure) - + othersData.get(k); + value = (seriesServiceData.getMinInvocationTime() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; case OperationCount: - value = seriesServiceData.getOperationCount() - + othersData.get(k); + value = seriesServiceData.getOperationCount() + othersData.get(k); othersData.set(k, value); break; default: - value = (seriesServiceData.getDuration() / unitMeasure) - + othersData.get(k); + value = (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k); othersData.set(k, value); break; @@ -728,8 +662,7 @@ public class ServiceChartTopPanel extends SimpleContainer { data.push(value); } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } @@ -737,17 +670,16 @@ public class ServiceChartTopPanel extends SimpleContainer { // xAxis options.xAxis().type("datetime"); - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() + .compareTo(AccountingPeriodMode.MONTHLY) == 0) { + // options.tooltip().xDateFormat("%b, %Y"); options.tooltip().xDateFormat("Selected Data"); - + } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); - options.tooltip().xDateFormat("Selected Data"); + // options.tooltip().xDateFormat("%Y"); + options.tooltip().xDateFormat("Selected Data"); } else { options.tooltip().xDateFormat("Selected Data"); @@ -758,40 +690,32 @@ public class ServiceChartTopPanel extends SimpleContainer { int i = 0; for (; i < seriesServiceTop.getSeriesServiceDataTopList().size() && i < seriesServiceTop.getTopNumber(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesServiceTop - .getSeriesServiceDataTopList().get(i).getFilterValue() - .getValue()); + seriesColumnData + .name(seriesServiceTop.getSeriesServiceDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); - seriesColumnData - .point() - .addClickHandler( + seriesColumnData.point().addClickHandler( new com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickHandler() { @Override public void onClick( com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickEvent clickEvent) { - Log.debug("Series name: " - + clickEvent.point().series().name()); - Log.debug("Point Selected: [" - + clickEvent.point().x() + ", " - + clickEvent.point().y() + "]"); + Log.debug("Series name: " + clickEvent.point().series().name()); + Log.debug("Point Selected: [" + clickEvent.point().x() + ", " + clickEvent.point().y() + + "]"); } }); - Array arrayData = seriesColumnData.dataAsArrayObject(); - for (SeriesServiceData seriesServiceData : seriesServiceTop - .getSeriesServiceDataTopList().get(i).getSeries()) { + for (SeriesServiceData seriesServiceData : seriesServiceTop.getSeriesServiceDataTopList().get(i) + .getSeries()) { long dateFrom1970 = seriesServiceData.getDate().getTime(); - Log.debug("SeriersServiceData: " - + seriesServiceData.getDate()); + Log.debug("SeriersServiceData: " + seriesServiceData.getDate()); Log.debug("SeriersServiceData: " + dateFrom1970); Data data = highchartsFactory.createSeriesColumnData(); @@ -804,14 +728,12 @@ public class ServiceChartTopPanel extends SimpleContainer { break; case MaxInvocationTime: data.x(dateFrom1970); - data.y(seriesServiceData.getMaxInvocationTime() - / unitMeasure); + data.y(seriesServiceData.getMaxInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case MinInvocationTime: data.x(dateFrom1970); - data.y(seriesServiceData.getMinInvocationTime() - / unitMeasure); + data.y(seriesServiceData.getMinInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case OperationCount: @@ -834,117 +756,86 @@ public class ServiceChartTopPanel extends SimpleContainer { } if (i < seriesServiceTop.getSeriesServiceDataTopList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); seriesColumnData.name("Others"); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); - - seriesColumnData - .point() - .addClickHandler( + + seriesColumnData.point().addClickHandler( new com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickHandler() { @Override public void onClick( com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickEvent clickEvent) { - Log.debug("Series name: " - + clickEvent.point().series().name()); - Log.debug("Point Selected: [" - + clickEvent.point().x() + ", " - + clickEvent.point().y() + "]"); + Log.debug("Series name: " + clickEvent.point().series().name()); + Log.debug("Point Selected: [" + clickEvent.point().x() + ", " + clickEvent.point().y() + + "]"); } }); - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesServiceTop - .getSeriesServiceDataTopList().size(); j++) { + for (int j = i; j < seriesServiceTop.getSeriesServiceDataTopList().size(); j++) { ChartDateTimeData chartDateTimeData; - for (int k = 0; k < seriesServiceTop - .getSeriesServiceDataTopList().get(j).getSeries() - .size(); k++) { - SeriesServiceData seriesServiceData = seriesServiceTop - .getSeriesServiceDataTopList().get(j) + for (int k = 0; k < seriesServiceTop.getSeriesServiceDataTopList().get(j).getSeries().size(); k++) { + SeriesServiceData seriesServiceData = seriesServiceTop.getSeriesServiceDataTopList().get(j) .getSeries().get(k); if (j == i) { switch (measure) { case Duration: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - seriesServiceData.getDuration() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + seriesServiceData.getDuration() / unitMeasure); othersData.add(chartDateTimeData); break; case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - seriesServiceData - .getMaxInvocationTime() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + seriesServiceData.getMaxInvocationTime() / unitMeasure); othersData.add(chartDateTimeData); break; case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - seriesServiceData - .getMinInvocationTime() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + seriesServiceData.getMinInvocationTime() / unitMeasure); othersData.add(chartDateTimeData); break; case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), seriesServiceData.getOperationCount()); othersData.add(chartDateTimeData); break; default: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - seriesServiceData.getDuration() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + seriesServiceData.getDuration() / unitMeasure); othersData.add(chartDateTimeData); break; } } else { switch (measure) { case Duration: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - (seriesServiceData.getDuration() / unitMeasure) - + othersData.get(k).getValue()); + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; case MaxInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - (seriesServiceData - .getMaxInvocationTime() / unitMeasure) + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + (seriesServiceData.getMaxInvocationTime() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; case MinInvocationTime: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - (seriesServiceData - .getMinInvocationTime() / unitMeasure) + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + (seriesServiceData.getMinInvocationTime() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - seriesServiceData.getOperationCount() - + othersData.get(k).getValue()); + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + seriesServiceData.getOperationCount() + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; default: - chartDateTimeData = new ChartDateTimeData( - seriesServiceData.getDate(), - (seriesServiceData.getDuration() / unitMeasure) - + othersData.get(k).getValue()); + chartDateTimeData = new ChartDateTimeData(seriesServiceData.getDate(), + (seriesServiceData.getDuration() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; @@ -960,8 +851,7 @@ public class ServiceChartTopPanel extends SimpleContainer { for (ChartDateTimeData chartDateTimeData : othersData) { long dateFrom1970 = chartDateTimeData.getDate().getTime(); - Log.debug("SeriersOthersData: " - + chartDateTimeData.getDate()); + Log.debug("SeriersOthersData: " + chartDateTimeData.getDate()); Log.debug("SeriersOthersData: " + dateFrom1970); Data data = highchartsFactory.createSeriesColumnData(); @@ -979,86 +869,67 @@ public class ServiceChartTopPanel extends SimpleContainer { } } - private void createSeriesColumnSimple(SeriesServiceTop seriesServiceTop, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { + private void createSeriesColumnSimple(SeriesServiceTop seriesServiceTop, HighchartsOptionFactory highchartsFactory, + ArrayString colors, ArrayList seriesColumn) { Log.debug("Series Simple"); - 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) { + 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) { double minRange = ChartTimeMeasure - .calculateMinRange(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod()); double interval = ChartTimeMeasure - .calculateInterval(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod()); - Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() - .getAccountingPeriod().getStartDate()); + Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate()); - dateStart.setTime(dateStart.getTime() - + ChartTimeMeasure.timeZoneOffset() - * ChartTimeMeasure.MINUTE); + dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE); Log.debug("BuildChart DateStart: " - + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) - .format(dateStart)); + + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart)); // xAxis options.xAxis().type("datetime"); options.xAxis().minRange(minRange); options.tooltip().xDateFormat("Selected Data"); - for (int i = 0; i < seriesServiceTop.getSeriesServiceDataTopList() - .size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + for (int i = 0; i < seriesServiceTop.getSeriesServiceDataTopList().size(); i++) { + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesServiceTop - .getSeriesServiceDataTopList().get(i).getFilterValue() - .getValue()); + seriesColumnData + .name(seriesServiceTop.getSeriesServiceDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); - seriesColumnData - .point() - .addClickHandler( + seriesColumnData.point().addClickHandler( new com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickHandler() { @Override public void onClick( com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickEvent clickEvent) { - Log.debug("Series name: " - + clickEvent.point().series().name()); - Log.debug("Point Selected: [" - + clickEvent.point().x() + ", " - + clickEvent.point().y() + "]"); + Log.debug("Series name: " + clickEvent.point().series().name()); + Log.debug("Point Selected: [" + clickEvent.point().x() + ", " + clickEvent.point().y() + + "]"); } }); - - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - for (SeriesServiceData seriesServiceData : seriesServiceTop - .getSeriesServiceDataTopList().get(i).getSeries()) { + for (SeriesServiceData seriesServiceData : seriesServiceTop.getSeriesServiceDataTopList().get(i) + .getSeries()) { switch (measure) { case Duration: data.push(seriesServiceData.getDuration() / unitMeasure); break; case MaxInvocationTime: - data.push(seriesServiceData.getMaxInvocationTime() - / unitMeasure); + data.push(seriesServiceData.getMaxInvocationTime() / unitMeasure); break; case MinInvocationTime: - data.push(seriesServiceData.getMinInvocationTime() - / unitMeasure); + data.push(seriesServiceData.getMinInvocationTime() / unitMeasure); break; case OperationCount: data.push(seriesServiceData.getOperationCount()); @@ -1071,8 +942,7 @@ public class ServiceChartTopPanel extends SimpleContainer { } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } @@ -1080,16 +950,15 @@ public class ServiceChartTopPanel extends SimpleContainer { // xAxis options.xAxis().type("datetime"); - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() + .compareTo(AccountingPeriodMode.MONTHLY) == 0) { + // options.tooltip().xDateFormat("%b, %Y"); options.tooltip().xDateFormat("Selected Data"); } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); + // options.tooltip().xDateFormat("%Y"); options.tooltip().xDateFormat("Selected Data"); } else { @@ -1098,42 +967,33 @@ public class ServiceChartTopPanel extends SimpleContainer { } - for (int i = 0; i < seriesServiceTop.getSeriesServiceDataTopList() - .size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + for (int i = 0; i < seriesServiceTop.getSeriesServiceDataTopList().size(); i++) { + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesServiceTop - .getSeriesServiceDataTopList().get(i).getFilterValue() - .getValue()); + seriesColumnData + .name(seriesServiceTop.getSeriesServiceDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); - seriesColumnData - .point() - .addClickHandler( + seriesColumnData.point().addClickHandler( new com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickHandler() { @Override public void onClick( com.github.highcharts4gwt.model.highcharts.option.api.seriescolumn.point.ClickEvent clickEvent) { - Log.debug("Series name: " - + clickEvent.point().series().name()); - Log.debug("Point Selected: [" - + clickEvent.point().x() + ", " - + clickEvent.point().y() + "]"); + Log.debug("Series name: " + clickEvent.point().series().name()); + Log.debug("Point Selected: [" + clickEvent.point().x() + ", " + clickEvent.point().y() + + "]"); } }); - Array arrayData = seriesColumnData.dataAsArrayObject(); - for (SeriesServiceData seriesServiceData : seriesServiceTop - .getSeriesServiceDataTopList().get(i).getSeries()) { + for (SeriesServiceData seriesServiceData : seriesServiceTop.getSeriesServiceDataTopList().get(i) + .getSeries()) { long dateFrom1970 = seriesServiceData.getDate().getTime(); - Log.debug("SeriersServiceData: " - + seriesServiceData.getDate()); + Log.debug("SeriersServiceData: " + seriesServiceData.getDate()); Log.debug("SeriersServiceData: " + dateFrom1970); Data data = highchartsFactory.createSeriesColumnData(); @@ -1146,14 +1006,12 @@ public class ServiceChartTopPanel extends SimpleContainer { break; case MaxInvocationTime: data.x(dateFrom1970); - data.y(seriesServiceData.getMaxInvocationTime() - / unitMeasure); + data.y(seriesServiceData.getMaxInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case MinInvocationTime: data.x(dateFrom1970); - data.y(seriesServiceData.getMinInvocationTime() - / unitMeasure); + data.y(seriesServiceData.getMinInvocationTime() / unitMeasure); arrayData.addToEnd(data); break; case OperationCount: @@ -1180,69 +1038,45 @@ public class ServiceChartTopPanel extends SimpleContainer { private String retrieveYAxis(ArrayString colors) { switch (measure) { case Duration: - return "[{" + " \"id\": \"" + ServiceChartMeasure.Duration.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.Duration.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + ServiceChartMeasure.Duration.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + ServiceChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }" + "}]"; case MaxInvocationTime: - return "[{" + " \"id\": \"" - + ServiceChartMeasure.MaxInvocationTime.name() + "\"," - + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.MaxInvocationTime.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + ServiceChartMeasure.MaxInvocationTime.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + ServiceChartMeasure.MaxInvocationTime.getLabel() + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }" + "}]"; case MinInvocationTime: - return "[{" + " \"id\": \"" - + ServiceChartMeasure.MinInvocationTime.name() + "\"," - + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.MinInvocationTime.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + ServiceChartMeasure.MinInvocationTime.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + ServiceChartMeasure.MinInvocationTime.getLabel() + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }" + "}]"; case OperationCount: - return "[{" + " \"id\": \"" - + ServiceChartMeasure.OperationCount.name() + "\"," - + " \"labels\": { " + " \"format\": \"{value}\"," - + " \"style\": { " + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }," - + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.OperationCount.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + ServiceChartMeasure.OperationCount.name() + "\"," + " \"labels\": { " + + " \"format\": \"{value}\"," + " \"style\": { " + " \"color\": \"#434348\"" + " }" + + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {" + + " \"fontWeight\": \"bold\"," + " \"color\": \"gray\"" + " } " + " }," + + " \"title\": { " + " \"text\": \"" + ServiceChartMeasure.OperationCount.getLabel() + "\"," + + " \"style\": {" + " \"color\": \"#434348\"" + " }" + " }" + "}]"; default: - return "[{" + " \"id\": \"" + ServiceChartMeasure.Duration.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + ServiceChartMeasure.Duration.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + ServiceChartMeasure.Duration.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + ServiceChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }" + "}]"; } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/storage/StorageChartContextPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/storage/StorageChartContextPanel.java deleted file mode 100644 index 4377896..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/storage/StorageChartContextPanel.java +++ /dev/null @@ -1,1007 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage; - -import java.util.ArrayList; -import java.util.Date; - -import org.gcube.portlets.admin.accountingmanager.client.event.ExportRequestEvent; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ByteUnitMeasure; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartDateTimeData; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartTimeMeasure; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.DownloadConstants; -import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.StorageChartMeasure; -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.SeriesStorage; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageData; -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; -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.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; -import com.google.gwt.i18n.client.DateTimeFormat; -import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; -import com.sencha.gxt.cell.core.client.ButtonCell.ButtonArrowAlign; -import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; -import com.sencha.gxt.core.client.util.Margins; -import com.sencha.gxt.widget.core.client.button.TextButton; -import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; -import com.sencha.gxt.widget.core.client.container.MarginData; -import com.sencha.gxt.widget.core.client.container.SimpleContainer; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; -import com.sencha.gxt.widget.core.client.menu.Item; -import com.sencha.gxt.widget.core.client.menu.Menu; -import com.sencha.gxt.widget.core.client.menu.MenuItem; -import com.sencha.gxt.widget.core.client.toolbar.ToolBar; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class StorageChartContextPanel extends SimpleContainer { - private static final int MAX_NUMBER_OF_CONTEXT = 20; - - private static final String DATA_VOLUME_UNIT = "Data Volume Unit"; - // private static final String MEASURE_TYPE = "Measure"; - - private DateTimeFormat dtf = DateTimeFormat - .getFormat(PredefinedFormat.YEAR_MONTH_DAY); - - private EventBus eventBus; - private AccountingClientStateData accountingStateData; - private HighchartsLayoutPanel highchartsLayoutPanel; - - // Download Menu - private MenuItem downloadCSVItem; - private MenuItem downloadXMLItem; - private MenuItem downloadJSONItem; - private MenuItem downloadPNGItem; - private MenuItem downloadJPGItem; - private MenuItem downloadPDFItem; - private MenuItem downloadSVGItem; - - // Measure Menu - private MenuItem dataVolumeItem; - private MenuItem operationCountItem; - - // Unit Menu - private MenuItem kBItem; - private MenuItem MBItem; - private MenuItem GBItem; - private MenuItem TBItem; - - private long unitMeasure = ByteUnitMeasure.getMegaByteDimForStorage(); - private String unitMeasureLabel = ByteUnitMeasure.MB; - private TextButton unitButton; - - private ChartOptions options; - - private StorageChartMeasure measure = StorageChartMeasure.DataVolume; - private TextButton measureButton; - - private VerticalLayoutContainer vert; - - public StorageChartContextPanel(EventBus eventBus, - AccountingClientStateData accountingStateData) { - this.eventBus = eventBus; - this.accountingStateData = accountingStateData; - forceLayoutOnResize = true; - create(); - - } - - private void create() { - ToolBar toolBar = new ToolBar(); - toolBar.setSpacing(2); - // Download - final TextButton downloadButton = new TextButton( - DownloadConstants.DOWNLOAD, - AccountingManagerResources.INSTANCE.accountingDownload24()); - // downloadButton.setScale(ButtonScale.MEDIUM); - downloadButton.setIconAlign(IconAlign.RIGHT); - downloadButton.setArrowAlign(ButtonArrowAlign.RIGHT); - downloadButton.setMenu(createDownloadMenu()); - - // Measure - measureButton = new TextButton( - StorageChartMeasure.DataVolume.getLabel(), - AccountingManagerResources.INSTANCE.accountingByte24()); - measureButton.setIconAlign(IconAlign.RIGHT); - measureButton.setArrowAlign(ButtonArrowAlign.RIGHT); - measureButton.setMenu(createMeasureMenu()); - - // Unit - unitButton = new TextButton(DATA_VOLUME_UNIT, - AccountingManagerResources.INSTANCE.accountingUnitMB24()); - unitButton.setIconAlign(IconAlign.RIGHT); - unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); - unitButton.setMenu(createUnitMenu()); - - toolBar.add(downloadButton, new BoxLayoutData(new Margins(0))); - toolBar.add(measureButton, new BoxLayoutData(new Margins(0))); - toolBar.add(unitButton, new BoxLayoutData(new Margins(0))); - - // - createChart(); - - highchartsLayoutPanel = new HighchartsLayoutPanel(); - highchartsLayoutPanel.renderChart(options); - - // - vert = new VerticalLayoutContainer(); - vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); - vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, - new Margins(0))); - - add(vert, new MarginData(0)); - - } - - private void updateChart() { - createChart(); - highchartsLayoutPanel.renderChart(options); - forceLayout(); - /* - * vert.remove(highchartsLayoutPanel); // createChart(); - * - * highchartsLayoutPanel = new HighchartsLayoutPanel(); - * highchartsLayoutPanel.renderChart(options); - * - * vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new - * Margins(0))); - * - * forceLayout(); - */ - } - - private Menu createDownloadMenu() { - Menu menuDownload = new Menu(); - downloadCSVItem = new MenuItem(DownloadConstants.DOWNLOAD_CSV, - AccountingManagerResources.INSTANCE.accountingFileCSV24()); - downloadCSVItem.setHeight(30); - downloadXMLItem = new MenuItem(DownloadConstants.DOWNLOAD_XML, - AccountingManagerResources.INSTANCE.accountingFileXML24()); - downloadXMLItem.setHeight(30); - downloadJSONItem = new MenuItem(DownloadConstants.DOWNLOAD_JSON, - AccountingManagerResources.INSTANCE.accountingFileJSON24()); - downloadJSONItem.setHeight(30); - downloadPNGItem = new MenuItem(DownloadConstants.DOWNLOAD_PNG, - AccountingManagerResources.INSTANCE.accountingFilePNG24()); - downloadPNGItem.setHeight(30); - downloadJPGItem = new MenuItem(DownloadConstants.DOWNLOAD_JPG, - AccountingManagerResources.INSTANCE.accountingFileJPG24()); - downloadJPGItem.setHeight(30); - downloadPDFItem = new MenuItem(DownloadConstants.DOWNLOAD_PDF, - AccountingManagerResources.INSTANCE.accountingFilePDF24()); - downloadPDFItem.setHeight(30); - downloadSVGItem = new MenuItem(DownloadConstants.DOWNLOAD_SVG, - AccountingManagerResources.INSTANCE.accountingFileSVG24()); - downloadSVGItem.setHeight(30); - - downloadCSVItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadCSV(); - - } - - }); - - downloadXMLItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadXML(); - - } - - }); - - downloadJSONItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - onDownloadJSON(); - - } - - }); - - downloadPNGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadPNG(id); - - } - }); - - downloadJPGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadJPG(id); - } - }); - - downloadPDFItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadPDF(id); - } - }); - - downloadSVGItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - String id = highchartsLayoutPanel.getElement().getId(); - onDownloadSVG(id); - } - }); - - menuDownload.add(downloadCSVItem); - menuDownload.add(downloadXMLItem); - menuDownload.add(downloadJSONItem); - menuDownload.add(downloadPNGItem); - menuDownload.add(downloadJPGItem); - menuDownload.add(downloadPDFItem); - menuDownload.add(downloadSVGItem); - return menuDownload; - - } - - private Menu createMeasureMenu() { - Menu menuMeasure = new Menu(); - dataVolumeItem = new MenuItem(StorageChartMeasure.DataVolume.getLabel()); - dataVolumeItem.setHeight(30); - operationCountItem = new MenuItem( - StorageChartMeasure.OperationCount.getLabel()); - operationCountItem.setHeight(30); - - dataVolumeItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(StorageChartMeasure.DataVolume.getLabel()); - measure = StorageChartMeasure.DataVolume; - unitButton.setVisible(true); - updateChart(); - } - }); - - operationCountItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - measureButton.setText(StorageChartMeasure.OperationCount - .getLabel()); - measure = StorageChartMeasure.OperationCount; - unitButton.setVisible(false); - updateChart(); - } - }); - - menuMeasure.add(dataVolumeItem); - menuMeasure.add(operationCountItem); - - return menuMeasure; - - } - - private Menu createUnitMenu() { - Menu menuUnit = new Menu(); - kBItem = new MenuItem(ByteUnitMeasure.KILOBYTE, - AccountingManagerResources.INSTANCE.accountingUnitkB24()); - kBItem.setHeight(30); - MBItem = new MenuItem(ByteUnitMeasure.MEGABYTE, - AccountingManagerResources.INSTANCE.accountingUnitMB24()); - MBItem.setHeight(30); - GBItem = new MenuItem(ByteUnitMeasure.GIGABYTE, - AccountingManagerResources.INSTANCE.accountingUnitGB24()); - GBItem.setHeight(30); - TBItem = new MenuItem(ByteUnitMeasure.TERABYTE, - AccountingManagerResources.INSTANCE.accountingUnitTB24()); - TBItem.setHeight(30); - - kBItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = ByteUnitMeasure.getKiloByteDimForStorage(); - unitMeasureLabel = ByteUnitMeasure.kB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitkB24()); - updateChart(); - } - }); - - MBItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = ByteUnitMeasure.getMegaByteDimForStorage(); - unitMeasureLabel = ByteUnitMeasure.MB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitMB24()); - updateChart(); - } - }); - - GBItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = ByteUnitMeasure.getGigaByteDimForStorage(); - unitMeasureLabel = ByteUnitMeasure.GB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitGB24()); - updateChart(); - } - }); - - TBItem.addSelectionHandler(new SelectionHandler() { - - @Override - public void onSelection(SelectionEvent event) { - unitMeasure = ByteUnitMeasure.getTeraByteDimForStorage(); - unitMeasureLabel = ByteUnitMeasure.TB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitTB24()); - updateChart(); - } - }); - - menuUnit.add(kBItem); - menuUnit.add(MBItem); - menuUnit.add(GBItem); - menuUnit.add(TBItem); - return menuUnit; - - } - - private void onDownloadCSV() { - ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV, - accountingStateData.getAccountingType()); - eventBus.fireEvent(event); - } - - private void onDownloadXML() { - ExportRequestEvent event = new ExportRequestEvent(ExportType.XML, - accountingStateData.getAccountingType()); - eventBus.fireEvent(event); - } - - private void onDownloadJSON() { - 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) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage.StorageChartContextPanel::options); - console.log(chart); - chart.exportChart(); - - }-*/; - - public static native void onDownloadJPG(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage.StorageChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'image/jpeg' - }); - - }-*/; - - public static native void onDownloadPDF(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage.StorageChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'application/pdf' - }); - - }-*/; - - public static native void onDownloadSVG(String id) /*-{ - console.log(id); - var chart = $wnd - .jQuery('#' + id) - .highcharts( - this.@org.gcube.portlets.admin.accountingmanager.client.maindata.charts.storage.StorageChartContextPanel::options); - console.log(chart); - chart.exportChart({ - type : 'image/svg+xml' - }); - - }-*/; - - private void createChart() { - SeriesStorage seriesStorage = (SeriesStorage) accountingStateData - .getSeriesResponse(); - - if (!(seriesStorage.getSeriesStorageDefinition() instanceof SeriesStorageContext)) { - Log.debug("Invalid SeriesStorageContext!"); - return; - } - SeriesStorageContext seriesStorageContext = (SeriesStorageContext) seriesStorage - .getSeriesStorageDefinition(); - - HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); - - options = highchartsFactory.createChartOptions(); - options.chart().zoomType("xy"); - options.exporting().buttons().contextButton().enabled(false); - options.exporting().filename("AccountingStorageContext"); - options.title().text("Accounting Storage Context"); - - /* - * options.subtitle().text("Click and drag in the plot area to zoom in"); - */ - - ArrayString colors = options.colors(); - // colors.setValue(0, "#cc0038"); - // colors.setValue(1, "#32cd32"); - - // yAxis - options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); - - options.plotOptions().setFieldAsJsonObject( - "column", - "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " - + " \"enabled\": \"true\"," - + " \"color\": \"white\", " + " \"style\": {" - + " \"textShadow\": \"0 0 3px black\"" + " }" - + " }" + " }"); - - ArrayList seriesColumn = new ArrayList<>(); - /*if (seriesStorageContext.getShowOthers()) { - createSeriesColumnShowOthers(seriesStorageContext, highchartsFactory, - colors, seriesColumn); - } else {*/ - createSeriesColumnSimple(seriesStorageContext, highchartsFactory, - colors, seriesColumn); - /*}*/ - - for (SeriesColumn serie : seriesColumn) { - options.series().addToEnd(serie); - } - - options.chart().showAxes(true); - - options.legend().enabled(true); - return; - } - - private void createSeriesColumnShowOthers( - SeriesStorageContext seriesStorageContext, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { - Log.debug("Series ShowOthers"); - 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) { - - 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)); - - // xAxis - options.xAxis().type("datetime"); - options.xAxis().minRange(minRange); - options.tooltip().xDateFormat("Selected Data"); - - int i = 0; - for (; i < seriesStorageContext.getSeriesStorageDataContextList().size() - && i < MAX_NUMBER_OF_CONTEXT; i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - - seriesColumnData.name(seriesStorageContext - .getSeriesStorageDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (SeriesStorageData seriesStorageData : seriesStorageContext - .getSeriesStorageDataContextList().get(i).getSeries()) { - switch (measure) { - case DataVolume: - data.push(seriesStorageData.getDataVolume() - / unitMeasure); - break; - case OperationCount: - data.push(seriesStorageData.getOperationCount()); - break; - default: - data.push(seriesStorageData.getDataVolume()); - break; - - } - - } - - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - - if (i < seriesStorageContext.getSeriesStorageDataContextList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - - seriesColumnData.name("Others"); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesStorageContext - .getSeriesStorageDataContextList().size(); j++) { - Long value; - for (int k = 0; k < seriesStorageContext - .getSeriesStorageDataContextList().get(j).getSeries() - .size(); k++) { - SeriesStorageData seriesStorageData = seriesStorageContext - .getSeriesStorageDataContextList().get(j) - .getSeries().get(k); - if (j == i) { - switch (measure) { - case DataVolume: - othersData.add(seriesStorageData - .getDataVolume() / unitMeasure); - break; - case OperationCount: - othersData.add(seriesStorageData - .getOperationCount()); - break; - default: - othersData.add(seriesStorageData - .getDataVolume() / unitMeasure); - break; - - } - } else { - switch (measure) { - case DataVolume: - - value = seriesStorageData.getDataVolume() - / unitMeasure + othersData.get(k); - othersData.set(k, value); - break; - case OperationCount: - value = seriesStorageData.getOperationCount() - + othersData.get(k); - othersData.set(k, value); - break; - default: - value = seriesStorageData.getDataVolume() - / unitMeasure + othersData.get(k); - othersData.set(k, value); - break; - - } - } - - } - } - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (Long value : othersData) { - data.push(value); - } - - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); - seriesColumn.add(seriesColumnData); - } - - } else { - // xAxis - options.xAxis().type("datetime"); - - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - options.tooltip().xDateFormat("Selected Data"); - } - - } - - int i = 0; - for (; i < seriesStorageContext.getSeriesStorageDataContextList().size() - && i < MAX_NUMBER_OF_CONTEXT; i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - - seriesColumnData.name(seriesStorageContext - .getSeriesStorageDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (SeriesStorageData seriesStorageData : seriesStorageContext - .getSeriesStorageDataContextList().get(i).getSeries()) { - long dateFrom1970 = seriesStorageData.getDate().getTime(); - - Log.debug("SeriersStorageData: " - + seriesStorageData.getDate()); - Log.debug("SeriersStorageData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - switch (measure) { - case DataVolume: - data.x(dateFrom1970); - data.y(seriesStorageData.getDataVolume() / unitMeasure); - arrayData.addToEnd(data); - break; - case OperationCount: - data.x(dateFrom1970); - data.y(seriesStorageData.getOperationCount()); - arrayData.addToEnd(data); - break; - default: - data.x(dateFrom1970); - data.y(seriesStorageData.getDataVolume() / unitMeasure); - arrayData.addToEnd(data); - break; - - } - - } - - seriesColumn.add(seriesColumnData); - - } - - if (i < seriesStorageContext.getSeriesStorageDataContextList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - - seriesColumnData.name("Others"); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesStorageContext - .getSeriesStorageDataContextList().size(); j++) { - ChartDateTimeData chartDateTimeData; - for (int k = 0; k < seriesStorageContext - .getSeriesStorageDataContextList().get(j).getSeries() - .size(); k++) { - SeriesStorageData seriesStorageData = seriesStorageContext - .getSeriesStorageDataContextList().get(j) - .getSeries().get(k); - if (j == i) { - switch (measure) { - case DataVolume: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - seriesStorageData.getDataVolume() - / unitMeasure); - othersData.add(chartDateTimeData); - break; - case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - seriesStorageData.getOperationCount()); - othersData.add(chartDateTimeData); - break; - default: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - seriesStorageData.getDataVolume() - / unitMeasure); - othersData.add(chartDateTimeData); - break; - } - } else { - switch (measure) { - case DataVolume: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - (seriesStorageData.getDataVolume() / unitMeasure) - + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - seriesStorageData.getOperationCount() - + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - default: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - (seriesStorageData.getDataVolume() / unitMeasure) - + othersData.get(k).getValue()); - othersData.set(k, chartDateTimeData); - break; - - } - } - - } - } - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (ChartDateTimeData chartDateTimeData : othersData) { - long dateFrom1970 = chartDateTimeData.getDate().getTime(); - - Log.debug("SeriersOthersData: " - + chartDateTimeData.getDate()); - Log.debug("SeriersOthersData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - data.x(dateFrom1970); - data.y(chartDateTimeData.getValue()); - arrayData.addToEnd(data); - - } - - seriesColumn.add(seriesColumnData); - } - - } - - } - - private void createSeriesColumnSimple(SeriesStorageContext seriesStorageContext, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { - - Log.debug("Series Simple"); - 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) { - - 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)); - - // xAxis - options.xAxis().type("datetime"); - options.xAxis().minRange(minRange); - options.tooltip().xDateFormat("Selected Data"); - - for (int i = 0; i < seriesStorageContext.getSeriesStorageDataContextList() - .size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - - seriesColumnData.name(seriesStorageContext - .getSeriesStorageDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - - for (SeriesStorageData seriesStorageData : seriesStorageContext - .getSeriesStorageDataContextList().get(i).getSeries()) { - switch (measure) { - case DataVolume: - data.push(seriesStorageData.getDataVolume() - / unitMeasure); - break; - case OperationCount: - data.push(seriesStorageData.getOperationCount()); - break; - default: - data.push(seriesStorageData.getDataVolume()); - break; - - } - - } - - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); - seriesColumn.add(seriesColumnData); - - } - - } else { - // xAxis - options.xAxis().type("datetime"); - - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() - .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); - options.tooltip().xDateFormat("Selected Data"); - - } else { - options.tooltip().xDateFormat("Selected Data"); - } - - } - - for (int i = 0; i < seriesStorageContext.getSeriesStorageDataContextList() - .size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - - seriesColumnData.name(seriesStorageContext - .getSeriesStorageDataContextList().get(i).getContext()); - seriesColumnData.color(colors.get(i)); - seriesColumnData.type("column"); - - Array arrayData = seriesColumnData.dataAsArrayObject(); - - for (SeriesStorageData seriesStorageData : seriesStorageContext - .getSeriesStorageDataContextList().get(i).getSeries()) { - long dateFrom1970 = seriesStorageData.getDate().getTime(); - - Log.debug("SeriersStorageData: " - + seriesStorageData.getDate()); - Log.debug("SeriersStorageData: " + dateFrom1970); - - Data data = highchartsFactory.createSeriesColumnData(); - - switch (measure) { - case DataVolume: - data.x(dateFrom1970); - data.y(seriesStorageData.getDataVolume() / unitMeasure); - arrayData.addToEnd(data); - break; - case OperationCount: - data.x(dateFrom1970); - data.y(seriesStorageData.getOperationCount()); - arrayData.addToEnd(data); - break; - default: - data.x(dateFrom1970); - data.y(seriesStorageData.getDataVolume() / unitMeasure); - arrayData.addToEnd(data); - break; - - } - - } - - seriesColumn.add(seriesColumnData); - - } - - } - } - - private String retrieveYAxis(ArrayString colors) { - switch (measure) { - case DataVolume: - return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + StorageChartMeasure.DataVolume.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - - case OperationCount: - return "[{" + " \"id\": \"" - + StorageChartMeasure.OperationCount.name() + "\"," - + " \"labels\": { " + " \"format\": \"{value}\"," - + " \"style\": { " + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }," - + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + StorageChartMeasure.OperationCount.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - - default: - return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + StorageChartMeasure.DataVolume.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; - - } - - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/storage/StorageChartTopPanel.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/storage/StorageChartTopPanel.java index 274f182..0185f7e 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/storage/StorageChartTopPanel.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/storage/StorageChartTopPanel.java @@ -7,6 +7,7 @@ import org.gcube.portlets.admin.accountingmanager.client.event.ExportRequestEven import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ByteUnitMeasure; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartDateTimeData; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ChartTimeMeasure; +import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.ColorsPalette; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.DownloadConstants; import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils.StorageChartMeasure; import org.gcube.portlets.admin.accountingmanager.client.resource.AccountingManagerResources; @@ -57,8 +58,7 @@ public class StorageChartTopPanel extends SimpleContainer { private static final String DATA_VOLUME_UNIT = "Data Volume Unit"; // private static final String MEASURE_TYPE = "Measure"; - private DateTimeFormat dtf = DateTimeFormat - .getFormat(PredefinedFormat.YEAR_MONTH_DAY); + private DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH_DAY); private EventBus eventBus; private AccountingClientStateData accountingStateData; @@ -94,8 +94,7 @@ public class StorageChartTopPanel extends SimpleContainer { private VerticalLayoutContainer vert; - public StorageChartTopPanel(EventBus eventBus, - AccountingClientStateData accountingStateData) { + public StorageChartTopPanel(EventBus eventBus, AccountingClientStateData accountingStateData) { this.eventBus = eventBus; this.accountingStateData = accountingStateData; forceLayoutOnResize = true; @@ -107,8 +106,7 @@ public class StorageChartTopPanel extends SimpleContainer { ToolBar toolBar = new ToolBar(); toolBar.setSpacing(2); // Download - final TextButton downloadButton = new TextButton( - DownloadConstants.DOWNLOAD, + final TextButton downloadButton = new TextButton(DownloadConstants.DOWNLOAD, AccountingManagerResources.INSTANCE.accountingDownload24()); // downloadButton.setScale(ButtonScale.MEDIUM); downloadButton.setIconAlign(IconAlign.RIGHT); @@ -116,16 +114,14 @@ public class StorageChartTopPanel extends SimpleContainer { downloadButton.setMenu(createDownloadMenu()); // Measure - measureButton = new TextButton( - StorageChartMeasure.DataVolume.getLabel(), + measureButton = new TextButton(StorageChartMeasure.DataVolume.getLabel(), AccountingManagerResources.INSTANCE.accountingByte24()); measureButton.setIconAlign(IconAlign.RIGHT); measureButton.setArrowAlign(ButtonArrowAlign.RIGHT); measureButton.setMenu(createMeasureMenu()); // Unit - unitButton = new TextButton(DATA_VOLUME_UNIT, - AccountingManagerResources.INSTANCE.accountingUnitMB24()); + unitButton = new TextButton(DATA_VOLUME_UNIT, AccountingManagerResources.INSTANCE.accountingUnitMB24()); unitButton.setIconAlign(IconAlign.RIGHT); unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); unitButton.setMenu(createUnitMenu()); @@ -143,8 +139,7 @@ public class StorageChartTopPanel extends SimpleContainer { // vert = new VerticalLayoutContainer(); vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); - vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, - new Margins(0))); + vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new Margins(0))); add(vert, new MarginData(0)); @@ -273,8 +268,7 @@ public class StorageChartTopPanel extends SimpleContainer { Menu menuMeasure = new Menu(); dataVolumeItem = new MenuItem(StorageChartMeasure.DataVolume.getLabel()); dataVolumeItem.setHeight(30); - operationCountItem = new MenuItem( - StorageChartMeasure.OperationCount.getLabel()); + operationCountItem = new MenuItem(StorageChartMeasure.OperationCount.getLabel()); operationCountItem.setHeight(30); dataVolumeItem.addSelectionHandler(new SelectionHandler() { @@ -292,8 +286,7 @@ public class StorageChartTopPanel extends SimpleContainer { @Override public void onSelection(SelectionEvent event) { - measureButton.setText(StorageChartMeasure.OperationCount - .getLabel()); + measureButton.setText(StorageChartMeasure.OperationCount.getLabel()); measure = StorageChartMeasure.OperationCount; unitButton.setVisible(false); updateChart(); @@ -309,17 +302,13 @@ public class StorageChartTopPanel extends SimpleContainer { private Menu createUnitMenu() { Menu menuUnit = new Menu(); - kBItem = new MenuItem(ByteUnitMeasure.KILOBYTE, - AccountingManagerResources.INSTANCE.accountingUnitkB24()); + kBItem = new MenuItem(ByteUnitMeasure.KILOBYTE, AccountingManagerResources.INSTANCE.accountingUnitkB24()); kBItem.setHeight(30); - MBItem = new MenuItem(ByteUnitMeasure.MEGABYTE, - AccountingManagerResources.INSTANCE.accountingUnitMB24()); + MBItem = new MenuItem(ByteUnitMeasure.MEGABYTE, AccountingManagerResources.INSTANCE.accountingUnitMB24()); MBItem.setHeight(30); - GBItem = new MenuItem(ByteUnitMeasure.GIGABYTE, - AccountingManagerResources.INSTANCE.accountingUnitGB24()); + GBItem = new MenuItem(ByteUnitMeasure.GIGABYTE, AccountingManagerResources.INSTANCE.accountingUnitGB24()); GBItem.setHeight(30); - TBItem = new MenuItem(ByteUnitMeasure.TERABYTE, - AccountingManagerResources.INSTANCE.accountingUnitTB24()); + TBItem = new MenuItem(ByteUnitMeasure.TERABYTE, AccountingManagerResources.INSTANCE.accountingUnitTB24()); TBItem.setHeight(30); kBItem.addSelectionHandler(new SelectionHandler() { @@ -328,8 +317,7 @@ public class StorageChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = ByteUnitMeasure.getKiloByteDimForStorage(); unitMeasureLabel = ByteUnitMeasure.kB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitkB24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitkB24()); updateChart(); } }); @@ -340,8 +328,7 @@ public class StorageChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = ByteUnitMeasure.getMegaByteDimForStorage(); unitMeasureLabel = ByteUnitMeasure.MB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitMB24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitMB24()); updateChart(); } }); @@ -352,8 +339,7 @@ public class StorageChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = ByteUnitMeasure.getGigaByteDimForStorage(); unitMeasureLabel = ByteUnitMeasure.GB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitGB24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitGB24()); updateChart(); } }); @@ -364,8 +350,7 @@ public class StorageChartTopPanel extends SimpleContainer { public void onSelection(SelectionEvent event) { unitMeasure = ByteUnitMeasure.getTeraByteDimForStorage(); unitMeasureLabel = ByteUnitMeasure.TB; - unitButton.setIcon(AccountingManagerResources.INSTANCE - .accountingUnitTB24()); + unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitTB24()); updateChart(); } }); @@ -379,20 +364,17 @@ public class StorageChartTopPanel extends SimpleContainer { } 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); } @@ -449,15 +431,13 @@ public class StorageChartTopPanel extends SimpleContainer { }-*/; private void createChart() { - SeriesStorage seriesStorage = (SeriesStorage) accountingStateData - .getSeriesResponse(); + SeriesStorage seriesStorage = (SeriesStorage) accountingStateData.getSeriesResponse(); if (!(seriesStorage.getSeriesStorageDefinition() instanceof SeriesStorageTop)) { Log.debug("Invalid SeriesStorageTop!"); return; } - SeriesStorageTop seriesStorageTop = (SeriesStorageTop) seriesStorage - .getSeriesStorageDefinition(); + SeriesStorageTop seriesStorageTop = (SeriesStorageTop) seriesStorage.getSeriesStorageDefinition(); HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); @@ -468,32 +448,29 @@ public class StorageChartTopPanel extends SimpleContainer { options.title().text("Accounting Storage Top"); /* - * options.subtitle().text("Click and drag in the plot area to zoom in"); + * options.subtitle().text("Click and drag in the plot area to zoom in" + * ); */ + ColorsPalette colorsPalette = new ColorsPalette(); ArrayString colors = options.colors(); + colors = colorsPalette.getColorsPalette(colors); + options.colors(colors); + // colors.setValue(0, "#cc0038"); // colors.setValue(1, "#32cd32"); // yAxis options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); - options.plotOptions().setFieldAsJsonObject( - "column", - "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " - + " \"enabled\": \"true\"," + options.plotOptions().setFieldAsJsonObject("column", + "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " + " \"enabled\": \"true\"," + " \"color\": \"white\", " + " \"style\": {" - + " \"textShadow\": \"0 0 3px black\"" + " }" - + " }" + " }"); + + " \"textShadow\": \"0 0 3px black\"" + " }" + " }" + " }"); ArrayList seriesColumn = new ArrayList<>(); - if (seriesStorageTop.getShowOthers()) { - createSeriesColumnShowOthers(seriesStorageTop, highchartsFactory, - colors, seriesColumn); - } else { - createSeriesColumnSimple(seriesStorageTop, highchartsFactory, - colors, seriesColumn); - } + + createSeriesColumnSimple(seriesStorageTop, highchartsFactory, colors, seriesColumn); for (SeriesColumn serie : seriesColumn) { options.series().addToEnd(serie); @@ -505,62 +482,51 @@ public class StorageChartTopPanel extends SimpleContainer { return; } - private void createSeriesColumnShowOthers( - SeriesStorageTop seriesStorageTop, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { + private void createSeriesColumnShowOthers(SeriesStorageTop seriesStorageTop, + HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayList seriesColumn) { Log.debug("Series ShowOthers"); - 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) { + 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) { double minRange = ChartTimeMeasure - .calculateMinRange(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod()); double interval = ChartTimeMeasure - .calculateInterval(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod()); - Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() - .getAccountingPeriod().getStartDate()); + Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate()); - dateStart.setTime(dateStart.getTime() - + ChartTimeMeasure.timeZoneOffset() - * ChartTimeMeasure.MINUTE); + dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE); Log.debug("BuildChart DateStart: " - + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) - .format(dateStart)); + + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart)); // xAxis options.xAxis().type("datetime"); options.xAxis().minRange(minRange); options.tooltip().xDateFormat("Selected Data"); - + int i = 0; for (; i < seriesStorageTop.getSeriesStorageDataTopList().size() && i < seriesStorageTop.getTopNumber(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesStorageTop - .getSeriesStorageDataTopList().get(i).getFilterValue() - .getValue()); + seriesColumnData + .name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - for (SeriesStorageData seriesStorageData : seriesStorageTop - .getSeriesStorageDataTopList().get(i).getSeries()) { + for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i) + .getSeries()) { switch (measure) { case DataVolume: - data.push(seriesStorageData.getDataVolume() - / unitMeasure); + data.push(seriesStorageData.getDataVolume() / unitMeasure); break; case OperationCount: data.push(seriesStorageData.getOperationCount()); @@ -573,43 +539,34 @@ public class StorageChartTopPanel extends SimpleContainer { } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } if (i < seriesStorageTop.getSeriesStorageDataTopList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); seriesColumnData.name("Others"); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesStorageTop - .getSeriesStorageDataTopList().size(); j++) { + for (int j = i; j < seriesStorageTop.getSeriesStorageDataTopList().size(); j++) { Long value; - for (int k = 0; k < seriesStorageTop - .getSeriesStorageDataTopList().get(j).getSeries() - .size(); k++) { - SeriesStorageData seriesStorageData = seriesStorageTop - .getSeriesStorageDataTopList().get(j) + for (int k = 0; k < seriesStorageTop.getSeriesStorageDataTopList().get(j).getSeries().size(); k++) { + SeriesStorageData seriesStorageData = seriesStorageTop.getSeriesStorageDataTopList().get(j) .getSeries().get(k); if (j == i) { switch (measure) { case DataVolume: - othersData.add(seriesStorageData - .getDataVolume() / unitMeasure); + othersData.add(seriesStorageData.getDataVolume() / unitMeasure); break; case OperationCount: - othersData.add(seriesStorageData - .getOperationCount()); + othersData.add(seriesStorageData.getOperationCount()); break; default: - othersData.add(seriesStorageData - .getDataVolume() / unitMeasure); + othersData.add(seriesStorageData.getDataVolume() / unitMeasure); break; } @@ -617,18 +574,15 @@ public class StorageChartTopPanel extends SimpleContainer { switch (measure) { case DataVolume: - value = seriesStorageData.getDataVolume() - / unitMeasure + othersData.get(k); + value = seriesStorageData.getDataVolume() / unitMeasure + othersData.get(k); othersData.set(k, value); break; case OperationCount: - value = seriesStorageData.getOperationCount() - + othersData.get(k); + value = seriesStorageData.getOperationCount() + othersData.get(k); othersData.set(k, value); break; default: - value = seriesStorageData.getDataVolume() - / unitMeasure + othersData.get(k); + value = seriesStorageData.getDataVolume() / unitMeasure + othersData.get(k); othersData.set(k, value); break; @@ -644,8 +598,7 @@ public class StorageChartTopPanel extends SimpleContainer { data.push(value); } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } @@ -653,16 +606,15 @@ public class StorageChartTopPanel extends SimpleContainer { // xAxis options.xAxis().type("datetime"); - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() + .compareTo(AccountingPeriodMode.MONTHLY) == 0) { + // options.tooltip().xDateFormat("%b, %Y"); options.tooltip().xDateFormat("Selected Data"); } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); + // options.tooltip().xDateFormat("%Y"); options.tooltip().xDateFormat("Selected Data"); } else { @@ -674,23 +626,20 @@ public class StorageChartTopPanel extends SimpleContainer { int i = 0; for (; i < seriesStorageTop.getSeriesStorageDataTopList().size() && i < seriesStorageTop.getTopNumber(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesStorageTop - .getSeriesStorageDataTopList().get(i).getFilterValue() - .getValue()); + seriesColumnData + .name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); Array arrayData = seriesColumnData.dataAsArrayObject(); - for (SeriesStorageData seriesStorageData : seriesStorageTop - .getSeriesStorageDataTopList().get(i).getSeries()) { + for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i) + .getSeries()) { long dateFrom1970 = seriesStorageData.getDate().getTime(); - Log.debug("SeriersStorageData: " - + seriesStorageData.getDate()); + Log.debug("SeriersStorageData: " + seriesStorageData.getDate()); Log.debug("SeriersStorageData: " + dateFrom1970); Data data = highchartsFactory.createSeriesColumnData(); @@ -721,65 +670,51 @@ public class StorageChartTopPanel extends SimpleContainer { } if (i < seriesStorageTop.getSeriesStorageDataTopList().size()) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); seriesColumnData.name("Others"); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayList othersData = new ArrayList<>(); - for (int j = i; j < seriesStorageTop - .getSeriesStorageDataTopList().size(); j++) { + for (int j = i; j < seriesStorageTop.getSeriesStorageDataTopList().size(); j++) { ChartDateTimeData chartDateTimeData; - for (int k = 0; k < seriesStorageTop - .getSeriesStorageDataTopList().get(j).getSeries() - .size(); k++) { - SeriesStorageData seriesStorageData = seriesStorageTop - .getSeriesStorageDataTopList().get(j) + for (int k = 0; k < seriesStorageTop.getSeriesStorageDataTopList().get(j).getSeries().size(); k++) { + SeriesStorageData seriesStorageData = seriesStorageTop.getSeriesStorageDataTopList().get(j) .getSeries().get(k); if (j == i) { switch (measure) { case DataVolume: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - seriesStorageData.getDataVolume() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(), + seriesStorageData.getDataVolume() / unitMeasure); othersData.add(chartDateTimeData); break; case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), + chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(), seriesStorageData.getOperationCount()); othersData.add(chartDateTimeData); break; default: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - seriesStorageData.getDataVolume() - / unitMeasure); + chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(), + seriesStorageData.getDataVolume() / unitMeasure); othersData.add(chartDateTimeData); break; } } else { switch (measure) { case DataVolume: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), + chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(), (seriesStorageData.getDataVolume() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; case OperationCount: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), - seriesStorageData.getOperationCount() - + othersData.get(k).getValue()); + chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(), + seriesStorageData.getOperationCount() + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); break; default: - chartDateTimeData = new ChartDateTimeData( - seriesStorageData.getDate(), + chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(), (seriesStorageData.getDataVolume() / unitMeasure) + othersData.get(k).getValue()); othersData.set(k, chartDateTimeData); @@ -796,8 +731,7 @@ public class StorageChartTopPanel extends SimpleContainer { for (ChartDateTimeData chartDateTimeData : othersData) { long dateFrom1970 = chartDateTimeData.getDate().getTime(); - Log.debug("SeriersOthersData: " - + chartDateTimeData.getDate()); + Log.debug("SeriersOthersData: " + chartDateTimeData.getDate()); Log.debug("SeriersOthersData: " + dateFrom1970); Data data = highchartsFactory.createSeriesColumnData(); @@ -815,61 +749,50 @@ public class StorageChartTopPanel extends SimpleContainer { } - private void createSeriesColumnSimple(SeriesStorageTop seriesStorageTop, - HighchartsOptionFactory highchartsFactory, ArrayString colors, - ArrayList seriesColumn) { + private void createSeriesColumnSimple(SeriesStorageTop seriesStorageTop, HighchartsOptionFactory highchartsFactory, + ArrayString colors, ArrayList seriesColumn) { Log.debug("Series Simple"); - 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) { + 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) { double minRange = ChartTimeMeasure - .calculateMinRange(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod()); double interval = ChartTimeMeasure - .calculateInterval(accountingStateData.getSeriesRequest() - .getAccountingPeriod()); + .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod()); - Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() - .getAccountingPeriod().getStartDate()); + Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate()); - dateStart.setTime(dateStart.getTime() - + ChartTimeMeasure.timeZoneOffset() - * ChartTimeMeasure.MINUTE); + dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE); Log.debug("BuildChart DateStart: " - + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) - .format(dateStart)); + + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart)); // xAxis options.xAxis().type("datetime"); options.xAxis().minRange(minRange); options.tooltip().xDateFormat("Selected Data"); - - for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList() - .size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); - seriesColumnData.name(seriesStorageTop - .getSeriesStorageDataTopList().get(i).getFilterValue() - .getValue()); + for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList().size(); i++) { + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); + + seriesColumnData + .name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); ArrayNumber data = seriesColumnData.dataAsArrayNumber(); - for (SeriesStorageData seriesStorageData : seriesStorageTop - .getSeriesStorageDataTopList().get(i).getSeries()) { + for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i) + .getSeries()) { switch (measure) { case DataVolume: - data.push(seriesStorageData.getDataVolume() - / unitMeasure); + data.push(seriesStorageData.getDataVolume() / unitMeasure); break; case OperationCount: data.push(seriesStorageData.getOperationCount()); @@ -882,8 +805,7 @@ public class StorageChartTopPanel extends SimpleContainer { } - seriesColumnData.pointInterval(interval).pointStart( - dateStart.getTime()); + seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime()); seriesColumn.add(seriesColumnData); } @@ -892,16 +814,15 @@ public class StorageChartTopPanel extends SimpleContainer { // xAxis options.xAxis().type("datetime"); - if (accountingStateData.getSeriesRequest().getAccountingPeriod() - .getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { - //options.tooltip().xDateFormat("%b, %Y"); + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() + .compareTo(AccountingPeriodMode.MONTHLY) == 0) { + // options.tooltip().xDateFormat("%b, %Y"); options.tooltip().xDateFormat("Selected Data"); } else { - if (accountingStateData.getSeriesRequest() - .getAccountingPeriod().getPeriod() + if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod() .compareTo(AccountingPeriodMode.YEARLY) == 0) { - //options.tooltip().xDateFormat("%Y"); + // options.tooltip().xDateFormat("%Y"); options.tooltip().xDateFormat("Selected Data"); } else { @@ -910,25 +831,21 @@ public class StorageChartTopPanel extends SimpleContainer { } - for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList() - .size(); i++) { - SeriesColumn seriesColumnData = highchartsFactory - .createSeriesColumn(); + for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList().size(); i++) { + SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn(); - seriesColumnData.name(seriesStorageTop - .getSeriesStorageDataTopList().get(i).getFilterValue() - .getValue()); + seriesColumnData + .name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue()); seriesColumnData.color(colors.get(i)); seriesColumnData.type("column"); Array arrayData = seriesColumnData.dataAsArrayObject(); - for (SeriesStorageData seriesStorageData : seriesStorageTop - .getSeriesStorageDataTopList().get(i).getSeries()) { + for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i) + .getSeries()) { long dateFrom1970 = seriesStorageData.getDate().getTime(); - Log.debug("SeriersStorageData: " - + seriesStorageData.getDate()); + Log.debug("SeriersStorageData: " + seriesStorageData.getDate()); Log.debug("SeriersStorageData: " + dateFrom1970); Data data = highchartsFactory.createSeriesColumnData(); @@ -964,44 +881,30 @@ public class StorageChartTopPanel extends SimpleContainer { private String retrieveYAxis(ArrayString colors) { switch (measure) { case DataVolume: - return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + StorageChartMeasure.DataVolume.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + StorageChartMeasure.DataVolume.getLabel() + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }" + "}]"; case OperationCount: - return "[{" + " \"id\": \"" - + StorageChartMeasure.OperationCount.name() + "\"," - + " \"labels\": { " + " \"format\": \"{value}\"," - + " \"style\": { " + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }," - + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + StorageChartMeasure.OperationCount.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + StorageChartMeasure.OperationCount.name() + "\"," + " \"labels\": { " + + " \"format\": \"{value}\"," + " \"style\": { " + " \"color\": \"#434348\"" + " }" + + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {" + + " \"fontWeight\": \"bold\"," + " \"color\": \"gray\"" + " } " + " }," + + " \"title\": { " + " \"text\": \"" + StorageChartMeasure.OperationCount.getLabel() + "\"," + + " \"style\": {" + " \"color\": \"#434348\"" + " }" + " }" + "}]"; default: - return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() - + "\"," + " \"labels\": {" + " \"format\": \"{value} " - + unitMeasureLabel + "\"," + " \"style\": {" - + " \"color\": \"" + colors.get(1) + "\"" + " }" - + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," - + " \"style\": {" + " \"fontWeight\": \"bold\"," - + " \"color\": \"gray\"" + " } " + " }," - + " \"title\": { " + " \"text\": \"" - + StorageChartMeasure.DataVolume.getLabel() + "\"," - + " \"style\": {" + " \"color\": \"" - + colors.get(1) + "\"" + " }" + " }" + "}]"; + return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() + "\"," + " \"labels\": {" + + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }," + " \"stackLabels\": {" + + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\"," + + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \"" + + StorageChartMeasure.DataVolume.getLabel() + "\"," + " \"style\": {" + + " \"color\": \"#434348\"" + " }" + " }" + "}]"; } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/utils/ColorsPalette.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/utils/ColorsPalette.java new file mode 100644 index 0000000..071eb34 --- /dev/null +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/utils/ColorsPalette.java @@ -0,0 +1,35 @@ +package org.gcube.portlets.admin.accountingmanager.client.maindata.charts.utils; + +import com.github.highcharts4gwt.model.array.api.ArrayString; + +/** + * + * @author Giancarlo Panichi + * + */ +public class ColorsPalette { + + private String[] palette = { "#87CEEB", "#DAA520", "#3CB371", "#FF4500", "#8FBC8F", "#FF00FF", "#BDB76B", "#5F9EA0", + "#A0522D", "#6B8E23", "#FFA07A", "#696969", "#DDA0DD", "#C71585", "#1E90FF", "#D2B48C", "#90EE90", + "#B22222", "#00CED1", "#9400D3", "#FFDAB9", "#663399", "#FFE4C4", "#ADFF2F", "#FF0000", "#00FFFF", + "#483D8B", "#FFFF00", "#00008B", "#FFDEAD", "#7CFC00", "#FF6347", "#AFEEEE", "#6A5ACD", "#FFFACD", + "#0000CD", "#F5DEB3", "#00FF00", "#FF7F50", "#7FFFD4", "#7B68EE", "#FFEFD5", "#0000FF", "#DEB887", + "#32CD32", "#FFA500", "#40E0D0", "#9370DB", "#FFE4B5", "#4169E1", "#BC8F8F", "#98FB98", "#8B0000", + "#48D1CC", "#800080", "#EEE8AA", "#00BFFF", "#F4A460", "#00FA9A", "#800000", "#556B2F", "#8A2BE2", + "#F0E68C", "#6495ED", "#B8860B", "#2E8B57", "#FFD700", "#66CDAA", "#9932CC", "#FFC0CB", "#87CEFA", + "#CD853F", "#228B22", "#DC143C", "#20B2AA", "#BA55D3", "#FFB6C1", "#B0E0E6", "#D2691E", "#008000", + "#CD5C5C", "#008B8B", "#FF00FF", "#FF69B4", "#B0C4DE", "#808000", "#006400", "#F08080", "#008080", + "#EE82EE", "#FF1493", "#4682B4", "#8B4513", "#9ACD32", "#FA8072", "#778899", "#DA70D6", "#DB7093" }; + + public ColorsPalette() { + + } + + public ArrayString getColorsPalette(ArrayString colors) { + for (int i = 0; i < palette.length; i++) { + colors.setValue(i, palette[i]); + } + colors.setLength(palette.length); + return colors; + } +} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingFilterProperties.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingFilterProperties.java index 70cacfa..8af6ab0 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingFilterProperties.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingFilterProperties.java @@ -9,8 +9,7 @@ import com.sencha.gxt.data.shared.PropertyAccess; /** * - * @author giancarlo - * email: g.panichi@isti.cnr.it + * @author Giancarlo Panichi * */ public interface AccountingFilterProperties extends diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingPeriodModePropertiesCombo.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingPeriodModePropertiesCombo.java index 6241279..5325e59 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingPeriodModePropertiesCombo.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/AccountingPeriodModePropertiesCombo.java @@ -9,12 +9,10 @@ import com.sencha.gxt.data.shared.PropertyAccess; /** * - * @author giancarlo - * email: g.panichi@isti.cnr.it - * + * @author Giancarlo Panichi + * */ -public interface AccountingPeriodModePropertiesCombo extends - PropertyAccess { +public interface AccountingPeriodModePropertiesCombo extends PropertyAccess { @Path("id") ModelKeyProvider id(); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/GenresDataProperties.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/ContextDataProperties.java similarity index 50% rename from src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/GenresDataProperties.java rename to src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/ContextDataProperties.java index 08cfbf2..082f1a7 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/GenresDataProperties.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/ContextDataProperties.java @@ -1,6 +1,6 @@ package org.gcube.portlets.admin.accountingmanager.client.properties; -import org.gcube.portlets.admin.accountingmanager.shared.data.GenresData; +import org.gcube.portlets.admin.accountingmanager.shared.data.ContextData; import com.google.gwt.editor.client.Editor.Path; import com.sencha.gxt.core.client.ValueProvider; @@ -9,13 +9,14 @@ import com.sencha.gxt.data.shared.PropertyAccess; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ -public interface GenresDataProperties extends PropertyAccess { - @Path("genre") - ModelKeyProvider id(); +public interface ContextDataProperties extends PropertyAccess { - ValueProvider label(); + @Path("contextData") + ModelKeyProvider id(); + + ValueProvider label(); } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/GenresDataPropertiesCombo.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/GenresDataPropertiesCombo.java deleted file mode 100644 index 8006eea..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/properties/GenresDataPropertiesCombo.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.client.properties; - -import org.gcube.portlets.admin.accountingmanager.shared.data.GenresData; - -import com.google.gwt.editor.client.Editor.Path; -import com.sencha.gxt.data.shared.LabelProvider; -import com.sencha.gxt.data.shared.ModelKeyProvider; -import com.sencha.gxt.data.shared.PropertyAccess; - -/** - * - * @author giancarlo - * email: g.panichi@isti.cnr.it - * - */ -public interface GenresDataPropertiesCombo extends - PropertyAccess { - - @Path("genre") - ModelKeyProvider id(); - - LabelProvider label(); - -} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/state/AccountingClientStateData.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/state/AccountingClientStateData.java index 64bda61..343ef7a 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/state/AccountingClientStateData.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/state/AccountingClientStateData.java @@ -68,7 +68,7 @@ public class AccountingClientStateData implements Serializable { */ public AccountingClientStateData(AccountingType accountingType, SeriesRequest seriesRequest, SeriesResponse seriesResponse, ArrayList availableFilterKeys, Context availableContext, - Spaces availableSpaces, Boolean rootScope) { + String scopeFilterActive, Spaces availableSpaces, Boolean rootScope) { super(); this.accountingType = accountingType; this.seriesRequest = seriesRequest; diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCaller.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCaller.java index 76156fc..3f16bfb 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCaller.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/AccountingCaller.java @@ -3,11 +3,10 @@ package org.gcube.portlets.admin.accountingmanager.server.amservice; import java.util.ArrayList; import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandBasic; -import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandContext; import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandGetFilterKeys; import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandGetFilterValues; -import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandSpaces; import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandGetSpaces; +import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandSpaces; import org.gcube.portlets.admin.accountingmanager.server.amservice.command.AccountingCommandTop; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQuery; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQuery4Job; @@ -18,15 +17,14 @@ import org.gcube.portlets.admin.accountingmanager.server.amservice.query.Account import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQuery4Task; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQueryBasic; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQueryBuilder; -import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQueryContext; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQueryDirector; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQuerySpaces; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQueryTop; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Spaces; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterKey; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValuesRequest; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValuesResponse; +import org.gcube.portlets.admin.accountingmanager.shared.data.Spaces; import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesResponse; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; @@ -102,11 +100,6 @@ public class AccountingCaller implements AccountingCallerInterface { AccountingCommandTop accountingCommandTop = new AccountingCommandTop( accountingQueryTop, accountingType); return accountingCommandTop.execute(); - case Context: - AccountingQueryContext accountingQueryContext = (AccountingQueryContext) query; - AccountingCommandContext accountingCommandContext = new AccountingCommandContext( - accountingQueryContext, accountingType); - return accountingCommandContext.execute(); case Spaces: AccountingQuerySpaces accountingQuerySpace = (AccountingQuerySpaces) query; AccountingCommandSpaces accountingCommandSpace = new AccountingCommandSpaces( 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 4a6dc21..6b88449 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 @@ -12,12 +12,11 @@ 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.Spaces; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterKey; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValuesRequest; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValuesResponse; +import org.gcube.portlets.admin.accountingmanager.shared.data.Spaces; import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesResponse; @@ -25,27 +24,21 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesSer import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesSpace; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesStorage; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDefinition; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDataContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDefinition; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceTop; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceSpaces; import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceDataSpaces; import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceDefinition; +import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceSpaces; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDataContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDefinition; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageTop; @@ -60,8 +53,7 @@ import org.slf4j.LoggerFactory; * */ public class AccountingCallerTester implements AccountingCallerInterface { - private static Logger logger = LoggerFactory - .getLogger(AccountingCallerTester.class); + private static Logger logger = LoggerFactory.getLogger(AccountingCallerTester.class); protected SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMMMM dd"); @@ -69,11 +61,9 @@ public class AccountingCallerTester implements AccountingCallerInterface { super(); } - public ArrayList getFilterKeys(AccountingType accountingType) - throws ServiceException { + public ArrayList getFilterKeys(AccountingType accountingType) throws ServiceException { try { - logger.debug("getFilterKeys(): [AccountingType=" + accountingType - + "]"); + logger.debug("getFilterKeys(): [AccountingType=" + accountingType + "]"); if (accountingType == null) { return new ArrayList(); } @@ -100,17 +90,13 @@ public class AccountingCallerTester implements AccountingCallerInterface { } } - public FilterValuesResponse getFilterValues( - FilterValuesRequest filterValuesRequest) throws ServiceException { + public FilterValuesResponse getFilterValues(FilterValuesRequest filterValuesRequest) throws ServiceException { try { - logger.debug("getFilterValue(): [FilterValueRequest=" - + filterValuesRequest + "]"); + logger.debug("getFilterValue(): [FilterValueRequest=" + filterValuesRequest + "]"); FilterValuesResponse filterValuesResponse = null; - if (filterValuesRequest == null - || filterValuesRequest.getAccountingType() == null + if (filterValuesRequest == null || filterValuesRequest.getAccountingType() == null || filterValuesRequest.getFilterKey() == null) { - filterValuesResponse = new FilterValuesResponse( - new ArrayList()); + filterValuesResponse = new FilterValuesResponse(new ArrayList()); return filterValuesResponse; } @@ -139,42 +125,36 @@ public class AccountingCallerTester implements AccountingCallerInterface { filterValuesResponse = new FilterValuesResponse(filterValues); return filterValuesResponse; } catch (Throwable e) { - logger.error("Error in getFilterValues(): " - + e.getLocalizedMessage()); + logger.error("Error in getFilterValues(): " + e.getLocalizedMessage()); e.printStackTrace(); throw new ServiceException("No values available!"); } } - public SeriesResponse getSeries(AccountingType accountingType, - SeriesRequest seriesRequest) throws ServiceException { + public SeriesResponse getSeries(AccountingType accountingType, SeriesRequest seriesRequest) + throws ServiceException { try { - logger.debug("getSeries(): [AccountingType=" + accountingType - + " , seriesRequest=" + seriesRequest + "]"); + logger.debug("getSeries(): [AccountingType=" + accountingType + " , seriesRequest=" + seriesRequest + "]"); SeriesResponse seriesResponse = null; - Calendar startCalendar = GregorianCalendar - .getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); + Calendar startCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); try { - startCalendar.setTime(sdf.parse(seriesRequest - .getAccountingPeriod().getStartDate())); + 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); + 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())); + endCalendar.setTime(sdf.parse(seriesRequest.getAccountingPeriod().getEndDate())); } catch (ParseException e) { e.printStackTrace(); throw new ServiceException("End Date not valid!"); @@ -183,20 +163,16 @@ public class AccountingCallerTester implements AccountingCallerInterface { switch (accountingType) { case JOB: SeriesJobDefinition serieJobDefinition = null; - if (seriesRequest.getAccountingFilterDefinition() - .getChartType() != null) { + if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) { ArrayList seriesJobData = new ArrayList<>(); for (int i = 0; i < 30; i++) { - SeriesJobData data = new SeriesJobData(new Date(), - new Double(10 * Math.random()).longValue(), - new Double(10 * Math.random()).longValue(), - new Double(10 * Math.random()).longValue(), + SeriesJobData data = new SeriesJobData(new Date(), new Double(10 * Math.random()).longValue(), + new Double(10 * Math.random()).longValue(), new Double(10 * Math.random()).longValue(), new Double(100 * Math.random()).longValue()); seriesJobData.add(data); } - switch (seriesRequest.getAccountingFilterDefinition() - .getChartType()) { + switch (seriesRequest.getAccountingFilterDefinition().getChartType()) { case Basic: serieJobDefinition = new SeriesJobBasic(seriesJobData); break; @@ -205,49 +181,13 @@ public class AccountingCallerTester implements AccountingCallerInterface { .getAccountingFilterDefinition(); ArrayList seriesJobDataTopList = new ArrayList<>(); - if (accountingFilterTop.getShowOthers()) { - for (int i = 0; i < 40; i++) { + for (int i = 0; i < accountingFilterTop.getTopNumber(); i++) { - SeriesJobDataTop seriesJobDataTop = new SeriesJobDataTop( - new FilterValue("User" + i), - seriesJobData); - seriesJobDataTopList.add(seriesJobDataTop); - } - } else { - for (int i = 0; i < accountingFilterTop - .getTopNumber(); i++) { - - SeriesJobDataTop seriesJobDataTop = new SeriesJobDataTop( - new FilterValue("User" + i), - seriesJobData); - seriesJobDataTopList.add(seriesJobDataTop); - } + SeriesJobDataTop seriesJobDataTop = new SeriesJobDataTop(new FilterValue("User" + i), + seriesJobData); + seriesJobDataTopList.add(seriesJobDataTop); } - - serieJobDefinition = new SeriesJobTop( - accountingFilterTop.getShowOthers(), - accountingFilterTop.getTopNumber(), - seriesJobDataTopList); - break; - case Context: - // AccountingFilterContext accountingFilterContext = - // (AccountingFilterContext) seriesRequest - // .getAccountingFilterDefinition(); - ArrayList seriesJobDataContextList = new ArrayList<>(); - ArrayList contexts = new ArrayList<>(); - - for (int i = 0; i < 20; i++) { - String scope = new String("VRE " + i); - contexts.add(scope); - SeriesJobDataContext seriesJobDataContext = new SeriesJobDataContext( - scope, seriesJobData); - seriesJobDataContextList.add(seriesJobDataContext); - } - - Context context = new Context(contexts); - serieJobDefinition = new SeriesJobContext(context, - seriesJobDataContextList); - + serieJobDefinition = new SeriesJobTop(accountingFilterTop.getTopNumber(), seriesJobDataTopList); break; default: @@ -263,49 +203,39 @@ public class AccountingCallerTester implements AccountingCallerInterface { break; case SERVICE: SeriesServiceDefinition serieServiceDefinition = null; - if (seriesRequest.getAccountingFilterDefinition() - .getChartType() != null) { + if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) { ArrayList seriesServiceData = new ArrayList<>(); switch (seriesRequest.getAccountingPeriod().getPeriod()) { case DAILY: case HOURLY: case MINUTELY: for (int i = 0; i < 30; i++) { - SeriesServiceData data = new SeriesServiceData( - new Date(), + 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()); + 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 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 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); } @@ -315,117 +245,25 @@ public class AccountingCallerTester implements AccountingCallerInterface { } - switch (seriesRequest.getAccountingFilterDefinition() - .getChartType()) { + switch (seriesRequest.getAccountingFilterDefinition().getChartType()) { case Basic: - serieServiceDefinition = new SeriesServiceBasic( - seriesServiceData); + serieServiceDefinition = new SeriesServiceBasic(seriesServiceData); break; case Top: AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest .getAccountingFilterDefinition(); ArrayList seriesServiceDataTopList = new ArrayList<>(); - if (accountingFilterTop.getShowOthers()) { + for (int i = 0; i < accountingFilterTop.getTopNumber(); i++) { - try { - startCalendar.setTime(sdf.parse(seriesRequest - .getAccountingPeriod().getStartDate())); - } catch (ParseException e) { - e.printStackTrace(); - throw new ServiceException( - "Start Date not valid!"); - } - - 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 { - - for (int i = 0; i < accountingFilterTop - .getTopNumber(); i++) { - - SeriesServiceDataTop seriesServiceDataTop1 = new SeriesServiceDataTop( - new FilterValue("User" + i), - seriesServiceData); - seriesServiceDataTopList - .add(seriesServiceDataTop1); - } + SeriesServiceDataTop seriesServiceDataTop1 = new SeriesServiceDataTop( + new FilterValue("User" + i), seriesServiceData); + seriesServiceDataTopList.add(seriesServiceDataTop1); } - serieServiceDefinition = new SeriesServiceTop( - accountingFilterTop.getShowOthers(), - accountingFilterTop.getTopNumber(), + serieServiceDefinition = new SeriesServiceTop(accountingFilterTop.getTopNumber(), seriesServiceDataTopList); break; - case Context: - // AccountingFilterContext accountingFilterContext = - // (AccountingFilterContext) seriesRequest - // .getAccountingFilterDefinition(); - ArrayList seriesServiceDataContextList = new ArrayList<>(); - ArrayList contexts = new ArrayList<>(); - - for (int i = 0; i < 20; i++) { - String scope = new String("VRE " + i); - contexts.add(scope); - SeriesServiceDataContext seriesServiceDataContext = new SeriesServiceDataContext( - scope, seriesServiceData); - seriesServiceDataContextList - .add(seriesServiceDataContext); - } - - Context context = new Context(contexts); - serieServiceDefinition = new SeriesServiceContext( - context, seriesServiceDataContextList); default: break; @@ -438,34 +276,30 @@ public class AccountingCallerTester implements AccountingCallerInterface { break; case SPACE: SeriesSpaceDefinition serieSpaceDefinition = null; - if (seriesRequest.getAccountingFilterDefinition() - .getChartType() != null) { + if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) { ArrayList seriesSpaceData = new ArrayList<>(); switch (seriesRequest.getAccountingPeriod().getPeriod()) { case DAILY: case HOURLY: case MINUTELY: for (int i = 0; i < 30; i++) { - SeriesSpaceData data = new SeriesSpaceData( - new Date(), new Double( - 10000 * Math.random()).longValue()); + SeriesSpaceData data = new SeriesSpaceData(new Date(), + new Double(10000 * Math.random()).longValue()); seriesSpaceData.add(data); } break; case MONTHLY: while (startCalendar.compareTo(endCalendar) <= 0) { - SeriesSpaceData data = new SeriesSpaceData( - startCalendar.getTime(), new Double( - 10000 * Math.random()).longValue()); + SeriesSpaceData data = new SeriesSpaceData(startCalendar.getTime(), + new Double(10000 * Math.random()).longValue()); seriesSpaceData.add(data); startCalendar.add(Calendar.MONTH, 1); } break; case YEARLY: while (startCalendar.compareTo(endCalendar) <= 0) { - SeriesSpaceData data = new SeriesSpaceData( - startCalendar.getTime(), new Double( - 10000 * Math.random()).longValue()); + SeriesSpaceData data = new SeriesSpaceData(startCalendar.getTime(), + new Double(10000 * Math.random()).longValue()); seriesSpaceData.add(data); startCalendar.add(Calendar.YEAR, 1); } @@ -475,12 +309,9 @@ public class AccountingCallerTester implements AccountingCallerInterface { } - switch (seriesRequest.getAccountingFilterDefinition() - .getChartType()) { + switch (seriesRequest.getAccountingFilterDefinition().getChartType()) { case Basic: case Top: - case Context: - break; case Spaces: // AccountingFilterContext accountingFilterContext = // (AccountingFilterContext) seriesRequest @@ -491,15 +322,13 @@ public class AccountingCallerTester implements AccountingCallerInterface { for (int i = 1; i < 3; i++) { String space = new String("Space" + i); spacesList.add(space); - SeriesSpaceDataSpaces seriesSpaceDataSpaces = new SeriesSpaceDataSpaces( - space, seriesSpaceData); - seriesSpaceDataSpacesList - .add(seriesSpaceDataSpaces); + SeriesSpaceDataSpaces seriesSpaceDataSpaces = new SeriesSpaceDataSpaces(space, + seriesSpaceData); + seriesSpaceDataSpacesList.add(seriesSpaceDataSpaces); } - Spaces spaces=new Spaces(spacesList); - serieSpaceDefinition = new SeriesSpaceSpaces( - spaces, seriesSpaceDataSpacesList); + Spaces spaces = new Spaces(spacesList); + serieSpaceDefinition = new SeriesSpaceSpaces(spaces, seriesSpaceDataSpacesList); default: break; @@ -513,17 +342,14 @@ public class AccountingCallerTester implements AccountingCallerInterface { case STORAGE: SeriesStorageDefinition serieStorageDefinition = null; - if (seriesRequest.getAccountingFilterDefinition() - .getChartType() != null) { + if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) { ArrayList seriesStorageData = new ArrayList<>(); for (int i = 0; i < 30; i++) { // Valori variabili - SeriesStorageData data = new SeriesStorageData( - new Date(), - new Double(1024 * 1024 * Math.random()) - .longValue(), new Double( - 100 * Math.random()).longValue()); + SeriesStorageData data = new SeriesStorageData(new Date(), + new Double(1024 * 1024 * Math.random()).longValue(), + new Double(100 * Math.random()).longValue()); // Valori Fissi /* @@ -535,68 +361,29 @@ public class AccountingCallerTester implements AccountingCallerInterface { seriesStorageData.add(data); } - switch (seriesRequest.getAccountingFilterDefinition() - .getChartType()) { + switch (seriesRequest.getAccountingFilterDefinition().getChartType()) { case Basic: for (SeriesStorageData serieStorageData : seriesStorageData) { - serieStorageData.setDataVolume(serieStorageData - .getDataVolume() * 1000); - serieStorageData.setOperationCount(serieStorageData - .getOperationCount() * 1000); + serieStorageData.setDataVolume(serieStorageData.getDataVolume() * 1000); + serieStorageData.setOperationCount(serieStorageData.getOperationCount() * 1000); } - serieStorageDefinition = new SeriesStorageBasic( - seriesStorageData); + serieStorageDefinition = new SeriesStorageBasic(seriesStorageData); break; case Top: AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest .getAccountingFilterDefinition(); ArrayList seriesStorageDataTopList = new ArrayList<>(); - if (accountingFilterTop.getShowOthers()) { - for (int i = 0; i < 1000; i++) { - SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop( - new FilterValue("User" + i), - seriesStorageData); - seriesStorageDataTopList - .add(seriesStorageDataTop); - } - } else { - for (int i = 0; i < accountingFilterTop - .getTopNumber(); i++) { - SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop( - new FilterValue("User" + i), - seriesStorageData); - seriesStorageDataTopList - .add(seriesStorageDataTop); - } + for (int i = 0; i < accountingFilterTop.getTopNumber(); i++) { + SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop( + new FilterValue("User" + i), seriesStorageData); + seriesStorageDataTopList.add(seriesStorageDataTop); } - serieStorageDefinition = new SeriesStorageTop( - accountingFilterTop.getShowOthers(), - accountingFilterTop.getTopNumber(), + + serieStorageDefinition = new SeriesStorageTop(accountingFilterTop.getTopNumber(), seriesStorageDataTopList); break; - case Context: - // AccountingFilterContext accountingFilterContext = - // (AccountingFilterContext) seriesRequest - // .getAccountingFilterDefinition(); - ArrayList seriesStorageDataContextList = new ArrayList<>(); - ArrayList contexts = new ArrayList<>(); - - for (int i = 0; i < 20; i++) { - String scope = new String("VRE " + i); - contexts.add(scope); - SeriesStorageDataContext seriesStorageDataContext = new SeriesStorageDataContext( - scope, seriesStorageData); - seriesStorageDataContextList - .add(seriesStorageDataContext); - } - - Context context = new Context(contexts); - serieStorageDefinition = new SeriesStorageContext( - context, seriesStorageDataContextList); - - break; default: break; diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandBasic.java index 8601461..4afbe39 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandBasic.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandBasic.java @@ -2,6 +2,7 @@ package org.gcube.portlets.admin.accountingmanager.server.amservice.command; import java.util.ArrayList; import java.util.Calendar; +import java.util.HashSet; import java.util.List; import java.util.SortedMap; @@ -43,27 +44,31 @@ public class AccountingCommandBasic implements AccountingCommand public SeriesResponse execute() throws ServiceException { try { - if (accountingQueryBasic.getScope() != null && !accountingQueryBasic.getScope().isEmpty()) { - AccountingPersistenceQueryFactory.getForcedQueryScope().set(accountingQueryBasic.getScope()); - } + //if (accountingQueryBasic.getScope() != null) { + // AccountingPersistenceQueryFactory.getForcedQueryScope().set(accountingQueryBasic.getScope()); + //} AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory.getInstance(); SortedMap sm = null; - if (accountingQueryBasic.isNoContext()) { - logger.debug("Execute NoContextTimeSeries()"); - sm = apq.getNoContextTimeSeries(accountingQueryBasic.getType(), - accountingQueryBasic.getTemporalConstraint(), accountingQueryBasic.getFilters(), true); - } else { - logger.debug("Execute TimeSeries()"); - sm = apq.getTimeSeries(accountingQueryBasic.getType(), accountingQueryBasic.getTemporalConstraint(), - accountingQueryBasic.getFilters(), true); - + logger.debug("Execute Basic()"); + apq.setRequestedRecords(accountingQueryBasic.getType()); + HashSet ctx=null; + if(accountingQueryBasic.getContext()!=null&&accountingQueryBasic.getContext().getContexts()!=null + &&!accountingQueryBasic.getContext().getContexts().isEmpty()){ + ctx=new HashSet(accountingQueryBasic.getContext().getContexts()); } + apq.setContexts(ctx); + apq.setTemporalConstraint(accountingQueryBasic.getTemporalConstraint()); + apq.setFilters(accountingQueryBasic.getFilters()); + sm=apq.getTimeSeries(true); + + //sm = apq.getTimeSeries(accountingQueryBasic.getType(), accountingQueryBasic.getTemporalConstraint(), + // accountingQueryBasic.getFilters(), true); - if (accountingQueryBasic.getScope() != null && !accountingQueryBasic.getScope().isEmpty()) { - AccountingPersistenceQueryFactory.getForcedQueryScope().remove(); - } + //if (accountingQueryBasic.getScope() != null) { + // AccountingPersistenceQueryFactory.getForcedQueryScope().remove(); + //} if (sm == null || sm.values() == null) { throw new ServiceException("Error retrieving info: sorted map is null!"); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandContext.java deleted file mode 100644 index 0f44916..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandContext.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.server.amservice.command; - -import java.util.Calendar; -import java.util.SortedMap; - -import org.gcube.accounting.analytics.Filter; -import org.gcube.accounting.analytics.Info; -import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery; -import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory; -import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQueryContext; -import org.gcube.portlets.admin.accountingmanager.server.amservice.response.SeriesResponse4JobContext; -import org.gcube.portlets.admin.accountingmanager.server.amservice.response.SeriesResponse4PortletContext; -import org.gcube.portlets.admin.accountingmanager.server.amservice.response.SeriesResponse4ServiceContext; -import org.gcube.portlets.admin.accountingmanager.server.amservice.response.SeriesResponse4StorageContext; -import org.gcube.portlets.admin.accountingmanager.server.amservice.response.SeriesResponse4TaskContext; -import org.gcube.portlets.admin.accountingmanager.server.amservice.response.SeriesResponseBuilder; -import org.gcube.portlets.admin.accountingmanager.server.amservice.response.SeriesResponseDirector; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesResponse; -import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class AccountingCommandContext implements AccountingCommand { - private static final Logger logger = LoggerFactory - .getLogger(AccountingCommandContext.class); - - private AccountingQueryContext accountingQueryContext; - private AccountingType accountingType; - - public AccountingCommandContext(AccountingQueryContext accountingQueryContext, - AccountingType accountingType) { - this.accountingQueryContext = accountingQueryContext; - this.accountingType = accountingType; - } - - @Override - public SeriesResponse execute() throws ServiceException { - try { - AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory - .getInstance(); - - logger.debug("Query Context: " - + accountingQueryContext.getContext()); - - SortedMap> contextSM; - - Context context=accountingQueryContext.getContext(); - - if(context==null){ - throw new ServiceException( - "Error retrieving context param: null!"); - } - - contextSM= apq.getContextTimeSeries(accountingQueryContext.getType(), - accountingQueryContext.getTemporalConstraint(), - accountingQueryContext.getFilters(), - context.getContexts(), - true); - - - if (contextSM == null) { - throw new ServiceException( - "Error retrieving info for context: sorted map is null!"); - } - - logger.debug("ContextSM: " + contextSM); - - SeriesResponseBuilder seriesResponseBuilder = getSeriesResponseBuilder( - accountingType, context, contextSM); - - SeriesResponseDirector seriesResponseDirector = new SeriesResponseDirector(); - seriesResponseDirector - .setSeriesResponseBuilder(seriesResponseBuilder); - seriesResponseDirector.constructSeriesResponse(); - SeriesResponse seriesResponse = seriesResponseDirector - .getSeriesResponse(); - - if (seriesResponse == null) { - throw new ServiceException("Error creating series response!"); - } - logger.debug("SeriesResponse Created: " + seriesResponse); - return seriesResponse; - - } catch (Throwable e) { - logger.error("Error in AccountingCommandTop(): " - + e.getLocalizedMessage()); - e.printStackTrace(); - throw new ServiceException("No data available!"); - - } - } - - private SeriesResponseBuilder getSeriesResponseBuilder( - AccountingType accountingType, Context context, - SortedMap> contextSM) - throws ServiceException { - if (accountingType == null) { - throw new ServiceException("Error accounting type is null"); - } - - switch (accountingType) { - case JOB: - return new SeriesResponse4JobContext(context,contextSM); - case PORTLET: - return new SeriesResponse4PortletContext(context, contextSM); - case SERVICE: - return new SeriesResponse4ServiceContext(context, contextSM); - case STORAGE: - return new SeriesResponse4StorageContext(context, contextSM); - case TASK: - return new SeriesResponse4TaskContext(context, contextSM); - default: - throw new ServiceException("Error request type is unknow!"); - - } - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetFilterValues.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetFilterValues.java index 9e4702f..14b3aa0 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetFilterValues.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetFilterValues.java @@ -27,19 +27,16 @@ import org.slf4j.LoggerFactory; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ -public class AccountingCommandGetFilterValues implements - AccountingCommand { - private static final Logger logger = LoggerFactory - .getLogger(AccountingCommandGetFilterValues.class); +public class AccountingCommandGetFilterValues implements AccountingCommand { + private static final Logger logger = LoggerFactory.getLogger(AccountingCommandGetFilterValues.class); private SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMMMM dd"); private FilterValuesRequest filterValuesRequest; - public AccountingCommandGetFilterValues( - FilterValuesRequest filterValuesRequest) { + public AccountingCommandGetFilterValues(FilterValuesRequest filterValuesRequest) { this.filterValuesRequest = filterValuesRequest; } @@ -47,14 +44,11 @@ public class AccountingCommandGetFilterValues implements @Override public FilterValuesResponse execute() throws ServiceException { try { - logger.debug("getFilterValue(): [FilterValueRequest=" - + filterValuesRequest + "]"); + logger.debug("getFilterValue(): [FilterValueRequest=" + filterValuesRequest + "]"); FilterValuesResponse filterValuesResponse = null; - if (filterValuesRequest == null - || filterValuesRequest.getAccountingType() == null + if (filterValuesRequest == null || filterValuesRequest.getAccountingType() == null || filterValuesRequest.getFilterKey() == null) { - filterValuesResponse = new FilterValuesResponse( - new ArrayList()); + filterValuesResponse = new FilterValuesResponse(new ArrayList()); return filterValuesResponse; } @@ -62,24 +56,19 @@ public class AccountingCommandGetFilterValues implements Set values; - AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory - .getInstance(); + AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory.getInstance(); - Calendar startCalendar = GregorianCalendar - .getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); + Calendar startCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); try { - startCalendar.setTime(sdf.parse(filterValuesRequest - .getAccountingPeriod().getStartDate())); + startCalendar.setTime(sdf.parse(filterValuesRequest.getAccountingPeriod().getStartDate())); } catch (ParseException e) { e.printStackTrace(); throw new ServiceException("Start Date not valid!"); } - Calendar endCalendar = GregorianCalendar - .getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); + Calendar endCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); try { - endCalendar.setTime(sdf.parse(filterValuesRequest - .getAccountingPeriod().getEndDate())); + endCalendar.setTime(sdf.parse(filterValuesRequest.getAccountingPeriod().getEndDate())); } catch (ParseException e) { e.printStackTrace(); throw new ServiceException("End Date not valid!"); @@ -90,19 +79,18 @@ public class AccountingCommandGetFilterValues implements endCalendar.set(GregorianCalendar.SECOND, 59); endCalendar.set(GregorianCalendar.MILLISECOND, 999); - TemporalConstraint tc = new TemporalConstraint( - startCalendar.getTimeInMillis(), + TemporalConstraint tc = new TemporalConstraint(startCalendar.getTimeInMillis(), endCalendar.getTimeInMillis(), - PeriodModeMap.getMode(filterValuesRequest - .getAccountingPeriod().getPeriod())); + PeriodModeMap.getMode(filterValuesRequest.getAccountingPeriod().getPeriod())); List filters = new ArrayList<>(); switch (filterValuesRequest.getAccountingType()) { case JOB: - values = apq.getFilterValues(AggregatedJobUsageRecord.class, - tc, filters, filterValuesRequest.getFilterKey() - .getKey()); + apq.setRequestedRecords(AggregatedJobUsageRecord.class); + apq.setTemporalConstraint(tc); + apq.setFilters(filters); + values = apq.getFilterValues(filterValuesRequest.getFilterKey().getKey()); break; case PORTLET: // values = rrq.getPossibleValuesForKey( @@ -111,14 +99,16 @@ public class AccountingCommandGetFilterValues implements filterValuesResponse = new FilterValuesResponse(filterValues); return filterValuesResponse; case SERVICE: - values = apq.getFilterValues( - AggregatedServiceUsageRecord.class, tc, filters, - filterValuesRequest.getFilterKey().getKey()); + apq.setRequestedRecords(AggregatedServiceUsageRecord.class); + apq.setTemporalConstraint(tc); + apq.setFilters(filters); + values = apq.getFilterValues(filterValuesRequest.getFilterKey().getKey()); break; case STORAGE: - values = apq.getFilterValues( - AggregatedStorageUsageRecord.class, tc, filters, - filterValuesRequest.getFilterKey().getKey()); + apq.setRequestedRecords(AggregatedStorageUsageRecord.class); + apq.setTemporalConstraint(tc); + apq.setFilters(filters); + values = apq.getFilterValues(filterValuesRequest.getFilterKey().getKey()); break; case TASK: // values = rrq.getPossibleValuesForKey( @@ -127,9 +117,10 @@ public class AccountingCommandGetFilterValues implements filterValuesResponse = new FilterValuesResponse(filterValues); return filterValuesResponse; case SPACE: - values = apq.getFilterValues( - AggregatedStorageStatusRecord.class, tc, filters, - filterValuesRequest.getFilterKey().getKey()); + apq.setRequestedRecords(AggregatedStorageStatusRecord.class); + apq.setTemporalConstraint(tc); + apq.setFilters(filters); + values = apq.getFilterValues(filterValuesRequest.getFilterKey().getKey()); break; default: filterValuesResponse = new FilterValuesResponse(filterValues); @@ -145,8 +136,7 @@ public class AccountingCommandGetFilterValues implements filterValuesResponse = new FilterValuesResponse(filterValues); return filterValuesResponse; } catch (Throwable e) { - logger.error("Error in AccountingCommandGetFilterValues(): " - + e.getLocalizedMessage()); + logger.error("Error in AccountingCommandGetFilterValues(): " + e.getLocalizedMessage()); e.printStackTrace(); throw new ServiceException("No values available!"); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetSpaces.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetSpaces.java index 67d50be..b9db5ce 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetSpaces.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandGetSpaces.java @@ -3,8 +3,10 @@ package org.gcube.portlets.admin.accountingmanager.server.amservice.command; import java.util.ArrayList; import java.util.SortedSet; +import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery; import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory; +import org.gcube.accounting.datamodel.aggregation.AggregatedStorageStatusRecord; import org.gcube.portlets.admin.accountingmanager.shared.data.Spaces; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; import org.slf4j.Logger; @@ -26,10 +28,14 @@ public class AccountingCommandGetSpaces implements AccountingCommand { public Spaces execute() throws ServiceException { try { logger.debug("getSpaces()"); - SortedSet keys = null; + SortedSet keys = null; AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory.getInstance(); - - keys = apq.getSpaceProvidersIds(); + + //TODO the library must implement this interface + keys = apq.getFilterValues(AggregatedStorageStatusRecord.DATA_TYPE); + + + //keys = apq.getSpaceProvidersIds(); logger.debug("AccountingPersistenceQuery.getSpaces: " + keys); ArrayList spaceList = new ArrayList<>(); @@ -37,9 +43,9 @@ public class AccountingCommandGetSpaces implements AccountingCommand { if (keys == null || keys.isEmpty()) { logger.error("Spaces have not keys: {}", keys); } else { - for (String key : keys) { - if (key != null && !key.isEmpty()) { - spaceList.add(key); + for (NumberedFilter key : keys) { + if (key != null ) { + spaceList.add(key.getValue()); } } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandSpaces.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandSpaces.java index 2506803..6ab54fb 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandSpaces.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandSpaces.java @@ -1,9 +1,11 @@ package org.gcube.portlets.admin.accountingmanager.server.amservice.command; import java.util.Calendar; +import java.util.HashSet; import java.util.SortedMap; import org.gcube.accounting.analytics.Filter; +import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery; import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory; import org.gcube.portlets.admin.accountingmanager.server.amservice.query.AccountingQuerySpaces; @@ -46,7 +48,7 @@ public class AccountingCommandSpaces implements logger.debug("Query Spaces: " + accountingQuerySpaces.getSpaces()); - SortedMap> spaceSM; + SortedMap> spaceSM; Spaces spaces = accountingQuerySpaces.getSpaces(); @@ -54,10 +56,16 @@ public class AccountingCommandSpaces implements throw new ServiceException( "Error retrieving Spaces param: null!"); } - - spaceSM = apq.getSpaceTimeSeries(accountingQuerySpaces.getType(), - accountingQuerySpaces.getTemporalConstraint(), - accountingQuerySpaces.getFilters(), spaces.getSpacesList()); + + apq.setRequestedRecords(accountingQuerySpaces.getType()); + apq.setTemporalConstraint(accountingQuerySpaces.getTemporalConstraint()); + apq.setFilters(accountingQuerySpaces.getFilters()); + spaceSM = apq.getSpaceTimeSeries(new HashSet(spaces.getSpacesList())); + + + //spaceSM = apq.getSpaceTimeSeries(accountingQuerySpaces.getType(), + // accountingQuerySpaces.getTemporalConstraint(), + // accountingQuerySpaces.getFilters(), spaces.getSpacesList()); if (spaceSM == null) { throw new ServiceException( @@ -93,7 +101,7 @@ public class AccountingCommandSpaces implements private SeriesResponseBuilder getSeriesResponseBuilder( AccountingType accountingType, Spaces spaces, - SortedMap> spaceSM) + SortedMap> spaceSM) throws ServiceException { if (accountingType == null) { throw new ServiceException("Error accounting type is null"); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandTop.java index a32a90d..2a3d3cc 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/command/AccountingCommandTop.java @@ -1,6 +1,7 @@ package org.gcube.portlets.admin.accountingmanager.server.amservice.command; import java.util.Calendar; +import java.util.HashSet; import java.util.SortedMap; import org.gcube.accounting.analytics.Info; @@ -42,9 +43,10 @@ public class AccountingCommandTop implements AccountingCommand { public SeriesResponse execute() throws ServiceException { try { - if (accountingQueryTop.getScope() != null && !accountingQueryTop.getScope().isEmpty()) { - AccountingPersistenceQueryFactory.getForcedQueryScope().set(accountingQueryTop.getScope()); - } + // if (accountingQueryTop.getScope() != null && + // !accountingQueryTop.getScope().isEmpty()) { + // AccountingPersistenceQueryFactory.getForcedQueryScope().set(accountingQueryTop.getScope()); + // } AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory.getInstance(); @@ -52,18 +54,25 @@ public class AccountingCommandTop implements AccountingCommand { SortedMap> topSM; - if (accountingQueryTop.getShowOthers()) { - topSM = apq.getTopValues(accountingQueryTop.getType(), accountingQueryTop.getTemporalConstraint(), - accountingQueryTop.getFilters(), accountingQueryTop.getFilterKey().getKey(), null, true, 0); - } else { - topSM = apq.getTopValues(accountingQueryTop.getType(), accountingQueryTop.getTemporalConstraint(), - accountingQueryTop.getFilters(), accountingQueryTop.getFilterKey().getKey(), null, true, - accountingQueryTop.getTopNumber()); - } + logger.debug("Execute Top()"); + apq.setRequestedRecords(accountingQueryTop.getType()); - if (accountingQueryTop.getScope() != null && !accountingQueryTop.getScope().isEmpty()) { - AccountingPersistenceQueryFactory.getForcedQueryScope().remove(); + HashSet ctx = null; + if (accountingQueryTop.getContext() != null && accountingQueryTop.getContext().getContexts() != null + && !accountingQueryTop.getContext().getContexts().isEmpty()) { + ctx = new HashSet(accountingQueryTop.getContext().getContexts()); } + apq.setContexts(ctx); + apq.setTemporalConstraint(accountingQueryTop.getTemporalConstraint()); + apq.setFilters(accountingQueryTop.getFilters()); + + topSM = apq.getTopValues(accountingQueryTop.getFilterKey().getKey(), null, true, + accountingQueryTop.getTopNumber()); + + // if (accountingQueryTop.getScope() != null && + // !accountingQueryTop.getScope().isEmpty()) { + // AccountingPersistenceQueryFactory.getForcedQueryScope().remove(); + // } if (topSM == null) { throw new ServiceException("Error retrieving info for top: sorted map is null!"); @@ -100,20 +109,15 @@ public class AccountingCommandTop implements AccountingCommand { switch (accountingType) { case JOB: - return new SeriesResponse4JobTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), - topSM); + return new SeriesResponse4JobTop(accountingQueryTop.getTopNumber(), topSM); case PORTLET: - return new SeriesResponse4PortletTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), - topSM); + return new SeriesResponse4PortletTop(accountingQueryTop.getTopNumber(), topSM); case SERVICE: - return new SeriesResponse4ServiceTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), - topSM); + return new SeriesResponse4ServiceTop(accountingQueryTop.getTopNumber(), topSM); case STORAGE: - return new SeriesResponse4StorageTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), - topSM); + return new SeriesResponse4StorageTop(accountingQueryTop.getTopNumber(), topSM); case TASK: - return new SeriesResponse4TaskTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), - topSM); + return new SeriesResponse4TaskTop(accountingQueryTop.getTopNumber(), topSM); default: throw new ServiceException("Error request type is unknow!"); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Job.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Job.java index 6d3f04c..27d6240 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Job.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Job.java @@ -11,7 +11,6 @@ import org.gcube.accounting.datamodel.aggregation.AggregatedJobUsageRecord; import org.gcube.portlets.admin.accountingmanager.server.amservice.PeriodModeMap; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilter; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterContext; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterTop; import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; @@ -77,8 +76,8 @@ public class AccountingQuery4Job extends AccountingQueryBuilder { filters.add(filter); } } - invocation = new AccountingQueryBasic(AggregatedJobUsageRecord.class, accountingFilterBasic.getScope(), - accountingFilterBasic.isNoContext(), temporalConstraint, filters); + invocation = new AccountingQueryBasic(AggregatedJobUsageRecord.class, + accountingFilterBasic.getContext(), temporalConstraint, filters); } else { if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterTop) { @@ -93,28 +92,12 @@ public class AccountingQuery4Job extends AccountingQueryBuilder { filters.add(filter); } } - invocation = new AccountingQueryTop(AggregatedJobUsageRecord.class, accountingFilterTop.getScope(), - accountingFilterTop.getFilterKey(), accountingFilterTop.getShowOthers(), + invocation = new AccountingQueryTop(AggregatedJobUsageRecord.class, accountingFilterTop.getContext(), + accountingFilterTop.getFilterKey(), accountingFilterTop.getTopNumber(), temporalConstraint, filters); } else { - if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterContext) { - AccountingFilterContext accountingFilterContext = (AccountingFilterContext) seriesRequest - .getAccountingFilterDefinition(); - accountingFilters = accountingFilterContext.getFilters(); - filters = new ArrayList(); - if (accountingFilters != null) { - for (AccountingFilter accountigFilters : accountingFilters) { - Filter filter = new Filter(accountigFilters.getFilterKey().getKey(), - accountigFilters.getFilterValue()); - filters.add(filter); - } - } - invocation = new AccountingQueryContext(AggregatedJobUsageRecord.class, - accountingFilterContext.getContext(), temporalConstraint, filters); - } else { logger.error("Invalid Request: " + seriesRequest); throw new ServiceException("Invalid Request!"); - } } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Portlet.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Portlet.java index 0168787..36f3ef8 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Portlet.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Portlet.java @@ -11,7 +11,6 @@ import org.gcube.accounting.datamodel.aggregation.AggregatedPortletUsageRecord; import org.gcube.portlets.admin.accountingmanager.server.amservice.PeriodModeMap; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilter; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterContext; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterTop; import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; @@ -77,8 +76,7 @@ public class AccountingQuery4Portlet extends AccountingQueryBuilder { } } invocation = new AccountingQueryBasic(AggregatedPortletUsageRecord.class, - accountingFilterBasic.getScope(), accountingFilterBasic.isNoContext(), temporalConstraint, - filters); + accountingFilterBasic.getContext(), temporalConstraint, filters); } else { if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterTop) { @@ -94,28 +92,11 @@ public class AccountingQuery4Portlet extends AccountingQueryBuilder { } } invocation = new AccountingQueryTop(AggregatedPortletUsageRecord.class, - accountingFilterTop.getScope(), accountingFilterTop.getFilterKey(), - accountingFilterTop.getShowOthers(), accountingFilterTop.getTopNumber(), temporalConstraint, - filters); + accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(), + accountingFilterTop.getTopNumber(), temporalConstraint, filters); } else { - if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterContext) { - AccountingFilterContext accountingFilterContext = (AccountingFilterContext) seriesRequest - .getAccountingFilterDefinition(); - accountingFilters = accountingFilterContext.getFilters(); - filters = new ArrayList(); - if (accountingFilters != null) { - for (AccountingFilter accountigFilters : accountingFilters) { - Filter filter = new Filter(accountigFilters.getFilterKey().getKey(), - accountigFilters.getFilterValue()); - filters.add(filter); - } - } - invocation = new AccountingQueryContext(AggregatedPortletUsageRecord.class, - accountingFilterContext.getContext(), temporalConstraint, filters); - } else { - logger.error("Invalid Request: " + seriesRequest); - throw new ServiceException("Invalid Request!"); - } + logger.error("Invalid Request: " + seriesRequest); + throw new ServiceException("Invalid Request!"); } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Service.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Service.java index a3f9796..80ea39a 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Service.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Service.java @@ -11,7 +11,6 @@ import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; import org.gcube.portlets.admin.accountingmanager.server.amservice.PeriodModeMap; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilter; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterContext; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterTop; import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; @@ -78,8 +77,7 @@ public class AccountingQuery4Service extends AccountingQueryBuilder { } } invocation = new AccountingQueryBasic(AggregatedServiceUsageRecord.class, - accountingFilterBasic.getScope(), accountingFilterBasic.isNoContext(), temporalConstraint, - filters); + accountingFilterBasic.getContext(), temporalConstraint, filters); } else { if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterTop) { @@ -95,28 +93,11 @@ public class AccountingQuery4Service extends AccountingQueryBuilder { } } invocation = new AccountingQueryTop(AggregatedServiceUsageRecord.class, - accountingFilterTop.getScope(), accountingFilterTop.getFilterKey(), - accountingFilterTop.getShowOthers(), accountingFilterTop.getTopNumber(), temporalConstraint, - filters); + accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(), + accountingFilterTop.getTopNumber(), temporalConstraint, filters); } else { - if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterContext) { - AccountingFilterContext accountingFilterContext = (AccountingFilterContext) seriesRequest - .getAccountingFilterDefinition(); - accountingFilters = accountingFilterContext.getFilters(); - filters = new ArrayList(); - if (accountingFilters != null) { - for (AccountingFilter accountigFilters : accountingFilters) { - Filter filter = new Filter(accountigFilters.getFilterKey().getKey(), - accountigFilters.getFilterValue()); - filters.add(filter); - } - } - invocation = new AccountingQueryContext(AggregatedServiceUsageRecord.class, - accountingFilterContext.getContext(), temporalConstraint, filters); - } else { - logger.error("Invalid Request: " + seriesRequest); - throw new ServiceException("Invalid Request!"); - } + logger.error("Invalid Request: " + seriesRequest); + throw new ServiceException("Invalid Request!"); } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Storage.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Storage.java index 8c71b6c..168f158 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Storage.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Storage.java @@ -11,7 +11,6 @@ import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord; import org.gcube.portlets.admin.accountingmanager.server.amservice.PeriodModeMap; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilter; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterContext; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterTop; import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; @@ -78,8 +77,7 @@ public class AccountingQuery4Storage extends AccountingQueryBuilder { } } invocation = new AccountingQueryBasic(AggregatedStorageUsageRecord.class, - accountingFilterBasic.getScope(), accountingFilterBasic.isNoContext(), temporalConstraint, - filters); + accountingFilterBasic.getContext(), temporalConstraint, filters); } else { if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterTop) { @@ -95,28 +93,11 @@ public class AccountingQuery4Storage extends AccountingQueryBuilder { } } invocation = new AccountingQueryTop(AggregatedStorageUsageRecord.class, - accountingFilterTop.getScope(), accountingFilterTop.getFilterKey(), - accountingFilterTop.getShowOthers(), accountingFilterTop.getTopNumber(), temporalConstraint, - filters); + accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(), + accountingFilterTop.getTopNumber(), temporalConstraint, filters); } else { - if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterContext) { - AccountingFilterContext accountingFilterContext = (AccountingFilterContext) seriesRequest - .getAccountingFilterDefinition(); - accountingFilters = accountingFilterContext.getFilters(); - filters = new ArrayList(); - if (accountingFilters != null) { - for (AccountingFilter accountigFilters : accountingFilters) { - Filter filter = new Filter(accountigFilters.getFilterKey().getKey(), - accountigFilters.getFilterValue()); - filters.add(filter); - } - } - invocation = new AccountingQueryContext(AggregatedStorageUsageRecord.class, - accountingFilterContext.getContext(), temporalConstraint, filters); - } else { - logger.error("Invalid Request: " + seriesRequest); - throw new ServiceException("Invalid Request!"); - } + logger.error("Invalid Request: " + seriesRequest); + throw new ServiceException("Invalid Request!"); } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Task.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Task.java index 7e00f41..5a61edf 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Task.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQuery4Task.java @@ -7,11 +7,9 @@ import java.util.GregorianCalendar; import org.gcube.accounting.analytics.Filter; import org.gcube.accounting.analytics.TemporalConstraint; -//import org.gcube.accounting.datamodel.aggregation.AggregatedTaskUsageRecord; import org.gcube.portlets.admin.accountingmanager.server.amservice.PeriodModeMap; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilter; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterContext; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterTop; import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; @@ -21,13 +19,12 @@ import org.slf4j.LoggerFactory; /** * Accounting Query 4 Task * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class AccountingQuery4Task extends AccountingQueryBuilder { - protected static Logger logger = LoggerFactory - .getLogger(AccountingQuery4Task.class); + protected static Logger logger = LoggerFactory.getLogger(AccountingQuery4Task.class); private SeriesRequest seriesRequest; public AccountingQuery4Task(SeriesRequest seriesRequest) { @@ -36,21 +33,17 @@ public class AccountingQuery4Task extends AccountingQueryBuilder { @Override public void buildOpEx() throws ServiceException { - Calendar startCalendar = GregorianCalendar - .getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); + Calendar startCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); try { - startCalendar.setTime(sdf.parse(seriesRequest.getAccountingPeriod() - .getStartDate())); + 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); + Calendar endCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); try { - endCalendar.setTime(sdf.parse(seriesRequest.getAccountingPeriod() - .getEndDate())); + endCalendar.setTime(sdf.parse(seriesRequest.getAccountingPeriod().getEndDate())); } catch (ParseException e) { e.printStackTrace(); throw new ServiceException("End Date not valid!"); @@ -62,17 +55,14 @@ public class AccountingQuery4Task extends AccountingQueryBuilder { endCalendar.set(GregorianCalendar.MILLISECOND, 999); @SuppressWarnings("unused") - TemporalConstraint temporalConstraint = new TemporalConstraint( - startCalendar.getTimeInMillis(), endCalendar.getTimeInMillis(), - PeriodModeMap.getMode(seriesRequest.getAccountingPeriod() - .getPeriod())); + TemporalConstraint temporalConstraint = new TemporalConstraint(startCalendar.getTimeInMillis(), + endCalendar.getTimeInMillis(), PeriodModeMap.getMode(seriesRequest.getAccountingPeriod().getPeriod())); ArrayList filters = null; ArrayList accountingFilters = null; AccountingQuery invocation = null; - if (seriesRequest != null - && seriesRequest.getAccountingFilterDefinition() != null) { + if (seriesRequest != null && seriesRequest.getAccountingFilterDefinition() != null) { if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterBasic) { AccountingFilterBasic accountingFilterBasic = (AccountingFilterBasic) seriesRequest .getAccountingFilterDefinition(); @@ -80,16 +70,16 @@ public class AccountingQuery4Task extends AccountingQueryBuilder { filters = new ArrayList(); if (accountingFilters != null) { for (AccountingFilter accountigFilters : accountingFilters) { - Filter filter = new Filter(accountigFilters - .getFilterKey().getKey(), + Filter filter = new Filter(accountigFilters.getFilterKey().getKey(), accountigFilters.getFilterValue()); filters.add(filter); } } - /*invocation = new AccountingQueryBasic( - AggregatedTaskUsageRecord.class, temporalConstraint, - filters, accountingFilterBasic.isNoContext()); - */ + /* + * invocation = new AccountingQueryBasic( + * AggregatedTaskUsageRecord.class, temporalConstraint, filters, + * accountingFilterBasic.isNoContext()); + */ } else { if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterTop) { AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest @@ -98,42 +88,22 @@ public class AccountingQuery4Task extends AccountingQueryBuilder { filters = new ArrayList(); if (accountingFilters != null) { for (AccountingFilter accountigFilters : accountingFilters) { - Filter filter = new Filter(accountigFilters - .getFilterKey().getKey(), + Filter filter = new Filter(accountigFilters.getFilterKey().getKey(), accountigFilters.getFilterValue()); filters.add(filter); } } - /*invocation = new AccountingQueryTop( - AggregatedTaskUsageRecord.class, - accountingFilterTop.getFilterKey(), - accountingFilterTop.getShowOthers(), - accountingFilterTop.getTopNumber(), - temporalConstraint, filters);*/ + /* + * invocation = new AccountingQueryTop( + * AggregatedTaskUsageRecord.class, + * accountingFilterTop.getFilterKey(), + * accountingFilterTop.getShowOthers(), + * accountingFilterTop.getTopNumber(), temporalConstraint, + * filters); + */ } else { - if (seriesRequest.getAccountingFilterDefinition() instanceof AccountingFilterContext) { - AccountingFilterContext accountingFilterContext = (AccountingFilterContext) seriesRequest - .getAccountingFilterDefinition(); - accountingFilters = accountingFilterContext.getFilters(); - filters = new ArrayList(); - if (accountingFilters != null) { - for (AccountingFilter accountigFilters : accountingFilters) { - Filter filter = new Filter(accountigFilters - .getFilterKey().getKey(), - accountigFilters.getFilterValue()); - filters.add(filter); - } - } - /*invocation = new AccountingQueryContext( - AggregatedTaskUsageRecord.class, - accountingFilterContext.getContext(), - temporalConstraint, - filters);*/ - } else { - logger.error("Invalid Request: " + seriesRequest); - throw new ServiceException( - "Invalid Request!"); - } + logger.error("Invalid Request: " + seriesRequest); + throw new ServiceException("Invalid Request!"); } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryBasic.java index 7c8f733..1184ae2 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryBasic.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryBasic.java @@ -6,6 +6,7 @@ import org.gcube.accounting.analytics.Filter; import org.gcube.accounting.analytics.TemporalConstraint; import org.gcube.accounting.datamodel.AggregatedUsageRecord; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; +import org.gcube.portlets.admin.accountingmanager.shared.data.Context; /** * @@ -15,20 +16,18 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; */ public class AccountingQueryBasic extends AccountingQuery { private Class> type; - private String scope; - private boolean noContext; + private Context context; private TemporalConstraint temporalConstraint; private ArrayList filters; - public AccountingQueryBasic(Class> type, String scope, boolean noContext, + public AccountingQueryBasic(Class> type, Context context, TemporalConstraint temporalConstraint, ArrayList filters) { super(); chartType = ChartType.Basic; this.type = type; this.temporalConstraint = temporalConstraint; - this.scope = scope; + this.context = context; this.filters = filters; - this.noContext = noContext; } public Class> getType() { @@ -47,12 +46,13 @@ public class AccountingQueryBasic extends AccountingQuery { this.temporalConstraint = temporalConstraint; } - public String getScope() { - return scope; + + public Context getContext() { + return context; } - public void setScope(String scope) { - this.scope = scope; + public void setContext(Context context) { + this.context = context; } public ArrayList getFilters() { @@ -63,18 +63,10 @@ public class AccountingQueryBasic extends AccountingQuery { this.filters = filters; } - public boolean isNoContext() { - return noContext; - } - - public void setNoContext(boolean noContext) { - this.noContext = noContext; - } - @Override public String toString() { - return "AccountingQueryBasic [type=" + type + ", temporalConstraint=" + temporalConstraint + ", scope=" + scope - + ", filters=" + filters + ", noContext=" + noContext + "]"; + return "AccountingQueryBasic [type=" + type + ", context=" + context + ", temporalConstraint=" + + temporalConstraint + ", filters=" + filters + "]"; } } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryContext.java deleted file mode 100644 index 4376338..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryContext.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.server.amservice.query; - -import java.util.ArrayList; - -import org.gcube.accounting.analytics.Filter; -import org.gcube.accounting.analytics.TemporalConstraint; -import org.gcube.accounting.datamodel.AggregatedUsageRecord; -import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class AccountingQueryContext extends AccountingQuery { - private Class> type; - private Context context; - private TemporalConstraint temporalConstraint; - private ArrayList filters; - - public AccountingQueryContext(Class> type, Context context, - TemporalConstraint temporalConstraint, ArrayList filters) { - super(); - chartType = ChartType.Context; - this.type = type; - this.temporalConstraint = temporalConstraint; - this.filters = filters; - this.context = context; - } - - public Class> getType() { - return type; - } - - public void setType(Class> type) { - this.type = type; - } - - public TemporalConstraint getTemporalConstraint() { - return temporalConstraint; - } - - public void setTemporalConstraint(TemporalConstraint temporalConstraint) { - this.temporalConstraint = temporalConstraint; - } - - public ArrayList getFilters() { - return filters; - } - - public void setFilters(ArrayList filters) { - this.filters = filters; - } - - public Context getContext() { - return context; - } - - public void setContext(Context context) { - this.context = context; - } - - @Override - public String toString() { - return "AccountingQueryContext [type=" + type + ", context=" + context + ", temporalConstraint=" - + temporalConstraint + ", filters=" + filters + "]"; - } - -} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryTop.java index 394c8ec..9d45e3d 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/query/AccountingQueryTop.java @@ -6,6 +6,7 @@ import org.gcube.accounting.analytics.Filter; import org.gcube.accounting.analytics.TemporalConstraint; import org.gcube.accounting.datamodel.AggregatedUsageRecord; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; +import org.gcube.portlets.admin.accountingmanager.shared.data.Context; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterKey; /** @@ -16,23 +17,21 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.FilterKey; */ public class AccountingQueryTop extends AccountingQuery { private Class> type; - private String scope; + private Context context; private FilterKey filterKey; private Integer topNumber; - private Boolean showOthers; private TemporalConstraint temporalConstraint; private ArrayList filters; - public AccountingQueryTop(Class> type, String scope, FilterKey filterKey, - Boolean showOthers, Integer topNumber, TemporalConstraint temporalConstraint, ArrayList filters) { + public AccountingQueryTop(Class> type, Context context, FilterKey filterKey, + Integer topNumber, TemporalConstraint temporalConstraint, ArrayList filters) { super(); chartType = ChartType.Top; this.type = type; - this.scope = scope; + this.context = context; this.temporalConstraint = temporalConstraint; this.filters = filters; this.filterKey = filterKey; - this.showOthers = showOthers; this.topNumber = topNumber; } @@ -44,12 +43,12 @@ public class AccountingQueryTop extends AccountingQuery { this.type = type; } - public String getScope() { - return scope; + public Context getContext() { + return context; } - public void setScope(String scope) { - this.scope = scope; + public void setContext(Context context) { + this.context = context; } public TemporalConstraint getTemporalConstraint() { @@ -76,14 +75,6 @@ public class AccountingQueryTop extends AccountingQuery { this.filterKey = filterKey; } - public Boolean getShowOthers() { - return showOthers; - } - - public void setShowOthers(Boolean showOthers) { - this.showOthers = showOthers; - } - public Integer getTopNumber() { return topNumber; } @@ -94,9 +85,9 @@ public class AccountingQueryTop extends AccountingQuery { @Override public String toString() { - return "AccountingQueryTop [type=" + type + ", scope=" + scope + ", filterKey=" + filterKey + ", topNumber=" - + topNumber + ", showOthers=" + showOthers + ", temporalConstraint=" + temporalConstraint + ", filters=" - + filters + "]"; + return "AccountingQueryTop [type=" + type + ", context=" + context + ", filterKey=" + filterKey + ", topNumber=" + + topNumber + ", temporalConstraint=" + temporalConstraint + ", filters=" + filters + ", chartType=" + + chartType + "]"; } } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java index ae716a8..d61df82 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java @@ -5,11 +5,11 @@ import java.util.List; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.datamodel.aggregation.AggregatedJobUsageRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobBasic; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,14 +39,15 @@ public class SeriesResponse4JobBasic extends SeriesResponseBuilder { ArrayList series = new ArrayList(); for (Info info : infos) { - JSONObject jso = info.getValue(); - Long duration = jso.getLong(AggregatedJobUsageRecord.DURATION); + JsonNode jso = info.getValue(); + + Long duration = jso.get(AggregatedJobUsageRecord.DURATION).asLong(); Long operationCount = jso - .getLong(AggregatedJobUsageRecord.OPERATION_COUNT); + .get(AggregatedJobUsageRecord.OPERATION_COUNT).asLong(); Long maxInvocationTime = jso - .getLong(AggregatedJobUsageRecord.MAX_INVOCATION_TIME); + .get(AggregatedJobUsageRecord.MAX_INVOCATION_TIME).asLong(); Long minInvocationTime = jso - .getLong(AggregatedJobUsageRecord.MIN_INVOCATION_TIME); + .get(AggregatedJobUsageRecord.MIN_INVOCATION_TIME).asLong(); series.add(new SeriesJobData(info.getCalendar().getTime(), operationCount, duration, maxInvocationTime, diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobContext.java deleted file mode 100644 index ff9b131..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobContext.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.server.amservice.response; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.SortedMap; - -import org.gcube.accounting.analytics.Filter; -import org.gcube.accounting.analytics.Info; -import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataContext; -import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Context Series Response 4 Job - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesResponse4JobContext extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4JobContext.class); - private Context context; - private SortedMap> contextSM; - - public SeriesResponse4JobContext(Context context, - SortedMap> contextSM) { - this.context=context; - this.contextSM = contextSM; - } - - @Override - public void buildSeriesResponse() throws ServiceException { - try { - if (contextSM == null || contextSM.isEmpty()) { - logger.error("Error creating series for job accounting: No data available!"); - throw new ServiceException("No data available!"); - } - - ArrayList seriesJobDataContextList = new ArrayList<>(); - - for (Filter contextValue : contextSM.keySet()) { - - ArrayList series = new ArrayList<>(); - SortedMap infos = contextSM.get(contextValue); - for (Info info : infos.values()) { - JSONObject jso = info.getValue(); - Long duration = jso - .getLong(AggregatedServiceUsageRecord.DURATION); - Long operationCount = jso - .getLong(AggregatedServiceUsageRecord.OPERATION_COUNT); - Long maxInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME); - Long minInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME); - - series.add(new SeriesJobData(info.getCalendar().getTime(), - operationCount, duration, maxInvocationTime, - minInvocationTime)); - - } - SeriesJobDataContext seriesJobDataContext = new SeriesJobDataContext( - contextValue.getValue(), series); - seriesJobDataContextList.add(seriesJobDataContext); - - } - - SeriesJobContext seriesJobContext = new SeriesJobContext(context, - seriesJobDataContextList); - SeriesJob seriesService = new SeriesJob(seriesJobContext); - - seriesResponseSpec.setSr(seriesService); - - } catch (Throwable e) { - logger.error("Error creating series for job accounting context chart: " - + e.getLocalizedMessage()); - e.printStackTrace(); - throw new ServiceException( - "Error creating series for job accounting context chart: " - + e.getLocalizedMessage()); - } - - } -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java index 25f4ba9..c6365f9 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java @@ -7,13 +7,13 @@ import java.util.SortedMap; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobTop; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,13 +27,11 @@ import org.slf4j.LoggerFactory; public class SeriesResponse4JobTop extends SeriesResponseBuilder { protected static Logger logger = LoggerFactory .getLogger(SeriesResponse4JobTop.class); - private Boolean showOthers; private Integer topNumber; private SortedMap> topSM; - public SeriesResponse4JobTop(Boolean showOthers, Integer topNumber, + public SeriesResponse4JobTop(Integer topNumber, SortedMap> topSM) { - this.showOthers = showOthers; this.topNumber = topNumber; this.topSM = topSM; } @@ -55,15 +53,15 @@ public class SeriesResponse4JobTop extends SeriesResponseBuilder { ArrayList series = new ArrayList<>(); SortedMap infos = topSM.get(topValue); for (Info info : infos.values()) { - JSONObject jso = info.getValue(); + JsonNode jso = info.getValue(); Long duration = jso - .getLong(AggregatedServiceUsageRecord.DURATION); + .get(AggregatedServiceUsageRecord.DURATION).asLong(); Long operationCount = jso - .getLong(AggregatedServiceUsageRecord.OPERATION_COUNT); + .get(AggregatedServiceUsageRecord.OPERATION_COUNT).asLong(); Long maxInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME); + .get(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME).asLong(); Long minInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME); + .get(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME).asLong(); series.add(new SeriesJobData(info.getCalendar() .getTime(), operationCount, duration, @@ -76,7 +74,7 @@ public class SeriesResponse4JobTop extends SeriesResponseBuilder { } - SeriesJobTop seriesJobTop = new SeriesJobTop(showOthers,topNumber, + SeriesJobTop seriesJobTop = new SeriesJobTop(topNumber, seriesJobDataTopList); SeriesJob seriesService = new SeriesJob(seriesJobTop); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4PortletContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4PortletContext.java deleted file mode 100644 index 30fc7fb..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4PortletContext.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.server.amservice.response; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.SortedMap; - -import org.gcube.accounting.analytics.Filter; -import org.gcube.accounting.analytics.Info; -import org.gcube.accounting.datamodel.aggregation.AggregatedPortletUsageRecord; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesPortlet; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet.SeriesPortletContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet.SeriesPortletData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet.SeriesPortletDataContext; -import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Context Series Response 4 Portlet - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesResponse4PortletContext extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4PortletContext.class); - private Context context; - private SortedMap> contextSM; - - public SeriesResponse4PortletContext(Context context, - SortedMap> contextSM) { - this.context = context; - this.contextSM = contextSM; - } - - @Override - public void buildSeriesResponse() throws ServiceException { - try { - if (contextSM == null || contextSM.isEmpty()) { - logger.error("Error creating series for portlet accounting: No data available!"); - throw new ServiceException("No data available!"); - } - - ArrayList seriesPortletDataContextList = new ArrayList<>(); - - for (Filter contextValue : contextSM.keySet()) { - - ArrayList series = new ArrayList<>(); - SortedMap infos = contextSM.get(contextValue); - for (Info info : infos.values()) { - JSONObject jso = info.getValue(); - // Long duration = - // jso.getLong(AggregatedPortletUsageRecord.DURATION); - Long operationCount = jso - .getLong(AggregatedPortletUsageRecord.OPERATION_COUNT); - // Long maxInvocationTime = - // jso.getLong(AggregatedPortletUsageRecord.MAX_INVOCATION_TIME); - // Long minInvocationTime = - // jso.getLong(AggregatedPortletUsageRecord.MIN_INVOCATION_TIME); - - series.add(new SeriesPortletData(info.getCalendar() - .getTime(), operationCount)); - } - SeriesPortletDataContext seriesPortletDataContext = new SeriesPortletDataContext( - contextValue.getValue(), series); - seriesPortletDataContextList.add(seriesPortletDataContext); - - } - - SeriesPortletContext seriesPortletContext = new SeriesPortletContext( - context, seriesPortletDataContextList); - SeriesPortlet seriesPortlet = new SeriesPortlet( - seriesPortletContext); - - seriesResponseSpec.setSr(seriesPortlet); - - } catch (Throwable e) { - logger.error("Error creating series for portlet accounting context chart: " - + e.getLocalizedMessage()); - e.printStackTrace(); - throw new ServiceException( - "Error creating series for portlet accounting context chart: " - + e.getLocalizedMessage()); - } - } -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4PortletTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4PortletTop.java index d35c622..90708fe 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4PortletTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4PortletTop.java @@ -7,13 +7,13 @@ import java.util.SortedMap; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.datamodel.aggregation.AggregatedPortletUsageRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesPortlet; import org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet.SeriesPortletData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet.SeriesPortletDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet.SeriesPortletTop; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,13 +27,11 @@ import org.slf4j.LoggerFactory; public class SeriesResponse4PortletTop extends SeriesResponseBuilder { protected static Logger logger = LoggerFactory .getLogger(SeriesResponse4PortletTop.class); - private Boolean showOthers; private Integer topNumber; private SortedMap> topSM; - public SeriesResponse4PortletTop(Boolean showOthers, Integer topNumber, + public SeriesResponse4PortletTop(Integer topNumber, SortedMap> topSM) { - this.showOthers = showOthers; this.topNumber = topNumber; this.topSM = topSM; } @@ -53,11 +51,11 @@ public class SeriesResponse4PortletTop extends SeriesResponseBuilder { ArrayList series = new ArrayList<>(); SortedMap infos = topSM.get(topValue); for (Info info : infos.values()) { - JSONObject jso = info.getValue(); + JsonNode jso = info.getValue(); // Long duration = // jso.getLong(AggregatedPortletUsageRecord.DURATION); Long operationCount = jso - .getLong(AggregatedPortletUsageRecord.OPERATION_COUNT); + .get(AggregatedPortletUsageRecord.OPERATION_COUNT).asLong(); // Long maxInvocationTime = // jso.getLong(AggregatedPortletUsageRecord.MAX_INVOCATION_TIME); // Long minInvocationTime = @@ -72,8 +70,7 @@ public class SeriesResponse4PortletTop extends SeriesResponseBuilder { } - SeriesPortletTop seriesPortletTop = new SeriesPortletTop( - showOthers, topNumber, seriesPortletDataTopList); + SeriesPortletTop seriesPortletTop = new SeriesPortletTop(topNumber, seriesPortletDataTopList); SeriesPortlet seriesPortlet = new SeriesPortlet(seriesPortletTop); seriesResponseSpec.setSr(seriesPortlet); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java index 7aff2c1..428a3ec 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java @@ -5,11 +5,11 @@ import java.util.List; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; 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; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,15 +39,15 @@ public class SeriesResponse4ServiceBasic extends SeriesResponseBuilder { ArrayList series = new ArrayList(); for (Info info : infos) { - JSONObject jso = info.getValue(); + JsonNode jso = info.getValue(); Long duration = jso - .getLong(AggregatedServiceUsageRecord.DURATION); + .get(AggregatedServiceUsageRecord.DURATION).asLong(); Long operationCount = jso - .getLong(AggregatedServiceUsageRecord.OPERATION_COUNT); + .get(AggregatedServiceUsageRecord.OPERATION_COUNT).asLong(); Long maxInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME); + .get(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME).asLong(); Long minInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME); + .get(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME).asLong(); series.add(new SeriesServiceData(info.getCalendar().getTime(), operationCount, duration, maxInvocationTime, diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceContext.java deleted file mode 100644 index 7bf9e98..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceContext.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.server.amservice.response; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.SortedMap; - -import org.gcube.accounting.analytics.Filter; -import org.gcube.accounting.analytics.Info; -import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesService; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDataContext; -import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Context Series Response 4 Service - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesResponse4ServiceContext extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4ServiceContext.class); - private Context context; - private SortedMap> contextSM; - - public SeriesResponse4ServiceContext(Context context, - SortedMap> contextSM) { - this.context = context; - this.contextSM = contextSM; - } - - @Override - public void buildSeriesResponse() throws ServiceException { - try { - if (contextSM == null || contextSM.isEmpty()) { - logger.error("Error creating series for service accounting: No data available!"); - throw new ServiceException("No data available!"); - } - - ArrayList seriesServiceDataContextList = new ArrayList<>(); - - for (Filter contextValue : contextSM.keySet()) { - - ArrayList series = new ArrayList<>(); - SortedMap infos = contextSM.get(contextValue); - for (Info info : infos.values()) { - JSONObject jso = info.getValue(); - Long duration = jso - .getLong(AggregatedServiceUsageRecord.DURATION); - Long operationCount = jso - .getLong(AggregatedServiceUsageRecord.OPERATION_COUNT); - Long maxInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME); - Long minInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME); - - series.add(new SeriesServiceData(info.getCalendar() - .getTime(), operationCount, duration, - maxInvocationTime, minInvocationTime)); - - } - SeriesServiceDataContext seriesServiceDataContext = new SeriesServiceDataContext( - contextValue.getValue(), series); - seriesServiceDataContextList.add(seriesServiceDataContext); - - } - - SeriesServiceContext seriesServiceContext = new SeriesServiceContext(context, - seriesServiceDataContextList); - SeriesService seriesService = new SeriesService( - seriesServiceContext); - - seriesResponseSpec.setSr(seriesService); - - } catch (Throwable e) { - logger.error("Error creating series for service accounting context chart: " - + e.getLocalizedMessage()); - e.printStackTrace(); - throw new ServiceException( - "Error creating series for service accounting context chart: " - + e.getLocalizedMessage()); - } - - } -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java index 2b52aab..be3958c 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java @@ -7,33 +7,29 @@ import java.util.SortedMap; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesService; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceTop; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Top Series Response 4 Service * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4ServiceTop.class); - private Boolean showOthers; + protected static Logger logger = LoggerFactory.getLogger(SeriesResponse4ServiceTop.class); private Integer topNumber; private SortedMap> topSM; - public SeriesResponse4ServiceTop(Boolean showOthers, Integer topNumber, - SortedMap> topSM) { - this.showOthers = showOthers; + public SeriesResponse4ServiceTop(Integer topNumber, SortedMap> topSM) { this.topNumber = topNumber; this.topSM = topSM; } @@ -53,18 +49,13 @@ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder { ArrayList series = new ArrayList<>(); SortedMap infos = topSM.get(topValue); for (Info info : infos.values()) { - JSONObject jso = info.getValue(); - Long duration = jso - .getLong(AggregatedServiceUsageRecord.DURATION); - Long operationCount = jso - .getLong(AggregatedServiceUsageRecord.OPERATION_COUNT); - Long maxInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME); - Long minInvocationTime = jso - .getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME); + JsonNode jso = info.getValue(); + Long duration = jso.get(AggregatedServiceUsageRecord.DURATION).asLong(); + Long operationCount = jso.get(AggregatedServiceUsageRecord.OPERATION_COUNT).asLong(); + Long maxInvocationTime = jso.get(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME).asLong(); + Long minInvocationTime = jso.get(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME).asLong(); - series.add(new SeriesServiceData(info.getCalendar() - .getTime(), operationCount, duration, + series.add(new SeriesServiceData(info.getCalendar().getTime(), operationCount, duration, maxInvocationTime, minInvocationTime)); } @@ -74,19 +65,16 @@ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder { } - SeriesServiceTop seriesServiceTop = new SeriesServiceTop( - showOthers, topNumber, seriesServiceDataTopList); + SeriesServiceTop seriesServiceTop = new SeriesServiceTop(topNumber, seriesServiceDataTopList); SeriesService seriesService = new SeriesService(seriesServiceTop); seriesResponseSpec.setSr(seriesService); } catch (Throwable e) { - logger.error("Error creating series for service accounting top chart: " - + e.getLocalizedMessage()); + logger.error("Error creating series for service accounting top chart: " + e.getLocalizedMessage()); e.printStackTrace(); throw new ServiceException( - "Error creating series for service accounting top chart: " - + e.getLocalizedMessage()); + "Error creating series for service accounting top chart: " + e.getLocalizedMessage()); } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4SpaceSpaces.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4SpaceSpaces.java index 5b92744..906d58e 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4SpaceSpaces.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4SpaceSpaces.java @@ -5,11 +5,14 @@ import java.util.Calendar; import java.util.SortedMap; import org.gcube.accounting.analytics.Filter; +import org.gcube.accounting.analytics.Info; +import org.gcube.accounting.datamodel.aggregation.AggregatedStorageStatusRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.portlets.admin.accountingmanager.shared.data.Spaces; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesSpace; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceSpaces; import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceDataSpaces; +import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceSpaces; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,10 +28,10 @@ public class SeriesResponse4SpaceSpaces extends SeriesResponseBuilder { protected static Logger logger = LoggerFactory .getLogger(SeriesResponse4SpaceSpaces.class); private Spaces spaces; - private SortedMap> spaceSM; + private SortedMap> spaceSM; public SeriesResponse4SpaceSpaces(Spaces spaces, - SortedMap> spaceSM) { + SortedMap> spaceSM) { this.spaces = spaces; this.spaceSM = spaceSM; } @@ -46,11 +49,13 @@ public class SeriesResponse4SpaceSpaces extends SeriesResponseBuilder { for (Filter spaceValue : spaceSM.keySet()) { ArrayList series = new ArrayList<>(); - SortedMap infos = spaceSM.get(spaceValue); + SortedMap infos = spaceSM.get(spaceValue); for (Calendar calendar : infos.keySet()) { - Long value = infos.get(calendar); - if(value==null){ - value=0L; + Info info = infos.get(calendar); + Long value=0L; + if(info!=null){ + JsonNode jso=info.getValue(); + value=jso.get(AggregatedStorageStatusRecord.DATA_VOLUME).asLong(); } series.add(new SeriesSpaceData(calendar.getTime(), value)); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageBasic.java index 465681e..24b0a8f 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageBasic.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageBasic.java @@ -5,11 +5,11 @@ import java.util.List; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesStorage; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageBasic; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageData; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,10 +39,10 @@ public class SeriesResponse4StorageBasic extends SeriesResponseBuilder { ArrayList series=new ArrayList(); for (Info info : infos) { - JSONObject jso = info.getValue(); - Long dataVolume = jso.getLong(AggregatedStorageUsageRecord.DATA_VOLUME); + JsonNode jso = info.getValue(); + Long dataVolume = jso.get(AggregatedStorageUsageRecord.DATA_VOLUME).asLong(); Long operationCount = jso - .getLong(AggregatedStorageUsageRecord.OPERATION_COUNT); + .get(AggregatedStorageUsageRecord.OPERATION_COUNT).asLong(); series.add(new SeriesStorageData(info.getCalendar().getTime(), dataVolume, operationCount)); } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageContext.java deleted file mode 100644 index d6b587b..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageContext.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.server.amservice.response; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.SortedMap; - -import org.gcube.accounting.analytics.Filter; -import org.gcube.accounting.analytics.Info; -import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesStorage; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDataContext; -import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Context Series Response 4 Storage - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesResponse4StorageContext extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4StorageContext.class); - private Context context; - private SortedMap> contextSM; - - public SeriesResponse4StorageContext(Context context, - SortedMap> contextSM) { - this.context = context; - this.contextSM = contextSM; - - } - - @Override - public void buildSeriesResponse() throws ServiceException { - try { - if (contextSM == null || contextSM.isEmpty()) { - logger.error("Error creating series for storage accounting: No data available!"); - throw new ServiceException("No data available!"); - } - - ArrayList seriesStorageDataContextList = new ArrayList<>(); - - for (Filter contextValue : contextSM.keySet()) { - - ArrayList series = new ArrayList<>(); - SortedMap infos = contextSM.get(contextValue); - for (Info info : infos.values()) { - JSONObject jso = info.getValue(); - Long dataVolume = jso - .getLong(AggregatedStorageUsageRecord.DATA_VOLUME); - Long operationCount = jso - .getLong(AggregatedStorageUsageRecord.OPERATION_COUNT); - series.add(new SeriesStorageData(info.getCalendar() - .getTime(), dataVolume, operationCount)); - - } - SeriesStorageDataContext seriesStorageDataContext = new SeriesStorageDataContext( - contextValue.getValue(), series); - seriesStorageDataContextList.add(seriesStorageDataContext); - - } - - SeriesStorageContext seriesStorageContext = new SeriesStorageContext( - context, seriesStorageDataContextList); - SeriesStorage seriesStorage = new SeriesStorage( - seriesStorageContext); - - seriesResponseSpec.setSr(seriesStorage); - } catch (Throwable e) { - logger.error("Error creating series for storage accounting context chart: " - + e.getLocalizedMessage()); - e.printStackTrace(); - throw new ServiceException( - "Error creating series for storage accounting context chart: " - + e.getLocalizedMessage()); - } - } -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageTop.java index f342151..6306cd1 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4StorageTop.java @@ -7,33 +7,29 @@ import java.util.SortedMap; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesStorage; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageData; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageTop; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Top Series Response 4 Storage * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class SeriesResponse4StorageTop extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4StorageTop.class); - private Boolean showOthers; + protected static Logger logger = LoggerFactory.getLogger(SeriesResponse4StorageTop.class); private Integer topNumber; private SortedMap> topSM; - public SeriesResponse4StorageTop(Boolean showOthers, Integer topNumber, - SortedMap> topSM) { - this.showOthers = showOthers; + public SeriesResponse4StorageTop(Integer topNumber, SortedMap> topSM) { this.topNumber = topNumber; this.topSM = topSM; @@ -54,13 +50,10 @@ public class SeriesResponse4StorageTop extends SeriesResponseBuilder { ArrayList series = new ArrayList<>(); SortedMap infos = topSM.get(topValue); for (Info info : infos.values()) { - JSONObject jso = info.getValue(); - Long dataVolume = jso - .getLong(AggregatedStorageUsageRecord.DATA_VOLUME); - Long operationCount = jso - .getLong(AggregatedStorageUsageRecord.OPERATION_COUNT); - series.add(new SeriesStorageData(info.getCalendar() - .getTime(), dataVolume, operationCount)); + JsonNode jso = info.getValue(); + Long dataVolume = jso.get(AggregatedStorageUsageRecord.DATA_VOLUME).asLong(); + Long operationCount = jso.get(AggregatedStorageUsageRecord.OPERATION_COUNT).asLong(); + series.add(new SeriesStorageData(info.getCalendar().getTime(), dataVolume, operationCount)); } SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop( @@ -69,18 +62,15 @@ public class SeriesResponse4StorageTop extends SeriesResponseBuilder { } - SeriesStorageTop seriesStorageTop = new SeriesStorageTop( - showOthers, topNumber, seriesStorageDataTopList); + SeriesStorageTop seriesStorageTop = new SeriesStorageTop(topNumber, seriesStorageDataTopList); SeriesStorage seriesStorage = new SeriesStorage(seriesStorageTop); seriesResponseSpec.setSr(seriesStorage); } catch (Throwable e) { - logger.error("Error creating series for storage accounting top chart: " - + e.getLocalizedMessage()); + logger.error("Error creating series for storage accounting top chart: " + e.getLocalizedMessage()); e.printStackTrace(); throw new ServiceException( - "Error creating series for storage accounting basic chart: " - + e.getLocalizedMessage()); + "Error creating series for storage accounting basic chart: " + e.getLocalizedMessage()); } } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4TaskContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4TaskContext.java deleted file mode 100644 index 7ec753e..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4TaskContext.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.server.amservice.response; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.SortedMap; - -import org.gcube.accounting.analytics.Filter; -import org.gcube.accounting.analytics.Info; -//import org.gcube.accounting.datamodel.aggregation.AggregatedTaskUsageRecord; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesTask; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.task.SeriesTaskContext; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.task.SeriesTaskData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.task.SeriesTaskDataContext; -import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Context Series Response 4 Task - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesResponse4TaskContext extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4TaskContext.class); - private Context context; - private SortedMap> contextSM; - - public SeriesResponse4TaskContext(Context context, - SortedMap> contextSM) { - this.context = context; - this.contextSM = contextSM; - } - - @Override - public void buildSeriesResponse() throws ServiceException { - try { - if (contextSM == null || contextSM.isEmpty()) { - logger.error("Error creating series for task accounting: No data available!"); - throw new ServiceException("No data available!"); - } - - ArrayList seriesTaskDataContextList = new ArrayList<>(); - - for (Filter contextValue : contextSM.keySet()) { - - ArrayList series = new ArrayList<>(); - SortedMap infos = contextSM.get(contextValue); - for (Info info : infos.values()) { - @SuppressWarnings("unused") - JSONObject jso = info.getValue(); - // Long duration = - // jso.getLong(AggregatedTaskUsageRecord.DURATION); - //Long operationCount = jso - // .getLong(AggregatedTaskUsageRecord.OPERATION_COUNT); - // Long maxInvocationTime = - // jso.getLong(AggregatedTaskUsageRecord.MAX_INVOCATION_TIME); - // Long minInvocationTime = - // jso.getLong(AggregatedTaskUsageRecord.MIN_INVOCATION_TIME); - - //series.add(new SeriesTaskData(info.getCalendar().getTime(), - // operationCount)); - } - SeriesTaskDataContext seriesTaskDataContext = new SeriesTaskDataContext( - contextValue.getValue(), series); - seriesTaskDataContextList.add(seriesTaskDataContext); - - } - - SeriesTaskContext seriesTaskContext = new SeriesTaskContext( - context, seriesTaskDataContextList); - SeriesTask seriesTask = new SeriesTask(seriesTaskContext); - - seriesResponseSpec.setSr(seriesTask); - - } catch (Throwable e) { - logger.error("Error creating series for portlet accounting context chart: " - + e.getLocalizedMessage()); - e.printStackTrace(); - throw new ServiceException( - "Error creating series for portlet accounting context chart: " - + e.getLocalizedMessage()); - } - } -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4TaskTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4TaskTop.java index b5d58f0..b98737f 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4TaskTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4TaskTop.java @@ -6,6 +6,7 @@ import java.util.SortedMap; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.NumberedFilter; +import org.gcube.com.fasterxml.jackson.databind.JsonNode; //import org.gcube.accounting.datamodel.aggregation.AggregatedTaskUsageRecord; import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesTask; @@ -13,27 +14,22 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.response.task.Seri import org.gcube.portlets.admin.accountingmanager.shared.data.response.task.SeriesTaskDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.task.SeriesTaskTop; import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Top Series Response 4 Task * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class SeriesResponse4TaskTop extends SeriesResponseBuilder { - protected static Logger logger = LoggerFactory - .getLogger(SeriesResponse4TaskTop.class); - private Boolean showOthers; + protected static Logger logger = LoggerFactory.getLogger(SeriesResponse4TaskTop.class); private Integer topNumber; private SortedMap> topSM; - public SeriesResponse4TaskTop(Boolean showOthers, Integer topNumber, - SortedMap> topSM) { - this.showOthers = showOthers; + public SeriesResponse4TaskTop(Integer topNumber, SortedMap> topSM) { this.topNumber = topNumber; this.topSM = topSM; } @@ -54,38 +50,36 @@ public class SeriesResponse4TaskTop extends SeriesResponseBuilder { SortedMap infos = topSM.get(topValue); for (Info info : infos.values()) { @SuppressWarnings("unused") - JSONObject jso = info.getValue(); + JsonNode jso = info.getValue(); // Long duration = // jso.getLong(AggregatedTaskUsageRecord.DURATION); - //Long operationCount = jso - // .getLong(AggregatedTaskUsageRecord.OPERATION_COUNT); + // Long operationCount = jso + // .getLong(AggregatedTaskUsageRecord.OPERATION_COUNT); // Long maxInvocationTime = // jso.getLong(AggregatedTaskUsageRecord.MAX_INVOCATION_TIME); // Long minInvocationTime = // jso.getLong(AggregatedTaskUsageRecord.MIN_INVOCATION_TIME); - //series.add(new SeriesTaskData(info.getCalendar().getTime(), - // operationCount)); + // series.add(new + // SeriesTaskData(info.getCalendar().getTime(), + // operationCount)); } - SeriesTaskDataTop seriesTaskDataTop = new SeriesTaskDataTop( - new FilterValue(topValue.getValue()), series); + SeriesTaskDataTop seriesTaskDataTop = new SeriesTaskDataTop(new FilterValue(topValue.getValue()), + series); seriesTaskDataTopList.add(seriesTaskDataTop); } - SeriesTaskTop seriesTaskTop = new SeriesTaskTop(showOthers, - topNumber, seriesTaskDataTopList); + SeriesTaskTop seriesTaskTop = new SeriesTaskTop(topNumber, seriesTaskDataTopList); SeriesTask seriesTask = new SeriesTask(seriesTaskTop); seriesResponseSpec.setSr(seriesTask); } catch (Throwable e) { - logger.error("Error creating series for portlet accounting top chart: " - + e.getLocalizedMessage()); + logger.error("Error creating series for portlet accounting top chart: " + e.getLocalizedMessage()); e.printStackTrace(); throw new ServiceException( - "Error creating series for portlet accounting top chart: " - + e.getLocalizedMessage()); + "Error creating series for portlet accounting top chart: " + e.getLocalizedMessage()); } } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Job.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Job.java index 26ad7ec..0aab0ef 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Job.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Job.java @@ -10,9 +10,7 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesReques import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesResponse; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDefinition; import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobTop; @@ -23,13 +21,12 @@ import org.slf4j.LoggerFactory; /** * Accounting Model 4 Job * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class AccountingModel4Job extends AccountingModelBuilder { - protected static Logger logger = LoggerFactory - .getLogger(AccountingModel4Job.class); + protected static Logger logger = LoggerFactory.getLogger(AccountingModel4Job.class); private AccountingStateData accountingStateData; public AccountingModel4Job(AccountingStateData accountingStateData) { @@ -42,35 +39,30 @@ public class AccountingModel4Job extends AccountingModelBuilder { if (seriesRequest == null) { logger.error("Error series request is null"); - throw new ServiceException( - "Error series request is null"); + throw new ServiceException("Error series request is null"); } - String startDate=""; + String startDate = ""; try { - startDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod() - .getStartDate())); + startDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod().getStartDate())); } catch (ParseException e) { e.printStackTrace(); } - - String endDate=""; + + String endDate = ""; try { - endDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod() - .getEndDate())); + endDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod().getEndDate())); } catch (ParseException e) { e.printStackTrace(); } - String periodType = seriesRequest.getAccountingPeriod().getPeriod() - .getLabel(); + String periodType = seriesRequest.getAccountingPeriod().getPeriod().getLabel(); SeriesResponse seriesResponse = accountingStateData.getSeriesResponse(); if (seriesResponse == null) { logger.error("Error series response is null"); - throw new ServiceException( - "Error series response is null"); + throw new ServiceException("Error series response is null"); } String fileName = "Untitled"; @@ -78,17 +70,13 @@ public class AccountingModel4Job extends AccountingModelBuilder { ArrayList rows = new ArrayList<>(); if (seriesResponse instanceof SeriesJob) { SeriesJob seriesService = (SeriesJob) seriesResponse; - SeriesJobDefinition definition = seriesService - .getSeriesJobDefinition(); + SeriesJobDefinition definition = seriesService.getSeriesJobDefinition(); if (definition instanceof SeriesJobBasic) { SeriesJobBasic seriesJobBasic = (SeriesJobBasic) definition; - fileName = "Job_" + periodType + "_" + startDate + "_" - + endDate; - header = new ArrayList<>(Arrays.asList(new String[] { "Date", - "Operation Count", "Duration", "Max Invocation", - "Min Invocation" })); - ArrayList listData = seriesJobBasic - .getSeries(); + fileName = "Job_" + periodType + "_" + startDate + "_" + endDate; + header = new ArrayList<>(Arrays.asList( + new String[] { "Date", "Operation Count", "Duration", "Max Invocation", "Min Invocation" })); + ArrayList listData = seriesJobBasic.getSeries(); for (SeriesJobData seriesData : listData) { ArrayList data = new ArrayList<>(); data.add(sdfCSVDate.format(seriesData.getDate())); @@ -102,76 +90,35 @@ public class AccountingModel4Job extends AccountingModelBuilder { } else { if (definition instanceof SeriesJobTop) { SeriesJobTop seriesJobTop = (SeriesJobTop) definition; - fileName = "JobTop_" + periodType + "_" + startDate - + "_" + endDate; - header = new ArrayList<>(Arrays.asList(new String[] { - "Value", "Date", "Operation Count", "Duration", - "Max Invocation", "Min Invocation" })); - ArrayList listDataTop = seriesJobTop - .getSeriesJobDataTopList(); + fileName = "JobTop_" + periodType + "_" + startDate + "_" + endDate; + header = new ArrayList<>(Arrays.asList(new String[] { "Value", "Date", "Operation Count", + "Duration", "Max Invocation", "Min Invocation" })); + ArrayList listDataTop = seriesJobTop.getSeriesJobDataTopList(); for (SeriesJobDataTop seriesDataTop : listDataTop) { - FilterValue filterValue = seriesDataTop - .getFilterValue(); - ArrayList listData = seriesDataTop - .getSeries(); + FilterValue filterValue = seriesDataTop.getFilterValue(); + ArrayList listData = seriesDataTop.getSeries(); for (SeriesJobData seriesData : listData) { ArrayList data = new ArrayList<>(); data.add(filterValue.getValue()); data.add(sdfCSVDate.format(seriesData.getDate())); - data.add(String.valueOf(seriesData - .getOperationCount())); + data.add(String.valueOf(seriesData.getOperationCount())); data.add(String.valueOf(seriesData.getDuration())); - data.add(String.valueOf(seriesData - .getMaxInvocationTime())); - data.add(String.valueOf(seriesData - .getMinInvocationTime())); + data.add(String.valueOf(seriesData.getMaxInvocationTime())); + data.add(String.valueOf(seriesData.getMinInvocationTime())); AccountingDataRow csvDataRow = new AccountingDataRow(data); rows.add(csvDataRow); } } } else { - if (definition instanceof SeriesJobContext) { - SeriesJobContext seriesJobContext = (SeriesJobContext) definition; - fileName = "JobContext_" + periodType + "_" + startDate - + "_" + endDate; - header = new ArrayList<>(Arrays.asList(new String[] { - "Value", "Date", "Operation Count", "Duration", - "Max Invocation", "Min Invocation" })); - ArrayList listDataContext = seriesJobContext - .getSeriesJobDataContextList(); - for (SeriesJobDataContext seriesDataContext : listDataContext) { - ArrayList listData = seriesDataContext - .getSeries(); - for (SeriesJobData seriesData : listData) { - ArrayList data = new ArrayList<>(); - data.add(seriesDataContext.getContext()); - data.add(sdfCSVDate.format(seriesData.getDate())); - data.add(String.valueOf(seriesData - .getOperationCount())); - data.add(String.valueOf(seriesData.getDuration())); - data.add(String.valueOf(seriesData - .getMaxInvocationTime())); - data.add(String.valueOf(seriesData - .getMinInvocationTime())); - AccountingDataRow csvDataRow = new AccountingDataRow(data); - rows.add(csvDataRow); - } - } - } else { - logger.error("Unsupported Serie Definition for Job: " - + definition); - throw new ServiceException( - "Unsupported Serie Definition for Job: " - + definition); - } + + logger.error("Unsupported Serie Definition for Job: " + definition); + throw new ServiceException("Unsupported Serie Definition for Job: " + definition); + } } } else { - logger.error("Job not support this serie response: " - + seriesResponse); - throw new ServiceException( - "Job not support this serie response: " - + seriesResponse); + logger.error("Job not support this serie response: " + seriesResponse); + throw new ServiceException("Job not support this serie response: " + seriesResponse); } AccountingDataModel invocation = new AccountingDataModel(fileName, header, rows); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Service.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Service.java index 361f51b..9791fc8 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Service.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Service.java @@ -10,9 +10,7 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesReques import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesResponse; 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.SeriesServiceContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDataContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDefinition; import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceTop; @@ -23,13 +21,12 @@ import org.slf4j.LoggerFactory; /** * Accounting Model 4 Service * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class AccountingModel4Service extends AccountingModelBuilder { - protected static Logger logger = LoggerFactory - .getLogger(AccountingModel4Service.class); + protected static Logger logger = LoggerFactory.getLogger(AccountingModel4Service.class); private AccountingStateData accountingStateData; public AccountingModel4Service(AccountingStateData accountingStateData) { @@ -42,35 +39,30 @@ public class AccountingModel4Service extends AccountingModelBuilder { if (seriesRequest == null) { logger.error("Error series request is null"); - throw new ServiceException( - "Error series request is null"); + throw new ServiceException("Error series request is null"); } - String startDate=""; + String startDate = ""; try { - startDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod() - .getStartDate())); + startDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod().getStartDate())); } catch (ParseException e) { e.printStackTrace(); } - - String endDate=""; + + String endDate = ""; try { - endDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod() - .getEndDate())); + endDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod().getEndDate())); } catch (ParseException e) { e.printStackTrace(); } - String periodType = seriesRequest.getAccountingPeriod().getPeriod() - .getLabel(); + String periodType = seriesRequest.getAccountingPeriod().getPeriod().getLabel(); SeriesResponse seriesResponse = accountingStateData.getSeriesResponse(); if (seriesResponse == null) { logger.error("Error series response is null"); - throw new ServiceException( - "Error series response is null"); + throw new ServiceException("Error series response is null"); } String fileName = "Untitled"; @@ -78,17 +70,13 @@ public class AccountingModel4Service extends AccountingModelBuilder { ArrayList rows = new ArrayList<>(); if (seriesResponse instanceof SeriesService) { SeriesService seriesService = (SeriesService) seriesResponse; - SeriesServiceDefinition definition = seriesService - .getSerieServiceDefinition(); + SeriesServiceDefinition definition = seriesService.getSerieServiceDefinition(); if (definition instanceof SeriesServiceBasic) { SeriesServiceBasic seriesServiceBasic = (SeriesServiceBasic) definition; - fileName = "Service_" + periodType + "_" + startDate + "_" - + endDate; - header = new ArrayList<>(Arrays.asList(new String[] { "Date", - "Operation Count", "Duration", "Max Invocation", - "Min Invocation" })); - ArrayList listData = seriesServiceBasic - .getSeries(); + fileName = "Service_" + periodType + "_" + startDate + "_" + endDate; + header = new ArrayList<>(Arrays.asList( + new String[] { "Date", "Operation Count", "Duration", "Max Invocation", "Min Invocation" })); + ArrayList listData = seriesServiceBasic.getSeries(); for (SeriesServiceData seriesData : listData) { ArrayList data = new ArrayList<>(); data.add(sdfCSVDate.format(seriesData.getDate())); @@ -102,76 +90,33 @@ public class AccountingModel4Service extends AccountingModelBuilder { } else { if (definition instanceof SeriesServiceTop) { SeriesServiceTop seriesServiceTop = (SeriesServiceTop) definition; - fileName = "ServiceTop_" + periodType + "_" + startDate - + "_" + endDate; - header = new ArrayList<>(Arrays.asList(new String[] { - "Value", "Date", "Operation Count", "Duration", - "Max Invocation", "Min Invocation" })); - ArrayList listDataTop = seriesServiceTop - .getSeriesServiceDataTopList(); + fileName = "ServiceTop_" + periodType + "_" + startDate + "_" + endDate; + header = new ArrayList<>(Arrays.asList(new String[] { "Value", "Date", "Operation Count", + "Duration", "Max Invocation", "Min Invocation" })); + ArrayList listDataTop = seriesServiceTop.getSeriesServiceDataTopList(); for (SeriesServiceDataTop seriesDataTop : listDataTop) { - FilterValue filterValue = seriesDataTop - .getFilterValue(); - ArrayList listData = seriesDataTop - .getSeries(); + FilterValue filterValue = seriesDataTop.getFilterValue(); + ArrayList listData = seriesDataTop.getSeries(); for (SeriesServiceData seriesData : listData) { ArrayList data = new ArrayList<>(); data.add(filterValue.getValue()); data.add(sdfCSVDate.format(seriesData.getDate())); - data.add(String.valueOf(seriesData - .getOperationCount())); + data.add(String.valueOf(seriesData.getOperationCount())); data.add(String.valueOf(seriesData.getDuration())); - data.add(String.valueOf(seriesData - .getMaxInvocationTime())); - data.add(String.valueOf(seriesData - .getMinInvocationTime())); + data.add(String.valueOf(seriesData.getMaxInvocationTime())); + data.add(String.valueOf(seriesData.getMinInvocationTime())); AccountingDataRow csvDataRow = new AccountingDataRow(data); rows.add(csvDataRow); } } } else { - if (definition instanceof SeriesServiceContext) { - SeriesServiceContext seriesServiceContext = (SeriesServiceContext) definition; - fileName = "ServiceContext_" + periodType + "_" + startDate - + "_" + endDate; - header = new ArrayList<>(Arrays.asList(new String[] { - "Value", "Date", "Operation Count", "Duration", - "Max Invocation", "Min Invocation" })); - ArrayList listDataContext = seriesServiceContext - .getSeriesServiceDataContextList(); - for (SeriesServiceDataContext seriesDataContext : listDataContext) { - ArrayList listData = seriesDataContext - .getSeries(); - for (SeriesServiceData seriesData : listData) { - ArrayList data = new ArrayList<>(); - data.add(seriesDataContext.getContext()); - data.add(sdfCSVDate.format(seriesData.getDate())); - data.add(String.valueOf(seriesData - .getOperationCount())); - data.add(String.valueOf(seriesData.getDuration())); - data.add(String.valueOf(seriesData - .getMaxInvocationTime())); - data.add(String.valueOf(seriesData - .getMinInvocationTime())); - AccountingDataRow csvDataRow = new AccountingDataRow(data); - rows.add(csvDataRow); - } - } - } else { - logger.error("Unsupported Serie Definition for Service: " - + definition); - throw new ServiceException( - "Unsupported Serie Definition for Service: " - + definition); - } + logger.error("Unsupported Serie Definition for Service: " + definition); + throw new ServiceException("Unsupported Serie Definition for Service: " + definition); } } } else { - logger.error("Service not support this serie response: " - + seriesResponse); - throw new ServiceException( - "Service not support this serie response: " - + seriesResponse); + logger.error("Service not support this serie response: " + seriesResponse); + throw new ServiceException("Service not support this serie response: " + seriesResponse); } AccountingDataModel invocation = new AccountingDataModel(fileName, header, rows); diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Storage.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Storage.java index 9d7c065..ef9b95b 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Storage.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Storage.java @@ -10,9 +10,7 @@ import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesReques import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesResponse; import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesStorage; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageBasic; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageData; -import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDataContext; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDataTop; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageDefinition; import org.gcube.portlets.admin.accountingmanager.shared.data.response.storage.SeriesStorageTop; @@ -23,13 +21,12 @@ import org.slf4j.LoggerFactory; /** * Accounting Model 4 Storage * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class AccountingModel4Storage extends AccountingModelBuilder { - protected static Logger logger = LoggerFactory - .getLogger(AccountingModel4Storage.class); + protected static Logger logger = LoggerFactory.getLogger(AccountingModel4Storage.class); private AccountingStateData accountingStateData; public AccountingModel4Storage(AccountingStateData accountingStateData) { @@ -42,36 +39,31 @@ public class AccountingModel4Storage extends AccountingModelBuilder { if (seriesRequest == null) { logger.error("Error series request is null"); - throw new ServiceException( - "Error series request is null"); + throw new ServiceException("Error series request is null"); } - String startDate=""; + String startDate = ""; try { - startDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod() - .getStartDate())); + startDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod().getStartDate())); } catch (ParseException e) { e.printStackTrace(); } - - String endDate=""; + + String endDate = ""; try { - endDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod() - .getEndDate())); + endDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod().getEndDate())); } catch (ParseException e) { e.printStackTrace(); } - - String periodType = seriesRequest.getAccountingPeriod().getPeriod() - .getLabel(); + + String periodType = seriesRequest.getAccountingPeriod().getPeriod().getLabel(); SeriesResponse seriesResponse = accountingStateData.getSeriesResponse(); if (seriesResponse == null) { logger.error("Error series response is null"); - throw new ServiceException( - "Error series response is null"); + throw new ServiceException("Error series response is null"); } String fileName = "Untitled"; @@ -79,16 +71,12 @@ public class AccountingModel4Storage extends AccountingModelBuilder { ArrayList rows = new ArrayList<>(); if (seriesResponse instanceof SeriesStorage) { SeriesStorage seriesStorage = (SeriesStorage) seriesResponse; - SeriesStorageDefinition definition = seriesStorage - .getSeriesStorageDefinition(); + SeriesStorageDefinition definition = seriesStorage.getSeriesStorageDefinition(); if (definition instanceof SeriesStorageBasic) { SeriesStorageBasic seriesStorageBasic = (SeriesStorageBasic) definition; - fileName = "Storage_" + periodType + "_" + startDate + "_" - + endDate; - header = new ArrayList<>(Arrays.asList(new String[] { "Date", - "Operation Count", "Data Volume" })); - ArrayList listData = seriesStorageBasic - .getSeries(); + fileName = "Storage_" + periodType + "_" + startDate + "_" + endDate; + header = new ArrayList<>(Arrays.asList(new String[] { "Date", "Operation Count", "Data Volume" })); + ArrayList listData = seriesStorageBasic.getSeries(); for (SeriesStorageData seriesData : listData) { ArrayList data = new ArrayList<>(); data.add(sdfCSVDate.format(seriesData.getDate())); @@ -100,18 +88,13 @@ public class AccountingModel4Storage extends AccountingModelBuilder { } else { if (definition instanceof SeriesStorageTop) { SeriesStorageTop seriesStorageTop = (SeriesStorageTop) definition; - fileName = "StorageTop_" + periodType + "_" + startDate - + "_" + endDate; + fileName = "StorageTop_" + periodType + "_" + startDate + "_" + endDate; header = new ArrayList<>( - Arrays.asList(new String[] { "Value", "Date", - "Operation Count", "Data Volume" })); - ArrayList listDataTop = seriesStorageTop - .getSeriesStorageDataTopList(); + Arrays.asList(new String[] { "Value", "Date", "Operation Count", "Data Volume" })); + ArrayList listDataTop = seriesStorageTop.getSeriesStorageDataTopList(); for (SeriesStorageDataTop seriesDataTop : listDataTop) { - FilterValue filterValue = seriesDataTop - .getFilterValue(); - ArrayList listData = seriesDataTop - .getSeries(); + FilterValue filterValue = seriesDataTop.getFilterValue(); + ArrayList listData = seriesDataTop.getSeries(); for (SeriesStorageData seriesData : listData) { ArrayList data = new ArrayList<>(); data.add(filterValue.getValue()); @@ -123,46 +106,16 @@ public class AccountingModel4Storage extends AccountingModelBuilder { } } } else { - if (definition instanceof SeriesStorageContext) { - SeriesStorageContext seriesStorageContext = (SeriesStorageContext) definition; - fileName = "StorageContext_" + periodType + "_" + startDate - + "_" + endDate; - header = new ArrayList<>( - Arrays.asList(new String[] { "Value", "Date", - "Operation Count", "Data Volume" })); - ArrayList listDataContext = seriesStorageContext - .getSeriesStorageDataContextList(); - for (SeriesStorageDataContext seriesDataContext : listDataContext) { - ArrayList listData = seriesDataContext - .getSeries(); - for (SeriesStorageData seriesData : listData) { - ArrayList data = new ArrayList<>(); - data.add(seriesDataContext.getContext()); - data.add(sdfCSVDate.format(seriesData.getDate())); - data.add(String.valueOf(seriesData.getOperationCount())); - data.add(String.valueOf(seriesData.getDataVolume())); - AccountingDataRow csvDataRow = new AccountingDataRow(data); - rows.add(csvDataRow); - } - } - } else { - logger.error("Unsupported Serie Definition for Storage: " - + definition); - throw new ServiceException( - "Unsupported Serie Definition for Storage: " - + definition); - } + logger.error("Unsupported Serie Definition for Storage: " + definition); + throw new ServiceException("Unsupported Serie Definition for Storage: " + definition); } } } else { - logger.error("Storage not support this serie response: " - + seriesResponse); - throw new ServiceException( - "Storage not support this serie response: " - + seriesResponse); + logger.error("Storage not support this serie response: " + seriesResponse); + throw new ServiceException("Storage not support this serie response: " + seriesResponse); } - AccountingDataModel invocation = new AccountingDataModel(fileName,header, rows); + AccountingDataModel invocation = new AccountingDataModel(fileName, header, rows); accountingModelSpec.setOp(invocation); } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java index f91e657..2f07d58 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java @@ -48,5 +48,10 @@ public class Constants { public static final int CLIENT_MONITOR_TIME_OUT_PERIODMILLIS = 1800000; public static final int DAEMON_SLEEP_MILLIS = 1000; + //Top Number + public static final int TOP_NUMBER_DEFAULT = 10; + public static final int TOP_NUMBER_MAX = 100; + public static final int TOP_NUMBER_MIN = 1; + } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterBasic.java index e71e69d..f0b6454 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterBasic.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterBasic.java @@ -5,55 +5,64 @@ import java.util.ArrayList; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ -public class AccountingFilterBasic extends AccountingFilterDefinition implements - Serializable { +public class AccountingFilterBasic extends AccountingFilterDefinition implements Serializable { private static final long serialVersionUID = -6805006183397381154L; private ArrayList filters; - private String scope; - private Boolean noContext; + private Context context; + private String scopeFilterActive; public AccountingFilterBasic() { super(); this.chartType = ChartType.Basic; - noContext = false; filters = null; - scope=null; + context = null; + scopeFilterActive = null; } - - public AccountingFilterBasic(String scope, boolean noContenxt) { + + public AccountingFilterBasic(Context context) { super(); chartType = ChartType.Basic; this.filters = null; - this.scope=scope; - this.noContext = noContenxt; + this.context = context; + this.scopeFilterActive = null; } - - public AccountingFilterBasic(String scope, ArrayList filters, - boolean noContenxt) { + public AccountingFilterBasic(Context context,String scopeFilterActive) { + super(); + chartType = ChartType.Basic; + this.filters = null; + this.context = context; + this.scopeFilterActive = scopeFilterActive; + } + + + public AccountingFilterBasic(Context context, ArrayList filters) { super(); chartType = ChartType.Basic; - this.scope=scope; this.filters = filters; - this.noContext = noContenxt; + this.context = context; + this.scopeFilterActive = null; + } + + public AccountingFilterBasic(Context context, String scopeFilterActive, ArrayList filters) { + super(); + chartType = ChartType.Basic; + this.filters = filters; + this.context = context; + this.scopeFilterActive = scopeFilterActive; } - - public String getScope() { - return scope; + public String getScopeFilterActive() { + return scopeFilterActive; } - public void setScope(String scope) { - this.scope = scope; - } - - public Boolean getNoContext() { - return noContext; + public void setScopeFilterActive(String scopeFilterActive) { + this.scopeFilterActive = scopeFilterActive; } public ArrayList getFilters() { @@ -64,20 +73,19 @@ public class AccountingFilterBasic extends AccountingFilterDefinition implements this.filters = filters; } - public boolean isNoContext() { - return noContext; + public Context getContext() { + return context; } - public void setNoContext(Boolean noContext) { - this.noContext = noContext; + public void setContext(Context context) { + this.context = context; } @Override public String toString() { - return "AccountingFilterBasic [filters=" + filters + ", scope=" + scope + ", noContext=" + noContext - + ", chartType=" + chartType + "]"; + return "AccountingFilterBasic [filters=" + filters + ", context=" + context + ", scopeFilterActive=" + + scopeFilterActive + ", chartType=" + chartType + "]"; } - } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterContext.java deleted file mode 100644 index 8cbcf8f..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterContext.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data; - -import java.io.Serializable; -import java.util.ArrayList; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class AccountingFilterContext extends AccountingFilterDefinition - implements Serializable { - - private static final long serialVersionUID = -6805006183397381154L; - private Context context; - private ArrayList filters; - - public AccountingFilterContext() { - super(); - this.chartType = ChartType.Context; - context = null; - filters = null; - - } - - public AccountingFilterContext(Context context, - ArrayList filters) { - super(); - chartType = ChartType.Context; - this.context = context; - this.filters = filters; - - } - - public Context getContext() { - return context; - } - - public void setContext(Context context) { - this.context = context; - } - - public ArrayList getFilters() { - return filters; - } - - public void setFilters(ArrayList filters) { - this.filters = filters; - } - - @Override - public String toString() { - return "AccountingFilterContext [context=" + context + ", filters=" - + filters + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterTop.java index 905f668..2259d21 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/AccountingFilterTop.java @@ -3,64 +3,84 @@ package org.gcube.portlets.admin.accountingmanager.shared.data; import java.io.Serializable; import java.util.ArrayList; +import org.gcube.portlets.admin.accountingmanager.shared.Constants; + /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ -public class AccountingFilterTop extends AccountingFilterDefinition implements - Serializable { +public class AccountingFilterTop extends AccountingFilterDefinition implements Serializable { private static final long serialVersionUID = -6805006183397381154L; - private String scope; + private Context context; + private String scopeFilterActive; private FilterKey filterKey; - private Boolean showOthers; private Integer topNumber; private ArrayList filters; public AccountingFilterTop() { super(); this.chartType = ChartType.Top; - scope=null; - showOthers = false; - topNumber = 5; + context = null; + scopeFilterActive = null; + topNumber = Constants.TOP_NUMBER_DEFAULT; filterKey = null; filters = null; } - - public AccountingFilterTop(String scope, Boolean showOthers,Integer topNumber) { + + public AccountingFilterTop(Context context, Integer topNumber) { super(); this.chartType = ChartType.Top; - this.scope=scope; - this.showOthers = showOthers; + this.context = context; + this.scopeFilterActive = null; this.topNumber = topNumber; filterKey = null; filters = null; } - - public AccountingFilterTop(String scope, FilterKey filterKey, - ArrayList filters, Boolean showOthers, + public AccountingFilterTop(Context context, String scopeFilterActive, Integer topNumber) { + super(); + this.chartType = ChartType.Top; + this.context = context; + this.scopeFilterActive = scopeFilterActive; + this.topNumber = topNumber; + filterKey = null; + filters = null; + + } + + public AccountingFilterTop(Context context, FilterKey filterKey, ArrayList filters, Integer topNumber) { super(); chartType = ChartType.Top; - this.scope=scope; + this.context = context; + this.scopeFilterActive = null; this.filterKey = filterKey; this.filters = filters; - this.showOthers = showOthers; this.topNumber = topNumber; - } - public String getScope() { - return scope; + public AccountingFilterTop(Context context, String scopeFilterActive, FilterKey filterKey, + ArrayList filters, Integer topNumber) { + super(); + chartType = ChartType.Top; + this.context = context; + this.scopeFilterActive = scopeFilterActive; + this.filterKey = filterKey; + this.filters = filters; + this.topNumber = topNumber; } - public void setScope(String scope) { - this.scope = scope; + public Context getContext() { + return context; + } + + public void setContext(Context context) { + this.context = context; } public FilterKey getFilterKey() { @@ -71,14 +91,6 @@ public class AccountingFilterTop extends AccountingFilterDefinition implements this.filterKey = filterKey; } - public Boolean getShowOthers() { - return showOthers; - } - - public void setShowOthers(Boolean showOthers) { - this.showOthers = showOthers; - } - public Integer getTopNumber() { return topNumber; } @@ -95,12 +107,18 @@ public class AccountingFilterTop extends AccountingFilterDefinition implements this.filters = filters; } - @Override - public String toString() { - return "AccountingFilterTop [scope=" + scope + ", filterKey=" + filterKey + ", showOthers=" + showOthers - + ", topNumber=" + topNumber + ", filters=" + filters + ", chartType=" + chartType + "]"; + public String getScopeFilterActive() { + return scopeFilterActive; + } + + public void setScopeFilterActive(String scopeFilterActive) { + this.scopeFilterActive = scopeFilterActive; + } + + @Override + public String toString() { + return "AccountingFilterTop [context=" + context + ", scopeFilterActive=" + scopeFilterActive + ", filterKey=" + + filterKey + ", topNumber=" + topNumber + ", filters=" + filters + ", chartType=" + chartType + "]"; } - - } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/ChartType.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/ChartType.java index 73ea81c..149f4e6 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/ChartType.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/ChartType.java @@ -14,7 +14,7 @@ import java.util.List; public enum ChartType { - Basic("Basic"), Top("Top"), Context("Context"), Spaces("Spaces"); + Basic("Basic"), Top("Top"), Spaces("Spaces"); /** * diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/Genres.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/Genres.java deleted file mode 100644 index b5100e8..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/Genres.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data; - -import java.io.Serializable; -import java.util.ArrayList; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class Genres implements Serializable { - - private static final long serialVersionUID = -1704075020370137961L; - private ArrayList genresList; - - public Genres() { - super(); - } - - public Genres(ArrayList genresList) { - super(); - this.genresList = genresList; - } - - public ArrayList getGenresList() { - return genresList; - } - - public void setGenresList(ArrayList genresList) { - this.genresList = genresList; - } - - @Override - public String toString() { - return "Genres [genresList=" + genresList + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/GenresData.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/GenresData.java deleted file mode 100644 index 34d8509..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/GenresData.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data; - -import java.io.Serializable; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class GenresData implements Serializable { - - private static final long serialVersionUID = 719740085818609829L; - private String genre; - - public GenresData() { - super(); - } - - public GenresData(String genre) { - super(); - this.genre = genre; - } - - public String getGenre() { - return genre; - } - - public void setGenre(String genre) { - this.genre = genre; - } - - public String getLabel() { - return genre; - } - - public void setLabel(String genre) { - this.genre = genre; - } - - @Override - public String toString() { - return "GenresData [genre=" + genre + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/query/SeriesRequest.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/query/SeriesRequest.java index f314b99..d1beb71 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/query/SeriesRequest.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/query/SeriesRequest.java @@ -21,8 +21,7 @@ public class SeriesRequest implements Serializable { super(); } - public SeriesRequest(AccountingPeriod accountingPeriod, - AccountingFilterDefinition accountingFilterDefinition) { + public SeriesRequest(AccountingPeriod accountingPeriod, AccountingFilterDefinition accountingFilterDefinition) { super(); this.accountingPeriod = accountingPeriod; this.accountingFilterDefinition = accountingFilterDefinition; @@ -40,18 +39,14 @@ public class SeriesRequest implements Serializable { return accountingFilterDefinition; } - public void setAccountingFilterDefinition( - AccountingFilterDefinition accountingFilterDefinition) { + public void setAccountingFilterDefinition(AccountingFilterDefinition accountingFilterDefinition) { this.accountingFilterDefinition = accountingFilterDefinition; } @Override public String toString() { - return "SeriesRequest [accountingPeriod=" + accountingPeriod - + ", accountingFilterDefinition=" + accountingFilterDefinition - + "]"; + return "SeriesRequest [accountingPeriod=" + accountingPeriod + ", accountingFilterDefinition=" + + accountingFilterDefinition + "]"; } - - } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobContext.java deleted file mode 100644 index f4ebe59..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobContext.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.job; - -import java.util.ArrayList; - -import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesJobContext extends SeriesJobDefinition { - - private static final long serialVersionUID = -2350334263342186590L; - private Context context; - private ArrayList seriesJobDataContextList; - - public SeriesJobContext() { - super(); - this.chartType = ChartType.Context; - } - - public SeriesJobContext(Context context, - ArrayList seriesJobDataContextList) { - super(); - this.chartType = ChartType.Context; - this.context = context; - this.seriesJobDataContextList = seriesJobDataContextList; - } - - public Context getContext() { - return context; - } - - public void setContext(Context context) { - this.context = context; - } - - public ArrayList getSeriesJobDataContextList() { - return seriesJobDataContextList; - } - - public void setSeriesJobDataContextList( - ArrayList seriesJobDataContextList) { - this.seriesJobDataContextList = seriesJobDataContextList; - } - - @Override - public String toString() { - return "SeriesJobContext [context=" + context - + ", seriesJobDataContextList=" + seriesJobDataContextList - + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobDataContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobDataContext.java deleted file mode 100644 index 62e858d..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobDataContext.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.job; - -import java.io.Serializable; -import java.util.ArrayList; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesJobDataContext implements Serializable { - - private static final long serialVersionUID = 6043106605633429465L; - private String context; - private ArrayList series; - - public SeriesJobDataContext() { - super(); - } - - public SeriesJobDataContext(String context, ArrayList series) { - super(); - this.context = context; - this.series = series; - } - - public String getContext() { - return context; - } - - public void setContext(String context) { - this.context = context; - } - - public ArrayList getSeries() { - return series; - } - - public void setSeries(ArrayList series) { - this.series = series; - } - - @Override - public String toString() { - return "SeriesJobDataContext [context=" + context + ", series=" - + series + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobTop.java index e789c23..97d4191 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/job/SeriesJobTop.java @@ -2,11 +2,12 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.job; import java.util.ArrayList; +import org.gcube.portlets.admin.accountingmanager.shared.Constants; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ @@ -14,33 +15,21 @@ public class SeriesJobTop extends SeriesJobDefinition { private static final long serialVersionUID = -2350334263342186590L; private ArrayList seriesJobDataTopList; - private Boolean showOthers; private Integer topNumber; public SeriesJobTop() { super(); this.chartType = ChartType.Top; - this.showOthers = false; - this.topNumber = 5; + this.topNumber = Constants.TOP_NUMBER_DEFAULT; } - public SeriesJobTop(Boolean showOthers, Integer topNumber, - ArrayList seriesJobDataTopList) { + public SeriesJobTop(Integer topNumber, ArrayList seriesJobDataTopList) { super(); this.chartType = ChartType.Top; - this.showOthers = showOthers; this.topNumber = topNumber; this.seriesJobDataTopList = seriesJobDataTopList; } - public Boolean getShowOthers() { - return showOthers; - } - - public void setShowOthers(Boolean showOthers) { - this.showOthers = showOthers; - } - public Integer getTopNumber() { return topNumber; } @@ -53,16 +42,14 @@ public class SeriesJobTop extends SeriesJobDefinition { return seriesJobDataTopList; } - public void setSeriesJobDataTopList( - ArrayList seriesJobDataTopList) { + public void setSeriesJobDataTopList(ArrayList seriesJobDataTopList) { this.seriesJobDataTopList = seriesJobDataTopList; } @Override public String toString() { - return "SeriesJobTop [seriesJobDataTopList=" + seriesJobDataTopList - + ", showOthers=" + showOthers + ", topNumber=" + topNumber - + "]"; + return "SeriesJobTop [seriesJobDataTopList=" + seriesJobDataTopList + ", topNumber=" + topNumber + + ", chartType=" + chartType + "]"; } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletContext.java deleted file mode 100644 index 18e4980..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletContext.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet; - -import java.util.ArrayList; - -import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesPortletContext extends SeriesPortletDefinition { - - private static final long serialVersionUID = -2350334263342186590L; - private Context context; - private ArrayList seriesPortletDataContextList; - - public SeriesPortletContext() { - super(); - this.chartType = ChartType.Context; - } - - public SeriesPortletContext(Context context, - ArrayList seriesPortletDataContextList) { - super(); - this.chartType = ChartType.Context; - this.context = context; - this.seriesPortletDataContextList = seriesPortletDataContextList; - } - - public Context getContext() { - return context; - } - - public void setContext(Context context) { - this.context = context; - } - - public ArrayList getSeriesPortletDataContextList() { - return seriesPortletDataContextList; - } - - public void setSeriesPortletDataContextList( - ArrayList seriesPortletDataContextList) { - this.seriesPortletDataContextList = seriesPortletDataContextList; - } - - @Override - public String toString() { - return "SeriesPortletContext [context=" + context - + ", seriesPortletDataContextList=" - + seriesPortletDataContextList + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletDataContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletDataContext.java deleted file mode 100644 index d8bbb1e..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletDataContext.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet; - -import java.io.Serializable; -import java.util.ArrayList; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesPortletDataContext implements Serializable { - - private static final long serialVersionUID = 6043106605633429465L; - private String context; - private ArrayList series; - - public SeriesPortletDataContext() { - super(); - } - - public SeriesPortletDataContext(String context, - ArrayList series) { - super(); - this.context = context; - this.series = series; - } - - public String getContext() { - return context; - } - - public void setContext(String context) { - this.context = context; - } - - public ArrayList getSeries() { - return series; - } - - public void setSeries(ArrayList series) { - this.series = series; - } - - @Override - public String toString() { - return "SeriesPortletDataContext [context=" + context + ", series=" - + series + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletTop.java index d2c23ca..2374288 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/portlet/SeriesPortletTop.java @@ -2,45 +2,34 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet; import java.util.ArrayList; +import org.gcube.portlets.admin.accountingmanager.shared.Constants; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class SeriesPortletTop extends SeriesPortletDefinition { private static final long serialVersionUID = -2350334263342186590L; - private Boolean showOthers; private Integer topNumber; private ArrayList seriesPortletDataTopList; public SeriesPortletTop() { super(); this.chartType = ChartType.Top; - this.showOthers = false; - this.topNumber = 5; + this.topNumber = Constants.TOP_NUMBER_DEFAULT; } - public SeriesPortletTop(Boolean showOthers, Integer topNumber, - ArrayList seriesPortletDataTopList) { + public SeriesPortletTop(Integer topNumber, ArrayList seriesPortletDataTopList) { super(); this.chartType = ChartType.Top; - this.showOthers = showOthers; this.topNumber = topNumber; this.seriesPortletDataTopList = seriesPortletDataTopList; } - public Boolean getShowOthers() { - return showOthers; - } - - public void setShowOthers(Boolean showOthers) { - this.showOthers = showOthers; - } - public Integer getTopNumber() { return topNumber; } @@ -53,16 +42,14 @@ public class SeriesPortletTop extends SeriesPortletDefinition { return seriesPortletDataTopList; } - public void setSeriesPortletDataTopList( - ArrayList seriesPortletDataTopList) { + public void setSeriesPortletDataTopList(ArrayList seriesPortletDataTopList) { this.seriesPortletDataTopList = seriesPortletDataTopList; } @Override public String toString() { - return "SeriesPortletTop [showOthers=" + showOthers + ", topNumber=" - + topNumber + ", seriesPortletDataTopList=" - + seriesPortletDataTopList + "]"; + return "SeriesPortletTop [topNumber=" + topNumber + ", seriesPortletDataTopList=" + seriesPortletDataTopList + + "]"; } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceContext.java deleted file mode 100644 index 18297ef..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceContext.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.service; - -import java.util.ArrayList; - -import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesServiceContext extends SeriesServiceDefinition { - - private static final long serialVersionUID = -2350334263342186590L; - private Context context; - private ArrayList seriesServiceDataContextList; - - public SeriesServiceContext() { - super(); - this.chartType = ChartType.Context; - - } - - public SeriesServiceContext(Context context, - ArrayList seriesServiceDataContextList) { - super(); - this.chartType = ChartType.Context; - this.context = context; - this.seriesServiceDataContextList = seriesServiceDataContextList; - } - - public Context getContext() { - return context; - } - - public void setContext(Context context) { - this.context = context; - } - - public ArrayList getSeriesServiceDataContextList() { - return seriesServiceDataContextList; - } - - public void setSeriesServiceDataContextList( - ArrayList seriesServiceDataContextList) { - this.seriesServiceDataContextList = seriesServiceDataContextList; - } - - @Override - public String toString() { - return "SeriesServiceContext [context=" + context - + ", seriesServiceDataContextList=" - + seriesServiceDataContextList + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceDataContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceDataContext.java deleted file mode 100644 index 24b1c47..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceDataContext.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.service; - -import java.io.Serializable; -import java.util.ArrayList; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesServiceDataContext implements Serializable { - - private static final long serialVersionUID = 6043106605633429465L; - private String context; - private ArrayList series; - - public SeriesServiceDataContext() { - super(); - } - - public SeriesServiceDataContext(String context, - ArrayList series) { - super(); - this.context = context; - this.series = series; - } - - public String getContext() { - return context; - } - - public void setContext(String context) { - this.context = context; - } - - public ArrayList getSeries() { - return series; - } - - public void setSeries(ArrayList series) { - this.series = series; - } - - @Override - public String toString() { - return "SeriesServiceDataContext [context=" + context + ", series=" - + series + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceTop.java index e061c16..cb46360 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/service/SeriesServiceTop.java @@ -2,46 +2,35 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.service; import java.util.ArrayList; +import org.gcube.portlets.admin.accountingmanager.shared.Constants; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class SeriesServiceTop extends SeriesServiceDefinition { private static final long serialVersionUID = -2350334263342186590L; - private Boolean showOthers; private Integer topNumber; private ArrayList seriesServiceDataTopList; public SeriesServiceTop() { super(); this.chartType = ChartType.Top; - this.showOthers = false; - this.topNumber = 5; - + this.topNumber = Constants.TOP_NUMBER_DEFAULT; + } - public SeriesServiceTop(Boolean showOthers, Integer topNumber, - ArrayList seriesServiceDataTopList) { + public SeriesServiceTop(Integer topNumber, ArrayList seriesServiceDataTopList) { super(); this.chartType = ChartType.Top; - this.showOthers = showOthers; this.topNumber = topNumber; this.seriesServiceDataTopList = seriesServiceDataTopList; } - public Boolean getShowOthers() { - return showOthers; - } - - public void setShowOthers(Boolean showOthers) { - this.showOthers = showOthers; - } - public Integer getTopNumber() { return topNumber; } @@ -54,16 +43,14 @@ public class SeriesServiceTop extends SeriesServiceDefinition { return seriesServiceDataTopList; } - public void setSeriesServiceDataTopList( - ArrayList seriesServiceDataTopList) { + public void setSeriesServiceDataTopList(ArrayList seriesServiceDataTopList) { this.seriesServiceDataTopList = seriesServiceDataTopList; } @Override public String toString() { - return "SeriesServiceTop [showOthers=" + showOthers + ", topNumber=" - + topNumber + ", seriesServiceDataTopList=" - + seriesServiceDataTopList + "]"; + return "SeriesServiceTop [topNumber=" + topNumber + ", seriesServiceDataTopList=" + seriesServiceDataTopList + + ", chartType=" + chartType + "]"; } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageContext.java deleted file mode 100644 index f12ab07..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageContext.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.storage; - -import java.util.ArrayList; - -import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesStorageContext extends SeriesStorageDefinition { - - private static final long serialVersionUID = -5477545972037227361L; - private Context context; - private ArrayList seriesStorageDataContextList; - - public SeriesStorageContext() { - super(); - this.chartType = ChartType.Context; - - } - - public SeriesStorageContext(Context context, - ArrayList seriesStorageDataContextList) { - super(); - this.chartType = ChartType.Context; - this.context=context; - this.seriesStorageDataContextList = seriesStorageDataContextList; - } - - public Context getContext() { - return context; - } - - public void setContext(Context context) { - this.context = context; - } - - public ArrayList getSeriesStorageDataContextList() { - return seriesStorageDataContextList; - } - - public void setSeriesStorageDataContextList( - ArrayList seriesStorageDataContextList) { - this.seriesStorageDataContextList = seriesStorageDataContextList; - } - - @Override - public String toString() { - return "SeriesStorageContext [context=" + context - + ", seriesStorageDataContextList=" - + seriesStorageDataContextList + "]"; - } - - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageDataContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageDataContext.java deleted file mode 100644 index 875975b..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageDataContext.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.storage; - -import java.io.Serializable; -import java.util.ArrayList; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesStorageDataContext implements Serializable { - - private static final long serialVersionUID = -627227653308818605L; - private String context; - private ArrayList series; - - public SeriesStorageDataContext() { - super(); - } - - public SeriesStorageDataContext(String context, - ArrayList series) { - super(); - this.context = context; - this.series = series; - } - - public String getContext() { - return context; - } - - public void setContext(String context) { - this.context = context; - } - - public ArrayList getSeries() { - return series; - } - - public void setSeries(ArrayList series) { - this.series = series; - } - - @Override - public String toString() { - return "SeriesStorageDataContext [context=" + context + ", series=" - + series + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageTop.java index 37d9991..de76915 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/storage/SeriesStorageTop.java @@ -2,46 +2,35 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.storage; import java.util.ArrayList; +import org.gcube.portlets.admin.accountingmanager.shared.Constants; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class SeriesStorageTop extends SeriesStorageDefinition { private static final long serialVersionUID = -5477545972037227361L; - private Boolean showOthers; private Integer topNumber; private ArrayList seriesStorageDataTopList; public SeriesStorageTop() { super(); this.chartType = ChartType.Top; - this.showOthers = false; - this.topNumber = 5; - + this.topNumber = Constants.TOP_NUMBER_DEFAULT; + } - public SeriesStorageTop(Boolean showOthers, Integer topNumber, - ArrayList seriesStorageDataTopList) { + public SeriesStorageTop(Integer topNumber, ArrayList seriesStorageDataTopList) { super(); this.chartType = ChartType.Top; - this.showOthers = showOthers; this.topNumber = topNumber; this.seriesStorageDataTopList = seriesStorageDataTopList; } - public Boolean getShowOthers() { - return showOthers; - } - - public void setShowOthers(Boolean showOthers) { - this.showOthers = showOthers; - } - public Integer getTopNumber() { return topNumber; } @@ -54,16 +43,14 @@ public class SeriesStorageTop extends SeriesStorageDefinition { return seriesStorageDataTopList; } - public void setSeriesStorageDataTopList( - ArrayList seriesStorageDataTopList) { + public void setSeriesStorageDataTopList(ArrayList seriesStorageDataTopList) { this.seriesStorageDataTopList = seriesStorageDataTopList; } @Override public String toString() { - return "SeriesStorageTop [showOthers=" + showOthers + ", topNumber=" - + topNumber + ", seriesStorageDataTopList=" - + seriesStorageDataTopList + "]"; + return "SeriesStorageTop [topNumber=" + topNumber + ", seriesStorageDataTopList=" + seriesStorageDataTopList + + ", chartType=" + chartType + "]"; } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskContext.java deleted file mode 100644 index 0319dbf..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskContext.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.task; - -import java.util.ArrayList; - -import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; -import org.gcube.portlets.admin.accountingmanager.shared.data.Context; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesTaskContext extends SeriesTaskDefinition { - - private static final long serialVersionUID = 6805210072384752359L; - private Context context; - private ArrayList seriesTaskDataContextList; - - public SeriesTaskContext() { - super(); - this.chartType = ChartType.Context; - - } - - public SeriesTaskContext(Context context, - ArrayList seriesTaskDataTopList) { - super(); - this.chartType = ChartType.Context; - this.context = context; - this.seriesTaskDataContextList = seriesTaskDataTopList; - } - - public Context getContext() { - return context; - } - - public void setContext(Context context) { - this.context = context; - } - - public ArrayList getSeriesTaskDataContextList() { - return seriesTaskDataContextList; - } - - public void setSeriesTaskDataContextList( - ArrayList seriesTaskDataContextList) { - this.seriesTaskDataContextList = seriesTaskDataContextList; - } - - @Override - public String toString() { - return "SeriesTaskContext [context=" + context - + ", seriesTaskDataContextList=" + seriesTaskDataContextList - + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskDataContext.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskDataContext.java deleted file mode 100644 index cbe5369..0000000 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskDataContext.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.gcube.portlets.admin.accountingmanager.shared.data.response.task; - -import java.io.Serializable; -import java.util.ArrayList; - -/** - * - * @author Giancarlo Panichi - * - * - */ -public class SeriesTaskDataContext implements Serializable { - - private static final long serialVersionUID = 6799983693606904130L; - private String context; - private ArrayList series; - - public SeriesTaskDataContext() { - super(); - } - - public SeriesTaskDataContext(String context, - ArrayList series) { - super(); - this.context = context; - this.series = series; - } - - public String getContext() { - return context; - } - - public void setContext(String context) { - this.context = context; - } - - public ArrayList getSeries() { - return series; - } - - public void setSeries(ArrayList series) { - this.series = series; - } - - @Override - public String toString() { - return "SeriesTaskDataContext [context=" + context + ", series=" - + series + "]"; - } - -} diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskTop.java index 3a44ba8..64785ea 100644 --- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskTop.java +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/data/response/task/SeriesTaskTop.java @@ -2,46 +2,35 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.task; import java.util.ArrayList; +import org.gcube.portlets.admin.accountingmanager.shared.Constants; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; /** * - * @author Giancarlo Panichi + * @author Giancarlo Panichi * * */ public class SeriesTaskTop extends SeriesTaskDefinition { private static final long serialVersionUID = 6805210072384752359L; - private Boolean showOthers; private Integer topNumber; private ArrayList seriesTaskDataTopList; public SeriesTaskTop() { super(); this.chartType = ChartType.Top; - this.showOthers = false; - this.topNumber = 5; + this.topNumber = Constants.TOP_NUMBER_DEFAULT; } - public SeriesTaskTop(Boolean showOthers, Integer topNumber, - ArrayList seriesTaskDataTopList) { + public SeriesTaskTop(Integer topNumber, ArrayList seriesTaskDataTopList) { super(); this.chartType = ChartType.Top; - this.showOthers = showOthers; this.topNumber = topNumber; this.seriesTaskDataTopList = seriesTaskDataTopList; } - public Boolean getShowOthers() { - return showOthers; - } - - public void setShowOthers(Boolean showOthers) { - this.showOthers = showOthers; - } - public Integer getTopNumber() { return topNumber; } @@ -54,16 +43,14 @@ public class SeriesTaskTop extends SeriesTaskDefinition { return seriesTaskDataTopList; } - public void setSeriesTaskDataTopList( - ArrayList seriesTaskDataTopList) { + public void setSeriesTaskDataTopList(ArrayList seriesTaskDataTopList) { this.seriesTaskDataTopList = seriesTaskDataTopList; } @Override public String toString() { - return "SeriesTaskTop [showOthers=" + showOthers + ", topNumber=" - + topNumber + ", seriesTaskDataTopList=" - + seriesTaskDataTopList + "]"; + return "SeriesTaskTop [topNumber=" + topNumber + ", seriesTaskDataTopList=" + seriesTaskDataTopList + + ", chartType=" + chartType + "]"; } } diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/exception/NoScopeSelectedException.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/exception/NoScopeSelectedException.java new file mode 100644 index 0000000..fe150ef --- /dev/null +++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/exception/NoScopeSelectedException.java @@ -0,0 +1,35 @@ +/** + * + */ +package org.gcube.portlets.admin.accountingmanager.shared.exception; + +/** + * + * @author Giancarlo Panichi + * + * + */ +public class NoScopeSelectedException extends Exception { + + private static final long serialVersionUID = -8737011216478988776L; + + /** + * + */ + public NoScopeSelectedException() { + super(); + } + + /** + * @param message + * message + */ + public NoScopeSelectedException(String message) { + super(message); + } + + public NoScopeSelectedException(String message, Throwable t) { + super(message, t); + } + +} 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 a9da336..c863279 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 @@ -55,11 +55,11 @@ --> + /> --> - +