2014-10-08 19:01:25 +02:00
|
|
|
package org.gcube.portlets.user.td.mainboxwidget.client;
|
|
|
|
|
2014-10-14 19:35:25 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
|
2014-10-08 19:01:25 +02:00
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.client.event.DataViewRequestEvent;
|
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.client.event.UIStateEvent;
|
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.client.type.UIStateType;
|
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.DataView;
|
2014-10-09 18:50:41 +02:00
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.DataViewType;
|
2014-10-08 19:01:25 +02:00
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.TabularResourceDataView;
|
|
|
|
|
|
|
|
import com.allen_sauer.gwt.log.client.Log;
|
|
|
|
import com.google.web.bindery.event.shared.EventBus;
|
|
|
|
import com.sencha.gxt.widget.core.client.ContentPanel;
|
|
|
|
|
2014-10-31 15:45:53 +01:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author giancarlo
|
|
|
|
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
|
|
|
*
|
|
|
|
*/
|
2014-10-08 19:01:25 +02:00
|
|
|
public class MainBoxPanel extends ContentPanel {
|
2014-10-31 15:45:53 +01:00
|
|
|
|
2014-10-08 19:01:25 +02:00
|
|
|
protected EventBus eventBus;
|
|
|
|
protected MainBox mainBox;
|
|
|
|
protected MainBoxPanelState state;
|
|
|
|
protected UIStateType uiStateType;
|
2014-10-09 18:50:41 +02:00
|
|
|
protected DataView dataView;
|
2014-10-08 19:01:25 +02:00
|
|
|
|
|
|
|
public MainBoxPanel(String name, EventBus eventBus) {
|
|
|
|
super();
|
|
|
|
Log.debug("Open MainBoxPanel");
|
|
|
|
this.eventBus = eventBus;
|
|
|
|
setId(name);
|
|
|
|
setHeaderVisible(false);
|
|
|
|
setBodyBorder(false);
|
|
|
|
setBorders(false);
|
2014-10-10 17:58:35 +02:00
|
|
|
setResize(true);
|
2014-10-15 18:45:24 +02:00
|
|
|
forceLayoutOnResize = true;
|
2014-10-08 19:01:25 +02:00
|
|
|
mainBox = new MainBox("MainBox", eventBus, this);
|
|
|
|
add(mainBox);
|
|
|
|
startPanel();
|
|
|
|
bindToEvents();
|
2014-10-10 17:58:35 +02:00
|
|
|
onResize();
|
2014-10-15 18:45:24 +02:00
|
|
|
|
2014-10-08 19:01:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
protected void bindToEvents() {
|
|
|
|
|
|
|
|
eventBus.addHandler(DataViewRequestEvent.TYPE,
|
|
|
|
new DataViewRequestEvent.DataViewRequestEventHandler() {
|
|
|
|
|
|
|
|
public void onDataViewRequest(DataViewRequestEvent event) {
|
|
|
|
manageDataViewRequestEvents(event);
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
eventBus.addHandler(UIStateEvent.TYPE,
|
|
|
|
new UIStateEvent.UIStateHandler() {
|
|
|
|
|
|
|
|
public void onUIState(UIStateEvent event) {
|
|
|
|
manageUIStateEvents(event);
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void manageUIStateEvents(UIStateEvent event) {
|
|
|
|
Log.debug("MainBox recieved event: "
|
|
|
|
+ event.getUIStateType().toString());
|
|
|
|
uiStateType = event.getUIStateType();
|
2014-10-15 18:45:24 +02:00
|
|
|
TRId trId = null;
|
|
|
|
|
2014-10-08 19:01:25 +02:00
|
|
|
switch (event.getUIStateType()) {
|
|
|
|
case START:
|
|
|
|
break;
|
|
|
|
case TR_CLOSE:
|
|
|
|
// this.enable();
|
|
|
|
closePanel();
|
|
|
|
break;
|
|
|
|
case TR_OPEN:
|
|
|
|
// this.enable();
|
2014-10-15 18:45:24 +02:00
|
|
|
trId = event.getTrId();
|
2014-10-08 19:01:25 +02:00
|
|
|
updateForOpenPanel(new TabularResourceDataView(trId));
|
|
|
|
break;
|
|
|
|
case TABLECURATION:
|
2014-10-15 18:45:24 +02:00
|
|
|
trId = event.getTrId();
|
2014-10-08 19:01:25 +02:00
|
|
|
updateForCurationPanel(new TabularResourceDataView(trId));
|
|
|
|
break;
|
|
|
|
case TABLEUPDATE:
|
2014-10-15 18:45:24 +02:00
|
|
|
trId = event.getTrId();
|
2014-10-08 19:01:25 +02:00
|
|
|
updatePanel(new TabularResourceDataView(trId));
|
|
|
|
break;
|
|
|
|
case TR_READONLY:
|
|
|
|
break;
|
|
|
|
case WIZARD_OPEN:
|
|
|
|
// this.disable();
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void manageDataViewRequestEvents(DataViewRequestEvent event) {
|
2014-10-15 18:45:24 +02:00
|
|
|
Log.debug("MainBox recieved event: " + event.getDataView().toString());
|
2014-10-09 18:50:41 +02:00
|
|
|
dataView = event.getDataView();
|
2014-10-15 18:45:24 +02:00
|
|
|
if (dataView == null || dataView.getDataViewType() == null) {
|
2014-10-09 18:50:41 +02:00
|
|
|
return;
|
|
|
|
}
|
2014-10-15 18:45:24 +02:00
|
|
|
DataViewType dataViewType = dataView.getDataViewType();
|
|
|
|
|
2014-10-09 18:50:41 +02:00
|
|
|
switch (dataViewType) {
|
2014-10-08 19:01:25 +02:00
|
|
|
case TABULARRESOURCE:
|
|
|
|
doTabularResourceTab(event);
|
|
|
|
break;
|
2014-10-09 18:50:41 +02:00
|
|
|
case TABLE:
|
|
|
|
break;
|
2014-10-08 19:01:25 +02:00
|
|
|
default:
|
|
|
|
break;
|
2014-10-15 18:45:24 +02:00
|
|
|
|
2014-10-08 19:01:25 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void doTabularResourceTab(DataViewRequestEvent event) {
|
2014-10-15 18:45:24 +02:00
|
|
|
Log.debug("DataViewRequestEvent.TDXPanel : [" + event.getDataView()
|
|
|
|
+ "]");
|
|
|
|
switch (event.getDataViewRequestType()) {
|
|
|
|
case CLOSE:
|
|
|
|
mainBox.closeTab(event.getDataView());
|
|
|
|
break;
|
|
|
|
case OPEN:
|
|
|
|
if (uiStateType == UIStateType.TR_OPEN
|
|
|
|
|| uiStateType == UIStateType.TABLECURATION
|
|
|
|
|| uiStateType == UIStateType.TABLEUPDATE) {
|
|
|
|
if (state == MainBoxPanelState.OPENED) {
|
|
|
|
mainBox.openTDXTab(event.getDataView());
|
|
|
|
Log.debug("MainBoxPanelState.OPENED Add Tabs");
|
|
|
|
} else {
|
|
|
|
enable();
|
|
|
|
expand();
|
|
|
|
state = MainBoxPanelState.OPENED;
|
|
|
|
mainBox.openTDXTab(event.getDataView());
|
|
|
|
}
|
2014-10-08 19:01:25 +02:00
|
|
|
} else {
|
2014-10-15 18:45:24 +02:00
|
|
|
Log.debug("MainBoxPanel No tabular resource open");
|
2014-10-08 19:01:25 +02:00
|
|
|
}
|
2014-10-15 18:45:24 +02:00
|
|
|
break;
|
2014-10-17 18:41:00 +02:00
|
|
|
case UPDATE_TAB_NAME:
|
|
|
|
mainBox.updateTabName(event.getDataView());
|
|
|
|
break;
|
2014-10-15 18:45:24 +02:00
|
|
|
default:
|
|
|
|
break;
|
|
|
|
|
2014-10-08 19:01:25 +02:00
|
|
|
}
|
2014-10-15 18:45:24 +02:00
|
|
|
|
2014-10-08 19:01:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public void closePanelOnly() {
|
|
|
|
collapse();
|
|
|
|
disable();
|
|
|
|
state = MainBoxPanelState.CLOSED;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void closePanel() {
|
2014-10-15 18:45:24 +02:00
|
|
|
mainBox.closeAllTabs();
|
2014-10-08 19:01:25 +02:00
|
|
|
Log.debug("MainBoxPanel Closed");
|
|
|
|
}
|
|
|
|
|
|
|
|
public void startPanel() {
|
|
|
|
enable();
|
|
|
|
expand();
|
|
|
|
state = MainBoxPanelState.OPENED;
|
|
|
|
mainBox.startTabs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void updatePanel(DataView dataView) {
|
|
|
|
if (state == MainBoxPanelState.OPENED) {
|
|
|
|
mainBox.updateTabs(dataView);
|
|
|
|
Log.debug("MainBoxPanel Updated");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void updateForOpenPanel(DataView dataView) {
|
|
|
|
if (state == MainBoxPanelState.OPENED) {
|
|
|
|
mainBox.updateTabs(dataView);
|
|
|
|
Log.debug("MainBoxPanel Updated For Table");
|
|
|
|
} else {
|
|
|
|
enable();
|
|
|
|
expand();
|
|
|
|
state = MainBoxPanelState.OPENED;
|
|
|
|
mainBox.updateTabs(dataView);
|
2014-10-15 18:45:24 +02:00
|
|
|
// mainBox.openPropertiesTab();
|
2014-10-08 19:01:25 +02:00
|
|
|
Log.debug("MainBoxPanel Updated For Table");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void updateForCurationPanel(DataView dataView) {
|
|
|
|
if (state == MainBoxPanelState.OPENED) {
|
|
|
|
mainBox.updateTabs(dataView);
|
2014-10-15 18:45:24 +02:00
|
|
|
// mainBox.openValidationsTasksTab(trId);
|
2014-10-08 19:01:25 +02:00
|
|
|
Log.debug("MainBoxPanel Updated For Curation");
|
|
|
|
} else {
|
|
|
|
enable();
|
|
|
|
expand();
|
|
|
|
state = MainBoxPanelState.OPENED;
|
|
|
|
mainBox.updateTabs(dataView);
|
2014-10-15 18:45:24 +02:00
|
|
|
// mainBox.openValidationsTasksTab(trId);
|
2014-10-08 19:01:25 +02:00
|
|
|
Log.debug("MainBoxPanel Updated For Curation");
|
|
|
|
}
|
|
|
|
}
|
2014-10-15 18:45:24 +02:00
|
|
|
|
|
|
|
public ArrayList<String> getSelectedRowsId() {
|
2014-10-14 19:35:25 +02:00
|
|
|
return mainBox.getSelectedRowsId();
|
2014-10-15 18:45:24 +02:00
|
|
|
|
2014-10-14 19:35:25 +02:00
|
|
|
}
|
2014-10-15 18:45:24 +02:00
|
|
|
|
|
|
|
public String getColumnName(int columnSelected) {
|
2014-10-14 19:35:25 +02:00
|
|
|
return mainBox.getColumnName(columnSelected);
|
|
|
|
}
|
2015-01-09 18:14:49 +01:00
|
|
|
|
|
|
|
public String getColumnLocalId(int columnSelected) {
|
|
|
|
return mainBox.getColumnLocalId(columnSelected);
|
|
|
|
}
|
2014-10-08 19:01:25 +02:00
|
|
|
}
|