From 40818136404276e3d036c5924cd85e452324ad26 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Tue, 28 Oct 2014 17:21:58 +0000 Subject: [PATCH] Added Time Aggregation Operation git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-toolbox-widget@101107 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/td/toolboxwidget/client/ToolBox.java | 56 +++++++++++++++++++ .../td/toolboxwidget/client/ToolBoxPanel.java | 23 ++++++++ templates/changelog.xml | 1 + 3 files changed, 80 insertions(+) diff --git a/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBox.java b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBox.java index 61b8c5e..c717d65 100644 --- a/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBox.java +++ b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBox.java @@ -16,6 +16,7 @@ import org.gcube.portlets.user.td.tablewidget.client.validation.ValidationsTable import org.gcube.portlets.user.td.tablewidget.client.validation.ValidationsTasksPanel; import org.gcube.portlets.user.td.toolboxwidget.client.help.HelpPanel; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; +import org.gcube.portlets.user.tdcolumnoperation.client.AggregateByTimeColumnPanel; import org.gcube.portlets.user.tdcolumnoperation.client.GroupByColumnPanel; import org.gcube.portlets.user.tdcolumnoperation.client.MergeColumnPanel; import org.gcube.portlets.user.tdcolumnoperation.client.SplitColumnPanel; @@ -51,6 +52,7 @@ public class ToolBox extends TabPanel { protected SplitColumnPanel splitColumnPanel; protected MergeColumnPanel mergeColumnPanel; protected GroupByColumnPanel groupByPanel; + protected AggregateByTimeColumnPanel timeAggregationPanel; protected NormalizePanel normalizePanel; protected DenormalizePanel denormalizePanel; protected MonitorBackgroundPanel monitorBackgroundPanel; @@ -182,6 +184,18 @@ public class ToolBox extends TabPanel { setActiveWidget(groupByPanel); } + + public void openTimeAggregationTab(TRId trId, String columnName) { + Log.debug("Open Time Aggregation Tab"); + if (timeAggregationPanel == null) { + addTimeAggregationPanel(trId, columnName); + } else { + timeAggregationPanel.update(trId, columnName); + } + setActiveWidget(timeAggregationPanel); + + } + public void openLabelColumnTab(TRId trId, String columnName) { Log.debug("Open Label Column Tab"); @@ -333,6 +347,14 @@ public class ToolBox extends TabPanel { groupByPanel = null; } } + + public void closeTimeAggregationPanel() { + Log.debug("Close TimeAggreagationPanel Tab"); + if (timeAggregationPanel != null) { + remove(timeAggregationPanel); + timeAggregationPanel = null; + } + } public void closeAddColumnPanel() { Log.debug("Close AddColumnPanel Tab"); @@ -464,6 +486,12 @@ public class ToolBox extends TabPanel { remove(groupByPanel); groupByPanel = null; } + + if (timeAggregationPanel != null) { + remove(timeAggregationPanel); + timeAggregationPanel = null; + } + if (addColumnPanel != null) { remove(addColumnPanel); @@ -695,6 +723,34 @@ public class ToolBox extends TabPanel { }); }; + + + protected void addTimeAggregationPanel(TRId trId, String columnName) { + TabItemConfig timeAggregationItemConf = new TabItemConfig("Time Aggregation", true); + + try { + timeAggregationPanel = new AggregateByTimeColumnPanel(trId, columnName, eventBus); + } catch (Throwable e) { + Log.error("Error Creating Time Aggregation Panel:" + e.getLocalizedMessage()); + e.printStackTrace(); + return; + } + add(timeAggregationPanel, timeAggregationItemConf); + + addBeforeCloseHandler(new BeforeCloseHandler() { + + public void onBeforeClose(BeforeCloseEvent event) { + if (timeAggregationPanel == event.getItem()) { + remove(timeAggregationPanel); + timeAggregationPanel = null; + + } + + } + + }); + }; + protected void addLabelColumnPanel(TRId trId, String columnName) { TabItemConfig labelColumnItemConf = new TabItemConfig("Column Label", diff --git a/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanel.java b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanel.java index 8dc89ec..7606a66 100644 --- a/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanel.java +++ b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanel.java @@ -139,6 +139,9 @@ public class ToolBoxPanel extends ContentPanel { case GROUPBYPANEL: doGroupByTab(event); break; + case TIMEAGGREGATIONPANEL: + doTimeAggregateTab(event); + break; case LABELCOLUNPANEL: doLabelColumnTab(event); break; @@ -314,6 +317,25 @@ public class ToolBoxPanel extends ContentPanel { Log.debug("ToolBoxPanel No table open"); } } + + protected void doTimeAggregateTab(WidgetRequestEvent event) { + Log.debug("WidgetRequestEvent.TimeAggregatePanel : [" + event.getTrId() + "]"); + if (uiStateType == UIStateType.TR_OPEN + || uiStateType == UIStateType.TABLECURATION + || uiStateType == UIStateType.TABLEUPDATE) { + if (state == ToolBoxPanelState.OPENED) { + toolBox.openTimeAggregationTab(event.getTrId(), event.getColumnName()); + Log.debug("ToolBoxPanelSTate.OPENED Add Tabs"); + } else { + enable(); + expand(); + state = ToolBoxPanelState.OPENED; + toolBox.openTimeAggregationTab(event.getTrId(), event.getColumnName()); + } + } else { + Log.debug("ToolBoxPanel No table open"); + } + } protected void doLabelColumnTab(WidgetRequestEvent event) { Log.debug("WidgetRequestEvent.LabelColumnPanel : [" + event.getTrId() @@ -532,6 +554,7 @@ public class ToolBoxPanel extends ContentPanel { toolBox.closeSplitColumnPanel(); toolBox.closeMergeColumnPanel(); toolBox.closeGroupByPanel(); + toolBox.closeTimeAggregationPanel(); toolBox.closeLabelColumnPanel(); toolBox.closeChangeTableTypePanel(); toolBox.closeDuplicatesRowsPanel(); diff --git a/templates/changelog.xml b/templates/changelog.xml index ea300c7..9eb2272 100644 --- a/templates/changelog.xml +++ b/templates/changelog.xml @@ -1,6 +1,7 @@ + Added Time Aggregation Added Resources Fixed dependencies