From 64b7e8bc407b292b770c8b99e19ef8bb16545dbc Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Thu, 12 Dec 2013 15:39:48 +0000 Subject: [PATCH] groupd also repor ref in list reports git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@86888 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 14 +- .settings/com.google.gdt.eclipse.core.prefs | 2 +- .settings/org.eclipse.jdt.core.prefs | 1 - .settings/org.eclipse.wst.common.component | 25 ++- ....eclipse.wst.common.project.facet.core.xml | 2 +- pom.xml | 2 +- .../reportgenerator/client/Headerbar.java | 64 +++++-- .../client/ReportStructurePanel.java | 4 +- .../client/dialog/ImportVMEReportDialog.java | 172 ++++++++---------- .../client/model/TemplateComponent.java | 2 +- .../client/targets/ClientReportReference.java | 4 +- .../client/targets/SequenceWidget.java | 5 +- .../server/servlet/ReportServiceImpl.java | 5 +- src/main/webapp/ReportGenerator.css | 27 ++- 14 files changed, 177 insertions(+), 152 deletions(-) diff --git a/.classpath b/.classpath index 16523e0..16b8b63 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + @@ -19,11 +19,6 @@ - - - - - @@ -31,5 +26,10 @@ - + + + + + + diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs index 022d94a..c36cdc6 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.13-SNAPSHOT +lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.6.15-SNAPSHOT warSrcDir=src/main/webapp warSrcDirIsOutput=false diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 649e327..69c31cd 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,3 @@ -#Wed Feb 06 16:46:46 CET 2013 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 400921f..1899c5c 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,5 +1,4 @@ - - + @@ -8,10 +7,28 @@ uses - + uses - + + uses + + + uses + + + uses + + + uses + + + uses + + + uses + + uses diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml index 5e7f92e..8937229 100644 --- a/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -2,6 +2,6 @@ - + diff --git a/pom.xml b/pom.xml index 5a6acf2..bf6b9b2 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.portlets.user reports war - 4.6.13-SNAPSHOT + 4.6.15-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 bf7eb5d..54876f6 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,7 +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 = "Import VME Report"; + private static final String IMPORT_VME = "Open VME Report"; private static final String IMPORT_VME_REF = "Import VME Reference Report"; // private static final String EXPORT_ENCRYPTED_REPORT = "Save an Encrypted Version to Desktop"; @@ -134,20 +134,22 @@ 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); - separator3 = menuBar.addSeparator(); - biblioMenu = getBiblioMenu(); - menuBar.addItem(biblioMenu); + +// biblioMenu = getBiblioMenu(); +// menuBar.addItem(biblioMenu); separator4 = menuBar.addSeparator(); exportMenu = getExportsMenu(); menuBar.addItem(exportMenu); - menuBar.addSeparator(); - vmeMenu = getVMEMenu(); - menuBar.addItem(vmeMenu); + mainLayout.setSize("100%", "24px"); @@ -311,7 +313,7 @@ public class Headerbar extends Composite{ MenuBar importMenu = new MenuBar(true); importMenu.setAnimationEnabled(true); - MenuItem toReturn = new MenuItem("VME Options", importMenu); + MenuItem toReturn = new MenuItem("Edit VME", importMenu); toReturn.getElement().getStyle().setWhiteSpace(WhiteSpace.NOWRAP); Command importVMEReport = new Command() { @@ -324,17 +326,43 @@ public class Headerbar extends Composite{ importMenu.addItem(importVME); importMenu.addSeparator(); - //add the submenu items for editing report refs - for (final VMETypeIdentifier type : VMETypeIdentifier.values()) { - if (type != VMETypeIdentifier.Vme) { - MenuItem item = new MenuItem("Edit " + type.getId(), true, new Command() { - public void execute() { - presenter.showVMEReportRefImportDialog(type); - } - }); - importMenu.addItem(item); + + MenuItem item = new MenuItem("Edit VME General Measures", true, new Command() { + public void execute() { + presenter.showVMEReportRefImportDialog(VMETypeIdentifier.GeneralMeasure); } - } + }); + importMenu.addItem(item); + + item = new MenuItem("Edit Information Sources", true, new Command() { + public void execute() { + presenter.showVMEReportRefImportDialog(VMETypeIdentifier.InformationSource); + } + }); + importMenu.addItem(item); + + item = new MenuItem("Edit Fishing footprint", true, new Command() { + public void execute() { + presenter.showVMEReportRefImportDialog(VMETypeIdentifier.FisheryAreasHistory); + } + }); + importMenu.addItem(item); + + item = new MenuItem("Edit Regional History of VMEs", true, new Command() { + public void execute() { + presenter.showVMEReportRefImportDialog(VMETypeIdentifier.VMEsHistory); + } + }); + importMenu.addItem(item); + +// item = new MenuItem("Edit Rfmo", true, new Command() { +// public void execute() { +// presenter.showVMEReportRefImportDialog(VMETypeIdentifier.Rfmo); +// } +// }); +// importMenu.addItem(item); + + importMenu.addSeparator(); MenuItem exportVME = new MenuItem("Export Current to VME-DB", true, importVMEReport); importMenu.addItem(exportVME); diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java index e0d63c2..1c96e48 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java @@ -132,8 +132,8 @@ public class ReportStructurePanel extends ScrollPanel{ break; } case INSTRUCTION: { - ImageResource image = FimesReportTreeStructureResources.INSTANCE.instructions(); - node = createNodeWidget(image, "Instructions","gwt-label-componentTree"); +// ImageResource image = FimesReportTreeStructureResources.INSTANCE.instructions(); +// node = createNodeWidget(image, "Instructions","gwt-label-componentTree"); break; } case COMMENT: { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ImportVMEReportDialog.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ImportVMEReportDialog.java index 5abc604..b0ea612 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ImportVMEReportDialog.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ImportVMEReportDialog.java @@ -31,7 +31,7 @@ import com.google.gwt.user.client.ui.HasVerticalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; public class ImportVMEReportDialog extends Window { - private static final int WIDTH = 600; + private static final int WIDTH = 700; private static final int HEIGHT = 450; private ReportServiceAsync reportService = (ReportServiceAsync) GWT.create(ReportService.class); @@ -68,7 +68,7 @@ public class ImportVMEReportDialog extends Window { return false; } }; - filter.setEmptyText("Filter by Title"); + filter.setEmptyText("Filter by ..."); filter.setWidth("250px"); hp.add(filter); hp.setPixelSize(250, 20); @@ -78,23 +78,22 @@ public class ImportVMEReportDialog extends Window { add(hp); add(mainPanel); showLoading(); + + setHeading(getHeading(type, isAssociation)); if (type == VMETypeIdentifier.Vme) { - setHeading("Select the VME"); reportService.listVMEReports(new AsyncCallback>() { @Override - public void onFailure(Throwable caught) { - mainPanel.unmask(); + public void onFailure(Throwable caught) { + mainPanel.unmask(); } @Override - public void onSuccess(ArrayList reports) { - mainPanel.unmask(); - showAvailableReports(reports); + public void onSuccess(ArrayList refReports) { + mainPanel.unmask(); + showAvailableReports(refReports, isAssociation); } - }); - } - else { - setHeading("Select the " + type.getId()); + }); + } else { reportService.listVMEReportRefByType(type, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { @@ -104,113 +103,39 @@ public class ImportVMEReportDialog extends Window { @Override public void onSuccess(ArrayList refReports) { mainPanel.unmask(); - showAvailableReferenceReports(refReports, isAssociation); + showAvailableReports(refReports, isAssociation); } }); } } - /** - * - * @param reports - */ - public void showAvailableReferenceReports(List reports, boolean isAssociation) { - ColumnModel cm = null; - List configs = new ArrayList(); - ColumnConfig column = new ColumnConfig(); - column.setId("id"); - column.setHeader("ID"); - column.setHidden(false); - column.setWidth(50); - column.setRowHeader(true); - configs.add(column); - - column = new ColumnConfig(); - column.setId("name"); - column.setHeader("Indentifier"); - column.setWidth(150); - configs.add(column); - - cm = new ColumnModel(configs); - - /** - * load the grid data - */ - ListStore store = new ListStore (); - store.add(reports); - - filter.bind(store); - filter.setEmptyText("Filter by Identifier"); - - final Grid grid = new Grid(store, cm); - - grid.getElement().getStyle().setBorderWidth(0, Unit.PX); - grid.setAutoExpandColumn("name"); - grid.setBorders(false); - grid.setStripeRows(true); - - ContentPanel gridPanel = new ContentPanel(new FitLayout()); - gridPanel.setHeaderVisible(false); - gridPanel.add(grid); - - - - gridPanel.addButton(new Button("Cancel", new SelectionListener() { - @Override - public void componentSelected(ButtonEvent ce) { - hide(); - } - })); - - if (isAssociation) { - gridPanel.addButton(new Button("Associate Selected", new SelectionListener() { - @Override - public void componentSelected(ButtonEvent ce) { - hide(); - eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), grid.getSelectionModel().getSelectedItem().getName(), type, true)); - } - })); - } - else { - gridPanel.addButton(new Button("Edit Selected", new SelectionListener() { - @Override - public void componentSelected(ButtonEvent ce) { - hide(); - eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), grid.getSelectionModel().getSelectedItem().getName(), type, false)); - } - })); - } - mainPanel.add(gridPanel); - mainPanel.setLayout(new FitLayout()); - mainPanel.layout(); - } /** * view for collections step * @param vDesc */ - public void showAvailableReports(List reports) { + public void showAvailableReports(List reports, boolean isAssociation) { ColumnModel cm = null; List configs = new ArrayList(); ColumnConfig column = new ColumnConfig(); - + column.setId("rfmo"); column.setHeader("Owner"); - column.setWidth(50); + column.setWidth(15); configs.add(column); column = new ColumnConfig(); column.setId("name"); - column.setHeader("VME Title"); + column.setHeader(type == VMETypeIdentifier.Vme ? "VME Title" : "Identifier"); column.setWidth(150); configs.add(column); column = new ColumnConfig(); column.setId("id"); column.setHeader("ID"); - column.setWidth(30); + column.setWidth(6); configs.add(column); cm = new ColumnModel(configs); @@ -220,9 +145,9 @@ public class ImportVMEReportDialog extends Window { GroupingStore store = new GroupingStore(); store.add(reports); store.groupBy("rfmo"); - - + + filter.setEmptyText(type == VMETypeIdentifier.Vme ? "Filter by Title" : "Filter by Identifier"); filter.bind(store); final Grid grid = new Grid(store, cm); @@ -251,13 +176,24 @@ public class ImportVMEReportDialog extends Window { } })); - gridPanel.addButton(new Button("Import Selected", new SelectionListener() { - @Override - public void componentSelected(ButtonEvent ce) { - hide(); - eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), grid.getSelectionModel().getSelectedItem().getName(), VMETypeIdentifier.Vme, false)); - } - })); + if (isAssociation) { + gridPanel.addButton(new Button("Associate Selected", new SelectionListener() { + @Override + public void componentSelected(ButtonEvent ce) { + hide(); + eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), grid.getSelectionModel().getSelectedItem().getName(), type, true)); + } + })); + } + else { + gridPanel.addButton(new Button("Open Selected", new SelectionListener() { + @Override + public void componentSelected(ButtonEvent ce) { + hide(); + eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), grid.getSelectionModel().getSelectedItem().getName(), type, false)); + } + })); + } mainPanel.add(gridPanel); mainPanel.setLayout(new FitLayout()); mainPanel.layout(); @@ -268,4 +204,38 @@ public class ImportVMEReportDialog extends Window { private void showLoading() { mainPanel.mask("Asking for available Reports, please wait ... ", "loading-indicator"); } + /** + * the heading of the window + * @param type + * @param isAssociation + * @return + */ + private String getHeading(VMETypeIdentifier type, boolean isAssociation) { + String toReturn = ""; + switch (type) { + case Vme: + toReturn = "VME"; + break; + case FisheryAreasHistory: + toReturn = "fishing foot print"; + break; + case VMEsHistory: + toReturn = "regional history"; + break; + case InformationSource: + toReturn = "Information Source"; + break; + case GeneralMeasure: + toReturn = "General Measure"; + break; + case Rfmo: + toReturn = "RFMO"; + default: + toReturn = "Unknown Category!"; + break; + } + toReturn = isAssociation ? "Associate " + toReturn : "Edit " + toReturn; + + return toReturn; + } } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java index 38ed88b..5c70309 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java @@ -206,7 +206,7 @@ public class TemplateComponent { area.addStyleName("readOnlyText"); //area.addStyleName(getStyle(sc.getType())); area.getElement().getStyle().setMarginTop(5, Unit.PX); - area.setWidth(width+"px"); + area.setWidth((width-30)+"px"); String content = (String) sc.getPossibleContent(); area.setText(preserveLineBreaks(content)); this.content = area; diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java index b316c88..225475d 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java @@ -122,7 +122,7 @@ public class ClientReportReference extends Composite implements ClientSequence { } if (first.isSelectNewEnabled()) { - first = getMasterSequence(sequence); + first = getRefSequence(p, this, sequence, true, false); myPanel.clear(); myPanel.add(first); tupleList.clear(); @@ -180,7 +180,7 @@ public class ClientReportReference extends Composite implements ClientSequence { private SequenceWidget getRefSequence(Presenter p, ClientSequence owner, RepeatableSequence repSequence, boolean notRemovable, boolean isNew) { SequenceWidget toReturn = new SequenceWidget(p, this, repSequence, notRemovable, isNew); toReturn.getElement().getStyle().setMarginLeft(indentationValue, Unit.PX); - toReturn.getElement().getStyle().setBackgroundColor("#FFF"); + toReturn.addStyleName("seqWidget-shadow"); toReturn.alignButtonsLeft(); return toReturn; } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java index c86b7dc..bf82d49 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java @@ -46,7 +46,7 @@ public class SequenceWidget extends Composite { myPanel.setHorizontalAlignment(HasAlignment.ALIGN_LEFT); myPanel.setStyleName("seqWidget"); int size = repSequence.getGroupedComponents().size(); - GWT.log("SequenceWidget Size = " + size); + //GWT.log("SequenceWidget Size = " + size); for (int j = 0; j < size; j++) { BasicComponent sComp = repSequence.getGroupedComponents().get(j); if (j == size-1) { @@ -66,13 +66,14 @@ public class SequenceWidget extends Composite { } TemplateComponent toAdd = new TemplateComponent(p.getModel(), sComp, p, false, null); if (isNew && sComp.getType() == ComponentType.REPORT_REFERENCE ) { //when adding a new Sequence blanks the Ref + GWT.log("E' NOVA"); ClientReportReference cRef = (ClientReportReference) toAdd.getContent(); cRef.clear(); } add(toAdd); - } + } //end for initWidget(myPanel); if (notRemovable) { 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 2dab77d..cf36899 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 @@ -1527,7 +1527,8 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe } Model model = null; try { - model = new ReportManagerReportBuilder().buildReport(cr, id, name, "unknown author", new Date(), new Date(), "uknown last editor").getReportInstance(); + model = new ReportManagerReportBuilder().buildReport(cr); + model.setTemplateName(name); } catch (ReportBuilderException e) { e.printStackTrace(); } catch (Exception e) { @@ -1543,7 +1544,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe CompiledReport cr = rsgClient.getReferenceReportById(new ReportType(refType.getId()), id); Model model = null; try { - model = new ReportManagerReportBuilder().buildReferenceReport(cr, id, "", "unknown author", new Date(), new Date(), "uknown last editor").getReportInstance(); + model = new ReportManagerReportBuilder().buildReferenceReport(cr); } catch (ReportBuilderException e) { e.printStackTrace(); } catch (Exception e) { diff --git a/src/main/webapp/ReportGenerator.css b/src/main/webapp/ReportGenerator.css index feb4a4e..d1b9d80 100644 --- a/src/main/webapp/ReportGenerator.css +++ b/src/main/webapp/ReportGenerator.css @@ -188,8 +188,17 @@ .seqWidget { margin-top: 10px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; } +.seqWidget-shadow { + background-color: #FFF; + opacity: 0.9; +} + + .grouping-inner { background: url('images/grouping-border.png') repeat-x; display: block; @@ -540,22 +549,22 @@ tableBorder td { .heading2 { background-image: url(images/heading_2.png); - font-size: 15px; + font-size: 14px; } .heading2-label { - font-size: 15px; - padding-left: 0px + font-size: 14px; + padding-left: 10px } .heading3 { background-image: url(images/heading_3.png); - font-size: 13px; + font-size: 12px; } .heading3-label { - font-size: 13px; - padding-left: 2px; + font-size: 12px; + padding-left: 20px; } .heading4 { @@ -565,7 +574,7 @@ tableBorder td { .heading4-label { font-size: 11px; - padding-left: 10px; + padding-left: 30px; } .heading5 { @@ -575,7 +584,7 @@ tableBorder td { .heading5-label { font-size: 10px; - padding-left: 25px; + padding-left: 40px; } .simpleText { @@ -589,7 +598,7 @@ tableBorder td { color: #333; text-align:justify; text-justify:inter-word; - padding-left: 5px; + padding-left: 20px; }