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 @@
-
+