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 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 { } 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) { rpc.save(filePath, workspaceFolderId, itemName, type, true, new AsyncCallback() { @Override public void onSuccess(String createdItemId) { p.clearExportPanel(); tbp.showExportedVersion(createdItemId, itemName); Window.alert("Success "); } @Override public void onFailure(Throwable caught) { Window.alert("Error: " + caught.getMessage()); } }); } }