133 lines
3.9 KiB
Java
133 lines
3.9 KiB
Java
package org.gcube.portlets.user.reportgenerator.client.uibinder;
|
|
|
|
import org.gcube.portlets.user.exporter.shared.TypeExporter;
|
|
import org.gcube.portlets.user.reportgenerator.client.ReportServiceAsync;
|
|
import org.gcube.portlets.user.reportgenerator.client.ToolboxPanel;
|
|
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
|
|
import org.gcube.portlets.user.workspace.lighttree.client.ItemType;
|
|
import org.gcube.portlets.user.workspace.lighttree.client.event.PopupEvent;
|
|
import org.gcube.portlets.user.workspace.lighttree.client.event.PopupHandler;
|
|
import org.gcube.portlets.user.workspace.lighttree.client.save.WorkspaceLightTreeSavePopup;
|
|
|
|
import com.google.gwt.core.client.GWT;
|
|
import com.google.gwt.event.dom.client.ClickEvent;
|
|
import com.google.gwt.uibinder.client.UiBinder;
|
|
import com.google.gwt.uibinder.client.UiField;
|
|
import com.google.gwt.uibinder.client.UiHandler;
|
|
import com.google.gwt.user.client.Window;
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
import com.google.gwt.user.client.ui.Composite;
|
|
import com.google.gwt.user.client.ui.HTML;
|
|
import com.google.gwt.user.client.ui.Widget;
|
|
|
|
public class ExportOptions extends Composite {
|
|
|
|
private static ExportOptionsUiBinder uiBinder = GWT
|
|
.create(ExportOptionsUiBinder.class);
|
|
|
|
interface ExportOptionsUiBinder extends UiBinder<Widget, ExportOptions> {
|
|
}
|
|
enum ExportMode {SAVE_OPEN, SAVE, SAVE_AS }
|
|
|
|
ToolboxPanel tbp;
|
|
@UiField HTML saveOpen;
|
|
@UiField HTML save;
|
|
@UiField HTML saveAs;
|
|
|
|
|
|
private String filePath;
|
|
private String itemName;
|
|
private String workspaceFolderId;
|
|
private TypeExporter type;
|
|
private ReportServiceAsync rpc;
|
|
private Presenter p;
|
|
|
|
public ExportOptions(Presenter p, ToolboxPanel tbp, final String filePath, final String itemName, final TypeExporter type, ReportServiceAsync rpc) {
|
|
initWidget(uiBinder.createAndBindUi(this));
|
|
this.tbp = tbp;
|
|
this.filePath = filePath;
|
|
this.itemName = itemName;
|
|
this.type= type;
|
|
this.rpc = rpc;
|
|
this.p = p;
|
|
workspaceFolderId = null;
|
|
}
|
|
|
|
@UiHandler("saveOpen")
|
|
void onSaveOpenClick(ClickEvent e) {
|
|
GWT.log("SaveOPen");
|
|
doCallBack(ExportMode.SAVE_OPEN);
|
|
}
|
|
|
|
@UiHandler("save")
|
|
void onSaveClick(ClickEvent e) {
|
|
doCallBack(ExportMode.SAVE);
|
|
}
|
|
|
|
@UiHandler("saveAs")
|
|
void onSaveAs(ClickEvent e) {
|
|
doCallBack(ExportMode.SAVE_AS);
|
|
}
|
|
|
|
|
|
private void doCallBack(ExportMode mode) {
|
|
switch(mode) {
|
|
case SAVE:
|
|
rpc.save(filePath, workspaceFolderId, itemName, type, true, new AsyncCallback<String>() {
|
|
@Override
|
|
public void onSuccess(String createdItemId) {
|
|
p.clearExportPanel();
|
|
tbp.refreshRoot();
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
Window.alert("Error: " + caught.getMessage());
|
|
}
|
|
});
|
|
break;
|
|
case SAVE_AS:
|
|
WorkspaceLightTreeSavePopup wpTree = new WorkspaceLightTreeSavePopup("Save Report, select the folder:", true);
|
|
wpTree.setSelectableTypes(ItemType.FOLDER, ItemType.ROOT);
|
|
wpTree.setShowEmptyFolders(true);
|
|
wpTree.addPopupHandler(new PopupHandler(){
|
|
|
|
@Override
|
|
public void onPopup(PopupEvent event) {
|
|
rpc.save(filePath, event.getSelectedItem().getId(), event.getName(), type, true, new AsyncCallback<String>() {
|
|
@Override
|
|
public void onSuccess(String createdItemId) {
|
|
p.clearExportPanel();
|
|
tbp.refreshRoot();
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
Window.alert("Error: " + caught.getMessage());
|
|
}
|
|
});
|
|
}});
|
|
wpTree.show();
|
|
wpTree.center();
|
|
break;
|
|
case
|
|
SAVE_OPEN:
|
|
rpc.save(filePath, workspaceFolderId, itemName, type, true, new AsyncCallback<String>() {
|
|
@Override
|
|
public void onSuccess(String createdItemId) {
|
|
p.clearExportPanel();
|
|
tbp.refreshRoot();
|
|
tbp.showExportedVersion(createdItemId, itemName);
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
Window.alert("Error: " + caught.getMessage());
|
|
}
|
|
});
|
|
break;
|
|
}
|
|
|
|
}
|
|
}
|