From c368ac1449fea7f186c0e3e22be54bb52e0a633d Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Fri, 15 Mar 2013 18:52:49 +0000 Subject: [PATCH] exports working git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@71453 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../reportgenerator/client/ToolboxPanel.java | 2 + .../client/uibinder/ExportOptions.java | 78 +++++++++++++++---- .../client/uibinder/ExportOptions.ui.xml | 6 ++ src/main/webapp/ReportGenerator.css | 14 +++- 4 files changed, 83 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ToolboxPanel.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ToolboxPanel.java index 4e4e8e4..31fd400 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ToolboxPanel.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ToolboxPanel.java @@ -11,6 +11,7 @@ import org.gcube.portlets.user.workspace.client.event.FileUploadEvent; import org.gcube.portlets.user.workspace.client.event.FileUploadEvent.UploadType; import org.gcube.portlets.user.workspace.client.view.tree.AsyncTreePanel; +import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.SimplePanel; @@ -42,6 +43,7 @@ public class ToolboxPanel extends SimplePanel { } public void showExportedVersion(String id, String fileName) { + GWT.log("showExportedVersion"); AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(id, fileName, DownloadType.SHOW)); } /** diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.java index 8da0fb0..b773d1d 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.java @@ -4,6 +4,10 @@ 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; @@ -54,12 +58,12 @@ public class ExportOptions extends Composite { 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); @@ -67,18 +71,62 @@ public class ExportOptions extends Composite { 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()); - } - }); + switch(mode) { + case SAVE: + rpc.save(filePath, workspaceFolderId, itemName, type, true, new AsyncCallback() { + @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() { + @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() { + @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; + } + } } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.ui.xml b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.ui.xml index 7af02a9..67c76e3 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.ui.xml +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/ExportOptions.ui.xml @@ -20,6 +20,12 @@ Save As + + +
+ Note: existing copies will be overwritten.
+ + \ No newline at end of file diff --git a/src/main/webapp/ReportGenerator.css b/src/main/webapp/ReportGenerator.css index c5506f3..1b57f18 100644 --- a/src/main/webapp/ReportGenerator.css +++ b/src/main/webapp/ReportGenerator.css @@ -10,17 +10,27 @@ border-radius: 5px; width: 775px; } + .exportResult { - font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; + font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 18px; color: #444; margin-bottom: 20px; } + +.tinyMessage { + font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; + font-size: 10px; + color: #444; + margin-top: 20px; + text-align: left; +} + .exportOption { display: block; height: 148px; width: 250px; - opacity: 0.8; + opacity: 0.8; text-align: center; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 18px;