diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java index ace4fd0..21350e4 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Headerbar.java @@ -52,8 +52,7 @@ public class Headerbar extends Composite{ private static final String EXPORT_HTML = "Export to HTML"; private static final String EXPORT_FIMES = "Export to FiMES XML"; private static final String EXPORT_XML = "Export to XML"; - private static final String IMPORT_VME = "Open VME Report"; - private static final String IMPORT_VME_REF = "Import VME Reference Report"; + private static final String IMPORT_VME = "Edit VME"; // private static final String EXPORT_ENCRYPTED_REPORT = "Save an Encrypted Version to Desktop"; private static final String VIEW_USER_COMMENTS = "View user comments"; @@ -134,18 +133,14 @@ public class Headerbar extends Composite{ fileMenu = getFileMenu(); menuBar.addItem(fileMenu); separator1 = menuBar.addSeparator(); - vmeMenu = getVMEMenu(); - menuBar.addItem(vmeMenu); - - separator3 = menuBar.addSeparator(); viewMenu = getViewMenu(); menuBar.addItem(viewMenu); -// separator2 = menuBar.addSeparator(); -// sectionsMenu = getSectionMenu(); -// menuBar.addItem(sectionsMenu); - -// biblioMenu = getBiblioMenu(); -// menuBar.addItem(biblioMenu); + separator2 = menuBar.addSeparator(); + sectionsMenu = getSectionMenu(); + menuBar.addItem(sectionsMenu); + separator3 = menuBar.addSeparator(); + biblioMenu = getBiblioMenu(); + menuBar.addItem(biblioMenu); separator4 = menuBar.addSeparator(); exportMenu = getExportsMenu(); menuBar.addItem(exportMenu); @@ -176,6 +171,34 @@ public class Headerbar extends Composite{ initWidget(mainLayout); } + + public void setMenuForVME() { + menuBar.removeItem(viewMenu); + menuBar.removeItem(sectionsMenu); + menuBar.removeItem(biblioMenu); + menuBar.removeSeparator(separator1); + menuBar.removeSeparator(separator2); + menuBar.removeSeparator(separator3); + menuBar.removeItem(exportMenu); + + vmeMenu = getVMEMenuEdit(); + menuBar.addItem(vmeMenu); + + menuBar.addSeparator(); + + MenuItem vmeMenuCreate = getVMEMenuFake("Create"); + menuBar.addItem(vmeMenuCreate); + + separator4 = menuBar.addSeparator(); + + MenuItem vmeMenuDelete = getVMEMenuFake("Delete"); + menuBar.addItem(vmeMenuDelete); + + menuBar.addSeparator(); + exportMenu = getExportsMenu(); + menuBar.addItem(exportMenu); + } + public void setMenuForWorkflowDocument(boolean canUpdate) { presenter.setMenuForWorkflowDocument(true); menuBar.removeItem(fileMenu); @@ -309,11 +332,33 @@ public class Headerbar extends Composite{ } }; - private MenuItem getVMEMenu() { + private MenuItem getVMEMenuFake(String fakeOption) { + MenuBar createMenu = new MenuBar(true); + + createMenu.setAnimationEnabled(true); + MenuItem toReturn = new MenuItem(fakeOption+" VME-DB", createMenu); + toReturn.getElement().getStyle().setWhiteSpace(WhiteSpace.NOWRAP); + + MenuItem item = new MenuItem(""+fakeOption+" VME", true, getNullCommand()); + createMenu.addItem(item); + createMenu.addSeparator(); + + item = new MenuItem(""+fakeOption+" VME General Measure", true, getNullCommand()); + createMenu.addItem(item); + item = new MenuItem(""+fakeOption+" Information Source", true, getNullCommand()); + createMenu.addItem(item); + item = new MenuItem(""+fakeOption+" Fishing footprint", true, getNullCommand()); + createMenu.addItem(item); + item = new MenuItem(""+fakeOption+" Regional History of VMEs", true, getNullCommand()); + createMenu.addItem(item); + return toReturn; + } + + private MenuItem getVMEMenuEdit() { MenuBar importMenu = new MenuBar(true); importMenu.setAnimationEnabled(true); - MenuItem toReturn = new MenuItem("Edit VME", importMenu); + MenuItem toReturn = new MenuItem("Edit VME-DB", importMenu); toReturn.getElement().getStyle().setWhiteSpace(WhiteSpace.NOWRAP); Command importVMEReport = new Command() { @@ -574,8 +619,8 @@ public class Headerbar extends Composite{ fileMenu.setAnimationEnabled(true); MenuItem toReturn = new MenuItem("File", fileMenu); - fileMenu.addItem("Open Report", cmd.openReport); - fileMenu.addItem("Open template...", cmd.openTemplate); + fileMenu.addItem("Open Report from Workspace", cmd.openReport); + //fileMenu.addItem("Open template...", cmd.openTemplate); fileMenu.addSeparator(); fileMenu.addItem("Save", saveReport); fileMenu.addItem("Save As ..", saveReportAs); @@ -583,7 +628,7 @@ public class Headerbar extends Composite{ // fileMenu.addItem("Import from FiMES XML", importFimes); fileMenu.addItem("Close Report", cmd.newTemplate); fileMenu.addSeparator(); - fileMenu.addItem("? Open User's Guide", openHelp); +// fileMenu.addItem("? Open User's Guide", openHelp); return toReturn; } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java index 1bd220d..d1afb2e 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java @@ -127,7 +127,7 @@ public class Presenter { private CommonCommands commonCommands; private boolean menuForWorkflowDocument = false; - + private boolean isVME = false; /** * eventbus events handler @@ -193,7 +193,7 @@ public class Presenter { //refreshWorkspace(); break; case SAVED_OPEN: - // refreshWorkspace(); + // refreshWorkspace(); toolBoxPanel.showExportedVersion(event.getItemId(), event.getItemId()); break; default: @@ -277,13 +277,18 @@ public class Presenter { public void onFailure(Throwable caught) { dlg.hide(); } - public void onSuccess(Model result) { + public void onSuccess(Model result) { + if (isVME) { + header.setMenuForVME(); + header.enableExports(); + } dlg.hide(); if (result != null) { //there was one report open in session loadModel(result, true); header.enableExports(); - } else + } else{ commonCommands.newTemplate.execute(); + } } }); } @@ -300,7 +305,7 @@ public class Presenter { } public void showOpenOptions() { - wp.showOpenOptions(); + wp.showOpenOptions(isVME); } public void showLoading() { @@ -457,7 +462,7 @@ public class Presenter { return GWT.getHostPageBaseURL() + "../../"; } - + /** * remove the user-added components from the workspace, and from the model * @@ -651,7 +656,7 @@ public class Presenter { rtbar.setWidth("100%"); ReportGenerator.get().getToolbarPanel().add(deco); } - + /** * enable the format text toolbar for the given Rich Textarea passed as argument * @param d4sArea the enabled text area diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java index 5526d99..48b7146 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/WorkspacePanel.java @@ -6,6 +6,7 @@ import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel; import org.gcube.portlets.user.reportgenerator.client.targets.DoubleColumnPanel; import org.gcube.portlets.user.reportgenerator.client.uibinder.OpenOptions; +import org.gcube.portlets.user.reportgenerator.client.uibinder.OpenOptionsVME; import org.gcube.portlets.user.reportgenerator.client.uibinder.ShowLoading; import com.google.gwt.core.client.GWT; @@ -77,8 +78,11 @@ public class WorkspacePanel extends Composite { //showOpenOptions(); } - public void showOpenOptions() { - mainLayout.add(new OpenOptions(presenter)); + public void showOpenOptions(boolean isVME) { + if (isVME) + mainLayout.add(new OpenOptionsVME(presenter)); + else + mainLayout.add(new OpenOptions(presenter)); } public void showLoading() { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/Images.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/Images.java index 59acbfc..8cf4782 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/Images.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/Images.java @@ -78,6 +78,10 @@ public interface Images extends ImageBundle { * @return . */ AbstractImagePrototype save(); + /** + * @return . + */ + AbstractImagePrototype db_save(); /** * @return . */ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar$Strings.properties b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar$Strings.properties index 4c17d1c..80a8777 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar$Strings.properties +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar$Strings.properties @@ -33,9 +33,9 @@ medium = Medium large = Large xlarge = X-Large xxlarge = XX-Large -save = Save +save = Save Report in Workspace newdoc = New Template open_template = Open Template -open_report = Open Report +open_report = Open Report from Workspace importing = Import from Template forecolors = Text Color diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar.java index ba7267e..63796f2 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/RichTextToolbar.java @@ -172,6 +172,7 @@ public class RichTextToolbar extends Composite { private PushButton justifyCenter; private PushButton justifyRight; private PushButton save; + private PushButton saveDB; private PushButton newdoc; private PushButton open_template; private PushButton open_report; @@ -229,17 +230,30 @@ public class RichTextToolbar extends Composite { richText.addStyleName("hasRichTextToolbar"); if (basic != null) { - //add the new template button - topPanel.add(newdoc = createPushButton(images.newdoc(), strings.newdoc())); + if (! isVme) { + //add the new template button + topPanel.add(newdoc = createPushButton(images.newdoc(), strings.newdoc())); + } open_report = createPushButton(images.open_report(),strings.open_report()); //add the open report button topPanel.add(open_report); - //add the open template button - topPanel.add(open_template = createPushButton(images.open_template(),strings.open_template())); + if (! isVme) { + //add the open template button + topPanel.add(open_template = createPushButton(images.open_template(),strings.open_template())); + //add the save button + topPanel.add(importing = createPushButton(images.importing(), strings.importing())); + } //add the save button topPanel.add(save = createPushButton(images.save(), strings.save())); - //add the save button - topPanel.add(importing = createPushButton(images.importing(), strings.importing())); + if (isVme) { + topPanel.add(saveDB = createPushButton(images.db_save(), "Commit current in VME-DB")); + saveDB.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + Window.alert("Not currently available"); + } + }); + } if (! isVme) { topPanel.add(new HTML(" ")); @@ -412,11 +426,13 @@ public class RichTextToolbar extends Composite { } public void enableCommands(boolean enable) { - save.setEnabled(enable); - newdoc.setEnabled(enable); - open_template.setEnabled(enable); open_report.setEnabled(enable); - importing.setEnabled(enable); + save.setEnabled(enable); + if (newdoc != null) { + newdoc.setEnabled(enable); + open_template.setEnabled(enable); + importing.setEnabled(enable); + } } /** diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/db_save.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/db_save.png new file mode 100644 index 0000000..4027076 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/db_save.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/save.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/save.png index 3c00424..c2953ab 100644 Binary files a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/save.png and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/save.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptions.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptions.java index df25e20..9c5fda8 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptions.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptions.java @@ -42,7 +42,7 @@ public class OpenOptions extends Composite { } @UiHandler("openReport") void onOpenReportClick(ClickEvent e) { - GWT.log("openReport"); + GWT.log("editVME"); doAction(OpenMode.OPEN_REPORT); } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptionsVME.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptionsVME.java new file mode 100644 index 0000000..fae0e38 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptionsVME.java @@ -0,0 +1,77 @@ +package org.gcube.portlets.user.reportgenerator.client.uibinder; + +import org.gcube.portlets.user.reportgenerator.client.Presenter.CommonCommands; +import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; +import org.gcube.portlets.user.reportgenerator.client.uibinder.ExportOptions.ExportMode; + +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.Command; +import com.google.gwt.user.client.Window; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.HTMLPanel; +import com.google.gwt.user.client.ui.Widget; + +public class OpenOptionsVME extends Composite { + + private static OpenOptionsUiBinder uiBinder = GWT + .create(OpenOptionsUiBinder.class); + + interface OpenOptionsUiBinder extends UiBinder { + } + enum OpenMode {OPEN_REPORT, OPEN_TEMPLATE, UPLOAD } + + @UiField HTML editVME; + @UiField HTML createVME; + @UiField HTML deleteVME; + + @UiField HTMLPanel myPanel; + + private Presenter p; + + public OpenOptionsVME(Presenter p) { + initWidget(uiBinder.createAndBindUi(this)); + this.p = p; + } + + public HTMLPanel getMainPanel() { + return myPanel; + } + @UiHandler("editVME") + void onEditVMEClick(ClickEvent e) { + GWT.log("editVME"); + doAction(OpenMode.OPEN_REPORT); + } + + @UiHandler("createVME") + void onOpenTemplateClick(ClickEvent e) { + doAction(OpenMode.OPEN_TEMPLATE); + } + + @UiHandler("deleteVME") + void unUploadClick(ClickEvent e) { + doAction(OpenMode.UPLOAD); + } + + private void doAction(OpenMode mode) { + CommonCommands cmd = new CommonCommands(p); + switch (mode) { + case OPEN_REPORT: + p.showVMEImportDialog(); + break; + case OPEN_TEMPLATE: + Window.alert("Not yet available"); + break; + case UPLOAD: + Window.alert("Not yet available"); + break; + default: + break; + } + + } +} diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptionsVME.ui.xml b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptionsVME.ui.xml new file mode 100644 index 0000000..8f9595b --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/uibinder/OpenOptionsVME.ui.xml @@ -0,0 +1,19 @@ + + + + + + + + + +
+ Edit VME + + Create VME + + Delete VME +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ReportGenerator.css b/src/main/webapp/ReportGenerator.css index 86b6176..3bec5e9 100644 --- a/src/main/webapp/ReportGenerator.css +++ b/src/main/webapp/ReportGenerator.css @@ -55,6 +55,10 @@ background: url('images/uploadReport.png') 55% 25px no-repeat; } +.optionDeleteVME { + background: url('images/deleteVME.png') 55% 25px no-repeat; +} + .exportPanel { margin: 5px 5px 5px 20px; border: 1px solid #e3e8f3; diff --git a/src/main/webapp/images/deleteVME.png b/src/main/webapp/images/deleteVME.png new file mode 100644 index 0000000..732f7a8 Binary files /dev/null and b/src/main/webapp/images/deleteVME.png differ