diff --git a/pom.xml b/pom.xml
index c0e9b4f..e5b44a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,6 +111,14 @@
1.0.0-SNAPSHOT
+
+
+ org.gcube.portlets.user
+ tabular-data-information-widget
+ [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)
+
+
+
com.allen-sauer.gwt.log
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 b925c4e..9b0d643 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
@@ -1,20 +1,78 @@
package org.gcube.portlets.user.td.toolboxwidget.client;
+import org.gcube.portlets.user.td.informationwidget.client.TabularResourceProperties;
+import org.gcube.portlets.user.td.widgetcommonevent.client.event.UIStateEvent;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.EventBus;
+import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
-import org.gcube.portlets.user.td.toolboxwidget.client.ToolBox;
+import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent;
+import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent.BeforeCloseHandler;
public class ToolBox extends TabPanel {
- private EventBus eventBus;
-
- public ToolBox(String name, EventBus eventBus) {
+ protected EventBus eventBus;
+ protected TabularResourceProperties trProperties;
+ protected ToolBoxPanel toolBoxPanel;
+
+ public ToolBox(String name, EventBus eventBus, ToolBoxPanel toolBoxPanel) {
super();
- this.eventBus=eventBus;
+ Log.debug("Create ToolBox");
+ this.eventBus = eventBus;
+ this.toolBoxPanel = toolBoxPanel;
setId(name);
-
+
+ setAnimScroll(true);
+ setTabScroll(true);
+ setCloseContextMenu(true);
+ // setResizeTabs(true);
}
+ public void closeTabs() {
+ Log.debug("Close ToolBox Tabs");
+ for (int i = 0; i < getTabIndex(); i++) {
+ remove(i);
+ }
+
+ }
+ public void updateTabs(){
+ Log.debug("Update ToolBox Tabs");
+ if(trProperties!=null){
+ trProperties.update();
+ }
+ }
+
+ public void openTabs() {
+ Log.debug("Open ToolBox Tabs");
+ TabItemConfig propertiesItemConf = new TabItemConfig("Properties", true);
+
+ trProperties = new TabularResourceProperties("TRProperties", eventBus);
+ trProperties.setHeaderVisible(false);
+ add(trProperties, propertiesItemConf);
+ addBeforeCloseHandler(new BeforeCloseHandler() {
+
+ @Override
+ public void onBeforeClose(BeforeCloseEvent event) {
+ if (getWidgetCount() == 1) {
+ toolBoxPanel.closePanelOnly();
+ remove(trProperties);
+ }
+
+ }
+
+ });
+
+ /*
+ * Label taskLabel = new Label("Task Properties");
+ * taskLabel.addStyleName("pad-text"); functionalityTab .add(taskLabel,
+ * new TabItemConfig("Task", true));
+ */
+ setActiveWidget(getWidget(0));
+
+ }
+
}
diff --git a/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxEntry.java b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxEntry.java
index 72a5f08..4f73a74 100644
--- a/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxEntry.java
+++ b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxEntry.java
@@ -14,10 +14,10 @@ public class ToolBoxEntry implements EntryPoint {
EventBus eventBus = new SimpleEventBus();
- ToolBox toolBox = new ToolBox("ToolBox", eventBus);
+ ToolBoxPanel toolBoxPanel = new ToolBoxPanel("ToolBoxPanel", eventBus);
- RootPanel.get().add(toolBox);
- Log.info("" + toolBox);
+ RootPanel.get().add(toolBoxPanel);
+ Log.info("ToolBoxPanel Added:" + toolBoxPanel);
}
}
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
new file mode 100644
index 0000000..7e0bd20
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanel.java
@@ -0,0 +1,137 @@
+package org.gcube.portlets.user.td.toolboxwidget.client;
+
+
+import org.gcube.portlets.user.td.widgetcommonevent.client.event.RibbonEvent;
+import org.gcube.portlets.user.td.widgetcommonevent.client.event.UIStateEvent;
+import org.gcube.portlets.user.td.widgetcommonevent.client.type.UIStateType;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.web.bindery.event.shared.EventBus;
+import com.sencha.gxt.widget.core.client.ContentPanel;
+
+
+public class ToolBoxPanel extends ContentPanel {
+
+ protected EventBus eventBus;
+ protected ToolBox toolBox;
+ protected ToolBoxPanelState state;
+ protected UIStateType uiStateType;
+
+
+ public ToolBoxPanel(String name, EventBus eventBus) {
+ super();
+ Log.debug("Close ToolBoxPanel");
+ this.eventBus=eventBus;
+ setId(name);
+ setWidth(310);
+ setHeaderVisible(false);
+ setResize(true);
+ state=ToolBoxPanelState.CLOSED;
+ toolBox = new ToolBox("ToolBox",eventBus,this);
+
+ add(toolBox);
+
+ bindToEvents();
+
+ }
+
+ protected void bindToEvents() {
+ eventBus.addHandler(RibbonEvent.TYPE,
+ new RibbonEvent.RibbonEventHandler() {
+
+ @Override
+ public void onRibbon(RibbonEvent event) {
+ manageRibbonEvents(event);
+
+ }
+ });
+
+ eventBus.addHandler(
+ UIStateEvent.TYPE,
+ new UIStateEvent.UIStateHandler() {
+
+ @Override
+ public void onUIState(UIStateEvent event) {
+ manageUIStateEvents(event);
+
+ }
+ });
+ }
+
+ protected void manageRibbonEvents(RibbonEvent event){
+ Log.debug("ToolBox recieved event: "+event.getRibbonType().toString());
+ switch (event.getRibbonType()){
+ case PROPERTIES:
+ doToolBoxPanelOpenSwitch();
+ break;
+ default:
+ break;
+ }
+ }
+
+ protected void manageUIStateEvents(UIStateEvent event){
+ Log.debug("ToolBox recieved event: "+event.getUIStateType().toString());
+ uiStateType = event.getUIStateType();
+ switch (event.getUIStateType()){
+ case START:
+ break;
+ case TR_CLOSE:
+ closePanel();
+ break;
+ case TR_OPEN:
+ updatePanel();
+ break;
+ case WIZARD_OPEN:
+ break;
+ default:
+ break;
+
+
+ }
+ }
+
+ protected void doToolBoxPanelOpenSwitch(){
+ if (uiStateType == UIStateType.TR_OPEN) {
+ if (state == ToolBoxPanelState.OPENED) {
+ collapse();
+ disable();
+
+ state = ToolBoxPanelState.CLOSED;
+ toolBox.closeTabs();
+ Log.debug("ToolBoxPanel Closed");
+ } else {
+ enable();
+ expand();
+ state = ToolBoxPanelState.OPENED;
+ toolBox.openTabs();
+
+ }
+ } else {
+ Log.debug("ToolBoxPanel No table open");
+ }
+
+
+ }
+
+ public void closePanelOnly(){
+ collapse();
+ disable();
+ state=ToolBoxPanelState.CLOSED;
+ }
+
+ public void closePanel(){
+ collapse();
+ disable();
+ state=ToolBoxPanelState.CLOSED;
+ toolBox.closeTabs();
+ Log.debug("ToolBoxPanel Closed");
+ }
+
+ public void updatePanel(){
+ if (state == ToolBoxPanelState.OPENED) {
+ toolBox.updateTabs();
+ Log.debug("ToolBoxPanel Updated");
+ }
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanelState.java b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanelState.java
new file mode 100644
index 0000000..706a0cc
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanelState.java
@@ -0,0 +1,6 @@
+package org.gcube.portlets.user.td.toolboxwidget.client;
+
+public enum ToolBoxPanelState {
+ CLOSED,
+ OPENED;
+}
diff --git a/src/main/resources/org/gcube/portlets/user/td/toolboxwidget/ToolBox.gwt.xml b/src/main/resources/org/gcube/portlets/user/td/toolboxwidget/ToolBox.gwt.xml
index d157f94..fe2c3b6 100644
--- a/src/main/resources/org/gcube/portlets/user/td/toolboxwidget/ToolBox.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/user/td/toolboxwidget/ToolBox.gwt.xml
@@ -19,7 +19,8 @@
-
+
+