Refs #21354: Improve accounting manager portlet by new persistence

Updated Top
This commit is contained in:
Giancarlo Panichi 2021-11-25 16:53:23 +01:00
parent ac4c236019
commit ec06f615d7
26 changed files with 867 additions and 1518 deletions

View File

@ -15,6 +15,7 @@ import org.gcube.portlets.admin.accountingmanager.client.rpc.AccountingManagerSe
import org.gcube.portlets.admin.accountingmanager.client.state.AccountingClientStateData; 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.type.SessionExpiredType;
import org.gcube.portlets.admin.accountingmanager.client.util.UtilsGXT3; 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.AccountingFilter;
import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterBasic;
import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterDefinition; import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingFilterDefinition;
@ -26,6 +27,7 @@ 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.FilterValue;
import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValuesRequest; 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.FilterValuesResponse;
import org.gcube.portlets.admin.accountingmanager.shared.exception.NoScopeSelectedException;
import org.gcube.portlets.admin.accountingmanager.shared.exception.SessionExpiredException; import org.gcube.portlets.admin.accountingmanager.shared.exception.SessionExpiredException;
import com.allen_sauer.gwt.log.client.Log; import com.allen_sauer.gwt.log.client.Log;
@ -36,21 +38,17 @@ import com.google.gwt.editor.client.Editor.Path;
import com.google.gwt.editor.client.EditorError; import com.google.gwt.editor.client.EditorError;
import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler; 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.event.shared.EventBus;
import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.google.gwt.user.client.rpc.AsyncCallback; 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.ButtonCell.IconAlign;
import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction; import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
import com.sencha.gxt.core.client.IdentityValueProvider; import com.sencha.gxt.core.client.IdentityValueProvider;
import com.sencha.gxt.core.client.Style.SelectionMode; import com.sencha.gxt.core.client.Style.SelectionMode;
import com.sencha.gxt.core.client.XTemplates; import com.sencha.gxt.core.client.XTemplates;
import com.sencha.gxt.core.client.util.Margins; 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.LabelProvider;
import com.sencha.gxt.data.shared.ListStore; import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.data.shared.ModelKeyProvider; import com.sencha.gxt.data.shared.ModelKeyProvider;
@ -63,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.ButtonBar;
import com.sencha.gxt.widget.core.client.button.TextButton; 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.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.MarginData;
import com.sencha.gxt.widget.core.client.container.SimpleContainer; 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;
@ -82,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.FieldLabel;
import com.sencha.gxt.widget.core.client.form.FieldSet; 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.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.StringComboBox;
import com.sencha.gxt.widget.core.client.form.error.DefaultEditorError; 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.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.CheckBoxSelectionModel;
import com.sencha.gxt.widget.core.client.grid.ColumnConfig; import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
import com.sencha.gxt.widget.core.client.grid.ColumnModel; import com.sencha.gxt.widget.core.client.grid.ColumnModel;
@ -105,9 +101,6 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
*/ */
public class ActiveFiltersPanel extends SimpleContainer { public class ActiveFiltersPanel extends SimpleContainer {
private static final int TOP_NUMBER_DEFAULT = 10;
private static final int TOP_NUMBER_MAX = 50;
private static final int TOP_NUMBER_MIN = 1;
private EventBus eventBus; private EventBus eventBus;
private Grid<AccountingFilter> gridFilter; private Grid<AccountingFilter> gridFilter;
private ListStore<AccountingFilter> storeFilter; private ListStore<AccountingFilter> storeFilter;
@ -134,7 +127,7 @@ public class ActiveFiltersPanel extends SimpleContainer {
private FieldLabel comboTopFilterKeyLabel; private FieldLabel comboTopFilterKeyLabel;
private ToolBar toolBar; private ToolBar toolBar;
private FieldLabel showOthersLabel; // private FieldLabel showOthersLabel;
private IntegerSpinnerField topNumber; private IntegerSpinnerField topNumber;
private FieldLabel topNumberLabel; private FieldLabel topNumberLabel;
@ -142,9 +135,9 @@ public class ActiveFiltersPanel extends SimpleContainer {
private boolean cancelValue; private boolean cancelValue;
private AccountingMonitor accountingMonitor; private AccountingMonitor accountingMonitor;
private Radio showOthersYes; // private Radio showOthersYes;
private Radio showOthersNo; // private Radio showOthersNo;
private ToggleGroup showOthersToggle; // private ToggleGroup showOthersToggle;
public interface FilterKeyPropertiesCombo extends PropertyAccess<FilterKey> { public interface FilterKeyPropertiesCombo extends PropertyAccess<FilterKey> {
@ -432,8 +425,8 @@ public class ActiveFiltersPanel extends SimpleContainer {
gridScopes.getView().setAutoExpandColumn(labelScopesCol); gridScopes.getView().setAutoExpandColumn(labelScopesCol);
gridScopes.getView().setSortingEnabled(true); gridScopes.getView().setSortingEnabled(true);
//gridScopes.setStateful(true); // gridScopes.setStateful(true);
//gridScopes.setStateId("gridScopesDefault"); // gridScopes.setStateId("gridScopesDefault");
scopeFilter = new StringFilter<ContextData>(propsScopeData.label()); scopeFilter = new StringFilter<ContextData>(propsScopeData.label());
@ -442,10 +435,10 @@ public class ActiveFiltersPanel extends SimpleContainer {
gridScopesFilters.setLocal(true); gridScopesFilters.setLocal(true);
gridScopesFilters.addFilter(scopeFilter); gridScopesFilters.addFilter(scopeFilter);
//GridFilterStateHandler<ContextData> handler = new GridFilterStateHandler<ContextData>(gridScopes, // GridFilterStateHandler<ContextData> handler = new
// gridScopesFilters); // GridFilterStateHandler<ContextData>(gridScopes,
//handler.loadState(); // gridScopesFilters);
// handler.loadState();
// ChartTypeSelection // ChartTypeSelection
storeComboChartType = new ListStore<ChartType>(new ModelKeyProvider<ChartType>() { storeComboChartType = new ListStore<ChartType>(new ModelKeyProvider<ChartType>() {
@ -476,33 +469,6 @@ public class ActiveFiltersPanel extends SimpleContainer {
addHandlersForComboChartType(comboChartTypeLabelProvider); addHandlersForComboChartType(comboChartTypeLabelProvider);
comboChartTypeLabel = new FieldLabel(comboChartType, "Chart"); comboChartTypeLabel = new FieldLabel(comboChartType, "Chart");
/*
* ScopeCombo for Top and Basic GenresDataPropertiesCombo
* scopeDataPropertiesCombo =
* GWT.create(GenresDataPropertiesCombo.class);
*
* storeComboScope = new
* ListStore<ScopeData>(scopeDataPropertiesCombo.id());
*
* comboScope = new ComboBox<ScopeData>(storeComboScope,
* scopeDataPropertiesCombo.label());
*
* comboScope.setClearValueOnParseError(false);
*
* comboScope.setTypeAhead(true);
*
* comboScope.setTriggerAction(TriggerAction.ALL);
*
* comboScope.getListView()
* .addStyleName(AccountingManagerResources.INSTANCE.
* accountingManagerCSS().getScopeListView());
*
* addHandlersForComboScope(scopeDataPropertiesCombo.label());
*
* comboScopeLabel = new FieldLabel(comboScope, "Scope");
*
*/
// FileterKeyCombo for Top Chart // FileterKeyCombo for Top Chart
storeComboTopFilterKey = new ListStore<FilterKey>(filterKeyPropertiesCombo.id()); storeComboTopFilterKey = new ListStore<FilterKey>(filterKeyPropertiesCombo.id());
@ -515,44 +481,45 @@ public class ActiveFiltersPanel extends SimpleContainer {
comboTopFilterKeyLabel = new FieldLabel(comboTopFilterKey, "Key"); comboTopFilterKeyLabel = new FieldLabel(comboTopFilterKey, "Key");
// ShowOthers /*
showOthersYes = new Radio(); * ShowOthers showOthersYes = new Radio();
showOthersYes.setBoxLabel("Yes"); * showOthersYes.setBoxLabel("Yes");
*
showOthersNo = new Radio(); * showOthersNo = new Radio(); showOthersNo.setBoxLabel("No");
showOthersNo.setBoxLabel("No"); * showOthersNo.setValue(true);
showOthersNo.setValue(true); *
* showOthersToggle = new ToggleGroup();
showOthersToggle = new ToggleGroup(); * showOthersToggle.add(showOthersYes);
showOthersToggle.add(showOthersYes); * showOthersToggle.add(showOthersNo);
showOthersToggle.add(showOthersNo); *
* showOthersToggle.addValueChangeHandler(new
showOthersToggle.addValueChangeHandler(new ValueChangeHandler<HasValue<Boolean>>() { * ValueChangeHandler<HasValue<Boolean>>() {
*
@Override * @Override public void
public void onValueChange(ValueChangeEvent<HasValue<Boolean>> event) { * onValueChange(ValueChangeEvent<HasValue<Boolean>> event) {
ToggleGroup group = (ToggleGroup) event.getSource(); * ToggleGroup group = (ToggleGroup) event.getSource(); Radio radio =
Radio radio = (Radio) group.getValue(); * (Radio) group.getValue(); Log.debug("ShowOthers selected: " +
Log.debug("ShowOthers selected: " + radio.getBoxLabel()); * radio.getBoxLabel()); } });
} *
}); * HBoxLayoutContainer hp = new HBoxLayoutContainer();
* hp.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE);
HBoxLayoutContainer hp = new HBoxLayoutContainer(); * hp.setPack(BoxLayoutPack.START); hp.add(showOthersYes, new
hp.setHBoxLayoutAlign(HBoxLayoutAlign.MIDDLE); * BoxLayoutData(new Margins(0))); hp.add(showOthersNo, new
hp.setPack(BoxLayoutPack.START); * BoxLayoutData(new Margins(0)));
hp.add(showOthersYes, new BoxLayoutData(new Margins(0))); *
hp.add(showOthersNo, new BoxLayoutData(new Margins(0))); * showOthersLabel = new FieldLabel(hp, "Show Others");
*/
showOthersLabel = new FieldLabel(hp, "Show Others");
// //
topNumber = new IntegerSpinnerField(); topNumber = new IntegerSpinnerField();
topNumber.setMaxValue(TOP_NUMBER_MAX); topNumber.setMaxValue(Constants.TOP_NUMBER_MAX);
topNumber.setMinValue(TOP_NUMBER_MIN); topNumber.setMinValue(Constants.TOP_NUMBER_MIN);
topNumber.setAllowNegative(false); topNumber.setAllowNegative(false);
topNumber.setAllowBlank(false); topNumber.setAllowBlank(false);
topNumber.setValue(TOP_NUMBER_DEFAULT); topNumber.setValue(Constants.TOP_NUMBER_DEFAULT);
topNumber.setEditable(false); topNumber.setEditable(true);
topNumber.addValidator(new MinNumberValidator<Integer>(Constants.TOP_NUMBER_MIN));
topNumber.addValidator(new MaxNumberValidator<Integer>(Constants.TOP_NUMBER_MAX));
topNumberLabel = new FieldLabel(topNumber, "Number"); topNumberLabel = new FieldLabel(topNumber, "Number");
@ -562,23 +529,23 @@ public class ActiveFiltersPanel extends SimpleContainer {
vlc.add(gridScopes, 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(comboChartTypeLabel, new VerticalLayoutData(1, -1, new Margins(10, 0, 0, 0)));
vlc.add(comboTopFilterKeyLabel, new VerticalLayoutData(1, -1, new Margins(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(topNumberLabel, new VerticalLayoutData(1, -1, new Margins(0)));
vlc.add(toolBar, 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))); vlc.add(gridFilter, new VerticalLayoutData(1, 1, new Margins(0)));
FieldSet fieldSet = new FieldSet(); FieldSet fieldSet = new FieldSet();
// fieldSet.setHeight("360px");
fieldSet.setHeight("480px"); fieldSet.setHeight("480px");
fieldSet.setHeadingHtml("<b>Active Filters</b>"); fieldSet.setHeadingHtml("<b>Active Filters</b>");
fieldSet.setCollapsible(false); fieldSet.setCollapsible(false);
fieldSet.add(vlc); fieldSet.add(vlc);
add(fieldSet, new MarginData(0)); add(fieldSet, new MarginData(0));
//gridScopes.setVisible(true); gridScopes.setVisible(false);
//comboChartTypeLabel.setVisible(true); comboChartTypeLabel.setVisible(false);
comboTopFilterKeyLabel.setVisible(false); comboTopFilterKeyLabel.setVisible(false);
showOthersLabel.setVisible(false); // showOthersLabel.setVisible(false);
topNumberLabel.setVisible(false); topNumberLabel.setVisible(false);
} }
@ -727,24 +694,24 @@ public class ActiveFiltersPanel extends SimpleContainer {
storeScopes.setEnableFilters(false); storeScopes.setEnableFilters(false);
storeScopes.addAll(scopes); storeScopes.addAll(scopes);
storeScopes.commitChanges(); storeScopes.commitChanges();
Log.debug("ScopeFilterActive: "+accountingFilterBasic.getScopeFilterActive()); Log.debug("ScopeFilterActive: " + accountingFilterBasic.getScopeFilterActive());
if (accountingFilterBasic.getScopeFilterActive() != null if (accountingFilterBasic.getScopeFilterActive() != null
&& !accountingFilterBasic.getScopeFilterActive().isEmpty()) { && !accountingFilterBasic.getScopeFilterActive().isEmpty()) {
scopeFilter.setValue(accountingFilterBasic.getScopeFilterActive()); scopeFilter.setValue(accountingFilterBasic.getScopeFilterActive());
scopeFilter.setActive(true, false); scopeFilter.setActive(true, false);
storeScopes.setEnableFilters(true); storeScopes.setEnableFilters(true);
storeScopes.commitChanges(); storeScopes.commitChanges();
} else { } else {
scopeFilter.setValue(null); scopeFilter.setValue(null);
scopeFilter.setActive(false, false); scopeFilter.setActive(false, false);
} }
smScopes.deselectAll(); smScopes.deselectAll();
if (accountingFilterBasic.getContext().getContexts() != null if (accountingFilterBasic.getContext().getContexts() != null
&&!accountingFilterBasic.getContext().getContexts().isEmpty()) { && !accountingFilterBasic.getContext().getContexts().isEmpty()) {
ArrayList<ContextData> selected = new ArrayList<>(); ArrayList<ContextData> selected = new ArrayList<>();
for (String c : accountingFilterBasic.getContext().getContexts()) { for (String c : accountingFilterBasic.getContext().getContexts()) {
for (ContextData contextData : storeScopes.getAll()) { for (ContextData contextData : storeScopes.getAll()) {
@ -759,15 +726,14 @@ public class ActiveFiltersPanel extends SimpleContainer {
Log.debug("Select All Scope"); Log.debug("Select All Scope");
smScopes.selectAll(); smScopes.selectAll();
} else { } else {
Log.debug("Select Scope: "+selected); Log.debug("Select Scope: " + selected);
smScopes.select(selected, false); smScopes.select(selected, false);
} }
} }
} }
smScopes.refresh(); smScopes.refresh();
} else { } else {
repopulatesContexts(); repopulatesContexts();
} }
@ -808,9 +774,9 @@ public class ActiveFiltersPanel extends SimpleContainer {
comboChartType.setValue(ChartType.Basic); comboChartType.setValue(ChartType.Basic);
comboTopFilterKey.reset(); comboTopFilterKey.reset();
comboTopFilterKeyLabel.setVisible(false); comboTopFilterKeyLabel.setVisible(false);
showOthersToggle.reset(); // showOthersToggle.reset();
showOthersNo.setValue(true); // showOthersNo.setValue(true);
showOthersLabel.setVisible(false); // showOthersLabel.setVisible(false);
topNumber.reset(); topNumber.reset();
topNumberLabel.setVisible(false); topNumberLabel.setVisible(false);
forceLayout(); forceLayout();
@ -842,8 +808,8 @@ public class ActiveFiltersPanel extends SimpleContainer {
storeScopes.setEnableFilters(false); storeScopes.setEnableFilters(false);
storeScopes.addAll(scopes); storeScopes.addAll(scopes);
storeScopes.commitChanges(); storeScopes.commitChanges();
Log.debug("ScopeFilterActive: "+accountingFilterTop.getScopeFilterActive()); Log.debug("ScopeFilterActive: " + accountingFilterTop.getScopeFilterActive());
if (accountingFilterTop.getScopeFilterActive() != null if (accountingFilterTop.getScopeFilterActive() != null
&& !accountingFilterTop.getScopeFilterActive().isEmpty()) { && !accountingFilterTop.getScopeFilterActive().isEmpty()) {
scopeFilter.setValue(accountingFilterTop.getScopeFilterActive()); scopeFilter.setValue(accountingFilterTop.getScopeFilterActive());
@ -854,13 +820,11 @@ public class ActiveFiltersPanel extends SimpleContainer {
scopeFilter.setValue(null); scopeFilter.setValue(null);
scopeFilter.setActive(false, false); scopeFilter.setActive(false, false);
} }
smScopes.deselectAll(); smScopes.deselectAll();
if (accountingFilterTop.getContext().getContexts() != null && if (accountingFilterTop.getContext().getContexts() != null
!accountingFilterTop.getContext().getContexts().isEmpty()) { && !accountingFilterTop.getContext().getContexts().isEmpty()) {
ArrayList<ContextData> selected = new ArrayList<>(); ArrayList<ContextData> selected = new ArrayList<>();
for (String c : accountingFilterTop.getContext().getContexts()) { for (String c : accountingFilterTop.getContext().getContexts()) {
for (ContextData contextData : storeScopes.getAll()) { for (ContextData contextData : storeScopes.getAll()) {
@ -875,15 +839,14 @@ public class ActiveFiltersPanel extends SimpleContainer {
Log.debug("Select All Scope"); Log.debug("Select All Scope");
smScopes.selectAll(); smScopes.selectAll();
} else { } else {
Log.debug("Select Scope: "+selected); Log.debug("Select Scope: " + selected);
smScopes.select(selected, false); smScopes.select(selected, false);
} }
} }
} }
smScopes.refresh(); smScopes.refresh();
} else { } else {
repopulatesContexts(); repopulatesContexts();
} }
@ -916,10 +879,10 @@ public class ActiveFiltersPanel extends SimpleContainer {
} else { } else {
comboTopFilterKey.reset(); comboTopFilterKey.reset();
showOthersToggle.reset(); // showOthersToggle.reset();
showOthersNo.setValue(true); // showOthersNo.setValue(true);
topNumber.reset(); topNumber.reset();
topNumber.setValue(TOP_NUMBER_DEFAULT); topNumber.setValue(Constants.TOP_NUMBER_DEFAULT);
storeFilter.clear(); storeFilter.clear();
storeFilter.commitChanges(); storeFilter.commitChanges();
seq = 0; seq = 0;
@ -938,7 +901,7 @@ public class ActiveFiltersPanel extends SimpleContainer {
storeScopes.setEnableFilters(false); storeScopes.setEnableFilters(false);
storeScopes.addAll(scopes); storeScopes.addAll(scopes);
storeScopes.commitChanges(); storeScopes.commitChanges();
} else { } else {
storeScopes.clear(); storeScopes.clear();
storeScopes.setEnableFilters(false); storeScopes.setEnableFilters(false);
@ -947,14 +910,14 @@ public class ActiveFiltersPanel extends SimpleContainer {
scopeFilter.setValue(null); scopeFilter.setValue(null);
scopeFilter.setActive(false, false); scopeFilter.setActive(false, false);
smScopes.deselectAll(); smScopes.deselectAll();
comboTopFilterKey.reset(); comboTopFilterKey.reset();
showOthersToggle.reset(); // showOthersToggle.reset();
showOthersNo.setValue(true); // showOthersNo.setValue(true);
topNumber.reset(); topNumber.reset();
topNumber.setValue(TOP_NUMBER_DEFAULT); topNumber.setValue(Constants.TOP_NUMBER_DEFAULT);
storeFilter.clear(); storeFilter.clear();
storeFilter.commitChanges(); storeFilter.commitChanges();
seq = 0; seq = 0;
@ -964,10 +927,10 @@ public class ActiveFiltersPanel extends SimpleContainer {
gridScopes.setVisible(true); gridScopes.setVisible(true);
labelScopesCol.setHeader("Scope"); labelScopesCol.setHeader("Scope");
gridScopes.getView().refresh(true); gridScopes.getView().refresh(true);
comboChartType.setValue(ChartType.Top); comboChartType.setValue(ChartType.Top);
comboTopFilterKeyLabel.setVisible(true); comboTopFilterKeyLabel.setVisible(true);
showOthersLabel.setVisible(true); // showOthersLabel.setVisible(true);
topNumberLabel.setVisible(true); topNumberLabel.setVisible(true);
forceLayout(); forceLayout();
} }
@ -1103,6 +1066,9 @@ public class ActiveFiltersPanel extends SimpleContainer {
} }
} catch (NoScopeSelectedException e) {
UtilsGXT3.alert("Attention", e.getLocalizedMessage());
return null;
} catch (Throwable e) { } catch (Throwable e) {
Log.error(e.getLocalizedMessage()); Log.error(e.getLocalizedMessage());
e.printStackTrace(); e.printStackTrace();
@ -1112,7 +1078,7 @@ public class ActiveFiltersPanel extends SimpleContainer {
} }
// TODO // TODO
private AccountingFilterDefinition getActiveFiltersForBasic() { private AccountingFilterDefinition getActiveFiltersForBasic() throws NoScopeSelectedException {
ArrayList<String> contextsSelected = new ArrayList<String>(); ArrayList<String> contextsSelected = new ArrayList<String>();
if (storeScopes != null && storeScopes.size() > 0 && smScopes != null) { if (storeScopes != null && storeScopes.size() > 0 && smScopes != null) {
List<ContextData> selected = smScopes.getSelectedItems(); List<ContextData> selected = smScopes.getSelectedItems();
@ -1120,6 +1086,13 @@ public class ActiveFiltersPanel extends SimpleContainer {
contextsSelected.add(cd.getContextData()); contextsSelected.add(cd.getContextData());
} }
} }
if (contextsSelected.isEmpty()) {
String msg = "No Scope selected! Please, select a Scope.";
Log.info(msg);
throw new NoScopeSelectedException(msg);
}
Context context = new Context(contextsSelected); Context context = new Context(contextsSelected);
Log.debug("Context selected: " + context); Log.debug("Context selected: " + context);
@ -1152,7 +1125,7 @@ public class ActiveFiltersPanel extends SimpleContainer {
} }
} }
private AccountingFilterDefinition getActiveFiltersForTop() { private AccountingFilterDefinition getActiveFiltersForTop() throws NoScopeSelectedException {
ArrayList<String> contextsSelected = new ArrayList<String>(); ArrayList<String> contextsSelected = new ArrayList<String>();
if (storeScopes != null && storeScopes.size() > 0 && smScopes != null) { if (storeScopes != null && storeScopes.size() > 0 && smScopes != null) {
List<ContextData> selected = smScopes.getSelectedItems(); List<ContextData> selected = smScopes.getSelectedItems();
@ -1160,6 +1133,13 @@ public class ActiveFiltersPanel extends SimpleContainer {
contextsSelected.add(cd.getContextData()); contextsSelected.add(cd.getContextData());
} }
} }
if (contextsSelected.isEmpty()) {
String msg = "No Scope selected! Please, select a Scope.";
Log.info(msg);
throw new NoScopeSelectedException(msg);
}
Context context = new Context(contextsSelected); Context context = new Context(contextsSelected);
Log.debug("Context selected: " + context); Log.debug("Context selected: " + context);
@ -1171,14 +1151,32 @@ public class ActiveFiltersPanel extends SimpleContainer {
} }
Log.debug("Scope Filter Active: " + scopeFilterActive); Log.debug("Scope Filter Active: " + scopeFilterActive);
Boolean showOthersValue = showOthersYes.getValue(); // Boolean showOthersValue = showOthersYes.getValue();
Integer topN = topNumber.getCurrentValue(); Integer topN = topNumber.getCurrentValue();
if(topN!=null){
if(topN<Constants.TOP_NUMBER_MIN){
topN=Constants.TOP_NUMBER_MIN;
topNumber.setValue(topN, true, true);
topNumber.clearInvalid();
} else {
if(topN>Constants.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(); FilterKey filterKey = comboTopFilterKey.getCurrentValue();
if (filterKey == null) { if (filterKey == null) {
return new AccountingFilterTop(context, scopeFilterActive, showOthersValue, topN); return new AccountingFilterTop(context, scopeFilterActive, topN);
} else { } else {
if (storeFilter == null || storeFilter.size() <= 0) { if (storeFilter == null || storeFilter.size() <= 0) {
return new AccountingFilterTop(context, scopeFilterActive, filterKey, null, showOthersValue, topN); return new AccountingFilterTop(context, scopeFilterActive, filterKey, null, topN);
} else { } else {
List<AccountingFilter> filtersActives = storeFilter.getAll(); List<AccountingFilter> filtersActives = storeFilter.getAll();
ArrayList<AccountingFilter> filtersReady = new ArrayList<AccountingFilter>(); ArrayList<AccountingFilter> filtersReady = new ArrayList<AccountingFilter>();
@ -1188,10 +1186,11 @@ public class ActiveFiltersPanel extends SimpleContainer {
} }
} }
if (filtersReady.size() > 0) { if (filtersReady.size() > 0) {
return new AccountingFilterTop(context, scopeFilterActive, filterKey, filtersReady, showOthersValue, return new AccountingFilterTop(context, scopeFilterActive, filterKey,
topN); filtersReady, topN);
} else { } else {
return new AccountingFilterTop(context, scopeFilterActive, filterKey, null, showOthersValue, topN); return new AccountingFilterTop(context, scopeFilterActive, filterKey,
null, topN);
} }
} }
@ -1222,7 +1221,7 @@ public class ActiveFiltersPanel extends SimpleContainer {
*/ */
private void addNewFilter(SelectEvent event) { private void addNewFilter(SelectEvent event) {
List<AccountingFilter> filtersSet = storeFilter.getAll(); // List<AccountingFilter> filtersSet = storeFilter.getAll();
FilterKey fk = null; FilterKey fk = null;
if (accountingStateData == null || accountingStateData.getAvailableFilterKeys() == null if (accountingStateData == null || accountingStateData.getAvailableFilterKeys() == null
@ -1234,9 +1233,10 @@ public class ActiveFiltersPanel extends SimpleContainer {
accountingStateData.getAvailableFilterKeys()); accountingStateData.getAvailableFilterKeys());
List<FilterKey> removableFilterKeys = new ArrayList<FilterKey>(); List<FilterKey> removableFilterKeys = new ArrayList<FilterKey>();
for (AccountingFilter filterSet : filtersSet) { /*
removableFilterKeys.add(filterSet.getFilterKey()); * for (AccountingFilter filterSet : filtersSet) {
} * removableFilterKeys.add(filterSet.getFilterKey()); }
*/
if (comboChartType.getCurrentValue() != null if (comboChartType.getCurrentValue() != null
&& comboChartType.getCurrentValue().compareTo(ChartType.Top) == 0) { && comboChartType.getCurrentValue().compareTo(ChartType.Top) == 0) {
@ -1248,14 +1248,6 @@ public class ActiveFiltersPanel extends SimpleContainer {
remainingFilterKeys.removeAll(removableFilterKeys); remainingFilterKeys.removeAll(removableFilterKeys);
if (remainingFilterKeys.size() > 0) { 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(""); fk = new FilterKey("");
seq++; seq++;
AccountingFilter newAccountingFilter = new AccountingFilter(seq, fk, ""); AccountingFilter newAccountingFilter = new AccountingFilter(seq, fk, "");
@ -1344,7 +1336,7 @@ public class ActiveFiltersPanel extends SimpleContainer {
int rowIndex = cell.getRow(); int rowIndex = cell.getRow();
AccountingFilter editingFilter = storeFilter.get(rowIndex); AccountingFilter editingFilter = storeFilter.get(rowIndex);
List<AccountingFilter> filtersSet = storeFilter.getAll(); // List<AccountingFilter> filtersSet = storeFilter.getAll();
List<FilterKey> remainingFilterKeys = null; List<FilterKey> remainingFilterKeys = null;
if (accountingStateData == null || accountingStateData.getAvailableFilterKeys() == null) { if (accountingStateData == null || accountingStateData.getAvailableFilterKeys() == null) {
@ -1363,11 +1355,12 @@ public class ActiveFiltersPanel extends SimpleContainer {
} }
} }
for (AccountingFilter filterSet : filtersSet) { /*
if (filterSet.getFilterKey().getKey().compareTo(editingFilter.getFilterKey().getKey()) != 0) { * for (AccountingFilter filterSet : filtersSet) { if
setFilterKeys.add(filterSet.getFilterKey()); * (filterSet.getFilterKey().getKey().compareTo(editingFilter.
} * getFilterKey().getKey()) != 0) {
} * setFilterKeys.add(filterSet.getFilterKey()); } }
*/
remainingFilterKeys.removeAll(setFilterKeys); remainingFilterKeys.removeAll(setFilterKeys);
@ -1416,9 +1409,9 @@ public class ActiveFiltersPanel extends SimpleContainer {
case Basic: case Basic:
comboTopFilterKey.reset(); comboTopFilterKey.reset();
comboTopFilterKeyLabel.setVisible(false); comboTopFilterKeyLabel.setVisible(false);
showOthersToggle.reset(); //showOthersToggle.reset();
showOthersNo.setValue(true); //showOthersNo.setValue(true);
showOthersLabel.setVisible(false); //showOthersLabel.setVisible(false);
topNumber.reset(); topNumber.reset();
topNumberLabel.setVisible(false); topNumberLabel.setVisible(false);
storeFilter.clear(); storeFilter.clear();
@ -1433,11 +1426,11 @@ public class ActiveFiltersPanel extends SimpleContainer {
comboTopFilterKey.setValue(accountingStateData.getAvailableFilterKeys().get(0)); comboTopFilterKey.setValue(accountingStateData.getAvailableFilterKeys().get(0));
} }
comboTopFilterKeyLabel.setVisible(true); comboTopFilterKeyLabel.setVisible(true);
showOthersToggle.reset(); //showOthersToggle.reset();
showOthersNo.setValue(true); //showOthersNo.setValue(true);
showOthersLabel.setVisible(true); //showOthersLabel.setVisible(true);
topNumber.reset(); topNumber.reset();
topNumber.setValue(TOP_NUMBER_DEFAULT); topNumber.setValue(Constants.TOP_NUMBER_DEFAULT);
topNumberLabel.setVisible(true); topNumberLabel.setVisible(true);
storeFilter.clear(); storeFilter.clear();
storeFilter.commitChanges(); storeFilter.commitChanges();

View File

@ -92,7 +92,7 @@ public class FiltersPanel extends FramedPanel {
AccountingFilterDefinition accountingFilterDefinition = activeFiltersPanel AccountingFilterDefinition accountingFilterDefinition = activeFiltersPanel
.getActiveFilters(); .getActiveFilters();
if (accountingPeriod != null) { if (accountingPeriod != null && accountingFilterDefinition!=null) {
SeriesRequest seriesRequest = new SeriesRequest(accountingPeriod, SeriesRequest seriesRequest = new SeriesRequest(accountingPeriod,
accountingFilterDefinition); accountingFilterDefinition);
Log.debug("UpdateChart: " + seriesRequest); Log.debug("UpdateChart: " + seriesRequest);

View File

@ -57,8 +57,7 @@ public class JobChartTopPanel extends SimpleContainer {
private static final String TIME_UNIT = "Time Unit"; private static final String TIME_UNIT = "Time Unit";
// private static final String MEASURE_TYPE = "Measure"; // private static final String MEASURE_TYPE = "Measure";
private DateTimeFormat dtf = DateTimeFormat private DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH_DAY);
.getFormat(PredefinedFormat.YEAR_MONTH_DAY);
private EventBus eventBus; private EventBus eventBus;
private AccountingClientStateData accountingStateData; private AccountingClientStateData accountingStateData;
@ -96,8 +95,7 @@ public class JobChartTopPanel extends SimpleContainer {
private VerticalLayoutContainer vert; private VerticalLayoutContainer vert;
public JobChartTopPanel(EventBus eventBus, public JobChartTopPanel(EventBus eventBus, AccountingClientStateData accountingStateData) {
AccountingClientStateData accountingStateData) {
this.eventBus = eventBus; this.eventBus = eventBus;
this.accountingStateData = accountingStateData; this.accountingStateData = accountingStateData;
forceLayoutOnResize = true; forceLayoutOnResize = true;
@ -109,8 +107,7 @@ public class JobChartTopPanel extends SimpleContainer {
ToolBar toolBar = new ToolBar(); ToolBar toolBar = new ToolBar();
toolBar.setSpacing(2); toolBar.setSpacing(2);
// Download // Download
final TextButton downloadButton = new TextButton( final TextButton downloadButton = new TextButton(DownloadConstants.DOWNLOAD,
DownloadConstants.DOWNLOAD,
AccountingManagerResources.INSTANCE.accountingDownload24()); AccountingManagerResources.INSTANCE.accountingDownload24());
// downloadButton.setScale(ButtonScale.MEDIUM); // downloadButton.setScale(ButtonScale.MEDIUM);
downloadButton.setIconAlign(IconAlign.RIGHT); downloadButton.setIconAlign(IconAlign.RIGHT);
@ -125,8 +122,7 @@ public class JobChartTopPanel extends SimpleContainer {
measureButton.setMenu(createMeasureMenu()); measureButton.setMenu(createMeasureMenu());
// Unit // Unit
unitButton = new TextButton(TIME_UNIT, unitButton = new TextButton(TIME_UNIT, AccountingManagerResources.INSTANCE.accountingUnitms24());
AccountingManagerResources.INSTANCE.accountingUnitms24());
unitButton.setIconAlign(IconAlign.RIGHT); unitButton.setIconAlign(IconAlign.RIGHT);
unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); unitButton.setArrowAlign(ButtonArrowAlign.RIGHT);
unitButton.setMenu(createUnitMenu()); unitButton.setMenu(createUnitMenu());
@ -145,8 +141,7 @@ public class JobChartTopPanel extends SimpleContainer {
// //
vert = new VerticalLayoutContainer(); vert = new VerticalLayoutContainer();
vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new Margins(0)));
new Margins(0)));
add(vert, new MarginData(0)); add(vert, new MarginData(0));
@ -265,14 +260,11 @@ public class JobChartTopPanel extends SimpleContainer {
// TODO // TODO
durationItem = new MenuItem(JobChartMeasure.Duration.getLabel()); durationItem = new MenuItem(JobChartMeasure.Duration.getLabel());
durationItem.setHeight(30); durationItem.setHeight(30);
operationCountItem = new MenuItem( operationCountItem = new MenuItem(JobChartMeasure.OperationCount.getLabel());
JobChartMeasure.OperationCount.getLabel());
operationCountItem.setHeight(30); operationCountItem.setHeight(30);
maxInvocationTimeItem = new MenuItem( maxInvocationTimeItem = new MenuItem(JobChartMeasure.MaxInvocationTime.getLabel());
JobChartMeasure.MaxInvocationTime.getLabel());
maxInvocationTimeItem.setHeight(30); maxInvocationTimeItem.setHeight(30);
minInvocationTimeItem = new MenuItem( minInvocationTimeItem = new MenuItem(JobChartMeasure.MinInvocationTime.getLabel());
JobChartMeasure.MinInvocationTime.getLabel());
minInvocationTimeItem.setHeight(30); minInvocationTimeItem.setHeight(30);
durationItem.addSelectionHandler(new SelectionHandler<Item>() { durationItem.addSelectionHandler(new SelectionHandler<Item>() {
@ -301,8 +293,7 @@ public class JobChartTopPanel extends SimpleContainer {
@Override @Override
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
measureButton.setText(JobChartMeasure.MaxInvocationTime measureButton.setText(JobChartMeasure.MaxInvocationTime.getLabel());
.getLabel());
measure = JobChartMeasure.MaxInvocationTime; measure = JobChartMeasure.MaxInvocationTime;
unitButton.setVisible(true); unitButton.setVisible(true);
updateChart(); updateChart();
@ -313,8 +304,7 @@ public class JobChartTopPanel extends SimpleContainer {
@Override @Override
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
measureButton.setText(JobChartMeasure.MinInvocationTime measureButton.setText(JobChartMeasure.MinInvocationTime.getLabel());
.getLabel());
measure = JobChartMeasure.MinInvocationTime; measure = JobChartMeasure.MinInvocationTime;
unitButton.setVisible(true); unitButton.setVisible(true);
updateChart(); updateChart();
@ -332,17 +322,13 @@ public class JobChartTopPanel extends SimpleContainer {
private Menu createUnitMenu() { private Menu createUnitMenu() {
Menu menuUnit = new Menu(); Menu menuUnit = new Menu();
msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, msItem = new MenuItem(TimeUnitMeasure.MILLISECONDS, AccountingManagerResources.INSTANCE.accountingUnitms24());
AccountingManagerResources.INSTANCE.accountingUnitms24());
msItem.setHeight(30); msItem.setHeight(30);
sItem = new MenuItem(TimeUnitMeasure.SECONDS, sItem = new MenuItem(TimeUnitMeasure.SECONDS, AccountingManagerResources.INSTANCE.accountingUnits24());
AccountingManagerResources.INSTANCE.accountingUnits24());
sItem.setHeight(30); sItem.setHeight(30);
mItem = new MenuItem(TimeUnitMeasure.MINUTES, mItem = new MenuItem(TimeUnitMeasure.MINUTES, AccountingManagerResources.INSTANCE.accountingUnitm24());
AccountingManagerResources.INSTANCE.accountingUnitm24());
mItem.setHeight(30); mItem.setHeight(30);
hItem = new MenuItem(TimeUnitMeasure.HOURS, hItem = new MenuItem(TimeUnitMeasure.HOURS, AccountingManagerResources.INSTANCE.accountingUnith24());
AccountingManagerResources.INSTANCE.accountingUnith24());
hItem.setHeight(30); hItem.setHeight(30);
msItem.addSelectionHandler(new SelectionHandler<Item>() { msItem.addSelectionHandler(new SelectionHandler<Item>() {
@ -351,8 +337,7 @@ public class JobChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = TimeUnitMeasure.getMilliseconds(); unitMeasure = TimeUnitMeasure.getMilliseconds();
unitMeasureLabel = TimeUnitMeasure.MS; unitMeasureLabel = TimeUnitMeasure.MS;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitms24());
.accountingUnitms24());
updateChart(); updateChart();
} }
}); });
@ -363,8 +348,7 @@ public class JobChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = TimeUnitMeasure.getSeconds(); unitMeasure = TimeUnitMeasure.getSeconds();
unitMeasureLabel = TimeUnitMeasure.S; unitMeasureLabel = TimeUnitMeasure.S;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnits24());
.accountingUnits24());
updateChart(); updateChart();
} }
}); });
@ -375,8 +359,7 @@ public class JobChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = TimeUnitMeasure.getMinutes(); unitMeasure = TimeUnitMeasure.getMinutes();
unitMeasureLabel = TimeUnitMeasure.M; unitMeasureLabel = TimeUnitMeasure.M;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitm24());
.accountingUnitm24());
updateChart(); updateChart();
} }
}); });
@ -387,8 +370,7 @@ public class JobChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = TimeUnitMeasure.getHours(); unitMeasure = TimeUnitMeasure.getHours();
unitMeasureLabel = TimeUnitMeasure.H; unitMeasureLabel = TimeUnitMeasure.H;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnith24());
.accountingUnith24());
updateChart(); updateChart();
} }
}); });
@ -402,20 +384,17 @@ public class JobChartTopPanel extends SimpleContainer {
} }
private void onDownloadCSV() { private void onDownloadCSV() {
ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV, ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV, accountingStateData.getAccountingType());
accountingStateData.getAccountingType());
eventBus.fireEvent(event); eventBus.fireEvent(event);
} }
private void onDownloadXML() { private void onDownloadXML() {
ExportRequestEvent event = new ExportRequestEvent(ExportType.XML, ExportRequestEvent event = new ExportRequestEvent(ExportType.XML, accountingStateData.getAccountingType());
accountingStateData.getAccountingType());
eventBus.fireEvent(event); eventBus.fireEvent(event);
} }
private void onDownloadJSON() { private void onDownloadJSON() {
ExportRequestEvent event = new ExportRequestEvent(ExportType.JSON, ExportRequestEvent event = new ExportRequestEvent(ExportType.JSON, accountingStateData.getAccountingType());
accountingStateData.getAccountingType());
eventBus.fireEvent(event); eventBus.fireEvent(event);
} }
@ -472,15 +451,13 @@ public class JobChartTopPanel extends SimpleContainer {
}-*/; }-*/;
private void createChart() { private void createChart() {
SeriesJob seriesJob = (SeriesJob) accountingStateData SeriesJob seriesJob = (SeriesJob) accountingStateData.getSeriesResponse();
.getSeriesResponse();
if (!(seriesJob.getSeriesJobDefinition() instanceof SeriesJobTop)) { if (!(seriesJob.getSeriesJobDefinition() instanceof SeriesJobTop)) {
Log.debug("Invalid SeriesJobTop!"); Log.debug("Invalid SeriesJobTop!");
return; return;
} }
SeriesJobTop seriesJobTop = (SeriesJobTop) seriesJob SeriesJobTop seriesJobTop = (SeriesJobTop) seriesJob.getSeriesJobDefinition();
.getSeriesJobDefinition();
HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory();
@ -491,7 +468,8 @@ public class JobChartTopPanel extends SimpleContainer {
options.title().text("Accounting Job Top"); 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"
* );
*/ */
ArrayString colors = options.colors(); ArrayString colors = options.colors();
@ -501,22 +479,13 @@ public class JobChartTopPanel extends SimpleContainer {
// yAxis // yAxis
options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors));
options.plotOptions().setFieldAsJsonObject( options.plotOptions().setFieldAsJsonObject("column",
"column", "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " + " \"enabled\": \"true\","
"{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { "
+ " \"enabled\": \"true\","
+ " \"color\": \"white\", " + " \"style\": {" + " \"color\": \"white\", " + " \"style\": {"
+ " \"textShadow\": \"0 0 3px black\"" + " }" + " \"textShadow\": \"0 0 3px black\"" + " }" + " }" + " }");
+ " }" + " }");
ArrayList<SeriesColumn> seriesColumn = new ArrayList<>(); ArrayList<SeriesColumn> seriesColumn = new ArrayList<>();
if (seriesJobTop.getShowOthers()) { createSeriesColumnSimple(seriesJobTop, highchartsFactory, colors, seriesColumn);
createSeriesColumnShowOthers(seriesJobTop, highchartsFactory,
colors, seriesColumn);
} else {
createSeriesColumnSimple(seriesJobTop, highchartsFactory, colors,
seriesColumn);
}
for (SeriesColumn serie : seriesColumn) { for (SeriesColumn serie : seriesColumn) {
options.series().addToEnd(serie); options.series().addToEnd(serie);
@ -528,35 +497,28 @@ public class JobChartTopPanel extends SimpleContainer {
return; return;
} }
private void createSeriesColumnShowOthers(SeriesJobTop seriesJobTop, private void createSeriesColumnShowOthers(SeriesJobTop seriesJobTop, HighchartsOptionFactory highchartsFactory,
HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayString colors, ArrayList<SeriesColumn> seriesColumn) {
ArrayList<SeriesColumn> seriesColumn) {
Log.debug("Series ShowOthers"); Log.debug("Series ShowOthers");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.DAILY) == 0 .compareTo(AccountingPeriodMode.DAILY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.HOURLY) == 0 .compareTo(AccountingPeriodMode.HOURLY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MINUTELY) == 0) { .compareTo(AccountingPeriodMode.MINUTELY) == 0) {
double minRange = ChartTimeMeasure double minRange = ChartTimeMeasure
.calculateMinRange(accountingStateData.getSeriesRequest() .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
double interval = ChartTimeMeasure double interval = ChartTimeMeasure
.calculateInterval(accountingStateData.getSeriesRequest() .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate());
.getAccountingPeriod().getStartDate());
dateStart.setTime(dateStart.getTime() dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE);
+ ChartTimeMeasure.timeZoneOffset()
* ChartTimeMeasure.MINUTE);
Log.debug("BuildChart DateStart: " Log.debug("BuildChart DateStart: "
+ DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart));
.format(dateStart));
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
@ -564,31 +526,25 @@ public class JobChartTopPanel extends SimpleContainer {
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
int i = 0; int i = 0;
for (; i < seriesJobTop.getSeriesJobDataTopList().size() for (; i < seriesJobTop.getSeriesJobDataTopList().size() && i < seriesJobTop.getTopNumber(); i++) {
&& i < seriesJobTop.getTopNumber(); i++) { SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
SeriesColumn seriesColumnData = highchartsFactory
.createSeriesColumn();
seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue());
.get(i).getFilterValue().getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayNumber data = seriesColumnData.dataAsArrayNumber(); ArrayNumber data = seriesColumnData.dataAsArrayNumber();
for (SeriesJobData seriesJobData : seriesJobTop for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) {
.getSeriesJobDataTopList().get(i).getSeries()) {
switch (measure) { switch (measure) {
case Duration: case Duration:
data.push(seriesJobData.getDuration() / unitMeasure); data.push(seriesJobData.getDuration() / unitMeasure);
break; break;
case MaxInvocationTime: case MaxInvocationTime:
data.push(seriesJobData.getMaxInvocationTime() data.push(seriesJobData.getMaxInvocationTime() / unitMeasure);
/ unitMeasure);
break; break;
case MinInvocationTime: case MinInvocationTime:
data.push(seriesJobData.getMinInvocationTime() data.push(seriesJobData.getMinInvocationTime() / unitMeasure);
/ unitMeasure);
break; break;
case OperationCount: case OperationCount:
data.push(seriesJobData.getOperationCount()); data.push(seriesJobData.getOperationCount());
@ -601,77 +557,61 @@ public class JobChartTopPanel extends SimpleContainer {
} }
seriesColumnData.pointInterval(interval).pointStart( seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime());
dateStart.getTime());
seriesColumn.add(seriesColumnData); seriesColumn.add(seriesColumnData);
} }
if (i < seriesJobTop.getSeriesJobDataTopList().size()) { if (i < seriesJobTop.getSeriesJobDataTopList().size()) {
SeriesColumn seriesColumnData = highchartsFactory SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.createSeriesColumn();
seriesColumnData.name("Others"); seriesColumnData.name("Others");
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayList<Long> othersData = new ArrayList<>(); ArrayList<Long> othersData = new ArrayList<>();
for (int j = i; j < seriesJobTop.getSeriesJobDataTopList() for (int j = i; j < seriesJobTop.getSeriesJobDataTopList().size(); j++) {
.size(); j++) {
Long value; Long value;
for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList() for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().size(); k++) {
.get(j).getSeries().size(); k++) { SeriesJobData seriesJobData = seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().get(k);
SeriesJobData seriesJobData = seriesJobTop
.getSeriesJobDataTopList().get(j).getSeries()
.get(k);
if (j == i) { if (j == i) {
switch (measure) { switch (measure) {
case Duration: case Duration:
othersData.add(seriesJobData.getDuration() othersData.add(seriesJobData.getDuration() / unitMeasure);
/ unitMeasure);
break; break;
case MaxInvocationTime: case MaxInvocationTime:
othersData.add(seriesJobData othersData.add(seriesJobData.getMaxInvocationTime() / unitMeasure);
.getMaxInvocationTime() / unitMeasure);
break; break;
case MinInvocationTime: case MinInvocationTime:
othersData.add(seriesJobData othersData.add(seriesJobData.getMinInvocationTime() / unitMeasure);
.getMinInvocationTime() / unitMeasure);
break; break;
case OperationCount: case OperationCount:
othersData.add(seriesJobData othersData.add(seriesJobData.getOperationCount());
.getOperationCount());
break; break;
default: default:
othersData.add(seriesJobData.getDuration() othersData.add(seriesJobData.getDuration() / unitMeasure);
/ unitMeasure);
break; break;
} }
} else { } else {
switch (measure) { switch (measure) {
case Duration: case Duration:
value = (seriesJobData.getDuration() / unitMeasure) value = (seriesJobData.getDuration() / unitMeasure) + othersData.get(k);
+ othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
case MaxInvocationTime: case MaxInvocationTime:
value = (seriesJobData.getMaxInvocationTime() / unitMeasure) value = (seriesJobData.getMaxInvocationTime() / unitMeasure) + othersData.get(k);
+ othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
case MinInvocationTime: case MinInvocationTime:
value = (seriesJobData.getMinInvocationTime() / unitMeasure) value = (seriesJobData.getMinInvocationTime() / unitMeasure) + othersData.get(k);
+ othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
case OperationCount: case OperationCount:
value = seriesJobData.getOperationCount() value = seriesJobData.getOperationCount() + othersData.get(k);
+ othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
default: default:
value = (seriesJobData.getDuration() / unitMeasure) value = (seriesJobData.getDuration() / unitMeasure) + othersData.get(k);
+ othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
@ -688,8 +628,7 @@ public class JobChartTopPanel extends SimpleContainer {
data.push(value); data.push(value);
} }
seriesColumnData.pointInterval(interval).pointStart( seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime());
dateStart.getTime());
seriesColumn.add(seriesColumnData); seriesColumn.add(seriesColumnData);
} }
@ -697,16 +636,15 @@ public class JobChartTopPanel extends SimpleContainer {
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { .compareTo(AccountingPeriodMode.MONTHLY) == 0) {
//options.tooltip().xDateFormat("%b, %Y"); // options.tooltip().xDateFormat("%b, %Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
if (accountingStateData.getSeriesRequest() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getAccountingPeriod().getPeriod()
.compareTo(AccountingPeriodMode.YEARLY) == 0) { .compareTo(AccountingPeriodMode.YEARLY) == 0) {
//options.tooltip().xDateFormat("%Y"); // options.tooltip().xDateFormat("%Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
@ -716,20 +654,16 @@ public class JobChartTopPanel extends SimpleContainer {
} }
int i = 0; int i = 0;
for (; i < seriesJobTop.getSeriesJobDataTopList().size() for (; i < seriesJobTop.getSeriesJobDataTopList().size() && i < seriesJobTop.getTopNumber(); i++) {
&& i < seriesJobTop.getTopNumber(); i++) { SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
SeriesColumn seriesColumnData = highchartsFactory
.createSeriesColumn();
seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue());
.get(i).getFilterValue().getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
Array<Data> arrayData = seriesColumnData.dataAsArrayObject(); Array<Data> arrayData = seriesColumnData.dataAsArrayObject();
for (SeriesJobData seriesJobData : seriesJobTop for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) {
.getSeriesJobDataTopList().get(i).getSeries()) {
long dateFrom1970 = seriesJobData.getDate().getTime(); long dateFrom1970 = seriesJobData.getDate().getTime();
Log.debug("SeriersJobData: " + seriesJobData.getDate()); Log.debug("SeriersJobData: " + seriesJobData.getDate());
@ -745,14 +679,12 @@ public class JobChartTopPanel extends SimpleContainer {
break; break;
case MaxInvocationTime: case MaxInvocationTime:
data.x(dateFrom1970); data.x(dateFrom1970);
data.y(seriesJobData.getMaxInvocationTime() data.y(seriesJobData.getMaxInvocationTime() / unitMeasure);
/ unitMeasure);
arrayData.addToEnd(data); arrayData.addToEnd(data);
break; break;
case MinInvocationTime: case MinInvocationTime:
data.x(dateFrom1970); data.x(dateFrom1970);
data.y(seriesJobData.getMinInvocationTime() data.y(seriesJobData.getMinInvocationTime() / unitMeasure);
/ unitMeasure);
arrayData.addToEnd(data); arrayData.addToEnd(data);
break; break;
case OperationCount: case OperationCount:
@ -775,94 +707,72 @@ public class JobChartTopPanel extends SimpleContainer {
} }
if (i < seriesJobTop.getSeriesJobDataTopList().size()) { if (i < seriesJobTop.getSeriesJobDataTopList().size()) {
SeriesColumn seriesColumnData = highchartsFactory SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.createSeriesColumn();
seriesColumnData.name("Others"); seriesColumnData.name("Others");
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayList<ChartDateTimeData> othersData = new ArrayList<>(); ArrayList<ChartDateTimeData> othersData = new ArrayList<>();
for (int j = i; j < seriesJobTop.getSeriesJobDataTopList() for (int j = i; j < seriesJobTop.getSeriesJobDataTopList().size(); j++) {
.size(); j++) {
ChartDateTimeData chartDateTimeData; ChartDateTimeData chartDateTimeData;
for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList() for (int k = 0; k < seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().size(); k++) {
.get(j).getSeries().size(); k++) { SeriesJobData seriesJobData = seriesJobTop.getSeriesJobDataTopList().get(j).getSeries().get(k);
SeriesJobData seriesJobData = seriesJobTop
.getSeriesJobDataTopList().get(j).getSeries()
.get(k);
if (j == i) { if (j == i) {
switch (measure) { switch (measure) {
case Duration: case Duration:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(), seriesJobData.getDuration() / unitMeasure);
seriesJobData.getDuration()
/ unitMeasure);
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
case MaxInvocationTime: case MaxInvocationTime:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(), seriesJobData.getMaxInvocationTime() / unitMeasure);
seriesJobData.getMaxInvocationTime()
/ unitMeasure);
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
case MinInvocationTime: case MinInvocationTime:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(), seriesJobData.getMinInvocationTime() / unitMeasure);
seriesJobData.getMinInvocationTime()
/ unitMeasure);
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
case OperationCount: case OperationCount:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(),
seriesJobData.getOperationCount()); seriesJobData.getOperationCount());
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
default: default:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(), seriesJobData.getDuration() / unitMeasure);
seriesJobData.getDuration()
/ unitMeasure);
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
} }
} else { } else {
switch (measure) { switch (measure) {
case Duration: case Duration:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(), (seriesJobData.getDuration() / unitMeasure) + othersData.get(k).getValue());
(seriesJobData.getDuration() / unitMeasure)
+ othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
break; break;
case MaxInvocationTime: case MaxInvocationTime:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(),
(seriesJobData.getMaxInvocationTime() / unitMeasure) (seriesJobData.getMaxInvocationTime() / unitMeasure)
+ othersData.get(k).getValue()); + othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
break; break;
case MinInvocationTime: case MinInvocationTime:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(),
(seriesJobData.getMinInvocationTime() / unitMeasure) (seriesJobData.getMinInvocationTime() / unitMeasure)
+ othersData.get(k).getValue()); + othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
break; break;
case OperationCount: case OperationCount:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(), seriesJobData.getOperationCount() + othersData.get(k).getValue());
seriesJobData.getOperationCount()
+ othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
break; break;
default: default:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesJobData.getDate(),
seriesJobData.getDate(), (seriesJobData.getDuration() / unitMeasure) + othersData.get(k).getValue());
(seriesJobData.getDuration() / unitMeasure)
+ othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
break; break;
@ -878,8 +788,7 @@ public class JobChartTopPanel extends SimpleContainer {
for (ChartDateTimeData chartDateTimeData : othersData) { for (ChartDateTimeData chartDateTimeData : othersData) {
long dateFrom1970 = chartDateTimeData.getDate().getTime(); long dateFrom1970 = chartDateTimeData.getDate().getTime();
Log.debug("SeriersOthersData: " Log.debug("SeriersOthersData: " + chartDateTimeData.getDate());
+ chartDateTimeData.getDate());
Log.debug("SeriersOthersData: " + dateFrom1970); Log.debug("SeriersOthersData: " + dateFrom1970);
Data data = highchartsFactory.createSeriesColumnData(); Data data = highchartsFactory.createSeriesColumnData();
@ -896,65 +805,53 @@ public class JobChartTopPanel extends SimpleContainer {
} }
} }
private void createSeriesColumnSimple(SeriesJobTop seriesJobTop, private void createSeriesColumnSimple(SeriesJobTop seriesJobTop, HighchartsOptionFactory highchartsFactory,
HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayString colors, ArrayList<SeriesColumn> seriesColumn) {
ArrayList<SeriesColumn> seriesColumn) {
Log.debug("Series Simple"); Log.debug("Series Simple");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.DAILY) == 0 .compareTo(AccountingPeriodMode.DAILY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.HOURLY) == 0 .compareTo(AccountingPeriodMode.HOURLY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MINUTELY) == 0) { .compareTo(AccountingPeriodMode.MINUTELY) == 0) {
double minRange = ChartTimeMeasure double minRange = ChartTimeMeasure
.calculateMinRange(accountingStateData.getSeriesRequest() .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
double interval = ChartTimeMeasure double interval = ChartTimeMeasure
.calculateInterval(accountingStateData.getSeriesRequest() .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate());
.getAccountingPeriod().getStartDate());
dateStart.setTime(dateStart.getTime() dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE);
+ ChartTimeMeasure.timeZoneOffset()
* ChartTimeMeasure.MINUTE);
Log.debug("BuildChart DateStart: " Log.debug("BuildChart DateStart: "
+ DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart));
.format(dateStart));
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
options.xAxis().minRange(minRange); options.xAxis().minRange(minRange);
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
for (int i = 0; i < seriesJobTop.getSeriesJobDataTopList().size(); i++) {
SeriesColumn seriesColumnData = highchartsFactory
.createSeriesColumn();
seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() for (int i = 0; i < seriesJobTop.getSeriesJobDataTopList().size(); i++) {
.get(i).getFilterValue().getValue()); SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayNumber data = seriesColumnData.dataAsArrayNumber(); ArrayNumber data = seriesColumnData.dataAsArrayNumber();
for (SeriesJobData seriesJobData : seriesJobTop for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) {
.getSeriesJobDataTopList().get(i).getSeries()) {
switch (measure) { switch (measure) {
case Duration: case Duration:
data.push(seriesJobData.getDuration() / unitMeasure); data.push(seriesJobData.getDuration() / unitMeasure);
break; break;
case MaxInvocationTime: case MaxInvocationTime:
data.push(seriesJobData.getMaxInvocationTime() data.push(seriesJobData.getMaxInvocationTime() / unitMeasure);
/ unitMeasure);
break; break;
case MinInvocationTime: case MinInvocationTime:
data.push(seriesJobData.getMinInvocationTime() data.push(seriesJobData.getMinInvocationTime() / unitMeasure);
/ unitMeasure);
break; break;
case OperationCount: case OperationCount:
data.push(seriesJobData.getOperationCount()); data.push(seriesJobData.getOperationCount());
@ -967,8 +864,7 @@ public class JobChartTopPanel extends SimpleContainer {
} }
seriesColumnData.pointInterval(interval).pointStart( seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime());
dateStart.getTime());
seriesColumn.add(seriesColumnData); seriesColumn.add(seriesColumnData);
} }
@ -976,16 +872,15 @@ public class JobChartTopPanel extends SimpleContainer {
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { .compareTo(AccountingPeriodMode.MONTHLY) == 0) {
//options.tooltip().xDateFormat("%b, %Y"); // options.tooltip().xDateFormat("%b, %Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
if (accountingStateData.getSeriesRequest() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getAccountingPeriod().getPeriod()
.compareTo(AccountingPeriodMode.YEARLY) == 0) { .compareTo(AccountingPeriodMode.YEARLY) == 0) {
//options.tooltip().xDateFormat("%Y"); // options.tooltip().xDateFormat("%Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
@ -995,18 +890,15 @@ public class JobChartTopPanel extends SimpleContainer {
} }
for (int i = 0; i < seriesJobTop.getSeriesJobDataTopList().size(); i++) { for (int i = 0; i < seriesJobTop.getSeriesJobDataTopList().size(); i++) {
SeriesColumn seriesColumnData = highchartsFactory SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.createSeriesColumn();
seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList() seriesColumnData.name(seriesJobTop.getSeriesJobDataTopList().get(i).getFilterValue().getValue());
.get(i).getFilterValue().getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
Array<Data> arrayData = seriesColumnData.dataAsArrayObject(); Array<Data> arrayData = seriesColumnData.dataAsArrayObject();
for (SeriesJobData seriesJobData : seriesJobTop for (SeriesJobData seriesJobData : seriesJobTop.getSeriesJobDataTopList().get(i).getSeries()) {
.getSeriesJobDataTopList().get(i).getSeries()) {
long dateFrom1970 = seriesJobData.getDate().getTime(); long dateFrom1970 = seriesJobData.getDate().getTime();
Log.debug("SeriersJobData: " + seriesJobData.getDate()); Log.debug("SeriersJobData: " + seriesJobData.getDate());
@ -1022,14 +914,12 @@ public class JobChartTopPanel extends SimpleContainer {
break; break;
case MaxInvocationTime: case MaxInvocationTime:
data.x(dateFrom1970); data.x(dateFrom1970);
data.y(seriesJobData.getMaxInvocationTime() data.y(seriesJobData.getMaxInvocationTime() / unitMeasure);
/ unitMeasure);
arrayData.addToEnd(data); arrayData.addToEnd(data);
break; break;
case MinInvocationTime: case MinInvocationTime:
data.x(dateFrom1970); data.x(dateFrom1970);
data.y(seriesJobData.getMinInvocationTime() data.y(seriesJobData.getMinInvocationTime() / unitMeasure);
/ unitMeasure);
arrayData.addToEnd(data); arrayData.addToEnd(data);
break; break;
case OperationCount: case OperationCount:
@ -1057,67 +947,44 @@ public class JobChartTopPanel extends SimpleContainer {
private String retrieveYAxis(ArrayString colors) { private String retrieveYAxis(ArrayString colors) {
switch (measure) { switch (measure) {
case Duration: case Duration:
return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() + "\"," + " \"labels\": {"
+ "\"," + " \"labels\": {" + " \"format\": \"{value} " + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {"
+ unitMeasureLabel + "\"," + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {"
+ " \"color\": \"" + colors.get(1) + "\"" + " }" + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\","
+ " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \""
+ " \"style\": {" + " \"fontWeight\": \"bold\"," + JobChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \""
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ JobChartMeasure.Duration.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]"; + colors.get(1) + "\"" + " }" + " }" + "}]";
case MaxInvocationTime: case MaxInvocationTime:
return "[{" + " \"id\": \"" return "[{" + " \"id\": \"" + JobChartMeasure.MaxInvocationTime.name() + "\"," + " \"labels\": {"
+ JobChartMeasure.MaxInvocationTime.name() + "\"," + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {"
+ " \"labels\": {" + " \"format\": \"{value} " + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {"
+ unitMeasureLabel + "\"," + " \"style\": {" + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\","
+ " \"color\": \"" + colors.get(1) + "\"" + " }" + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \""
+ " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + JobChartMeasure.MaxInvocationTime.getLabel() + "\"," + " \"style\": {" + " \"color\": \""
+ " \"style\": {" + " \"fontWeight\": \"bold\","
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ JobChartMeasure.MaxInvocationTime.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]"; + colors.get(1) + "\"" + " }" + " }" + "}]";
case MinInvocationTime: case MinInvocationTime:
return "[{" + " \"id\": \"" return "[{" + " \"id\": \"" + JobChartMeasure.MinInvocationTime.name() + "\"," + " \"labels\": {"
+ JobChartMeasure.MinInvocationTime.name() + "\"," + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {"
+ " \"labels\": {" + " \"format\": \"{value} " + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {"
+ unitMeasureLabel + "\"," + " \"style\": {" + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\","
+ " \"color\": \"" + colors.get(1) + "\"" + " }" + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \""
+ " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + JobChartMeasure.MinInvocationTime.getLabel() + "\"," + " \"style\": {" + " \"color\": \""
+ " \"style\": {" + " \"fontWeight\": \"bold\","
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ JobChartMeasure.MinInvocationTime.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]"; + colors.get(1) + "\"" + " }" + " }" + "}]";
case OperationCount: case OperationCount:
return "[{" + " \"id\": \"" + JobChartMeasure.OperationCount.name() return "[{" + " \"id\": \"" + JobChartMeasure.OperationCount.name() + "\"," + " \"labels\": { "
+ "\"," + " \"labels\": { " + " \"format\": \"{value}\"," + " \"style\": { " + " \"color\": \"" + colors.get(1)
+ " \"format\": \"{value}\"," + " \"style\": { " + "\"" + " }" + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {"
+ " \"color\": \"" + colors.get(1) + "\"" + " }" + " \"fontWeight\": \"bold\"," + " \"color\": \"gray\"" + " } " + " },"
+ " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"title\": { " + " \"text\": \"" + JobChartMeasure.OperationCount.getLabel() + "\","
+ " \"style\": {" + " \"fontWeight\": \"bold\"," + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }" + "}]";
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ JobChartMeasure.OperationCount.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]";
default: default:
return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() return "[{" + " \"id\": \"" + JobChartMeasure.Duration.name() + "\"," + " \"labels\": {"
+ "\"," + " \"labels\": {" + " \"format\": \"{value} " + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {"
+ unitMeasureLabel + "\"," + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {"
+ " \"color\": \"" + colors.get(1) + "\"" + " }" + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\","
+ " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \""
+ " \"style\": {" + " \"fontWeight\": \"bold\"," + JobChartMeasure.Duration.getLabel() + "\"," + " \"style\": {" + " \"color\": \""
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ JobChartMeasure.Duration.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]"; + colors.get(1) + "\"" + " }" + " }" + "}]";
} }

View File

@ -57,8 +57,7 @@ public class StorageChartTopPanel extends SimpleContainer {
private static final String DATA_VOLUME_UNIT = "Data Volume Unit"; private static final String DATA_VOLUME_UNIT = "Data Volume Unit";
// private static final String MEASURE_TYPE = "Measure"; // private static final String MEASURE_TYPE = "Measure";
private DateTimeFormat dtf = DateTimeFormat private DateTimeFormat dtf = DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH_DAY);
.getFormat(PredefinedFormat.YEAR_MONTH_DAY);
private EventBus eventBus; private EventBus eventBus;
private AccountingClientStateData accountingStateData; private AccountingClientStateData accountingStateData;
@ -94,8 +93,7 @@ public class StorageChartTopPanel extends SimpleContainer {
private VerticalLayoutContainer vert; private VerticalLayoutContainer vert;
public StorageChartTopPanel(EventBus eventBus, public StorageChartTopPanel(EventBus eventBus, AccountingClientStateData accountingStateData) {
AccountingClientStateData accountingStateData) {
this.eventBus = eventBus; this.eventBus = eventBus;
this.accountingStateData = accountingStateData; this.accountingStateData = accountingStateData;
forceLayoutOnResize = true; forceLayoutOnResize = true;
@ -107,8 +105,7 @@ public class StorageChartTopPanel extends SimpleContainer {
ToolBar toolBar = new ToolBar(); ToolBar toolBar = new ToolBar();
toolBar.setSpacing(2); toolBar.setSpacing(2);
// Download // Download
final TextButton downloadButton = new TextButton( final TextButton downloadButton = new TextButton(DownloadConstants.DOWNLOAD,
DownloadConstants.DOWNLOAD,
AccountingManagerResources.INSTANCE.accountingDownload24()); AccountingManagerResources.INSTANCE.accountingDownload24());
// downloadButton.setScale(ButtonScale.MEDIUM); // downloadButton.setScale(ButtonScale.MEDIUM);
downloadButton.setIconAlign(IconAlign.RIGHT); downloadButton.setIconAlign(IconAlign.RIGHT);
@ -116,16 +113,14 @@ public class StorageChartTopPanel extends SimpleContainer {
downloadButton.setMenu(createDownloadMenu()); downloadButton.setMenu(createDownloadMenu());
// Measure // Measure
measureButton = new TextButton( measureButton = new TextButton(StorageChartMeasure.DataVolume.getLabel(),
StorageChartMeasure.DataVolume.getLabel(),
AccountingManagerResources.INSTANCE.accountingByte24()); AccountingManagerResources.INSTANCE.accountingByte24());
measureButton.setIconAlign(IconAlign.RIGHT); measureButton.setIconAlign(IconAlign.RIGHT);
measureButton.setArrowAlign(ButtonArrowAlign.RIGHT); measureButton.setArrowAlign(ButtonArrowAlign.RIGHT);
measureButton.setMenu(createMeasureMenu()); measureButton.setMenu(createMeasureMenu());
// Unit // Unit
unitButton = new TextButton(DATA_VOLUME_UNIT, unitButton = new TextButton(DATA_VOLUME_UNIT, AccountingManagerResources.INSTANCE.accountingUnitMB24());
AccountingManagerResources.INSTANCE.accountingUnitMB24());
unitButton.setIconAlign(IconAlign.RIGHT); unitButton.setIconAlign(IconAlign.RIGHT);
unitButton.setArrowAlign(ButtonArrowAlign.RIGHT); unitButton.setArrowAlign(ButtonArrowAlign.RIGHT);
unitButton.setMenu(createUnitMenu()); unitButton.setMenu(createUnitMenu());
@ -143,8 +138,7 @@ public class StorageChartTopPanel extends SimpleContainer {
// //
vert = new VerticalLayoutContainer(); vert = new VerticalLayoutContainer();
vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); vert.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, vert.add(highchartsLayoutPanel, new VerticalLayoutData(1, 1, new Margins(0)));
new Margins(0)));
add(vert, new MarginData(0)); add(vert, new MarginData(0));
@ -273,8 +267,7 @@ public class StorageChartTopPanel extends SimpleContainer {
Menu menuMeasure = new Menu(); Menu menuMeasure = new Menu();
dataVolumeItem = new MenuItem(StorageChartMeasure.DataVolume.getLabel()); dataVolumeItem = new MenuItem(StorageChartMeasure.DataVolume.getLabel());
dataVolumeItem.setHeight(30); dataVolumeItem.setHeight(30);
operationCountItem = new MenuItem( operationCountItem = new MenuItem(StorageChartMeasure.OperationCount.getLabel());
StorageChartMeasure.OperationCount.getLabel());
operationCountItem.setHeight(30); operationCountItem.setHeight(30);
dataVolumeItem.addSelectionHandler(new SelectionHandler<Item>() { dataVolumeItem.addSelectionHandler(new SelectionHandler<Item>() {
@ -292,8 +285,7 @@ public class StorageChartTopPanel extends SimpleContainer {
@Override @Override
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
measureButton.setText(StorageChartMeasure.OperationCount measureButton.setText(StorageChartMeasure.OperationCount.getLabel());
.getLabel());
measure = StorageChartMeasure.OperationCount; measure = StorageChartMeasure.OperationCount;
unitButton.setVisible(false); unitButton.setVisible(false);
updateChart(); updateChart();
@ -309,17 +301,13 @@ public class StorageChartTopPanel extends SimpleContainer {
private Menu createUnitMenu() { private Menu createUnitMenu() {
Menu menuUnit = new Menu(); Menu menuUnit = new Menu();
kBItem = new MenuItem(ByteUnitMeasure.KILOBYTE, kBItem = new MenuItem(ByteUnitMeasure.KILOBYTE, AccountingManagerResources.INSTANCE.accountingUnitkB24());
AccountingManagerResources.INSTANCE.accountingUnitkB24());
kBItem.setHeight(30); kBItem.setHeight(30);
MBItem = new MenuItem(ByteUnitMeasure.MEGABYTE, MBItem = new MenuItem(ByteUnitMeasure.MEGABYTE, AccountingManagerResources.INSTANCE.accountingUnitMB24());
AccountingManagerResources.INSTANCE.accountingUnitMB24());
MBItem.setHeight(30); MBItem.setHeight(30);
GBItem = new MenuItem(ByteUnitMeasure.GIGABYTE, GBItem = new MenuItem(ByteUnitMeasure.GIGABYTE, AccountingManagerResources.INSTANCE.accountingUnitGB24());
AccountingManagerResources.INSTANCE.accountingUnitGB24());
GBItem.setHeight(30); GBItem.setHeight(30);
TBItem = new MenuItem(ByteUnitMeasure.TERABYTE, TBItem = new MenuItem(ByteUnitMeasure.TERABYTE, AccountingManagerResources.INSTANCE.accountingUnitTB24());
AccountingManagerResources.INSTANCE.accountingUnitTB24());
TBItem.setHeight(30); TBItem.setHeight(30);
kBItem.addSelectionHandler(new SelectionHandler<Item>() { kBItem.addSelectionHandler(new SelectionHandler<Item>() {
@ -328,8 +316,7 @@ public class StorageChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = ByteUnitMeasure.getKiloByteDimForStorage(); unitMeasure = ByteUnitMeasure.getKiloByteDimForStorage();
unitMeasureLabel = ByteUnitMeasure.kB; unitMeasureLabel = ByteUnitMeasure.kB;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitkB24());
.accountingUnitkB24());
updateChart(); updateChart();
} }
}); });
@ -340,8 +327,7 @@ public class StorageChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = ByteUnitMeasure.getMegaByteDimForStorage(); unitMeasure = ByteUnitMeasure.getMegaByteDimForStorage();
unitMeasureLabel = ByteUnitMeasure.MB; unitMeasureLabel = ByteUnitMeasure.MB;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitMB24());
.accountingUnitMB24());
updateChart(); updateChart();
} }
}); });
@ -352,8 +338,7 @@ public class StorageChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = ByteUnitMeasure.getGigaByteDimForStorage(); unitMeasure = ByteUnitMeasure.getGigaByteDimForStorage();
unitMeasureLabel = ByteUnitMeasure.GB; unitMeasureLabel = ByteUnitMeasure.GB;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitGB24());
.accountingUnitGB24());
updateChart(); updateChart();
} }
}); });
@ -364,8 +349,7 @@ public class StorageChartTopPanel extends SimpleContainer {
public void onSelection(SelectionEvent<Item> event) { public void onSelection(SelectionEvent<Item> event) {
unitMeasure = ByteUnitMeasure.getTeraByteDimForStorage(); unitMeasure = ByteUnitMeasure.getTeraByteDimForStorage();
unitMeasureLabel = ByteUnitMeasure.TB; unitMeasureLabel = ByteUnitMeasure.TB;
unitButton.setIcon(AccountingManagerResources.INSTANCE unitButton.setIcon(AccountingManagerResources.INSTANCE.accountingUnitTB24());
.accountingUnitTB24());
updateChart(); updateChart();
} }
}); });
@ -379,20 +363,17 @@ public class StorageChartTopPanel extends SimpleContainer {
} }
private void onDownloadCSV() { private void onDownloadCSV() {
ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV, ExportRequestEvent event = new ExportRequestEvent(ExportType.CSV, accountingStateData.getAccountingType());
accountingStateData.getAccountingType());
eventBus.fireEvent(event); eventBus.fireEvent(event);
} }
private void onDownloadXML() { private void onDownloadXML() {
ExportRequestEvent event = new ExportRequestEvent(ExportType.XML, ExportRequestEvent event = new ExportRequestEvent(ExportType.XML, accountingStateData.getAccountingType());
accountingStateData.getAccountingType());
eventBus.fireEvent(event); eventBus.fireEvent(event);
} }
private void onDownloadJSON() { private void onDownloadJSON() {
ExportRequestEvent event = new ExportRequestEvent(ExportType.JSON, ExportRequestEvent event = new ExportRequestEvent(ExportType.JSON, accountingStateData.getAccountingType());
accountingStateData.getAccountingType());
eventBus.fireEvent(event); eventBus.fireEvent(event);
} }
@ -449,15 +430,13 @@ public class StorageChartTopPanel extends SimpleContainer {
}-*/; }-*/;
private void createChart() { private void createChart() {
SeriesStorage seriesStorage = (SeriesStorage) accountingStateData SeriesStorage seriesStorage = (SeriesStorage) accountingStateData.getSeriesResponse();
.getSeriesResponse();
if (!(seriesStorage.getSeriesStorageDefinition() instanceof SeriesStorageTop)) { if (!(seriesStorage.getSeriesStorageDefinition() instanceof SeriesStorageTop)) {
Log.debug("Invalid SeriesStorageTop!"); Log.debug("Invalid SeriesStorageTop!");
return; return;
} }
SeriesStorageTop seriesStorageTop = (SeriesStorageTop) seriesStorage SeriesStorageTop seriesStorageTop = (SeriesStorageTop) seriesStorage.getSeriesStorageDefinition();
.getSeriesStorageDefinition();
HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory(); HighchartsOptionFactory highchartsFactory = new JsoHighchartsOptionFactory();
@ -468,7 +447,8 @@ public class StorageChartTopPanel extends SimpleContainer {
options.title().text("Accounting Storage Top"); 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"
* );
*/ */
ArrayString colors = options.colors(); ArrayString colors = options.colors();
@ -478,22 +458,14 @@ public class StorageChartTopPanel extends SimpleContainer {
// yAxis // yAxis
options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors)); options.setFieldAsJsonObject("yAxis", retrieveYAxis(colors));
options.plotOptions().setFieldAsJsonObject( options.plotOptions().setFieldAsJsonObject("column",
"column", "{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { " + " \"enabled\": \"true\","
"{ " + "\"stacking\": \"normal\"," + "\"dataLabels\": { "
+ " \"enabled\": \"true\","
+ " \"color\": \"white\", " + " \"style\": {" + " \"color\": \"white\", " + " \"style\": {"
+ " \"textShadow\": \"0 0 3px black\"" + " }" + " \"textShadow\": \"0 0 3px black\"" + " }" + " }" + " }");
+ " }" + " }");
ArrayList<SeriesColumn> seriesColumn = new ArrayList<>(); ArrayList<SeriesColumn> seriesColumn = new ArrayList<>();
if (seriesStorageTop.getShowOthers()) {
createSeriesColumnShowOthers(seriesStorageTop, highchartsFactory, createSeriesColumnSimple(seriesStorageTop, highchartsFactory, colors, seriesColumn);
colors, seriesColumn);
} else {
createSeriesColumnSimple(seriesStorageTop, highchartsFactory,
colors, seriesColumn);
}
for (SeriesColumn serie : seriesColumn) { for (SeriesColumn serie : seriesColumn) {
options.series().addToEnd(serie); options.series().addToEnd(serie);
@ -505,62 +477,51 @@ public class StorageChartTopPanel extends SimpleContainer {
return; return;
} }
private void createSeriesColumnShowOthers( private void createSeriesColumnShowOthers(SeriesStorageTop seriesStorageTop,
SeriesStorageTop seriesStorageTop, HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayList<SeriesColumn> seriesColumn) {
HighchartsOptionFactory highchartsFactory, ArrayString colors,
ArrayList<SeriesColumn> seriesColumn) {
Log.debug("Series ShowOthers"); Log.debug("Series ShowOthers");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.DAILY) == 0 .compareTo(AccountingPeriodMode.DAILY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.HOURLY) == 0 .compareTo(AccountingPeriodMode.HOURLY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MINUTELY) == 0) { .compareTo(AccountingPeriodMode.MINUTELY) == 0) {
double minRange = ChartTimeMeasure double minRange = ChartTimeMeasure
.calculateMinRange(accountingStateData.getSeriesRequest() .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
double interval = ChartTimeMeasure double interval = ChartTimeMeasure
.calculateInterval(accountingStateData.getSeriesRequest() .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate());
.getAccountingPeriod().getStartDate());
dateStart.setTime(dateStart.getTime() dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE);
+ ChartTimeMeasure.timeZoneOffset()
* ChartTimeMeasure.MINUTE);
Log.debug("BuildChart DateStart: " Log.debug("BuildChart DateStart: "
+ DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart));
.format(dateStart));
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
options.xAxis().minRange(minRange); options.xAxis().minRange(minRange);
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
int i = 0; int i = 0;
for (; i < seriesStorageTop.getSeriesStorageDataTopList().size() for (; i < seriesStorageTop.getSeriesStorageDataTopList().size()
&& i < seriesStorageTop.getTopNumber(); i++) { && i < seriesStorageTop.getTopNumber(); i++) {
SeriesColumn seriesColumnData = highchartsFactory SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.createSeriesColumn();
seriesColumnData.name(seriesStorageTop seriesColumnData
.getSeriesStorageDataTopList().get(i).getFilterValue() .name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue());
.getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayNumber data = seriesColumnData.dataAsArrayNumber(); ArrayNumber data = seriesColumnData.dataAsArrayNumber();
for (SeriesStorageData seriesStorageData : seriesStorageTop for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i)
.getSeriesStorageDataTopList().get(i).getSeries()) { .getSeries()) {
switch (measure) { switch (measure) {
case DataVolume: case DataVolume:
data.push(seriesStorageData.getDataVolume() data.push(seriesStorageData.getDataVolume() / unitMeasure);
/ unitMeasure);
break; break;
case OperationCount: case OperationCount:
data.push(seriesStorageData.getOperationCount()); data.push(seriesStorageData.getOperationCount());
@ -573,43 +534,34 @@ public class StorageChartTopPanel extends SimpleContainer {
} }
seriesColumnData.pointInterval(interval).pointStart( seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime());
dateStart.getTime());
seriesColumn.add(seriesColumnData); seriesColumn.add(seriesColumnData);
} }
if (i < seriesStorageTop.getSeriesStorageDataTopList().size()) { if (i < seriesStorageTop.getSeriesStorageDataTopList().size()) {
SeriesColumn seriesColumnData = highchartsFactory SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.createSeriesColumn();
seriesColumnData.name("Others"); seriesColumnData.name("Others");
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayList<Long> othersData = new ArrayList<>(); ArrayList<Long> othersData = new ArrayList<>();
for (int j = i; j < seriesStorageTop for (int j = i; j < seriesStorageTop.getSeriesStorageDataTopList().size(); j++) {
.getSeriesStorageDataTopList().size(); j++) {
Long value; Long value;
for (int k = 0; k < seriesStorageTop for (int k = 0; k < seriesStorageTop.getSeriesStorageDataTopList().get(j).getSeries().size(); k++) {
.getSeriesStorageDataTopList().get(j).getSeries() SeriesStorageData seriesStorageData = seriesStorageTop.getSeriesStorageDataTopList().get(j)
.size(); k++) {
SeriesStorageData seriesStorageData = seriesStorageTop
.getSeriesStorageDataTopList().get(j)
.getSeries().get(k); .getSeries().get(k);
if (j == i) { if (j == i) {
switch (measure) { switch (measure) {
case DataVolume: case DataVolume:
othersData.add(seriesStorageData othersData.add(seriesStorageData.getDataVolume() / unitMeasure);
.getDataVolume() / unitMeasure);
break; break;
case OperationCount: case OperationCount:
othersData.add(seriesStorageData othersData.add(seriesStorageData.getOperationCount());
.getOperationCount());
break; break;
default: default:
othersData.add(seriesStorageData othersData.add(seriesStorageData.getDataVolume() / unitMeasure);
.getDataVolume() / unitMeasure);
break; break;
} }
@ -617,18 +569,15 @@ public class StorageChartTopPanel extends SimpleContainer {
switch (measure) { switch (measure) {
case DataVolume: case DataVolume:
value = seriesStorageData.getDataVolume() value = seriesStorageData.getDataVolume() / unitMeasure + othersData.get(k);
/ unitMeasure + othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
case OperationCount: case OperationCount:
value = seriesStorageData.getOperationCount() value = seriesStorageData.getOperationCount() + othersData.get(k);
+ othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
default: default:
value = seriesStorageData.getDataVolume() value = seriesStorageData.getDataVolume() / unitMeasure + othersData.get(k);
/ unitMeasure + othersData.get(k);
othersData.set(k, value); othersData.set(k, value);
break; break;
@ -644,8 +593,7 @@ public class StorageChartTopPanel extends SimpleContainer {
data.push(value); data.push(value);
} }
seriesColumnData.pointInterval(interval).pointStart( seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime());
dateStart.getTime());
seriesColumn.add(seriesColumnData); seriesColumn.add(seriesColumnData);
} }
@ -653,16 +601,15 @@ public class StorageChartTopPanel extends SimpleContainer {
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { .compareTo(AccountingPeriodMode.MONTHLY) == 0) {
//options.tooltip().xDateFormat("%b, %Y"); // options.tooltip().xDateFormat("%b, %Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
if (accountingStateData.getSeriesRequest() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getAccountingPeriod().getPeriod()
.compareTo(AccountingPeriodMode.YEARLY) == 0) { .compareTo(AccountingPeriodMode.YEARLY) == 0) {
//options.tooltip().xDateFormat("%Y"); // options.tooltip().xDateFormat("%Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
@ -674,23 +621,20 @@ public class StorageChartTopPanel extends SimpleContainer {
int i = 0; int i = 0;
for (; i < seriesStorageTop.getSeriesStorageDataTopList().size() for (; i < seriesStorageTop.getSeriesStorageDataTopList().size()
&& i < seriesStorageTop.getTopNumber(); i++) { && i < seriesStorageTop.getTopNumber(); i++) {
SeriesColumn seriesColumnData = highchartsFactory SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.createSeriesColumn();
seriesColumnData.name(seriesStorageTop seriesColumnData
.getSeriesStorageDataTopList().get(i).getFilterValue() .name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue());
.getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
Array<Data> arrayData = seriesColumnData.dataAsArrayObject(); Array<Data> arrayData = seriesColumnData.dataAsArrayObject();
for (SeriesStorageData seriesStorageData : seriesStorageTop for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i)
.getSeriesStorageDataTopList().get(i).getSeries()) { .getSeries()) {
long dateFrom1970 = seriesStorageData.getDate().getTime(); long dateFrom1970 = seriesStorageData.getDate().getTime();
Log.debug("SeriersStorageData: " Log.debug("SeriersStorageData: " + seriesStorageData.getDate());
+ seriesStorageData.getDate());
Log.debug("SeriersStorageData: " + dateFrom1970); Log.debug("SeriersStorageData: " + dateFrom1970);
Data data = highchartsFactory.createSeriesColumnData(); Data data = highchartsFactory.createSeriesColumnData();
@ -721,65 +665,51 @@ public class StorageChartTopPanel extends SimpleContainer {
} }
if (i < seriesStorageTop.getSeriesStorageDataTopList().size()) { if (i < seriesStorageTop.getSeriesStorageDataTopList().size()) {
SeriesColumn seriesColumnData = highchartsFactory SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.createSeriesColumn();
seriesColumnData.name("Others"); seriesColumnData.name("Others");
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayList<ChartDateTimeData> othersData = new ArrayList<>(); ArrayList<ChartDateTimeData> othersData = new ArrayList<>();
for (int j = i; j < seriesStorageTop for (int j = i; j < seriesStorageTop.getSeriesStorageDataTopList().size(); j++) {
.getSeriesStorageDataTopList().size(); j++) {
ChartDateTimeData chartDateTimeData; ChartDateTimeData chartDateTimeData;
for (int k = 0; k < seriesStorageTop for (int k = 0; k < seriesStorageTop.getSeriesStorageDataTopList().get(j).getSeries().size(); k++) {
.getSeriesStorageDataTopList().get(j).getSeries() SeriesStorageData seriesStorageData = seriesStorageTop.getSeriesStorageDataTopList().get(j)
.size(); k++) {
SeriesStorageData seriesStorageData = seriesStorageTop
.getSeriesStorageDataTopList().get(j)
.getSeries().get(k); .getSeries().get(k);
if (j == i) { if (j == i) {
switch (measure) { switch (measure) {
case DataVolume: case DataVolume:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(),
seriesStorageData.getDate(), seriesStorageData.getDataVolume() / unitMeasure);
seriesStorageData.getDataVolume()
/ unitMeasure);
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
case OperationCount: case OperationCount:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(),
seriesStorageData.getDate(),
seriesStorageData.getOperationCount()); seriesStorageData.getOperationCount());
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
default: default:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(),
seriesStorageData.getDate(), seriesStorageData.getDataVolume() / unitMeasure);
seriesStorageData.getDataVolume()
/ unitMeasure);
othersData.add(chartDateTimeData); othersData.add(chartDateTimeData);
break; break;
} }
} else { } else {
switch (measure) { switch (measure) {
case DataVolume: case DataVolume:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(),
seriesStorageData.getDate(),
(seriesStorageData.getDataVolume() / unitMeasure) (seriesStorageData.getDataVolume() / unitMeasure)
+ othersData.get(k).getValue()); + othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
break; break;
case OperationCount: case OperationCount:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(),
seriesStorageData.getDate(), seriesStorageData.getOperationCount() + othersData.get(k).getValue());
seriesStorageData.getOperationCount()
+ othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
break; break;
default: default:
chartDateTimeData = new ChartDateTimeData( chartDateTimeData = new ChartDateTimeData(seriesStorageData.getDate(),
seriesStorageData.getDate(),
(seriesStorageData.getDataVolume() / unitMeasure) (seriesStorageData.getDataVolume() / unitMeasure)
+ othersData.get(k).getValue()); + othersData.get(k).getValue());
othersData.set(k, chartDateTimeData); othersData.set(k, chartDateTimeData);
@ -796,8 +726,7 @@ public class StorageChartTopPanel extends SimpleContainer {
for (ChartDateTimeData chartDateTimeData : othersData) { for (ChartDateTimeData chartDateTimeData : othersData) {
long dateFrom1970 = chartDateTimeData.getDate().getTime(); long dateFrom1970 = chartDateTimeData.getDate().getTime();
Log.debug("SeriersOthersData: " Log.debug("SeriersOthersData: " + chartDateTimeData.getDate());
+ chartDateTimeData.getDate());
Log.debug("SeriersOthersData: " + dateFrom1970); Log.debug("SeriersOthersData: " + dateFrom1970);
Data data = highchartsFactory.createSeriesColumnData(); Data data = highchartsFactory.createSeriesColumnData();
@ -815,61 +744,50 @@ public class StorageChartTopPanel extends SimpleContainer {
} }
private void createSeriesColumnSimple(SeriesStorageTop seriesStorageTop, private void createSeriesColumnSimple(SeriesStorageTop seriesStorageTop, HighchartsOptionFactory highchartsFactory,
HighchartsOptionFactory highchartsFactory, ArrayString colors, ArrayString colors, ArrayList<SeriesColumn> seriesColumn) {
ArrayList<SeriesColumn> seriesColumn) {
Log.debug("Series Simple"); Log.debug("Series Simple");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.DAILY) == 0 .compareTo(AccountingPeriodMode.DAILY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.HOURLY) == 0 .compareTo(AccountingPeriodMode.HOURLY) == 0
|| accountingStateData.getSeriesRequest().getAccountingPeriod() || accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MINUTELY) == 0) { .compareTo(AccountingPeriodMode.MINUTELY) == 0) {
double minRange = ChartTimeMeasure double minRange = ChartTimeMeasure
.calculateMinRange(accountingStateData.getSeriesRequest() .calculateMinRange(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
double interval = ChartTimeMeasure double interval = ChartTimeMeasure
.calculateInterval(accountingStateData.getSeriesRequest() .calculateInterval(accountingStateData.getSeriesRequest().getAccountingPeriod());
.getAccountingPeriod());
Date dateStart = dtf.parse(accountingStateData.getSeriesRequest() Date dateStart = dtf.parse(accountingStateData.getSeriesRequest().getAccountingPeriod().getStartDate());
.getAccountingPeriod().getStartDate());
dateStart.setTime(dateStart.getTime() dateStart.setTime(dateStart.getTime() + ChartTimeMeasure.timeZoneOffset() * ChartTimeMeasure.MINUTE);
+ ChartTimeMeasure.timeZoneOffset()
* ChartTimeMeasure.MINUTE);
Log.debug("BuildChart DateStart: " Log.debug("BuildChart DateStart: "
+ DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL) + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_FULL).format(dateStart));
.format(dateStart));
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
options.xAxis().minRange(minRange); options.xAxis().minRange(minRange);
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList()
.size(); i++) {
SeriesColumn seriesColumnData = highchartsFactory
.createSeriesColumn();
seriesColumnData.name(seriesStorageTop for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList().size(); i++) {
.getSeriesStorageDataTopList().get(i).getFilterValue() SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
.getValue());
seriesColumnData
.name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
ArrayNumber data = seriesColumnData.dataAsArrayNumber(); ArrayNumber data = seriesColumnData.dataAsArrayNumber();
for (SeriesStorageData seriesStorageData : seriesStorageTop for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i)
.getSeriesStorageDataTopList().get(i).getSeries()) { .getSeries()) {
switch (measure) { switch (measure) {
case DataVolume: case DataVolume:
data.push(seriesStorageData.getDataVolume() data.push(seriesStorageData.getDataVolume() / unitMeasure);
/ unitMeasure);
break; break;
case OperationCount: case OperationCount:
data.push(seriesStorageData.getOperationCount()); data.push(seriesStorageData.getOperationCount());
@ -882,8 +800,7 @@ public class StorageChartTopPanel extends SimpleContainer {
} }
seriesColumnData.pointInterval(interval).pointStart( seriesColumnData.pointInterval(interval).pointStart(dateStart.getTime());
dateStart.getTime());
seriesColumn.add(seriesColumnData); seriesColumn.add(seriesColumnData);
} }
@ -892,16 +809,15 @@ public class StorageChartTopPanel extends SimpleContainer {
// xAxis // xAxis
options.xAxis().type("datetime"); options.xAxis().type("datetime");
if (accountingStateData.getSeriesRequest().getAccountingPeriod() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getPeriod().compareTo(AccountingPeriodMode.MONTHLY) == 0) { .compareTo(AccountingPeriodMode.MONTHLY) == 0) {
//options.tooltip().xDateFormat("%b, %Y"); // options.tooltip().xDateFormat("%b, %Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
if (accountingStateData.getSeriesRequest() if (accountingStateData.getSeriesRequest().getAccountingPeriod().getPeriod()
.getAccountingPeriod().getPeriod()
.compareTo(AccountingPeriodMode.YEARLY) == 0) { .compareTo(AccountingPeriodMode.YEARLY) == 0) {
//options.tooltip().xDateFormat("%Y"); // options.tooltip().xDateFormat("%Y");
options.tooltip().xDateFormat("Selected Data"); options.tooltip().xDateFormat("Selected Data");
} else { } else {
@ -910,25 +826,21 @@ public class StorageChartTopPanel extends SimpleContainer {
} }
for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList() for (int i = 0; i < seriesStorageTop.getSeriesStorageDataTopList().size(); i++) {
.size(); i++) { SeriesColumn seriesColumnData = highchartsFactory.createSeriesColumn();
SeriesColumn seriesColumnData = highchartsFactory
.createSeriesColumn();
seriesColumnData.name(seriesStorageTop seriesColumnData
.getSeriesStorageDataTopList().get(i).getFilterValue() .name(seriesStorageTop.getSeriesStorageDataTopList().get(i).getFilterValue().getValue());
.getValue());
seriesColumnData.color(colors.get(i)); seriesColumnData.color(colors.get(i));
seriesColumnData.type("column"); seriesColumnData.type("column");
Array<Data> arrayData = seriesColumnData.dataAsArrayObject(); Array<Data> arrayData = seriesColumnData.dataAsArrayObject();
for (SeriesStorageData seriesStorageData : seriesStorageTop for (SeriesStorageData seriesStorageData : seriesStorageTop.getSeriesStorageDataTopList().get(i)
.getSeriesStorageDataTopList().get(i).getSeries()) { .getSeries()) {
long dateFrom1970 = seriesStorageData.getDate().getTime(); long dateFrom1970 = seriesStorageData.getDate().getTime();
Log.debug("SeriersStorageData: " Log.debug("SeriersStorageData: " + seriesStorageData.getDate());
+ seriesStorageData.getDate());
Log.debug("SeriersStorageData: " + dateFrom1970); Log.debug("SeriersStorageData: " + dateFrom1970);
Data data = highchartsFactory.createSeriesColumnData(); Data data = highchartsFactory.createSeriesColumnData();
@ -964,43 +876,29 @@ public class StorageChartTopPanel extends SimpleContainer {
private String retrieveYAxis(ArrayString colors) { private String retrieveYAxis(ArrayString colors) {
switch (measure) { switch (measure) {
case DataVolume: case DataVolume:
return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() + "\"," + " \"labels\": {"
+ "\"," + " \"labels\": {" + " \"format\": \"{value} " + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {"
+ unitMeasureLabel + "\"," + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {"
+ " \"color\": \"" + colors.get(1) + "\"" + " }" + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\","
+ " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \""
+ " \"style\": {" + " \"fontWeight\": \"bold\"," + StorageChartMeasure.DataVolume.getLabel() + "\"," + " \"style\": {" + " \"color\": \""
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ StorageChartMeasure.DataVolume.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]"; + colors.get(1) + "\"" + " }" + " }" + "}]";
case OperationCount: case OperationCount:
return "[{" + " \"id\": \"" return "[{" + " \"id\": \"" + StorageChartMeasure.OperationCount.name() + "\"," + " \"labels\": { "
+ StorageChartMeasure.OperationCount.name() + "\"," + " \"format\": \"{value}\"," + " \"style\": { " + " \"color\": \"" + colors.get(1)
+ " \"labels\": { " + " \"format\": \"{value}\"," + "\"" + " }" + " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {"
+ " \"style\": { " + " \"color\": \"" + " \"fontWeight\": \"bold\"," + " \"color\": \"gray\"" + " } " + " },"
+ colors.get(1) + "\"" + " }" + " }," + " \"title\": { " + " \"text\": \"" + StorageChartMeasure.OperationCount.getLabel() + "\","
+ " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }" + "}]";
+ " \"style\": {" + " \"fontWeight\": \"bold\","
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ StorageChartMeasure.OperationCount.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]";
default: default:
return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() return "[{" + " \"id\": \"" + StorageChartMeasure.DataVolume.name() + "\"," + " \"labels\": {"
+ "\"," + " \"labels\": {" + " \"format\": \"{value} " + " \"format\": \"{value} " + unitMeasureLabel + "\"," + " \"style\": {"
+ unitMeasureLabel + "\"," + " \"style\": {" + " \"color\": \"" + colors.get(1) + "\"" + " }" + " }," + " \"stackLabels\": {"
+ " \"color\": \"" + colors.get(1) + "\"" + " }" + " \"enabled\": \"true\"," + " \"style\": {" + " \"fontWeight\": \"bold\","
+ " }," + " \"stackLabels\": {" + " \"enabled\": \"true\"," + " \"color\": \"gray\"" + " } " + " }," + " \"title\": { " + " \"text\": \""
+ " \"style\": {" + " \"fontWeight\": \"bold\"," + StorageChartMeasure.DataVolume.getLabel() + "\"," + " \"style\": {" + " \"color\": \""
+ " \"color\": \"gray\"" + " } " + " },"
+ " \"title\": { " + " \"text\": \""
+ StorageChartMeasure.DataVolume.getLabel() + "\","
+ " \"style\": {" + " \"color\": \""
+ colors.get(1) + "\"" + " }" + " }" + "}]"; + colors.get(1) + "\"" + " }" + " }" + "}]";
} }

View File

@ -53,8 +53,7 @@ import org.slf4j.LoggerFactory;
* *
*/ */
public class AccountingCallerTester implements AccountingCallerInterface { public class AccountingCallerTester implements AccountingCallerInterface {
private static Logger logger = LoggerFactory private static Logger logger = LoggerFactory.getLogger(AccountingCallerTester.class);
.getLogger(AccountingCallerTester.class);
protected SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMMMM dd"); protected SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMMMM dd");
@ -62,11 +61,9 @@ public class AccountingCallerTester implements AccountingCallerInterface {
super(); super();
} }
public ArrayList<FilterKey> getFilterKeys(AccountingType accountingType) public ArrayList<FilterKey> getFilterKeys(AccountingType accountingType) throws ServiceException {
throws ServiceException {
try { try {
logger.debug("getFilterKeys(): [AccountingType=" + accountingType logger.debug("getFilterKeys(): [AccountingType=" + accountingType + "]");
+ "]");
if (accountingType == null) { if (accountingType == null) {
return new ArrayList<FilterKey>(); return new ArrayList<FilterKey>();
} }
@ -93,17 +90,13 @@ public class AccountingCallerTester implements AccountingCallerInterface {
} }
} }
public FilterValuesResponse getFilterValues( public FilterValuesResponse getFilterValues(FilterValuesRequest filterValuesRequest) throws ServiceException {
FilterValuesRequest filterValuesRequest) throws ServiceException {
try { try {
logger.debug("getFilterValue(): [FilterValueRequest=" logger.debug("getFilterValue(): [FilterValueRequest=" + filterValuesRequest + "]");
+ filterValuesRequest + "]");
FilterValuesResponse filterValuesResponse = null; FilterValuesResponse filterValuesResponse = null;
if (filterValuesRequest == null if (filterValuesRequest == null || filterValuesRequest.getAccountingType() == null
|| filterValuesRequest.getAccountingType() == null
|| filterValuesRequest.getFilterKey() == null) { || filterValuesRequest.getFilterKey() == null) {
filterValuesResponse = new FilterValuesResponse( filterValuesResponse = new FilterValuesResponse(new ArrayList<FilterValue>());
new ArrayList<FilterValue>());
return filterValuesResponse; return filterValuesResponse;
} }
@ -132,42 +125,36 @@ public class AccountingCallerTester implements AccountingCallerInterface {
filterValuesResponse = new FilterValuesResponse(filterValues); filterValuesResponse = new FilterValuesResponse(filterValues);
return filterValuesResponse; return filterValuesResponse;
} catch (Throwable e) { } catch (Throwable e) {
logger.error("Error in getFilterValues(): " logger.error("Error in getFilterValues(): " + e.getLocalizedMessage());
+ e.getLocalizedMessage());
e.printStackTrace(); e.printStackTrace();
throw new ServiceException("No values available!"); throw new ServiceException("No values available!");
} }
} }
public SeriesResponse getSeries(AccountingType accountingType, public SeriesResponse getSeries(AccountingType accountingType, SeriesRequest seriesRequest)
SeriesRequest seriesRequest) throws ServiceException { throws ServiceException {
try { try {
logger.debug("getSeries(): [AccountingType=" + accountingType logger.debug("getSeries(): [AccountingType=" + accountingType + " , seriesRequest=" + seriesRequest + "]");
+ " , seriesRequest=" + seriesRequest + "]");
SeriesResponse seriesResponse = null; SeriesResponse seriesResponse = null;
Calendar startCalendar = GregorianCalendar Calendar startCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
try { try {
startCalendar.setTime(sdf.parse(seriesRequest startCalendar.setTime(sdf.parse(seriesRequest.getAccountingPeriod().getStartDate()));
.getAccountingPeriod().getStartDate()));
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
throw new ServiceException("Start Date not valid!"); throw new ServiceException("Start Date not valid!");
} }
Calendar endCalendar = GregorianCalendar Calendar endCalendar = GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
// GregorianCalendar endCalendar = new GregorianCalendar(); // GregorianCalendar endCalendar = new GregorianCalendar();
// .getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); // .getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
// GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE); // GregorianCalendar.getInstance(TemporalConstraint.DEFAULT_TIME_ZONE);
try { try {
endCalendar.setTime(sdf.parse(seriesRequest endCalendar.setTime(sdf.parse(seriesRequest.getAccountingPeriod().getEndDate()));
.getAccountingPeriod().getEndDate()));
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
throw new ServiceException("End Date not valid!"); throw new ServiceException("End Date not valid!");
@ -176,20 +163,16 @@ public class AccountingCallerTester implements AccountingCallerInterface {
switch (accountingType) { switch (accountingType) {
case JOB: case JOB:
SeriesJobDefinition serieJobDefinition = null; SeriesJobDefinition serieJobDefinition = null;
if (seriesRequest.getAccountingFilterDefinition() if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) {
.getChartType() != null) {
ArrayList<SeriesJobData> seriesJobData = new ArrayList<>(); ArrayList<SeriesJobData> seriesJobData = new ArrayList<>();
for (int i = 0; i < 30; i++) { for (int i = 0; i < 30; i++) {
SeriesJobData data = new SeriesJobData(new Date(), 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(10 * Math.random()).longValue(),
new Double(10 * Math.random()).longValue(),
new Double(10 * Math.random()).longValue(),
new Double(100 * Math.random()).longValue()); new Double(100 * Math.random()).longValue());
seriesJobData.add(data); seriesJobData.add(data);
} }
switch (seriesRequest.getAccountingFilterDefinition() switch (seriesRequest.getAccountingFilterDefinition().getChartType()) {
.getChartType()) {
case Basic: case Basic:
serieJobDefinition = new SeriesJobBasic(seriesJobData); serieJobDefinition = new SeriesJobBasic(seriesJobData);
break; break;
@ -198,29 +181,13 @@ public class AccountingCallerTester implements AccountingCallerInterface {
.getAccountingFilterDefinition(); .getAccountingFilterDefinition();
ArrayList<SeriesJobDataTop> seriesJobDataTopList = new ArrayList<>(); ArrayList<SeriesJobDataTop> seriesJobDataTopList = new ArrayList<>();
if (accountingFilterTop.getShowOthers()) { for (int i = 0; i < accountingFilterTop.getTopNumber(); i++) {
for (int i = 0; i < 40; i++) {
SeriesJobDataTop seriesJobDataTop = new SeriesJobDataTop( SeriesJobDataTop seriesJobDataTop = new SeriesJobDataTop(new FilterValue("User" + i),
new FilterValue("User" + i), seriesJobData);
seriesJobData); seriesJobDataTopList.add(seriesJobDataTop);
seriesJobDataTopList.add(seriesJobDataTop);
}
} else {
for (int i = 0; i < accountingFilterTop
.getTopNumber(); i++) {
SeriesJobDataTop seriesJobDataTop = new SeriesJobDataTop(
new FilterValue("User" + i),
seriesJobData);
seriesJobDataTopList.add(seriesJobDataTop);
}
} }
serieJobDefinition = new SeriesJobTop(accountingFilterTop.getTopNumber(), seriesJobDataTopList);
serieJobDefinition = new SeriesJobTop(
accountingFilterTop.getShowOthers(),
accountingFilterTop.getTopNumber(),
seriesJobDataTopList);
break; break;
default: default:
@ -236,49 +203,39 @@ public class AccountingCallerTester implements AccountingCallerInterface {
break; break;
case SERVICE: case SERVICE:
SeriesServiceDefinition serieServiceDefinition = null; SeriesServiceDefinition serieServiceDefinition = null;
if (seriesRequest.getAccountingFilterDefinition() if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) {
.getChartType() != null) {
ArrayList<SeriesServiceData> seriesServiceData = new ArrayList<>(); ArrayList<SeriesServiceData> seriesServiceData = new ArrayList<>();
switch (seriesRequest.getAccountingPeriod().getPeriod()) { switch (seriesRequest.getAccountingPeriod().getPeriod()) {
case DAILY: case DAILY:
case HOURLY: case HOURLY:
case MINUTELY: case MINUTELY:
for (int i = 0; i < 30; i++) { for (int i = 0; i < 30; i++) {
SeriesServiceData data = new SeriesServiceData( SeriesServiceData data = new SeriesServiceData(new Date(),
new Date(),
new Double(50 * Math.random()).longValue(), new Double(50 * Math.random()).longValue(),
new Double(10000 * Math.random()) new Double(10000 * Math.random()).longValue(),
.longValue(), new Double( new Double(10000 * Math.random()).longValue(),
10000 * Math.random()).longValue(), new Double(10000 * Math.random()).longValue());
new Double(10000 * Math.random())
.longValue());
seriesServiceData.add(data); seriesServiceData.add(data);
} }
break; break;
case MONTHLY: case MONTHLY:
while (startCalendar.compareTo(endCalendar) <= 0) { while (startCalendar.compareTo(endCalendar) <= 0) {
SeriesServiceData data = new SeriesServiceData( SeriesServiceData data = new SeriesServiceData(startCalendar.getTime(),
startCalendar.getTime(), new Double( new Double(50 * Math.random()).longValue(),
50 * Math.random()).longValue(), new Double(10000 * Math.random()).longValue(),
new Double(10000 * Math.random()) new Double(10000 * Math.random()).longValue(),
.longValue(), new Double( new Double(10000 * Math.random()).longValue());
10000 * Math.random()).longValue(),
new Double(10000 * Math.random())
.longValue());
seriesServiceData.add(data); seriesServiceData.add(data);
startCalendar.add(Calendar.MONTH, 1); startCalendar.add(Calendar.MONTH, 1);
} }
break; break;
case YEARLY: case YEARLY:
while (startCalendar.compareTo(endCalendar) <= 0) { while (startCalendar.compareTo(endCalendar) <= 0) {
SeriesServiceData data = new SeriesServiceData( SeriesServiceData data = new SeriesServiceData(startCalendar.getTime(),
startCalendar.getTime(), new Double( new Double(50 * Math.random()).longValue(),
50 * Math.random()).longValue(), new Double(10000 * Math.random()).longValue(),
new Double(10000 * Math.random()) new Double(10000 * Math.random()).longValue(),
.longValue(), new Double( new Double(10000 * Math.random()).longValue());
10000 * Math.random()).longValue(),
new Double(10000 * Math.random())
.longValue());
seriesServiceData.add(data); seriesServiceData.add(data);
startCalendar.add(Calendar.YEAR, 1); startCalendar.add(Calendar.YEAR, 1);
} }
@ -288,96 +245,23 @@ public class AccountingCallerTester implements AccountingCallerInterface {
} }
switch (seriesRequest.getAccountingFilterDefinition() switch (seriesRequest.getAccountingFilterDefinition().getChartType()) {
.getChartType()) {
case Basic: case Basic:
serieServiceDefinition = new SeriesServiceBasic( serieServiceDefinition = new SeriesServiceBasic(seriesServiceData);
seriesServiceData);
break; break;
case Top: case Top:
AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest
.getAccountingFilterDefinition(); .getAccountingFilterDefinition();
ArrayList<SeriesServiceDataTop> seriesServiceDataTopList = new ArrayList<>(); ArrayList<SeriesServiceDataTop> seriesServiceDataTopList = new ArrayList<>();
if (accountingFilterTop.getShowOthers()) { for (int i = 0; i < accountingFilterTop.getTopNumber(); i++) {
try { SeriesServiceDataTop seriesServiceDataTop1 = new SeriesServiceDataTop(
startCalendar.setTime(sdf.parse(seriesRequest new FilterValue("User" + i), seriesServiceData);
.getAccountingPeriod().getStartDate())); seriesServiceDataTopList.add(seriesServiceDataTop1);
} 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);
}
} }
serieServiceDefinition = new SeriesServiceTop( serieServiceDefinition = new SeriesServiceTop(accountingFilterTop.getTopNumber(),
accountingFilterTop.getShowOthers(),
accountingFilterTop.getTopNumber(),
seriesServiceDataTopList); seriesServiceDataTopList);
break; break;
@ -392,34 +276,30 @@ public class AccountingCallerTester implements AccountingCallerInterface {
break; break;
case SPACE: case SPACE:
SeriesSpaceDefinition serieSpaceDefinition = null; SeriesSpaceDefinition serieSpaceDefinition = null;
if (seriesRequest.getAccountingFilterDefinition() if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) {
.getChartType() != null) {
ArrayList<SeriesSpaceData> seriesSpaceData = new ArrayList<>(); ArrayList<SeriesSpaceData> seriesSpaceData = new ArrayList<>();
switch (seriesRequest.getAccountingPeriod().getPeriod()) { switch (seriesRequest.getAccountingPeriod().getPeriod()) {
case DAILY: case DAILY:
case HOURLY: case HOURLY:
case MINUTELY: case MINUTELY:
for (int i = 0; i < 30; i++) { for (int i = 0; i < 30; i++) {
SeriesSpaceData data = new SeriesSpaceData( SeriesSpaceData data = new SeriesSpaceData(new Date(),
new Date(), new Double( new Double(10000 * Math.random()).longValue());
10000 * Math.random()).longValue());
seriesSpaceData.add(data); seriesSpaceData.add(data);
} }
break; break;
case MONTHLY: case MONTHLY:
while (startCalendar.compareTo(endCalendar) <= 0) { while (startCalendar.compareTo(endCalendar) <= 0) {
SeriesSpaceData data = new SeriesSpaceData( SeriesSpaceData data = new SeriesSpaceData(startCalendar.getTime(),
startCalendar.getTime(), new Double( new Double(10000 * Math.random()).longValue());
10000 * Math.random()).longValue());
seriesSpaceData.add(data); seriesSpaceData.add(data);
startCalendar.add(Calendar.MONTH, 1); startCalendar.add(Calendar.MONTH, 1);
} }
break; break;
case YEARLY: case YEARLY:
while (startCalendar.compareTo(endCalendar) <= 0) { while (startCalendar.compareTo(endCalendar) <= 0) {
SeriesSpaceData data = new SeriesSpaceData( SeriesSpaceData data = new SeriesSpaceData(startCalendar.getTime(),
startCalendar.getTime(), new Double( new Double(10000 * Math.random()).longValue());
10000 * Math.random()).longValue());
seriesSpaceData.add(data); seriesSpaceData.add(data);
startCalendar.add(Calendar.YEAR, 1); startCalendar.add(Calendar.YEAR, 1);
} }
@ -429,8 +309,7 @@ public class AccountingCallerTester implements AccountingCallerInterface {
} }
switch (seriesRequest.getAccountingFilterDefinition() switch (seriesRequest.getAccountingFilterDefinition().getChartType()) {
.getChartType()) {
case Basic: case Basic:
case Top: case Top:
case Spaces: case Spaces:
@ -443,15 +322,13 @@ public class AccountingCallerTester implements AccountingCallerInterface {
for (int i = 1; i < 3; i++) { for (int i = 1; i < 3; i++) {
String space = new String("Space" + i); String space = new String("Space" + i);
spacesList.add(space); spacesList.add(space);
SeriesSpaceDataSpaces seriesSpaceDataSpaces = new SeriesSpaceDataSpaces( SeriesSpaceDataSpaces seriesSpaceDataSpaces = new SeriesSpaceDataSpaces(space,
space, seriesSpaceData); seriesSpaceData);
seriesSpaceDataSpacesList seriesSpaceDataSpacesList.add(seriesSpaceDataSpaces);
.add(seriesSpaceDataSpaces);
} }
Spaces spaces=new Spaces(spacesList); Spaces spaces = new Spaces(spacesList);
serieSpaceDefinition = new SeriesSpaceSpaces( serieSpaceDefinition = new SeriesSpaceSpaces(spaces, seriesSpaceDataSpacesList);
spaces, seriesSpaceDataSpacesList);
default: default:
break; break;
@ -465,17 +342,14 @@ public class AccountingCallerTester implements AccountingCallerInterface {
case STORAGE: case STORAGE:
SeriesStorageDefinition serieStorageDefinition = null; SeriesStorageDefinition serieStorageDefinition = null;
if (seriesRequest.getAccountingFilterDefinition() if (seriesRequest.getAccountingFilterDefinition().getChartType() != null) {
.getChartType() != null) {
ArrayList<SeriesStorageData> seriesStorageData = new ArrayList<>(); ArrayList<SeriesStorageData> seriesStorageData = new ArrayList<>();
for (int i = 0; i < 30; i++) { for (int i = 0; i < 30; i++) {
// Valori variabili // Valori variabili
SeriesStorageData data = new SeriesStorageData( SeriesStorageData data = new SeriesStorageData(new Date(),
new Date(), new Double(1024 * 1024 * Math.random()).longValue(),
new Double(1024 * 1024 * Math.random()) new Double(100 * Math.random()).longValue());
.longValue(), new Double(
100 * Math.random()).longValue());
// Valori Fissi // Valori Fissi
/* /*
@ -487,45 +361,27 @@ public class AccountingCallerTester implements AccountingCallerInterface {
seriesStorageData.add(data); seriesStorageData.add(data);
} }
switch (seriesRequest.getAccountingFilterDefinition() switch (seriesRequest.getAccountingFilterDefinition().getChartType()) {
.getChartType()) {
case Basic: case Basic:
for (SeriesStorageData serieStorageData : seriesStorageData) { for (SeriesStorageData serieStorageData : seriesStorageData) {
serieStorageData.setDataVolume(serieStorageData serieStorageData.setDataVolume(serieStorageData.getDataVolume() * 1000);
.getDataVolume() * 1000); serieStorageData.setOperationCount(serieStorageData.getOperationCount() * 1000);
serieStorageData.setOperationCount(serieStorageData
.getOperationCount() * 1000);
} }
serieStorageDefinition = new SeriesStorageBasic( serieStorageDefinition = new SeriesStorageBasic(seriesStorageData);
seriesStorageData);
break; break;
case Top: case Top:
AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest AccountingFilterTop accountingFilterTop = (AccountingFilterTop) seriesRequest
.getAccountingFilterDefinition(); .getAccountingFilterDefinition();
ArrayList<SeriesStorageDataTop> seriesStorageDataTopList = new ArrayList<>(); ArrayList<SeriesStorageDataTop> 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 for (int i = 0; i < accountingFilterTop.getTopNumber(); i++) {
.getTopNumber(); i++) { SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop(
SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop( new FilterValue("User" + i), seriesStorageData);
new FilterValue("User" + i), seriesStorageDataTopList.add(seriesStorageDataTop);
seriesStorageData);
seriesStorageDataTopList
.add(seriesStorageDataTop);
}
} }
serieStorageDefinition = new SeriesStorageTop(
accountingFilterTop.getShowOthers(), serieStorageDefinition = new SeriesStorageTop(accountingFilterTop.getTopNumber(),
accountingFilterTop.getTopNumber(),
seriesStorageDataTopList); seriesStorageDataTopList);
break; break;
default: default:

View File

@ -43,38 +43,36 @@ public class AccountingCommandTop implements AccountingCommand<SeriesResponse> {
public SeriesResponse execute() throws ServiceException { public SeriesResponse execute() throws ServiceException {
try { try {
//if (accountingQueryTop.getScope() != null && !accountingQueryTop.getScope().isEmpty()) { // if (accountingQueryTop.getScope() != null &&
// AccountingPersistenceQueryFactory.getForcedQueryScope().set(accountingQueryTop.getScope()); // !accountingQueryTop.getScope().isEmpty()) {
//} // AccountingPersistenceQueryFactory.getForcedQueryScope().set(accountingQueryTop.getScope());
// }
AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory.getInstance(); AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory.getInstance();
logger.debug("Query TopValues: " + accountingQueryTop.getFilterKey().getKey()); logger.debug("Query TopValues: " + accountingQueryTop.getFilterKey().getKey());
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM; SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM;
logger.debug("Execute Top()"); logger.debug("Execute Top()");
apq.setRequestedRecords(accountingQueryTop.getType()); apq.setRequestedRecords(accountingQueryTop.getType());
HashSet<String> ctx=null; HashSet<String> ctx = null;
if(accountingQueryTop.getContext()!=null&&accountingQueryTop.getContext().getContexts()!=null if (accountingQueryTop.getContext() != null && accountingQueryTop.getContext().getContexts() != null
&&!accountingQueryTop.getContext().getContexts().isEmpty()){ && !accountingQueryTop.getContext().getContexts().isEmpty()) {
ctx=new HashSet<String>(accountingQueryTop.getContext().getContexts()); ctx = new HashSet<String>(accountingQueryTop.getContext().getContexts());
} }
apq.setContexts(ctx); apq.setContexts(ctx);
apq.setTemporalConstraint(accountingQueryTop.getTemporalConstraint()); apq.setTemporalConstraint(accountingQueryTop.getTemporalConstraint());
apq.setFilters(accountingQueryTop.getFilters()); apq.setFilters(accountingQueryTop.getFilters());
if (accountingQueryTop.getShowOthers()) {
topSM = apq.getTopValues(accountingQueryTop.getFilterKey().getKey(), null, true, 0);
} else {
topSM = apq.getTopValues(accountingQueryTop.getFilterKey().getKey(), null, true,
accountingQueryTop.getTopNumber());
}
//if (accountingQueryTop.getScope() != null && !accountingQueryTop.getScope().isEmpty()) { topSM = apq.getTopValues(accountingQueryTop.getFilterKey().getKey(), null, true,
// AccountingPersistenceQueryFactory.getForcedQueryScope().remove(); accountingQueryTop.getTopNumber());
//}
// if (accountingQueryTop.getScope() != null &&
// !accountingQueryTop.getScope().isEmpty()) {
// AccountingPersistenceQueryFactory.getForcedQueryScope().remove();
// }
if (topSM == null) { if (topSM == null) {
throw new ServiceException("Error retrieving info for top: sorted map is null!"); throw new ServiceException("Error retrieving info for top: sorted map is null!");
@ -111,20 +109,15 @@ public class AccountingCommandTop implements AccountingCommand<SeriesResponse> {
switch (accountingType) { switch (accountingType) {
case JOB: case JOB:
return new SeriesResponse4JobTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), return new SeriesResponse4JobTop(accountingQueryTop.getTopNumber(), topSM);
topSM);
case PORTLET: case PORTLET:
return new SeriesResponse4PortletTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), return new SeriesResponse4PortletTop(accountingQueryTop.getTopNumber(), topSM);
topSM);
case SERVICE: case SERVICE:
return new SeriesResponse4ServiceTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), return new SeriesResponse4ServiceTop(accountingQueryTop.getTopNumber(), topSM);
topSM);
case STORAGE: case STORAGE:
return new SeriesResponse4StorageTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), return new SeriesResponse4StorageTop(accountingQueryTop.getTopNumber(), topSM);
topSM);
case TASK: case TASK:
return new SeriesResponse4TaskTop(accountingQueryTop.getShowOthers(), accountingQueryTop.getTopNumber(), return new SeriesResponse4TaskTop(accountingQueryTop.getTopNumber(), topSM);
topSM);
default: default:
throw new ServiceException("Error request type is unknow!"); throw new ServiceException("Error request type is unknow!");

View File

@ -93,7 +93,7 @@ public class AccountingQuery4Job extends AccountingQueryBuilder {
} }
} }
invocation = new AccountingQueryTop(AggregatedJobUsageRecord.class, accountingFilterTop.getContext(), invocation = new AccountingQueryTop(AggregatedJobUsageRecord.class, accountingFilterTop.getContext(),
accountingFilterTop.getFilterKey(), accountingFilterTop.getShowOthers(), accountingFilterTop.getFilterKey(),
accountingFilterTop.getTopNumber(), temporalConstraint, filters); accountingFilterTop.getTopNumber(), temporalConstraint, filters);
} else { } else {
logger.error("Invalid Request: " + seriesRequest); logger.error("Invalid Request: " + seriesRequest);

View File

@ -93,8 +93,7 @@ public class AccountingQuery4Portlet extends AccountingQueryBuilder {
} }
invocation = new AccountingQueryTop(AggregatedPortletUsageRecord.class, invocation = new AccountingQueryTop(AggregatedPortletUsageRecord.class,
accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(), accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(),
accountingFilterTop.getShowOthers(), accountingFilterTop.getTopNumber(), temporalConstraint, accountingFilterTop.getTopNumber(), temporalConstraint, filters);
filters);
} else { } else {
logger.error("Invalid Request: " + seriesRequest); logger.error("Invalid Request: " + seriesRequest);
throw new ServiceException("Invalid Request!"); throw new ServiceException("Invalid Request!");

View File

@ -94,8 +94,7 @@ public class AccountingQuery4Service extends AccountingQueryBuilder {
} }
invocation = new AccountingQueryTop(AggregatedServiceUsageRecord.class, invocation = new AccountingQueryTop(AggregatedServiceUsageRecord.class,
accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(), accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(),
accountingFilterTop.getShowOthers(), accountingFilterTop.getTopNumber(), temporalConstraint, accountingFilterTop.getTopNumber(), temporalConstraint, filters);
filters);
} else { } else {
logger.error("Invalid Request: " + seriesRequest); logger.error("Invalid Request: " + seriesRequest);
throw new ServiceException("Invalid Request!"); throw new ServiceException("Invalid Request!");

View File

@ -94,8 +94,7 @@ public class AccountingQuery4Storage extends AccountingQueryBuilder {
} }
invocation = new AccountingQueryTop(AggregatedStorageUsageRecord.class, invocation = new AccountingQueryTop(AggregatedStorageUsageRecord.class,
accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(), accountingFilterTop.getContext(), accountingFilterTop.getFilterKey(),
accountingFilterTop.getShowOthers(), accountingFilterTop.getTopNumber(), temporalConstraint, accountingFilterTop.getTopNumber(), temporalConstraint, filters);
filters);
} else { } else {
logger.error("Invalid Request: " + seriesRequest); logger.error("Invalid Request: " + seriesRequest);
throw new ServiceException("Invalid Request!"); throw new ServiceException("Invalid Request!");

View File

@ -20,12 +20,11 @@ public class AccountingQueryTop extends AccountingQuery {
private Context context; private Context context;
private FilterKey filterKey; private FilterKey filterKey;
private Integer topNumber; private Integer topNumber;
private Boolean showOthers;
private TemporalConstraint temporalConstraint; private TemporalConstraint temporalConstraint;
private ArrayList<Filter> filters; private ArrayList<Filter> filters;
public AccountingQueryTop(Class<? extends AggregatedUsageRecord<?, ?>> type, Context context, FilterKey filterKey, public AccountingQueryTop(Class<? extends AggregatedUsageRecord<?, ?>> type, Context context, FilterKey filterKey,
Boolean showOthers, Integer topNumber, TemporalConstraint temporalConstraint, ArrayList<Filter> filters) { Integer topNumber, TemporalConstraint temporalConstraint, ArrayList<Filter> filters) {
super(); super();
chartType = ChartType.Top; chartType = ChartType.Top;
this.type = type; this.type = type;
@ -33,7 +32,6 @@ public class AccountingQueryTop extends AccountingQuery {
this.temporalConstraint = temporalConstraint; this.temporalConstraint = temporalConstraint;
this.filters = filters; this.filters = filters;
this.filterKey = filterKey; this.filterKey = filterKey;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
} }
@ -44,7 +42,7 @@ public class AccountingQueryTop extends AccountingQuery {
public void setType(Class<? extends AggregatedUsageRecord<?, ?>> type) { public void setType(Class<? extends AggregatedUsageRecord<?, ?>> type) {
this.type = type; this.type = type;
} }
public Context getContext() { public Context getContext() {
return context; return context;
} }
@ -77,14 +75,6 @@ public class AccountingQueryTop extends AccountingQuery {
this.filterKey = filterKey; this.filterKey = filterKey;
} }
public Boolean getShowOthers() {
return showOthers;
}
public void setShowOthers(Boolean showOthers) {
this.showOthers = showOthers;
}
public Integer getTopNumber() { public Integer getTopNumber() {
return topNumber; return topNumber;
} }
@ -96,9 +86,8 @@ public class AccountingQueryTop extends AccountingQuery {
@Override @Override
public String toString() { public String toString() {
return "AccountingQueryTop [type=" + type + ", context=" + context + ", filterKey=" + filterKey + ", topNumber=" return "AccountingQueryTop [type=" + type + ", context=" + context + ", filterKey=" + filterKey + ", topNumber="
+ topNumber + ", showOthers=" + showOthers + ", temporalConstraint=" + temporalConstraint + ", filters=" + topNumber + ", temporalConstraint=" + temporalConstraint + ", filters=" + filters + ", chartType="
+ filters + ", chartType=" + chartType + "]"; + chartType + "]";
} }
} }

View File

@ -27,13 +27,11 @@ import org.slf4j.LoggerFactory;
public class SeriesResponse4JobTop extends SeriesResponseBuilder { public class SeriesResponse4JobTop extends SeriesResponseBuilder {
protected static Logger logger = LoggerFactory protected static Logger logger = LoggerFactory
.getLogger(SeriesResponse4JobTop.class); .getLogger(SeriesResponse4JobTop.class);
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM; private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM;
public SeriesResponse4JobTop(Boolean showOthers, Integer topNumber, public SeriesResponse4JobTop(Integer topNumber,
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) { SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.topSM = topSM; this.topSM = topSM;
} }
@ -76,7 +74,7 @@ public class SeriesResponse4JobTop extends SeriesResponseBuilder {
} }
SeriesJobTop seriesJobTop = new SeriesJobTop(showOthers,topNumber, SeriesJobTop seriesJobTop = new SeriesJobTop(topNumber,
seriesJobDataTopList); seriesJobDataTopList);
SeriesJob seriesService = new SeriesJob(seriesJobTop); SeriesJob seriesService = new SeriesJob(seriesJobTop);

View File

@ -27,13 +27,11 @@ import org.slf4j.LoggerFactory;
public class SeriesResponse4PortletTop extends SeriesResponseBuilder { public class SeriesResponse4PortletTop extends SeriesResponseBuilder {
protected static Logger logger = LoggerFactory protected static Logger logger = LoggerFactory
.getLogger(SeriesResponse4PortletTop.class); .getLogger(SeriesResponse4PortletTop.class);
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM; private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM;
public SeriesResponse4PortletTop(Boolean showOthers, Integer topNumber, public SeriesResponse4PortletTop(Integer topNumber,
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) { SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.topSM = topSM; this.topSM = topSM;
} }
@ -72,8 +70,7 @@ public class SeriesResponse4PortletTop extends SeriesResponseBuilder {
} }
SeriesPortletTop seriesPortletTop = new SeriesPortletTop( SeriesPortletTop seriesPortletTop = new SeriesPortletTop(topNumber, seriesPortletDataTopList);
showOthers, topNumber, seriesPortletDataTopList);
SeriesPortlet seriesPortlet = new SeriesPortlet(seriesPortletTop); SeriesPortlet seriesPortlet = new SeriesPortlet(seriesPortletTop);
seriesResponseSpec.setSr(seriesPortlet); seriesResponseSpec.setSr(seriesPortlet);

View File

@ -20,20 +20,16 @@ import org.slf4j.LoggerFactory;
/** /**
* Top Series Response 4 Service * Top Series Response 4 Service
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
* *
* *
*/ */
public class SeriesResponse4ServiceTop extends SeriesResponseBuilder { public class SeriesResponse4ServiceTop extends SeriesResponseBuilder {
protected static Logger logger = LoggerFactory protected static Logger logger = LoggerFactory.getLogger(SeriesResponse4ServiceTop.class);
.getLogger(SeriesResponse4ServiceTop.class);
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM; private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM;
public SeriesResponse4ServiceTop(Boolean showOthers, Integer topNumber, public SeriesResponse4ServiceTop(Integer topNumber, SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.topSM = topSM; this.topSM = topSM;
} }
@ -54,17 +50,12 @@ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder {
SortedMap<Calendar, Info> infos = topSM.get(topValue); SortedMap<Calendar, Info> infos = topSM.get(topValue);
for (Info info : infos.values()) { for (Info info : infos.values()) {
JsonNode jso = info.getValue(); JsonNode jso = info.getValue();
Long duration = jso Long duration = jso.get(AggregatedServiceUsageRecord.DURATION).asLong();
.get(AggregatedServiceUsageRecord.DURATION).asLong(); Long operationCount = jso.get(AggregatedServiceUsageRecord.OPERATION_COUNT).asLong();
Long operationCount = jso Long maxInvocationTime = jso.get(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME).asLong();
.get(AggregatedServiceUsageRecord.OPERATION_COUNT).asLong(); Long minInvocationTime = jso.get(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME).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() series.add(new SeriesServiceData(info.getCalendar().getTime(), operationCount, duration,
.getTime(), operationCount, duration,
maxInvocationTime, minInvocationTime)); maxInvocationTime, minInvocationTime));
} }
@ -74,19 +65,16 @@ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder {
} }
SeriesServiceTop seriesServiceTop = new SeriesServiceTop( SeriesServiceTop seriesServiceTop = new SeriesServiceTop(topNumber, seriesServiceDataTopList);
showOthers, topNumber, seriesServiceDataTopList);
SeriesService seriesService = new SeriesService(seriesServiceTop); SeriesService seriesService = new SeriesService(seriesServiceTop);
seriesResponseSpec.setSr(seriesService); seriesResponseSpec.setSr(seriesService);
} catch (Throwable e) { } catch (Throwable e) {
logger.error("Error creating series for service accounting top chart: " logger.error("Error creating series for service accounting top chart: " + e.getLocalizedMessage());
+ e.getLocalizedMessage());
e.printStackTrace(); e.printStackTrace();
throw new ServiceException( throw new ServiceException(
"Error creating series for service accounting top chart: " "Error creating series for service accounting top chart: " + e.getLocalizedMessage());
+ e.getLocalizedMessage());
} }
} }

View File

@ -6,14 +6,13 @@ import java.util.SortedMap;
import org.gcube.accounting.analytics.Filter; import org.gcube.accounting.analytics.Filter;
import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.Info;
import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord;
import org.gcube.accounting.datamodel.aggregation.AggregatedStorageStatusRecord; import org.gcube.accounting.datamodel.aggregation.AggregatedStorageStatusRecord;
import org.gcube.com.fasterxml.jackson.databind.JsonNode; 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.Spaces;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesSpace; 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.SeriesSpaceData;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.space.SeriesSpaceDataSpaces; 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.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;

View File

@ -20,20 +20,16 @@ import org.slf4j.LoggerFactory;
/** /**
* Top Series Response 4 Storage * Top Series Response 4 Storage
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
* *
* *
*/ */
public class SeriesResponse4StorageTop extends SeriesResponseBuilder { public class SeriesResponse4StorageTop extends SeriesResponseBuilder {
protected static Logger logger = LoggerFactory protected static Logger logger = LoggerFactory.getLogger(SeriesResponse4StorageTop.class);
.getLogger(SeriesResponse4StorageTop.class);
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM; private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM;
public SeriesResponse4StorageTop(Boolean showOthers, Integer topNumber, public SeriesResponse4StorageTop(Integer topNumber, SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.topSM = topSM; this.topSM = topSM;
@ -55,12 +51,9 @@ public class SeriesResponse4StorageTop extends SeriesResponseBuilder {
SortedMap<Calendar, Info> infos = topSM.get(topValue); SortedMap<Calendar, Info> infos = topSM.get(topValue);
for (Info info : infos.values()) { for (Info info : infos.values()) {
JsonNode jso = info.getValue(); JsonNode jso = info.getValue();
Long dataVolume = jso Long dataVolume = jso.get(AggregatedStorageUsageRecord.DATA_VOLUME).asLong();
.get(AggregatedStorageUsageRecord.DATA_VOLUME).asLong(); Long operationCount = jso.get(AggregatedStorageUsageRecord.OPERATION_COUNT).asLong();
Long operationCount = jso series.add(new SeriesStorageData(info.getCalendar().getTime(), dataVolume, operationCount));
.get(AggregatedStorageUsageRecord.OPERATION_COUNT).asLong();
series.add(new SeriesStorageData(info.getCalendar()
.getTime(), dataVolume, operationCount));
} }
SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop( SeriesStorageDataTop seriesStorageDataTop = new SeriesStorageDataTop(
@ -69,18 +62,15 @@ public class SeriesResponse4StorageTop extends SeriesResponseBuilder {
} }
SeriesStorageTop seriesStorageTop = new SeriesStorageTop( SeriesStorageTop seriesStorageTop = new SeriesStorageTop(topNumber, seriesStorageDataTopList);
showOthers, topNumber, seriesStorageDataTopList);
SeriesStorage seriesStorage = new SeriesStorage(seriesStorageTop); SeriesStorage seriesStorage = new SeriesStorage(seriesStorageTop);
seriesResponseSpec.setSr(seriesStorage); seriesResponseSpec.setSr(seriesStorage);
} catch (Throwable e) { } catch (Throwable e) {
logger.error("Error creating series for storage accounting top chart: " logger.error("Error creating series for storage accounting top chart: " + e.getLocalizedMessage());
+ e.getLocalizedMessage());
e.printStackTrace(); e.printStackTrace();
throw new ServiceException( throw new ServiceException(
"Error creating series for storage accounting basic chart: " "Error creating series for storage accounting basic chart: " + e.getLocalizedMessage());
+ e.getLocalizedMessage());
} }
} }
} }

View File

@ -20,20 +20,16 @@ import org.slf4j.LoggerFactory;
/** /**
* Top Series Response 4 Task * Top Series Response 4 Task
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
* *
* *
*/ */
public class SeriesResponse4TaskTop extends SeriesResponseBuilder { public class SeriesResponse4TaskTop extends SeriesResponseBuilder {
protected static Logger logger = LoggerFactory protected static Logger logger = LoggerFactory.getLogger(SeriesResponse4TaskTop.class);
.getLogger(SeriesResponse4TaskTop.class);
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM; private SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM;
public SeriesResponse4TaskTop(Boolean showOthers, Integer topNumber, public SeriesResponse4TaskTop(Integer topNumber, SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> topSM) {
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.topSM = topSM; this.topSM = topSM;
} }
@ -57,35 +53,33 @@ public class SeriesResponse4TaskTop extends SeriesResponseBuilder {
JsonNode jso = info.getValue(); JsonNode jso = info.getValue();
// Long duration = // Long duration =
// jso.getLong(AggregatedTaskUsageRecord.DURATION); // jso.getLong(AggregatedTaskUsageRecord.DURATION);
//Long operationCount = jso // Long operationCount = jso
// .getLong(AggregatedTaskUsageRecord.OPERATION_COUNT); // .getLong(AggregatedTaskUsageRecord.OPERATION_COUNT);
// Long maxInvocationTime = // Long maxInvocationTime =
// jso.getLong(AggregatedTaskUsageRecord.MAX_INVOCATION_TIME); // jso.getLong(AggregatedTaskUsageRecord.MAX_INVOCATION_TIME);
// Long minInvocationTime = // Long minInvocationTime =
// jso.getLong(AggregatedTaskUsageRecord.MIN_INVOCATION_TIME); // jso.getLong(AggregatedTaskUsageRecord.MIN_INVOCATION_TIME);
//series.add(new SeriesTaskData(info.getCalendar().getTime(), // series.add(new
// operationCount)); // SeriesTaskData(info.getCalendar().getTime(),
// operationCount));
} }
SeriesTaskDataTop seriesTaskDataTop = new SeriesTaskDataTop( SeriesTaskDataTop seriesTaskDataTop = new SeriesTaskDataTop(new FilterValue(topValue.getValue()),
new FilterValue(topValue.getValue()), series); series);
seriesTaskDataTopList.add(seriesTaskDataTop); seriesTaskDataTopList.add(seriesTaskDataTop);
} }
SeriesTaskTop seriesTaskTop = new SeriesTaskTop(showOthers, SeriesTaskTop seriesTaskTop = new SeriesTaskTop(topNumber, seriesTaskDataTopList);
topNumber, seriesTaskDataTopList);
SeriesTask seriesTask = new SeriesTask(seriesTaskTop); SeriesTask seriesTask = new SeriesTask(seriesTaskTop);
seriesResponseSpec.setSr(seriesTask); seriesResponseSpec.setSr(seriesTask);
} catch (Throwable e) { } catch (Throwable e) {
logger.error("Error creating series for portlet accounting top chart: " logger.error("Error creating series for portlet accounting top chart: " + e.getLocalizedMessage());
+ e.getLocalizedMessage());
e.printStackTrace(); e.printStackTrace();
throw new ServiceException( throw new ServiceException(
"Error creating series for portlet accounting top chart: " "Error creating series for portlet accounting top chart: " + e.getLocalizedMessage());
+ e.getLocalizedMessage());
} }
} }
} }

View File

@ -48,5 +48,10 @@ public class Constants {
public static final int CLIENT_MONITOR_TIME_OUT_PERIODMILLIS = 1800000; public static final int CLIENT_MONITOR_TIME_OUT_PERIODMILLIS = 1800000;
public static final int DAEMON_SLEEP_MILLIS = 1000; 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 = 50;
public static final int TOP_NUMBER_MIN = 1;
} }

View File

@ -3,6 +3,8 @@ package org.gcube.portlets.admin.accountingmanager.shared.data;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import org.gcube.portlets.admin.accountingmanager.shared.Constants;
/** /**
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
@ -15,7 +17,6 @@ public class AccountingFilterTop extends AccountingFilterDefinition implements S
private Context context; private Context context;
private String scopeFilterActive; private String scopeFilterActive;
private FilterKey filterKey; private FilterKey filterKey;
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private ArrayList<AccountingFilter> filters; private ArrayList<AccountingFilter> filters;
@ -24,31 +25,28 @@ public class AccountingFilterTop extends AccountingFilterDefinition implements S
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
context = null; context = null;
scopeFilterActive = null; scopeFilterActive = null;
showOthers = false; topNumber = Constants.TOP_NUMBER_DEFAULT;
topNumber = 5;
filterKey = null; filterKey = null;
filters = null; filters = null;
} }
public AccountingFilterTop(Context context, Boolean showOthers, Integer topNumber) { public AccountingFilterTop(Context context, Integer topNumber) {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.context = context; this.context = context;
this.scopeFilterActive = null; this.scopeFilterActive = null;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
filterKey = null; filterKey = null;
filters = null; filters = null;
} }
public AccountingFilterTop(Context context, String scopeFilterActive, Boolean showOthers, Integer topNumber) { public AccountingFilterTop(Context context, String scopeFilterActive, Integer topNumber) {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.context = context; this.context = context;
this.scopeFilterActive = scopeFilterActive; this.scopeFilterActive = scopeFilterActive;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
filterKey = null; filterKey = null;
filters = null; filters = null;
@ -56,26 +54,24 @@ public class AccountingFilterTop extends AccountingFilterDefinition implements S
} }
public AccountingFilterTop(Context context, FilterKey filterKey, ArrayList<AccountingFilter> filters, public AccountingFilterTop(Context context, FilterKey filterKey, ArrayList<AccountingFilter> filters,
Boolean showOthers, Integer topNumber) { Integer topNumber) {
super(); super();
chartType = ChartType.Top; chartType = ChartType.Top;
this.context = context; this.context = context;
this.scopeFilterActive = null; this.scopeFilterActive = null;
this.filterKey = filterKey; this.filterKey = filterKey;
this.filters = filters; this.filters = filters;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
} }
public AccountingFilterTop(Context context, String scopeFilterActive, FilterKey filterKey, public AccountingFilterTop(Context context, String scopeFilterActive, FilterKey filterKey,
ArrayList<AccountingFilter> filters, Boolean showOthers, Integer topNumber) { ArrayList<AccountingFilter> filters, Integer topNumber) {
super(); super();
chartType = ChartType.Top; chartType = ChartType.Top;
this.context = context; this.context = context;
this.scopeFilterActive = scopeFilterActive; this.scopeFilterActive = scopeFilterActive;
this.filterKey = filterKey; this.filterKey = filterKey;
this.filters = filters; this.filters = filters;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
} }
@ -95,14 +91,6 @@ public class AccountingFilterTop extends AccountingFilterDefinition implements S
this.filterKey = filterKey; this.filterKey = filterKey;
} }
public Boolean getShowOthers() {
return showOthers;
}
public void setShowOthers(Boolean showOthers) {
this.showOthers = showOthers;
}
public Integer getTopNumber() { public Integer getTopNumber() {
return topNumber; return topNumber;
} }
@ -130,9 +118,7 @@ public class AccountingFilterTop extends AccountingFilterDefinition implements S
@Override @Override
public String toString() { public String toString() {
return "AccountingFilterTop [context=" + context + ", scopeFilterActive=" + scopeFilterActive + ", filterKey=" return "AccountingFilterTop [context=" + context + ", scopeFilterActive=" + scopeFilterActive + ", filterKey="
+ filterKey + ", showOthers=" + showOthers + ", topNumber=" + topNumber + ", filters=" + filters + filterKey + ", topNumber=" + topNumber + ", filters=" + filters + ", chartType=" + chartType + "]";
+ ", chartType=" + chartType + "]";
} }
} }

View File

@ -2,11 +2,12 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.job;
import java.util.ArrayList; import java.util.ArrayList;
import org.gcube.portlets.admin.accountingmanager.shared.Constants;
import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; 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 static final long serialVersionUID = -2350334263342186590L;
private ArrayList<SeriesJobDataTop> seriesJobDataTopList; private ArrayList<SeriesJobDataTop> seriesJobDataTopList;
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
public SeriesJobTop() { public SeriesJobTop() {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = false; this.topNumber = Constants.TOP_NUMBER_DEFAULT;
this.topNumber = 5;
} }
public SeriesJobTop(Boolean showOthers, Integer topNumber, public SeriesJobTop(Integer topNumber, ArrayList<SeriesJobDataTop> seriesJobDataTopList) {
ArrayList<SeriesJobDataTop> seriesJobDataTopList) {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.seriesJobDataTopList = seriesJobDataTopList; this.seriesJobDataTopList = seriesJobDataTopList;
} }
public Boolean getShowOthers() {
return showOthers;
}
public void setShowOthers(Boolean showOthers) {
this.showOthers = showOthers;
}
public Integer getTopNumber() { public Integer getTopNumber() {
return topNumber; return topNumber;
} }
@ -53,16 +42,14 @@ public class SeriesJobTop extends SeriesJobDefinition {
return seriesJobDataTopList; return seriesJobDataTopList;
} }
public void setSeriesJobDataTopList( public void setSeriesJobDataTopList(ArrayList<SeriesJobDataTop> seriesJobDataTopList) {
ArrayList<SeriesJobDataTop> seriesJobDataTopList) {
this.seriesJobDataTopList = seriesJobDataTopList; this.seriesJobDataTopList = seriesJobDataTopList;
} }
@Override @Override
public String toString() { public String toString() {
return "SeriesJobTop [seriesJobDataTopList=" + seriesJobDataTopList return "SeriesJobTop [seriesJobDataTopList=" + seriesJobDataTopList + ", topNumber=" + topNumber
+ ", showOthers=" + showOthers + ", topNumber=" + topNumber + ", chartType=" + chartType + "]";
+ "]";
} }
} }

View File

@ -2,45 +2,34 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.portlet;
import java.util.ArrayList; import java.util.ArrayList;
import org.gcube.portlets.admin.accountingmanager.shared.Constants;
import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType;
/** /**
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
* *
* *
*/ */
public class SeriesPortletTop extends SeriesPortletDefinition { public class SeriesPortletTop extends SeriesPortletDefinition {
private static final long serialVersionUID = -2350334263342186590L; private static final long serialVersionUID = -2350334263342186590L;
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private ArrayList<SeriesPortletDataTop> seriesPortletDataTopList; private ArrayList<SeriesPortletDataTop> seriesPortletDataTopList;
public SeriesPortletTop() { public SeriesPortletTop() {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = false; this.topNumber = Constants.TOP_NUMBER_DEFAULT;
this.topNumber = 5;
} }
public SeriesPortletTop(Boolean showOthers, Integer topNumber, public SeriesPortletTop(Integer topNumber, ArrayList<SeriesPortletDataTop> seriesPortletDataTopList) {
ArrayList<SeriesPortletDataTop> seriesPortletDataTopList) {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.seriesPortletDataTopList = seriesPortletDataTopList; this.seriesPortletDataTopList = seriesPortletDataTopList;
} }
public Boolean getShowOthers() {
return showOthers;
}
public void setShowOthers(Boolean showOthers) {
this.showOthers = showOthers;
}
public Integer getTopNumber() { public Integer getTopNumber() {
return topNumber; return topNumber;
} }
@ -53,16 +42,14 @@ public class SeriesPortletTop extends SeriesPortletDefinition {
return seriesPortletDataTopList; return seriesPortletDataTopList;
} }
public void setSeriesPortletDataTopList( public void setSeriesPortletDataTopList(ArrayList<SeriesPortletDataTop> seriesPortletDataTopList) {
ArrayList<SeriesPortletDataTop> seriesPortletDataTopList) {
this.seriesPortletDataTopList = seriesPortletDataTopList; this.seriesPortletDataTopList = seriesPortletDataTopList;
} }
@Override @Override
public String toString() { public String toString() {
return "SeriesPortletTop [showOthers=" + showOthers + ", topNumber=" return "SeriesPortletTop [topNumber=" + topNumber + ", seriesPortletDataTopList=" + seriesPortletDataTopList
+ topNumber + ", seriesPortletDataTopList=" + "]";
+ seriesPortletDataTopList + "]";
} }
} }

View File

@ -2,46 +2,35 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.service;
import java.util.ArrayList; import java.util.ArrayList;
import org.gcube.portlets.admin.accountingmanager.shared.Constants;
import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType;
/** /**
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
* *
* *
*/ */
public class SeriesServiceTop extends SeriesServiceDefinition { public class SeriesServiceTop extends SeriesServiceDefinition {
private static final long serialVersionUID = -2350334263342186590L; private static final long serialVersionUID = -2350334263342186590L;
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private ArrayList<SeriesServiceDataTop> seriesServiceDataTopList; private ArrayList<SeriesServiceDataTop> seriesServiceDataTopList;
public SeriesServiceTop() { public SeriesServiceTop() {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = false; this.topNumber = Constants.TOP_NUMBER_DEFAULT;
this.topNumber = 5;
} }
public SeriesServiceTop(Boolean showOthers, Integer topNumber, public SeriesServiceTop(Integer topNumber, ArrayList<SeriesServiceDataTop> seriesServiceDataTopList) {
ArrayList<SeriesServiceDataTop> seriesServiceDataTopList) {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.seriesServiceDataTopList = seriesServiceDataTopList; this.seriesServiceDataTopList = seriesServiceDataTopList;
} }
public Boolean getShowOthers() {
return showOthers;
}
public void setShowOthers(Boolean showOthers) {
this.showOthers = showOthers;
}
public Integer getTopNumber() { public Integer getTopNumber() {
return topNumber; return topNumber;
} }
@ -54,16 +43,14 @@ public class SeriesServiceTop extends SeriesServiceDefinition {
return seriesServiceDataTopList; return seriesServiceDataTopList;
} }
public void setSeriesServiceDataTopList( public void setSeriesServiceDataTopList(ArrayList<SeriesServiceDataTop> seriesServiceDataTopList) {
ArrayList<SeriesServiceDataTop> seriesServiceDataTopList) {
this.seriesServiceDataTopList = seriesServiceDataTopList; this.seriesServiceDataTopList = seriesServiceDataTopList;
} }
@Override @Override
public String toString() { public String toString() {
return "SeriesServiceTop [showOthers=" + showOthers + ", topNumber=" return "SeriesServiceTop [topNumber=" + topNumber + ", seriesServiceDataTopList=" + seriesServiceDataTopList
+ topNumber + ", seriesServiceDataTopList=" + ", chartType=" + chartType + "]";
+ seriesServiceDataTopList + "]";
} }
} }

View File

@ -2,46 +2,35 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.storage;
import java.util.ArrayList; import java.util.ArrayList;
import org.gcube.portlets.admin.accountingmanager.shared.Constants;
import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType;
/** /**
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
* *
* *
*/ */
public class SeriesStorageTop extends SeriesStorageDefinition { public class SeriesStorageTop extends SeriesStorageDefinition {
private static final long serialVersionUID = -5477545972037227361L; private static final long serialVersionUID = -5477545972037227361L;
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private ArrayList<SeriesStorageDataTop> seriesStorageDataTopList; private ArrayList<SeriesStorageDataTop> seriesStorageDataTopList;
public SeriesStorageTop() { public SeriesStorageTop() {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = false; this.topNumber = Constants.TOP_NUMBER_DEFAULT;
this.topNumber = 5;
} }
public SeriesStorageTop(Boolean showOthers, Integer topNumber, public SeriesStorageTop(Integer topNumber, ArrayList<SeriesStorageDataTop> seriesStorageDataTopList) {
ArrayList<SeriesStorageDataTop> seriesStorageDataTopList) {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.seriesStorageDataTopList = seriesStorageDataTopList; this.seriesStorageDataTopList = seriesStorageDataTopList;
} }
public Boolean getShowOthers() {
return showOthers;
}
public void setShowOthers(Boolean showOthers) {
this.showOthers = showOthers;
}
public Integer getTopNumber() { public Integer getTopNumber() {
return topNumber; return topNumber;
} }
@ -54,16 +43,14 @@ public class SeriesStorageTop extends SeriesStorageDefinition {
return seriesStorageDataTopList; return seriesStorageDataTopList;
} }
public void setSeriesStorageDataTopList( public void setSeriesStorageDataTopList(ArrayList<SeriesStorageDataTop> seriesStorageDataTopList) {
ArrayList<SeriesStorageDataTop> seriesStorageDataTopList) {
this.seriesStorageDataTopList = seriesStorageDataTopList; this.seriesStorageDataTopList = seriesStorageDataTopList;
} }
@Override @Override
public String toString() { public String toString() {
return "SeriesStorageTop [showOthers=" + showOthers + ", topNumber=" return "SeriesStorageTop [topNumber=" + topNumber + ", seriesStorageDataTopList=" + seriesStorageDataTopList
+ topNumber + ", seriesStorageDataTopList=" + ", chartType=" + chartType + "]";
+ seriesStorageDataTopList + "]";
} }
} }

View File

@ -2,46 +2,35 @@ package org.gcube.portlets.admin.accountingmanager.shared.data.response.task;
import java.util.ArrayList; import java.util.ArrayList;
import org.gcube.portlets.admin.accountingmanager.shared.Constants;
import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType; import org.gcube.portlets.admin.accountingmanager.shared.data.ChartType;
/** /**
* *
* @author Giancarlo Panichi * @author Giancarlo Panichi
* *
* *
*/ */
public class SeriesTaskTop extends SeriesTaskDefinition { public class SeriesTaskTop extends SeriesTaskDefinition {
private static final long serialVersionUID = 6805210072384752359L; private static final long serialVersionUID = 6805210072384752359L;
private Boolean showOthers;
private Integer topNumber; private Integer topNumber;
private ArrayList<SeriesTaskDataTop> seriesTaskDataTopList; private ArrayList<SeriesTaskDataTop> seriesTaskDataTopList;
public SeriesTaskTop() { public SeriesTaskTop() {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = false; this.topNumber = Constants.TOP_NUMBER_DEFAULT;
this.topNumber = 5;
} }
public SeriesTaskTop(Boolean showOthers, Integer topNumber, public SeriesTaskTop(Integer topNumber, ArrayList<SeriesTaskDataTop> seriesTaskDataTopList) {
ArrayList<SeriesTaskDataTop> seriesTaskDataTopList) {
super(); super();
this.chartType = ChartType.Top; this.chartType = ChartType.Top;
this.showOthers = showOthers;
this.topNumber = topNumber; this.topNumber = topNumber;
this.seriesTaskDataTopList = seriesTaskDataTopList; this.seriesTaskDataTopList = seriesTaskDataTopList;
} }
public Boolean getShowOthers() {
return showOthers;
}
public void setShowOthers(Boolean showOthers) {
this.showOthers = showOthers;
}
public Integer getTopNumber() { public Integer getTopNumber() {
return topNumber; return topNumber;
} }
@ -54,16 +43,14 @@ public class SeriesTaskTop extends SeriesTaskDefinition {
return seriesTaskDataTopList; return seriesTaskDataTopList;
} }
public void setSeriesTaskDataTopList( public void setSeriesTaskDataTopList(ArrayList<SeriesTaskDataTop> seriesTaskDataTopList) {
ArrayList<SeriesTaskDataTop> seriesTaskDataTopList) {
this.seriesTaskDataTopList = seriesTaskDataTopList; this.seriesTaskDataTopList = seriesTaskDataTopList;
} }
@Override @Override
public String toString() { public String toString() {
return "SeriesTaskTop [showOthers=" + showOthers + ", topNumber=" return "SeriesTaskTop [topNumber=" + topNumber + ", seriesTaskDataTopList=" + seriesTaskDataTopList
+ topNumber + ", seriesTaskDataTopList=" + ", chartType=" + chartType + "]";
+ seriesTaskDataTopList + "]";
} }
} }

View File

@ -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);
}
}