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

205 lines
5.0 KiB
Java

package org.gcube.portlets.user.td.toolboxwidget.client;
import org.gcube.portlets.user.td.columnwidget.client.ChangeColumnTypePanel;
import org.gcube.portlets.user.td.informationwidget.client.TabularResourceProperties;
import org.gcube.portlets.user.td.toolboxwidget.client.help.HelpPanel;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
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.FramedPanel;
import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent;
import com.sencha.gxt.widget.core.client.event.BeforeCloseEvent.BeforeCloseHandler;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
//import org.gcube.portlets.user.td.taskswidget.client.TdTaskController;
//import org.gcube.portlets.user.td.taskswidget.client.TdTaskController;
public class ToolBox extends TabPanel {
protected EventBus eventBus;
protected TabularResourceProperties trProperties;
protected ToolBoxPanel toolBoxPanel;
protected HelpPanel helpPanel;
protected ChangeColumnTypePanel changeColumnTypePanel;
//protected TdTaskController tdTaskController;
//protected DialogBox tdTaskMainWindow;
protected FramedPanel taskPanel;
public ToolBox(String name, EventBus eventBus, ToolBoxPanel toolBoxPanel) {
super();
Log.debug("Create ToolBox");
this.eventBus = eventBus;
this.toolBoxPanel = toolBoxPanel;
setId(name);
setBodyBorder(false);
setBorders(false);
setAnimScroll(true);
setTabScroll(true);
setCloseContextMenu(true);
// setResizeTabs(true);
}
public void startTabs(){
Log.debug("Start ToolBox Tabs");
addHelpPanel();
setActiveWidget(getWidget(0));
}
public void openPropertiesTab() {
Log.debug("Open Properties Tab");
if (trProperties == null) {
addTrProperties();
}
setActiveWidget(trProperties);
}
public void openColumnTypeChangeTab(TRId trId, String columnName) {
Log.debug("Open Column Type Change Tab");
if (changeColumnTypePanel == null) {
addChangeColumnTypePanel(trId, columnName);
}
setActiveWidget(changeColumnTypePanel);
}
public void closePropertiesTabs() {
Log.debug("Close Properties Tab");
if(trProperties!=null){
remove(trProperties);
trProperties=null;
}
}
public void closeChangeColumnTypePanel(){
Log.debug("Close ChangeColumnTypePanel Tab");
if (changeColumnTypePanel != null) {
remove(changeColumnTypePanel);
changeColumnTypePanel=null;
}
}
public void updateTabs() {
Log.debug("Update ToolBox Tabs");
if (trProperties != null) {
trProperties.update();
}
if (changeColumnTypePanel != null) {
remove(changeColumnTypePanel);
changeColumnTypePanel=null;
}
}
protected void addHelpPanel() {
TabItemConfig propertiesItemConf = new TabItemConfig("Help", false);
helpPanel = new HelpPanel("Help", eventBus);
helpPanel.setHeaderVisible(false);
add(helpPanel, propertiesItemConf);
};
protected void addTrProperties() {
TabItemConfig propertiesItemConf = new TabItemConfig("Properties", true);
trProperties = new TabularResourceProperties("TRProperties", eventBus);
trProperties.setHeaderVisible(false);
add(trProperties, propertiesItemConf);
addBeforeCloseHandler(new BeforeCloseHandler<Widget>() {
public void onBeforeClose(BeforeCloseEvent<Widget> event) {
if (getWidgetCount() == 1) {
toolBoxPanel.closePanelOnly();
remove(trProperties);
}
}
});
};
protected void addChangeColumnTypePanel(TRId trId, String columnName) {
TabItemConfig changeColumnTypeItemConf = new TabItemConfig("Column Type", true);
changeColumnTypePanel = new ChangeColumnTypePanel(trId,columnName,eventBus);
add(changeColumnTypePanel, changeColumnTypeItemConf);
addBeforeCloseHandler(new BeforeCloseHandler<Widget>() {
public void onBeforeClose(BeforeCloseEvent<Widget> event) {
if (getWidgetCount() == 1) {
toolBoxPanel.closePanelOnly();
remove(changeColumnTypePanel);
}
}
});
};
protected void addTdTaskPanel() {
//tdTaskController = TdTaskController.getInstance();
//tdTaskController.bindCommonBus(eventBus);
//tdTaskMainWindow = tdTaskController.getWindowTaskMonitor(); // This is main panel
taskPanel=new FramedPanel();
taskPanel.setHeaderVisible(false);
TextButton buttonTask=new TextButton("Tasks");
buttonTask.addSelectHandler(new SelectEvent.SelectHandler() {
public void onSelect(SelectEvent event) {
//tdTaskMainWindow.show();
}
});
taskPanel.add(buttonTask);
TabItemConfig tdTasksItemConf = new TabItemConfig("Tasks", true);
add(taskPanel, tdTasksItemConf);
addBeforeCloseHandler(new BeforeCloseHandler<Widget>() {
public void onBeforeClose(BeforeCloseEvent<Widget> event) {
if (getWidgetCount() == 1) {
toolBoxPanel.closePanelOnly();
remove(taskPanel);
}
}
});
}
}