tabular-data-toolbox-widget/src/main/java/org/gcube/portlets/user/td/toolboxwidget/client/ToolBoxPanel.java

138 lines
2.8 KiB
Java
Raw Normal View History

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() {
public void onRibbon(RibbonEvent event) {
manageRibbonEvents(event);
}
});
eventBus.addHandler(
UIStateEvent.TYPE,
new UIStateEvent.UIStateHandler() {
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");
}
}
}