diff --git a/.classpath b/.classpath index a317ac4..a007caa 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + @@ -26,10 +26,10 @@ - + - + diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs index 7eb289d..e798aa2 100644 --- a/.settings/com.google.gdt.eclipse.core.prefs +++ b/.settings/com.google.gdt.eclipse.core.prefs @@ -2,6 +2,6 @@ <<<<<<<=.mine >>>>>>>=.r71295 eclipse.preferences.version=1 -lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.6.17-SNAPSHOT +lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.6.19-SNAPSHOT warSrcDir=src/main/webapp warSrcDirIsOutput=false diff --git a/pom.xml b/pom.xml index 3decdc8..062a157 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.portlets.user reports war - 4.6.17-SNAPSHOT + 4.6.19-SNAPSHOT gCube Reports Manager gCube Reports Portlet. 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 21350e4..1e64b4c 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 @@ -186,7 +186,7 @@ public class Headerbar extends Composite{ menuBar.addSeparator(); - MenuItem vmeMenuCreate = getVMEMenuFake("Create"); + MenuItem vmeMenuCreate = getVMEMenuCreate(); menuBar.addItem(vmeMenuCreate); separator4 = menuBar.addSeparator(); @@ -414,6 +414,52 @@ public class Headerbar extends Composite{ return toReturn; } + + + private MenuItem getVMEMenuCreate() { + MenuBar importMenu = new MenuBar(true); + + importMenu.setAnimationEnabled(true); + MenuItem toReturn = new MenuItem("Create VME-DB", importMenu); + toReturn.getElement().getStyle().setWhiteSpace(WhiteSpace.NOWRAP); + + MenuItem item = new MenuItem("Create new VME", true, new Command() { + public void execute() { + presenter.importVMETemplate(VMETypeIdentifier.Vme); + } + }); + importMenu.addItem(item); + importMenu.addSeparator(); + + item = new MenuItem("Create new General Measure", true, new Command() { + public void execute() { + presenter.importVMETemplate(VMETypeIdentifier.GeneralMeasure); + } + }); + importMenu.addItem(item); + + item = new MenuItem("Create new Information Source", true, new Command() { + public void execute() { + presenter.importVMETemplate(VMETypeIdentifier.InformationSource); + } + }); + importMenu.addItem(item); + + item = new MenuItem("Create new Fishing footprint", true, new Command() { + public void execute() { + presenter.importVMETemplate(VMETypeIdentifier.FisheryAreasHistory); + } + }); + importMenu.addItem(item); + + item = new MenuItem("Create new Regional History of VMEs", true, new Command() { + public void execute() { + presenter.importVMETemplate(VMETypeIdentifier.VMEsHistory); + } + }); + importMenu.addItem(item); + return toReturn; + } /** * diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/CommonCommands.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/CommonCommands.java index da9d9d2..8f27c05 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/CommonCommands.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/CommonCommands.java @@ -38,6 +38,7 @@ public class CommonCommands { */ public Command openReport; + public Command newTemplate; /** * @@ -73,7 +74,6 @@ public class CommonCommands { } }; - openTemplate = new Command() { public void execute() { final int left = presenter.getHeader().getMainLayout().getAbsoluteLeft() + 50; 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 d1afb2e..19aa5b2 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 @@ -1208,6 +1208,26 @@ public class Presenter { dlg.show(); } + public void importVMETemplate(final VMETypeIdentifier type) { + showLoading(); + reportService.importVMETemplate(type, new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + Window.alert("Could not Load Template Model, error on server.: " + caught.getMessage()); + } + + @Override + public void onSuccess(Model toLoad) { + if (toLoad != null) { + loadModel(toLoad, type == VMETypeIdentifier.Vme); + } + else + Window.alert("Could not Load Template Model, error on server."); + } + }); + + } + private void importVMEReport(String reportId, String name, final VMETypeIdentifier type) { showLoading(); reportService.importVMEReport(reportId, name, type, new AsyncCallback() { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java index 8208836..f86a72c 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java @@ -28,6 +28,8 @@ public interface ReportService extends RemoteService{ Model importVMEReport(String id, String name, VMETypeIdentifier refType); Model getVMEReportRef2Associate(String id, VMETypeIdentifier refType); + + Model importVMETemplate(VMETypeIdentifier refType); String save(String filePath, String workspaceFolderId, String ItemName, TypeExporter type, boolean overwrite) diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java index b1b42c6..00c2dab 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java @@ -84,4 +84,6 @@ public interface ReportServiceAsync { AsyncCallback> callback); void getVMEReportRef2Associate(String id, VMETypeIdentifier refType, AsyncCallback callback); + void importVMETemplate(VMETypeIdentifier refType, + AsyncCallback callback); } 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 8cf4782..fbf00d6 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 @@ -50,10 +50,15 @@ public interface Images extends ImageBundle { * @return . */ AbstractImagePrototype justifyRight(); + /** + * @return . + */ + AbstractImagePrototype closeDoc(); /** * @return . */ AbstractImagePrototype newdoc(); + /** * @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 80a8777..14f00b7 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 @@ -39,3 +39,4 @@ open_template = Open Template open_report = Open Report from Workspace importing = Import from Template forecolors = Text Color +close_report = Close Report \ No newline at end of file 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 63796f2..04747ec 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 @@ -80,6 +80,8 @@ public class RichTextToolbar extends Composite { commands.get("save").execute(); } else if (sender == newdoc) { commands.get("newdoc").execute(); + }else if (sender == close) { + commands.get("newdoc").execute(); } else if (sender == open_report) { commands.get("open_report").execute(); } else if (sender == open_template) { @@ -173,6 +175,7 @@ public class RichTextToolbar extends Composite { private PushButton justifyRight; private PushButton save; private PushButton saveDB; + private PushButton close; private PushButton newdoc; private PushButton open_template; private PushButton open_report; @@ -245,6 +248,8 @@ public class RichTextToolbar extends Composite { } //add the save button topPanel.add(save = createPushButton(images.save(), strings.save())); + //add the close button + topPanel.add(close = createPushButton(images.closeDoc(), strings.close_report())); if (isVme) { topPanel.add(saveDB = createPushButton(images.db_save(), "Commit current in VME-DB")); saveDB.addClickHandler(new ClickHandler() { @@ -456,6 +461,8 @@ public class RichTextToolbar extends Composite { */ public interface Strings extends Constants { + String close_report(); + String insertImage(); String importing(); diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/closeDoc.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/closeDoc.png new file mode 100644 index 0000000..94033d5 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/toolbar/closeDoc.png differ 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 index fae0e38..883e0db 100644 --- 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 @@ -3,6 +3,7 @@ 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 org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -64,7 +65,7 @@ public class OpenOptionsVME extends Composite { p.showVMEImportDialog(); break; case OPEN_TEMPLATE: - Window.alert("Not yet available"); + p.importVMETemplate(VMETypeIdentifier.Vme); break; case UPLOAD: Window.alert("Not yet available"); diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java index 2985f59..5f5ef45 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java @@ -1552,6 +1552,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe try { model = new ReportManagerReportBuilder().buildReport(cr); model.setTemplateName(name); + //ReportsReader.readReportStructure(model); } catch (ReportBuilderException e) { e.printStackTrace(); } catch (Exception e) { @@ -1575,8 +1576,34 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe } return model; } + + @Override + public Model importVMETemplate(VMETypeIdentifier refType) { + RsgService rsgClient = new RsgClient(getRSGWSAddress()); + + CompiledReport cr = null; + if (refType == VMETypeIdentifier.Vme) { + _log.info("Importing VME Template"); + cr = rsgClient.getTemplate(new ReportType(refType.getId())); + } + else { + _log.info("Importing Ref type= " + refType.getId()); + cr = rsgClient.getTemplate(new ReportType(refType.getId())); + + } + Model model = null; + try { + model = new ReportManagerReportBuilder().buildReport(cr); + model.setTemplateName("New " + refType.getDisplayName()); + } catch (ReportBuilderException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + return model; + } /** - * this method ch + * this method look for a ReportsStoreGateway WS available in the infrastructure * @return true if an instance of the ReportsStoreGateway is available in the infrastructure */ private boolean isReportsStoreGatewayAvailable() { @@ -1606,4 +1633,5 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe else return false; } + } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportsReader.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportsReader.java index 63f697f..14b8de6 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportsReader.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportsReader.java @@ -33,6 +33,7 @@ public class ReportsReader { } + /** Non Test methods **/ /** * ket method whne reading @@ -45,16 +46,23 @@ public class ReportsReader { case HEADING: case INSTRUCTION: case TEXT_INPUT: + case HIDDEN: System.out.println(sep +"Type: " + rc.getType()+"\n\tId: " + rc.getId() + "\tValue: " + rc.getStringValue() + " props="+rc.getProperties().toString()); break; case BOXAREA: BoxesArea ba = (BoxesArea) rc; - System.out.println(sep +"Type: " + rc.getType()); + System.out.println(sep +"Type: " + rc.getType() + ba.getProperties()); for (ReportComponent rpc : ba.getChildren()) { Box attrBox = (Box) rpc; System.out.println("\t"+attrBox); } break; + case SEQUENCE_LIST: + System.out.println(sep +"Type: " + rc.getType()); + for (ReportComponent rpc : rc.getChildren()) { + printReportCompomnent(rpc, sep+"\t"); + } + break; case SEQUENCE: System.out.println(sep +"Type: " + rc.getType()); for (ReportComponent rpc : rc.getChildren()) { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java index 79445df..8eef932 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java @@ -1,17 +1,19 @@ package org.gcube.portlets.user.reportgenerator.shared; public enum VMETypeIdentifier { - Vme("Vme"), - GeneralMeasure("GeneralMeasure"), - InformationSource("InformationSource"), - FisheryAreasHistory("FisheryAreasHistory"), - VMEsHistory("VMEsHistory"), - Rfmo("Rfmo"); + Vme("Vme", "VME"), + GeneralMeasure("GeneralMeasure", "General Measure"), + InformationSource("InformationSource", "Information Source"), + FisheryAreasHistory("FisheryAreasHistory", "fishing foot print"), + VMEsHistory("VMEsHistory", "regional history"), + Rfmo("Rfmo", "RFMO"); private String _id; + private String displayName; - private VMETypeIdentifier(String id) { + private VMETypeIdentifier(String id, String _displayName) { this._id = id; + this.displayName = _displayName; } /** @@ -20,4 +22,9 @@ public enum VMETypeIdentifier { public String getId() { return this._id; } + + public String getDisplayName() { + return displayName; + } + } diff --git a/src/main/webapp/ReportGenerator.css b/src/main/webapp/ReportGenerator.css index 3bec5e9..147d0a6 100644 --- a/src/main/webapp/ReportGenerator.css +++ b/src/main/webapp/ReportGenerator.css @@ -57,6 +57,7 @@ .optionDeleteVME { background: url('images/deleteVME.png') 55% 25px no-repeat; + opacity: 0.5; } .exportPanel { diff --git a/src/main/webapp/images/closeDoc.png b/src/main/webapp/images/closeDoc.png new file mode 100644 index 0000000..94033d5 Binary files /dev/null and b/src/main/webapp/images/closeDoc.png differ