Added ToolBoxPanel

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-toolbox-widget@86827 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2013-12-11 11:42:46 +00:00 committed by Giancarlo Panichi
parent c1caa4b90f
commit d65bad9e69
6 changed files with 220 additions and 10 deletions

View File

@ -111,6 +111,14 @@
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!--tabular-data-information-widget -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-information-widget</artifactId>
<version>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</version>
</dependency>
<!-- LOGGING -->
<dependency>
<groupId>com.allen-sauer.gwt.log</groupId>

View File

@ -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<Widget>() {
@Override
public void onBeforeClose(BeforeCloseEvent<Widget> 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));
}
}

View File

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

View File

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

View File

@ -0,0 +1,6 @@
package org.gcube.portlets.user.td.toolboxwidget.client;
public enum ToolBoxPanelState {
CLOSED,
OPENED;
}

View File

@ -19,7 +19,8 @@
<inherits name="com.allen_sauer.gwt.log.gwt-log-TRACE" />
<inherits name='org.gcube.portlets.user.td.widgetcommonevent.WidgetCommonEvent' />
<inherits name='org.gcube.portlets.user.td.informationwidget.Information' />
<!-- Specify the app entry point class. -->
<!-- <entry-point class='org.gcube.portlets.user.td.toolboxwidget.client.ToolBoxEntry' /> -->