148 lines
3.5 KiB
Java
148 lines
3.5 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.portlets.user.td.client;
|
|
|
|
import java.util.List;
|
|
|
|
import org.gcube.portlets.user.sdmximportwizard.client.SDMXImportWizardWindow;
|
|
import org.gcube.portlets.user.sdmximportwizard.client.SDMXWizardSelectionEvent;
|
|
import org.gcube.portlets.user.sdmximportwizard.client.SDMXWizardSelectionEvent.WizardSelectionHandler;
|
|
import org.gcube.portlets.user.sdmximportwizard.shared.Dataset;
|
|
import org.gcube.portlets.user.td.ciw.client.CSVImporterWidget;
|
|
import org.gcube.portlets.user.td.client.event.ImportTableEvent;
|
|
import org.gcube.portlets.user.td.client.event.ImportTableType;
|
|
import org.gcube.portlets.user.td.importer.client.TabularDataImporterListener;
|
|
|
|
import com.allen_sauer.gwt.log.client.Log;
|
|
import com.google.gwt.core.client.GWT;
|
|
import com.google.gwt.core.client.RunAsyncCallback;
|
|
import com.google.web.bindery.event.shared.EventBus;
|
|
import com.google.web.bindery.event.shared.SimpleEventBus;
|
|
import com.sencha.gxt.widget.core.client.info.Info;
|
|
|
|
/**
|
|
* @author "Federico De Faveri defaveri@isti.cnr.it"
|
|
*
|
|
*/
|
|
public class TabularDataController {
|
|
|
|
protected EventBus eventBus;
|
|
|
|
public TabularDataController()
|
|
{
|
|
eventBus = new SimpleEventBus();
|
|
bindToEvents();
|
|
}
|
|
|
|
/**
|
|
* @return the eventBus
|
|
*/
|
|
public EventBus getEventBus() {
|
|
return eventBus;
|
|
}
|
|
|
|
protected void bindToEvents()
|
|
{
|
|
eventBus.addHandler(ImportTableEvent.TYPE, new ImportTableEvent.ImportTableHandler() {
|
|
|
|
@Override
|
|
public void onImportTable(ImportTableEvent event) {
|
|
doImportTable(event.getImportType());
|
|
}
|
|
});
|
|
}
|
|
|
|
public void doImportTable(ImportTableType importType)
|
|
{
|
|
Log.trace("doImportTable importType: "+importType);
|
|
Info.display("ImportTableEvent", "importType: "+importType);
|
|
switch (importType) {
|
|
case SDMX: openSDMXDatasetImportWizard(); break;
|
|
case CSV: openCSVImportWizard(); break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void openSDMXDatasetImportWizard()
|
|
{
|
|
GWT.runAsync(new RunAsyncCallback() {
|
|
|
|
@Override
|
|
public void onSuccess() {
|
|
SDMXImportWizardWindow<Dataset> importWizard = SDMXImportWizardWindow.getDatasetWizard();
|
|
|
|
importWizard.addWizardSelectionHandler(new WizardSelectionHandler<Dataset>() {
|
|
|
|
@Override
|
|
public void onSelected(SDMXWizardSelectionEvent<Dataset> event) {
|
|
doSDMXDatasetImport(event.getSelected());
|
|
}
|
|
|
|
@Override
|
|
public void onClosed(SDMXWizardSelectionEvent<Dataset> event) {
|
|
|
|
}
|
|
});
|
|
|
|
importWizard.show();
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable reason) {
|
|
asyncCodeLoadingFailed(reason);
|
|
}
|
|
});
|
|
}
|
|
|
|
protected void doSDMXDatasetImport(List<Dataset> datasets)
|
|
{
|
|
|
|
}
|
|
|
|
protected void openCSVImportWizard()
|
|
{
|
|
/*GWT.runAsync(new RunAsyncCallback() {
|
|
|
|
@Override
|
|
public void onSuccess() {*/
|
|
CSVImporterWidget csvImporterWidget = new CSVImporterWidget();
|
|
csvImporterWidget.show(new TabularDataImporterListener() {
|
|
|
|
@Override
|
|
public void failed(Throwable throwable, String reason, String details) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void completed() {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void aborted() {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
});
|
|
|
|
/*}
|
|
|
|
@Override
|
|
public void onFailure(Throwable reason) {
|
|
asyncCodeLoadingFailed(reason);
|
|
}
|
|
});*/
|
|
}
|
|
|
|
protected void asyncCodeLoadingFailed(Throwable reason)
|
|
{
|
|
Log.error("Async code loading failed", reason);
|
|
Info.display("Async code loading failed", "Please retry to lunch the operation");
|
|
}
|
|
|
|
}
|