diff --git a/.classpath b/.classpath index 9a07555..0383786 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + @@ -31,5 +31,5 @@ - + diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs index 1bd2e50..d5e5d52 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.3-SNAPSHOT +lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.6.4-SNAPSHOT warSrcDir=src/main/webapp warSrcDirIsOutput=false diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 43de741..400921f 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -5,13 +5,7 @@ - - uses - - - uses - - + uses diff --git a/pom.xml b/pom.xml index d0c2cfa..38f0f4f 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.portlets.user reports war - 4.6.3-SNAPSHOT + 4.6.4-SNAPSHOT gCube Reports Portlet gCube Reports Portlet. @@ -116,6 +116,10 @@ 2.2.5 ${setScope} + + com.allen-sauer.gwt.log + gwt-log + org.gcube.portlets.widgets user-selection-dialog @@ -129,7 +133,7 @@ org.gcube.application.rsg reports-store-gateway-client - 0.0.1-SNAPSHOT + [0.0.1-SNAPSHOT,) org.gcube.common @@ -200,11 +204,6 @@ portal-service ${setScope} - - com.allen-sauer.gwt.log - gwt-log - ${setScope} - javax.portlet portlet-api 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 7653d12..74ccf87 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 @@ -19,6 +19,7 @@ import org.gcube.portlets.widgets.lighttree.client.load.WorkspaceLightTreeLoadPo import com.extjs.gxt.ui.client.widget.MessageBox; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.RunAsyncCallback; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.CellPanel; @@ -423,34 +424,34 @@ public class Headerbar extends Composite{ public void enableExports() { optionDOCX.setHTML(EXPORT_OPENXML); - optionDOCX.setCommand(generateDOCX); + optionDOCX.setScheduledCommand(generateDOCX); optionPDF.setHTML("Export to PDF"); - optionPDF.setCommand(generatePDF); + optionPDF.setScheduledCommand(generatePDF); optionHTML.setHTML(EXPORT_HTML); - optionHTML.setCommand(generateHTML); + optionHTML.setScheduledCommand(generateHTML); optionFimes.setHTML(EXPORT_FIMES); - optionFimes.setCommand(generateFimes); + optionFimes.setScheduledCommand(generateFimes); optionXML.setHTML(EXPORT_XML); - optionXML.setCommand(generatedXML); + optionXML.setScheduledCommand(generatedXML); // optionEncryptedModel.setHTML(EXPORT_ENCRYPTED_REPORT); - optionEncryptedModel.setCommand(generateEncryptedModel); + // importModel.setHTML("Import from Template or Report"); - importModel.setCommand(importModelOrReport); + importModel.setScheduledCommand(importModelOrReport); viewMetadata.setHTML("View Metadata"); - viewMetadata.setCommand(openMetadata); + viewMetadata.setScheduledCommand(openMetadata); viewComments.setHTML(VIEW_USER_COMMENTS); - viewComments.setCommand(showUserComments); + viewComments.setScheduledCommand(showUserComments); discardSection.setHTML("Discard current"); - discardSection.setCommand(discardSectionCom); + discardSection.setScheduledCommand(discardSectionCom); } /** @@ -467,7 +468,7 @@ public class Headerbar extends Composite{ */ public void enableBiblioEntry(RichTextArea d4sArea) { addBiblioEntry.setHTML(ADD_BIBLIO_ENTRY); - addBiblioEntry.setCommand(addBiblioEntryCommand); + addBiblioEntry.setScheduledCommand(addBiblioEntryCommand); presenter.setAreaForBiblio(d4sArea); } @@ -555,43 +556,43 @@ public class Headerbar extends Composite{ //************** COMMANDS ********************************//// - Command generateFimes = new Command() { + ScheduledCommand generateFimes = new ScheduledCommand() { public void execute() { presenter.generateFiMES(templateModel); } }; - Command generateDOCX = new Command() { + ScheduledCommand generateDOCX = new ScheduledCommand() { public void execute() { presenter.generateManifestation(templateModel, ExportManifestationType.DOCX); } }; - Command generatePDF = new Command() { + ScheduledCommand generatePDF = new ScheduledCommand() { public void execute() { // Window.alert("PDF Exporting may not be fully working, you can also generate a PDF using your Word Processor application starting from the docx exported file"); presenter.generateManifestation(templateModel, ExportManifestationType.PDF); } }; - Command generateHTML = new Command() { + ScheduledCommand generateHTML = new ScheduledCommand() { public void execute() { presenter.generateManifestation(templateModel, ExportManifestationType.HTML); } }; - Command generatedXML = new Command() { + ScheduledCommand generatedXML = new ScheduledCommand() { public void execute() { presenter.generateManifestation(templateModel, ExportManifestationType.XML); } }; - Command generateEncryptedModel = new Command() { + ScheduledCommand generateEncryptedModel = new ScheduledCommand() { @Override public void execute() { GWT.runAsync(WorkspaceLightTreeLoadPopup.class, new RunAsyncCallback() { public void onSuccess() { - WorkspaceLightTreeLoadPopup wpTreepopup = new WorkspaceLightTreeLoadPopup("Select the Report (or Template) to encrypt ", true, true); + WorkspaceLightTreeLoadPopup wpTreepopup = new WorkspaceLightTreeLoadPopup( "Select the Report (or Template) to encrypt ", true, true); wpTreepopup.setShowableTypes(ItemType.REPORT_TEMPLATE, ItemType.REPORT); wpTreepopup.setSelectableTypes(ItemType.REPORT_TEMPLATE, ItemType.REPORT); @@ -607,7 +608,6 @@ public class Headerbar extends Composite{ } }); - wpTreepopup.center(); wpTreepopup.show(); } @@ -620,7 +620,7 @@ public class Headerbar extends Composite{ }; - Command discardSectionCom = new Command() { + ScheduledCommand discardSectionCom = new ScheduledCommand() { public void execute() { presenter.discardCurrentSection(); } 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 a302ced..753bb07 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 @@ -15,12 +15,12 @@ import org.gcube.portlets.user.reportgenerator.client.ReportConstants; import org.gcube.portlets.user.reportgenerator.client.ReportGenerator; import org.gcube.portlets.user.reportgenerator.client.ReportService; import org.gcube.portlets.user.reportgenerator.client.ReportServiceAsync; +import org.gcube.portlets.user.reportgenerator.client.ReportStructurePanel; import org.gcube.portlets.user.reportgenerator.client.TitleBar; import org.gcube.portlets.user.reportgenerator.client.ToolboxPanel; import org.gcube.portlets.user.reportgenerator.client.WorkspacePanel; import org.gcube.portlets.user.reportgenerator.client.dialog.AddBiblioEntryDialog; import org.gcube.portlets.user.reportgenerator.client.dialog.DeleteCitationsDialog; -import org.gcube.portlets.user.reportgenerator.client.dialog.ReportStructureDialog; import org.gcube.portlets.user.reportgenerator.client.dialog.WaitingOperationDialog; import org.gcube.portlets.user.reportgenerator.client.events.AddBiblioEvent; import org.gcube.portlets.user.reportgenerator.client.events.AddBiblioEventHandler; @@ -68,7 +68,6 @@ import org.gcube.portlets.widgets.userselection.client.events.UsersFetchedEvent; import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean; import com.extjs.gxt.ui.client.widget.MessageBox; -import com.extjs.gxt.ui.client.widget.layout.FitLayout; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.RunAsyncCallback; import com.google.gwt.event.shared.HandlerManager; @@ -885,6 +884,9 @@ public class Presenter { } if (currPage > 1) titleBar.getSectionSwitchPanel().showPrevButton(); + + //show the structure + showReportStructure(); } /** @@ -1203,29 +1205,8 @@ public class Presenter { public void showReportStructure() { - GWT.runAsync(ReportStructureDialog.class, new RunAsyncCallback() { - @Override - public void onSuccess() { - ReportStructureDialog panel = new ReportStructureDialog(eventBus, model.getSerializableModel(), ToolboxPanel.TOOLBOX_WIDTH+"px", ToolboxPanel.TOOLBOX_HEIGHT+"px"); - final com.extjs.gxt.ui.client.widget.Window window = new com.extjs.gxt.ui.client.widget.Window(); - window.setTitle("Report Structure"); - window.setClosable(true); - window.setResizable(false); - window.setWidth(ToolboxPanel.TOOLBOX_WIDTH); - window.setHeight(ToolboxPanel.TOOLBOX_HEIGHT); - window.setPlain(true); - window.setLayout(new FitLayout()); - window.add(panel); - panel.getElement().getStyle().setBackgroundColor("#FFF"); - window.setPosition(0, getToolBoxPanel().getAbsoluteTop()); - window.show(); - } - @Override - public void onFailure(Throwable reason) { - } - }); - - } + toolBoxPanel.showStructure(new ReportStructurePanel(eventBus, model.getSerializableModel(), ToolboxPanel.TOOLBOX_WIDTH+"px", ToolboxPanel.TOOLBOX_HEIGHT+"px")); + } public HorizontalPanel getExportsPanel() { return exportsPanel; diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportGenerator.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportGenerator.java index a33a87d..e765dd0 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportGenerator.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportGenerator.java @@ -118,7 +118,7 @@ public class ReportGenerator implements EntryPoint { cellPanel.add(toolBoxPanel); cellPanel.add(bottomScrollerPanel); - cellPanel.setCellWidth(toolBoxPanel, "230"); + cellPanel.setCellWidth(toolBoxPanel, "10px"); mainLayout.add(cellPanel); diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ReportStructureDialog.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java similarity index 67% rename from src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ReportStructureDialog.java rename to src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java index 206000c..b6b49fa 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ReportStructureDialog.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java @@ -1,19 +1,26 @@ -package org.gcube.portlets.user.reportgenerator.client.dialog; +package org.gcube.portlets.user.reportgenerator.client; import java.util.HashMap; import java.util.List; import java.util.Vector; +import org.gcube.application.reporting.component.ReportSequence; +import org.gcube.portlets.d4sreporting.common.shared.AttributeArea; import org.gcube.portlets.d4sreporting.common.shared.BasicComponent; -import org.gcube.portlets.d4sreporting.common.shared.Model; import org.gcube.portlets.d4sreporting.common.shared.BasicSection; +import org.gcube.portlets.d4sreporting.common.shared.ComponentType; +import org.gcube.portlets.d4sreporting.common.shared.Model; +import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence; +import org.gcube.portlets.d4sreporting.common.shared.ReportReferences; import org.gcube.portlets.user.reportgenerator.client.events.ItemSelectionEvent; import org.gcube.portlets.user.reportgenerator.client.resources.FimesReportTreeStructureResources; +import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; @@ -23,55 +30,77 @@ import com.google.gwt.user.client.ui.TreeItem; import com.google.gwt.user.client.ui.Widget; -public class ReportStructureDialog extends ScrollPanel{ +public class ReportStructurePanel extends ScrollPanel{ - public ReportStructureDialog(final HandlerManager eventBus, final Model report, - final String height, final String width) { + Tree t; + TreeItem root ; + public ReportStructurePanel(final HandlerManager eventBus, final Model report, final String width, final String height) { - this.setWidth(width); - this.setHeight(height); + setWidth(width); + setHeight(height); - Tree t = new Tree(); + + t = new Tree(); t.setAnimationEnabled(true); - t.addItem(loadReportRootTree(report)); + root = loadReportRootTree(report); + t.addItem(root); t.addSelectionHandler(new SelectionHandler() { @SuppressWarnings("unchecked") public void onSelection(SelectionEvent event) { - // TODO Auto-generated method stub TreeItem item = event.getSelectedItem(); HashMap map = (HashMap)item.getUserObject(); eventBus.fireEvent(new ItemSelectionEvent(map)); } }); - + this.add(t); + root.setState(true); + getElement().getStyle().setPaddingLeft(10, Unit.PX); + getElement().getStyle().setPaddingTop(10, Unit.PX); + + expandtree(); + } + + private void expandtree() { + Timer t = new Timer() { + + @Override + public void run() { + for (int i = 0; i < root.getChildCount(); i++) { + root.getChild(i).setState(true); + } + } + }; + t.schedule(500); } private TreeItem loadReportRootTree(final Model report) { // Add root node ImageResource image = FimesReportTreeStructureResources.INSTANCE.root(); - HorizontalPanel node = createNodeWidget(image, report.getTemplateName(),"gwt-label-rootTree"); + HorizontalPanel node = createNodeWidget(image, "Structure View","gwt-label-rootTree"); TreeItem root = new TreeItem(node); + + root.setStyleName("treeContainer"); + Vector sections = report.getSections(); for(int i = 1; i <= sections.size(); i++) { BasicSection s = sections.get(i - 1); // Add section item image = FimesReportTreeStructureResources.INSTANCE.section(); - node = createNodeWidget(image, "Section" + i,"gwt-label-sectionTree"); + node = createNodeWidget(image, "Section " + i,"gwt-label-sectionTree"); TreeItem sectionItem = addChildItemToParentItem(root, "Section", Integer.toString(i -1), node); - addItemsComponent(sectionItem, s); + sectionItem.setState(true); + addItemsComponent(sectionItem, s.getComponents()); - } - + } return root; } - private void addItemsComponent(final TreeItem sectionItem,final BasicSection sectionModel) { + private void addItemsComponent(final TreeItem sectionItem,final List components ) { - List components = sectionModel.getComponents(); for(int i = 0; i < components.size(); i++) { BasicComponent c = components.get(i); @@ -104,7 +133,7 @@ public class ReportStructureDialog extends ScrollPanel{ } case INSTRUCTION: { ImageResource image = FimesReportTreeStructureResources.INSTANCE.instructions(); - node = createNodeWidget(image, "Instruction","gwt-label-componentTree"); + node = createNodeWidget(image, "Instructions","gwt-label-componentTree"); break; } case COMMENT: { @@ -127,10 +156,32 @@ public class ReportStructureDialog extends ScrollPanel{ node = createNodeWidget(image, "Table","gwt-label-componentTree"); break; } - case ATTRIBUTE_MULTI: { - // TODO - ImageResource image = FimesReportTreeStructureResources.INSTANCE.comments(); - node = createNodeWidget(image, "Attribute","gwt-label-componentTree"); + case ATTRIBUTE_MULTI: { + AttributeArea ar = (AttributeArea) c.getPossibleContent(); + ImageResource image = FimesReportTreeStructureResources.INSTANCE.checkbox(); + node = createNodeWidget(image, ar.getAttrName(),"gwt-label-componentTree"); + break; + } + case ATTRIBUTE_UNIQUE: { + AttributeArea ar = (AttributeArea) c.getPossibleContent(); + ImageResource image = FimesReportTreeStructureResources.INSTANCE.radio(); + node = createNodeWidget(image, ar.getAttrName(),"gwt-label-componentTree"); + break; + } + case BODY_TABLE_IMAGE: { + RepeatableSequence rs = (RepeatableSequence) c.getPossibleContent(); + addItemsComponent(sectionItem, rs.getGroupedComponents()); + break; + } + case REPEAT_SEQUENCE: { + RepeatableSequence rs = (RepeatableSequence) c.getPossibleContent(); + addItemsComponent(sectionItem, rs.getGroupedComponents()); + break; + } + case REPORT_REFERENCE: { + ReportReferences rf = (ReportReferences) c.getPossibleContent(); + ImageResource image = FimesReportTreeStructureResources.INSTANCE.reference(); + node = createNodeWidget(image, rf.getRefType(),"gwt-label-componentTree"); break; } case TOC: @@ -147,9 +198,10 @@ public class ReportStructureDialog extends ScrollPanel{ break; } - if (node != null) + if (node != null && c.getType() != ComponentType.REPEAT_SEQUENCE) { addChildItemToParentItem(sectionItem, "Component", Integer.toString(i), node); + } } } @@ -177,8 +229,7 @@ public class ReportStructureDialog extends ScrollPanel{ private HorizontalPanel createNodeWidget(ImageResource imageResource, String title, String cssStyle) { HorizontalPanel node = new HorizontalPanel(); - - node.setSpacing(0); + Image image = new Image(imageResource); image.setPixelSize(image.getWidth() + 5, image.getHeight()); node.add(image); @@ -188,7 +239,6 @@ public class ReportStructureDialog extends ScrollPanel{ shortTitle = shortTitle.substring(0,25) + "..."; Label text = new Label(shortTitle); - text.setStyleName(cssStyle); node.add(text); return node; } 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 c2f1fa7..eed06e7 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 @@ -3,8 +3,6 @@ package org.gcube.portlets.user.reportgenerator.client; import org.gcube.portlets.user.workspace.client.AppControllerExplorer; import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent; import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent.DownloadType; -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; @@ -28,12 +26,18 @@ public class ToolboxPanel extends SimplePanel { public static final int TOOLBOX_HEIGHT= 800; public ToolboxPanel(AppControllerExplorer appController) { -// this.appController = appController; + this.appController = appController; // AsyncTreePanel tp = appController.getTree(TOOLBOX_WIDTH, TOOLBOX_HEIGHT); // this.tp = tp; // add(tp); // this.appController.hideSharingFacilities(); //sharing disabled we have problems from Reports } + + public void showStructure(ReportStructurePanel panel) { + clear(); + setWidth("240px"); + add(panel); + } public void showExportedVersion(String id, String fileName) { GWT.log("showExportedVersion"); @@ -43,13 +47,13 @@ public class ToolboxPanel extends SimplePanel { * refresh the root */ public void refreshRoot() { - appController.refreshRoot(); + //appController.refreshRoot(); } /** * show upload file popup */ public void showUploadFile() { - AppControllerExplorer.getEventBus().fireEvent(new FileUploadEvent(tp.getRootItem(), UploadType.FILE)); + //AppControllerExplorer.getEventBus().fireEvent(new FileUploadEvent(tp.getRootItem(), UploadType.FILE)); } /** * lalala 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 4b28e6d..75db161 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 @@ -195,6 +195,7 @@ public class TemplateComponent { else { HeadingTextArea bToAdd = new HeadingTextArea(sc.getType(), presenter, sc.getX(), sc.getY(), width, 25, getUserComments() != null, showClose); bToAdd.setText((String) sc.getPossibleContent()); + bToAdd.setMetadata(sc.getMetadata()); this.content = bToAdd; } break; @@ -213,6 +214,7 @@ public class TemplateComponent { int changedWidth = width -5; //because of the inner padding BasicTextArea bToAdd = new BasicTextArea(sc.getType(), presenter, sc.getX(), sc.getY(), changedWidth, 25, getUserComments() != null, showClose); bToAdd.setText((String) sc.getPossibleContent()); + bToAdd.setMetadata(sc.getMetadata()); this.content = bToAdd; } break; @@ -373,7 +375,6 @@ public class TemplateComponent { this.content = tti; break; case REPORT_REFERENCE: - //Log.debug("FOUND Master SEQUENCE trying getGroup"); GWT.log("FOUND Master SEQUENCE trying getGroup"); ReportReferences ref = (ReportReferences) sc.getPossibleContent(); @@ -414,6 +415,7 @@ public class TemplateComponent { public BasicComponent getSerializable() { Serializable content = ""; String id = ""; + List metas = null; switch (this.getType()) { case DYNA_IMAGE: ClientImage da = (ClientImage) this.content; @@ -422,7 +424,7 @@ public class TemplateComponent { idInBasket = id; if (((String) content).compareTo("") == 0) content = DEFAULT_IMAGE_PATH; - metadata = da.getMetadata(); + metas = da.getMetadata(); width = da.getImageWidth(); height = da.getImageHeight(); break; @@ -443,15 +445,19 @@ public class TemplateComponent { if (this.isLocked()) { content = ((HTML) this.content).getText(); } - else + else { content = ((HeadingTextArea) this.content).getText(); + metas = ((HeadingTextArea) this.content).getMetadata(); + } break; case BODY_NOT_FORMATTED: if (this.isLocked()) { content = ((HTML) this.content).getText(); } - else + else { content = ((BasicTextArea) this.content).getText(); + metas = ((BasicTextArea) this.content).getMetadata(); + } break; case TIME_SERIES: GWT.log("Found Time Series", null); @@ -494,7 +500,7 @@ public class TemplateComponent { break; } - return new BasicComponent(x, y, width, height, templatePage, type, idInBasket, "param empty", content, this.doubleColLayout, isLocked(), metadata); + return new BasicComponent(x, y, width, height, templatePage, type, idInBasket, "param empty", content, this.doubleColLayout, isLocked(), metas); } /** diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/FimesReportTreeStructureResources.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/FimesReportTreeStructureResources.java index 64f7a2e..d696185 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/FimesReportTreeStructureResources.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/FimesReportTreeStructureResources.java @@ -6,40 +6,55 @@ import com.google.gwt.resources.client.ImageResource; import com.google.gwt.resources.client.ClientBundle.Source; public interface FimesReportTreeStructureResources extends ClientBundle { -public static final FimesReportTreeStructureResources INSTANCE = GWT.create(FimesReportTreeStructureResources.class); - + public static final FimesReportTreeStructureResources INSTANCE = GWT.create(FimesReportTreeStructureResources.class); + @Source("report.png") ImageResource root(); @Source("page.png") ImageResource section(); - @Source("text_heading_1.png") + @Source("heading_1.png") ImageResource heading1(); - - @Source("text_heading_2.png") + + @Source("heading_2.png") ImageResource heading2(); - - @Source("text_heading_3.png") + + @Source("heading_3.png") ImageResource heading3(); - - @Source("text_heading_4.png") + + @Source("heading_4.png") ImageResource heading4(); - + + @Source("heading_5.png") + ImageResource heading5(); + @Source("text_dropcaps.png") ImageResource text(); - + @Source("table.png") ImageResource table(); - + @Source("image.png") ImageResource image(); - - @Source("information.png") + + @Source("instruction.png") ImageResource instructions(); - + @Source("comments.png") ImageResource comments(); + @Source("sequence.png") + ImageResource sequence(); + + @Source("checkbox.png") + ImageResource checkbox(); + + @Source("radio.png") + ImageResource radio(); + + @Source("reference.png") + ImageResource reference(); + } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/checkbox.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/checkbox.png new file mode 100644 index 0000000..8ca5395 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/checkbox.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_1.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_1.png new file mode 100644 index 0000000..804f95d Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_1.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_2.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_2.png new file mode 100644 index 0000000..f85964c Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_2.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_3.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_3.png new file mode 100644 index 0000000..a5972de Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_3.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_4.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_4.png new file mode 100644 index 0000000..b14e4d0 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_4.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_5.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_5.png new file mode 100644 index 0000000..0c07006 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/heading_5.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/information.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/information.png deleted file mode 100644 index 12cd1ae..0000000 Binary files a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/information.png and /dev/null differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/instruction.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/instruction.png new file mode 100644 index 0000000..1b37646 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/instruction.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/radio.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/radio.png new file mode 100644 index 0000000..f83a254 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/radio.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/reference.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/reference.png new file mode 100644 index 0000000..7857536 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/reference.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/sequence.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/sequence.png new file mode 100644 index 0000000..3a57e67 Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/sequence.png differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_1.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_1.png deleted file mode 100644 index 9c122e9..0000000 Binary files a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_1.png and /dev/null differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_2.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_2.png deleted file mode 100644 index fbd8765..0000000 Binary files a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_2.png and /dev/null differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_3.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_3.png deleted file mode 100644 index c7836cf..0000000 Binary files a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_3.png and /dev/null differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_4.png b/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_4.png deleted file mode 100644 index 4e929ea..0000000 Binary files a/src/main/java/org/gcube/portlets/user/reportgenerator/client/resources/text_heading_4.png and /dev/null differ diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/BasicTextArea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/BasicTextArea.java index 031ff2a..1a2bcf4 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/BasicTextArea.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/BasicTextArea.java @@ -1,6 +1,9 @@ package org.gcube.portlets.user.reportgenerator.client.targets; +import java.util.List; + import org.gcube.portlets.d4sreporting.common.shared.ComponentType; +import org.gcube.portlets.d4sreporting.common.shared.Metadata; import org.gcube.portlets.user.reportgenerator.client.UUID; import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; @@ -8,8 +11,6 @@ import com.google.gwt.event.dom.client.FocusEvent; import com.google.gwt.event.dom.client.FocusHandler; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; -import com.google.gwt.event.dom.client.MouseDownEvent; -import com.google.gwt.event.dom.client.MouseDownHandler; import com.google.gwt.event.dom.client.MouseOutEvent; import com.google.gwt.event.dom.client.MouseOutHandler; import com.google.gwt.user.client.ui.RichTextArea; @@ -23,7 +24,9 @@ import com.google.gwt.user.client.ui.Widget; */ public class BasicTextArea extends TextArea { private String myId; - + //the properties associated + private List metas; + public BasicTextArea(ComponentType type, final Presenter presenter, int left, int top, final int width, final int height, boolean hasComments, boolean showClose) { myId = UUID.uuid(16); @@ -73,6 +76,18 @@ public class BasicTextArea extends TextArea { public RichTextArea getRichTextArea() { return null; } + + + + public List getMetadata() { + return metas; + } + + + public void setMetadata(List metas) { + this.metas = metas; + } + /** * This method actually makes resizable the textArea diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/HeadingTextArea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/HeadingTextArea.java index bbfd02b..f3469b5 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/HeadingTextArea.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/HeadingTextArea.java @@ -1,6 +1,9 @@ package org.gcube.portlets.user.reportgenerator.client.targets; +import java.util.List; + import org.gcube.portlets.d4sreporting.common.shared.ComponentType; +import org.gcube.portlets.d4sreporting.common.shared.Metadata; import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; import com.google.gwt.event.dom.client.MouseOutEvent; @@ -19,7 +22,7 @@ public class HeadingTextArea extends ReportTextArea { private TextArea textArea = new TextArea(); private VerticalPanel myPanel; private Presenter presenter; - + private List metas; int currHeight = 0; @@ -85,5 +88,13 @@ public class HeadingTextArea extends ReportTextArea { textArea.setText(text); } + public List getMetadata() { + return metas; + } + + + public void setMetadata(List metas) { + this.metas = metas; + } } 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 23b2910..09b73ae 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 @@ -31,11 +31,17 @@ import org.apache.commons.io.IOUtils; import org.gcube.application.framework.accesslogger.library.impl.AccessLogger; import org.gcube.application.framework.core.session.ASLSession; import org.gcube.application.framework.core.session.SessionManager; -import org.gcube.application.reporting.ReportSequence; import org.gcube.application.reporting.ReportsModeler; +import org.gcube.application.reporting.component.Heading; +import org.gcube.application.reporting.component.Instruction; +import org.gcube.application.reporting.component.ReportSequence; +import org.gcube.application.reporting.component.TextInput; +import org.gcube.application.reporting.component.Title; +import org.gcube.application.reporting.reference.Column; import org.gcube.application.reporting.reference.DBTableRow; import org.gcube.application.reporting.reference.ReferenceReport; import org.gcube.application.reporting.reference.ReferenceReportType; +import org.gcube.application.rsg.service.dto.NameValue; import org.gcube.application.rsg.service.dto.ReportEntry; import org.gcube.application.rsg.service.dto.ReportType; import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager; @@ -67,7 +73,6 @@ import org.gcube.portlets.d4sreporting.common.server.ServiceUtil; import org.gcube.portlets.d4sreporting.common.shared.BasicComponent; import org.gcube.portlets.d4sreporting.common.shared.BasicSection; import org.gcube.portlets.d4sreporting.common.shared.ComponentType; -import org.gcube.portlets.d4sreporting.common.shared.Metadata; import org.gcube.portlets.d4sreporting.common.shared.Model; import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries; import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence; @@ -1468,7 +1473,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe type.setTypeIdentifier("Vme"); for (ReportEntry re : getFakeReports(type)) { - toReturn.add(new ItemSelectableBean(""+re.getId(), re.getName(), "", VMETypeIdentifier.Vme.toString())); + toReturn.add(new ItemSelectableBean(""+re.getId(), re.getNameValueList().get(0).getValue(), "", VMETypeIdentifier.Vme.toString())); } return toReturn; @@ -1487,7 +1492,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe type.setTypeIdentifier(refType.toString()); for (ReportEntry re : getFakeReports(type)) { - toReturn.add(new ItemSelectableBean(""+re.getId(), re.getName(), "", refType.toString())); + toReturn.add(new ItemSelectableBean(""+re.getId(), re.getNameValueList().get(0).getValue(), "", refType.toString())); } return toReturn; } @@ -1501,7 +1506,11 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe for (int i = 0; i < n; i++) { re = new ReportEntry(); re.setId(i); - re.setName( "VME Name " + i); + List namesValues = new ArrayList(); + NameValue name = new NameValue(); + name.setName( "VME Name " + i); + namesValues.add(name); + re.setNameValueList(namesValues); toReturn.add(re); } } else { @@ -1509,7 +1518,11 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe for (int i = 0; i < n; i++) { re = new ReportEntry(); re.setId(i); - re.setName( type.getTypeIdentifier() + "-" + i); + List namesValues = new ArrayList(); + NameValue name = new NameValue(); + name.setName(type.getTypeIdentifier() + "-" + i); + namesValues.add(name); + re.setNameValueList(namesValues); toReturn.add(re); } } @@ -1527,14 +1540,13 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe new Date(), getASLSession().getUsername() ); - rm.addInstruction(null); - rm.addTitle(name, false); - rm.addHeading(1, "VME Name (Non Editable) "); - rm.addTextInput("Corner Rise Seamounts"); - rm.addHeading(2, "This is a Heading of Level 2 that is editable", false); - rm.addTextInput("Corner Rise Seamounts2"); - rm.addHeading(3, "This is a Heading of Level 3 that is editable", false); - rm.addTextInput(); + rm.add(new Instruction(null)); + rm.add(new Title(name, false)); + rm.add(new Heading(1, "VME Name (Non Editable) ")); + rm.add(new TextInput("Corner Rise Seamounts")); + rm.add(new Heading(2, "This is a Heading of Level 2 that is editable")); + rm.add(new TextInput("Corner Rise Seamounts again")); + rm.add(new TextInput()); rm.nextSection(); rm = addSection2(rm); try { @@ -1559,20 +1571,19 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe //construct the options (the references) ArrayList dBTableRows = new ArrayList(); - ArrayList md = new ArrayList(); + ArrayList md = new ArrayList(); Random generator = new Random(); int year = generator.nextInt(15) + 2000; //construct the references - md.add(new Metadata("Meeting Date", ""+year)); - md.add(new Metadata("Report Summary", "Aenean vulputate ac dui eu interdum. Nullam tincidunt hendrerit sollicitudin.")); - md.add(new Metadata("Committee", "Lorem ipsum dolor sit amet, consectetur adipiscing elit")); - md.add(new Metadata("URL", "http://archive.nafo.int/open/fc/2012/fcdoc12-01.pdf")); - md.add(new Metadata("Citation", "(Rossi et Al) adipiscing elit oekfha lfkahjf lakjfha lkfahjf alkjdfh ")); - md.add(new Metadata("Type", "The type")); + md.add(new Column("Meeting Date", ""+year)); + md.add(new Column("Report Summary", "Aenean vulputate ac dui eu interdum. Nullam tincidunt hendrerit sollicitudin.")); + md.add(new Column("Committee", "Lorem ipsum dolor sit amet, consectetur adipiscing elit")); + md.add(new Column("URL", "http://archive.nafo.int/open/fc/2012/fcdoc12-01.pdf")); + md.add(new Column("Citation", "(Rossi et Al) adipiscing elit oekfha lfkahjf lakjfha lkfahjf alkjdfh ")); + md.add(new Column("Type", "The type")); dBTableRows.add(new DBTableRow("primaryKey", md)); - - rm.addReference(new ReferenceReport(ReferenceReportType.InformationSource, dBTableRows)); + rm.add(new ReferenceReport(ReferenceReportType.InformationSource, dBTableRows)); try { return rm.getReportInstance(); } catch (Exception e) { @@ -1582,31 +1593,29 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe } private ReportsModeler addSection2(ReportsModeler rm) { - rm.addHeading(1, "Specific Measure"); - ReportSequence seq = new ReportSequence(); - seq.addHeading(2, "year"); - seq.addTextInput(); - seq.addHeading(2, "Validity Period - Start"); - seq.addTextInput(); - seq.addHeading(2, "Validity Period - End"); - seq.addTextInput(); - + rm.add(new Heading(1, "Specific Measure")); + ReportSequence seq = new ReportSequence(UUID.randomUUID().toString()); + seq.add(new Heading(2, "Year")); + seq.add(new TextInput()); + seq.add(new Heading(2, "Validity Period - Start")); + seq.add(new TextInput()); + seq.add(new Heading(2, "Validity Period - End")); + seq.add(new TextInput()); //construct the options (the references) ArrayList dBTableRows = new ArrayList(); - ArrayList md = new ArrayList(); + ArrayList md = new ArrayList(); //construct the references - md.add(new Metadata("Meeting Date", "2009")); - md.add(new Metadata("Report Summary", "Aenean vulputate ac dui eu interdum. Nullam tincidunt hendrerit sollicitudin.")); - md.add(new Metadata("Committee", "Lorem ipsum dolor sit amet, consectetur adipiscing elit")); - md.add(new Metadata("URL", "http://archive.nafo.int/open/fc/2012/fcdoc12-01.pdf")); - md.add(new Metadata("Citation", "(Rossi et Al) adipiscing elit oekfha lfkahjf lakjfha lkfahjf alkjdfh ")); - md.add(new Metadata("Type", "The type")); + md.add(new Column("Meeting Date", "2009")); + md.add(new Column("Report Summary", "Aenean vulputate ac dui eu interdum. Nullam tincidunt hendrerit sollicitudin.")); + md.add(new Column("Committee", "Lorem ipsum dolor sit amet, consectetur adipiscing elit")); + md.add(new Column("URL", "http://archive.nafo.int/open/fc/2012/fcdoc12-01.pdf")); + md.add(new Column("Citation", "(Rossi et Al) adipiscing elit oekfha lfkahjf lakjfha lkfahjf alkjdfh ")); + md.add(new Column("Type", "The type")); dBTableRows.add(new DBTableRow("primaryKey", md)); - seq.addReference(new ReferenceReport(ReferenceReportType.InformationSource, dBTableRows)); - rm.addSequence("a key", seq); - + seq.add(new ReferenceReport(ReferenceReportType.InformationSource, dBTableRows)); + rm.add(seq); return rm; } diff --git a/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml b/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml index 99663ec..827c2c1 100644 --- a/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/reportgenerator/ReportGenerator.gwt.xml @@ -4,7 +4,7 @@ - +