diff --git a/.classpath b/.classpath
index 0383786..06d096f 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 d5e5d52..b3aab8d 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.4-SNAPSHOT
+lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.6.6-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index a5078d4..400921f 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -8,15 +8,6 @@
uses
-
- uses
-
-
- uses
-
-
- uses
-
uses
diff --git a/pom.xml b/pom.xml
index 38f0f4f..c55bae7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,8 +12,8 @@
org.gcube.portlets.user
reports
war
- 4.6.4-SNAPSHOT
- gCube Reports Portlet
+ 4.6.6-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 9ee314d..861e9a0 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
@@ -21,6 +21,7 @@ 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.dom.client.Style.WhiteSpace;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.CellPanel;
@@ -113,7 +114,7 @@ public class Headerbar extends Composite{
MenuItem sectionsMenu;
MenuItem biblioMenu;
MenuItem exportMenu;
- MenuItem importMenu;
+ MenuItem vmeMenu;
MenuItemSeparator separator1;
MenuItemSeparator separator2;
MenuItemSeparator separator3;
@@ -145,8 +146,9 @@ public class Headerbar extends Composite{
exportMenu = getExportsMenu();
menuBar.addItem(exportMenu);
menuBar.addSeparator();
- importMenu = getImportMenu();
- menuBar.addItem(importMenu);
+ vmeMenu = getVMEMenu();
+ menuBar.addItem(vmeMenu);
+
mainLayout.setSize("100%", "24px");
mainLayout.setStyleName("menubar");
@@ -304,6 +306,41 @@ public class Headerbar extends Composite{
}
}
};
+
+ private MenuItem getVMEMenu() {
+ MenuBar importMenu = new MenuBar(true);
+
+ importMenu.setAnimationEnabled(true);
+ MenuItem toReturn = new MenuItem("VME Options", importMenu);
+ toReturn.getElement().getStyle().setWhiteSpace(WhiteSpace.NOWRAP);
+
+ Command importVMEReport = new Command() {
+ public void execute() {
+ presenter.showVMEImportDialog();
+ }
+ };
+
+ importVME = new MenuItem(IMPORT_VME, true, importVMEReport);
+
+ 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);
+ }
+ }
+ importMenu.addSeparator();
+ MenuItem exportVME = new MenuItem("Export Current to VME-DB", true, importVMEReport);
+ importMenu.addItem(exportVME);
+
+ return toReturn;
+ }
/**
*
@@ -344,40 +381,6 @@ public class Headerbar extends Composite{
return toReturn;
}
- private MenuItem getImportMenu() {
- MenuBar importMenu = new MenuBar(true);
-
- importMenu.setAnimationEnabled(true);
- MenuItem toReturn = new MenuItem("Import", importMenu);
-
- Command importVMEReport = new Command() {
- public void execute() {
- presenter.showVMEImportDialog();
- }
- };
-
- importVME = new MenuItem(IMPORT_VME, true, importVMEReport);
-
- MenuBar importVMERef = new MenuBar(true);
- MenuItem importVMERefItem = new MenuItem(IMPORT_VME_REF, importVMERef);
-
- //add the submenu items for report refs
- for (final VMETypeIdentifier type : VMETypeIdentifier.values()) {
- if (type != VMETypeIdentifier.Vme) {
- MenuItem item = new MenuItem(type.getId(), true, new Command() {
- public void execute() {
- presenter.showVMERefAssociateDialog(type);
- }
- });
- importVMERef.addItem(item);
- }
- }
-
- importMenu.addItem(importVME);
- importMenu.addItem(importVMERefItem);
- return toReturn;
- }
-
private MenuItem getExportsMenu() {
MenuBar exportsMenu = new MenuBar(true);
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 6bedbde..f8e1c5b 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
@@ -145,15 +145,16 @@ public class Presenter {
eventBus.addHandler(SelectedReportEvent.TYPE, new SelectedReportEventHandler() {
@Override
public void onReportSelected(SelectedReportEvent event) {
- if (event.getType() == VMETypeIdentifier.Vme) {
- importVMEReport(event.getId());
- } else {
+ if (event.isAssociation()) {
try {
associateVMRReportRef(event.getType(), event.getId());
} catch (Exception e) {
e.printStackTrace();
}
}
+ else {
+ importVMEReport(event.getId(), event.getType());
+ }
}
});
@@ -190,10 +191,10 @@ public class Presenter {
switch (event.getOperationResult()) {
case SAVED:
- refreshWorkspace();
+ //refreshWorkspace();
break;
case SAVED_OPEN:
- refreshWorkspace();
+ // refreshWorkspace();
toolBoxPanel.showExportedVersion(event.getItemId(), event.getItemId());
break;
default:
@@ -263,7 +264,7 @@ public class Presenter {
public void onSuccess(Model wfReport) {
dlg.hide();
- loadModel(wfReport);
+ loadModel(wfReport, true);
header.setMenuForWorkflowDocument(sessionInfo.isEditable());
titleBar.addWorkflowButtons(true);
pollServiceForLockRenewal();
@@ -278,7 +279,7 @@ public class Presenter {
public void onSuccess(Model result) {
dlg.hide();
if (result != null) {
- loadModel(result);
+ loadModel(result, true);
header.enableExports();
} else
commonCommands.newTemplate.execute();
@@ -318,7 +319,7 @@ public class Presenter {
@Override
public void onSuccess(Model toLoad) {
if (toLoad != null)
- loadModel(toLoad);
+ loadModel(toLoad, true);
else
Window.alert("Could not Load template, error on server: ");
}
@@ -455,20 +456,7 @@ public class Presenter {
return GWT.getHostPageBaseURL() + "../../";
}
- /**
- *
- */
- public void addTextToolBar() {
-
- RichTextToolbar rtbar = new RichTextToolbar(new RichTextArea(), false, getCommands(), true);
- SimplePanel deco = new SimplePanel();
- rtbar.setEnabled(false);
- deco.add(rtbar);
- deco.setSize("100%", "25");
- rtbar.setWidth("100%");
- ReportGenerator.get().getToolbarPanel().clear();
- ReportGenerator.get().getToolbarPanel().add(deco);
- }
+
/**
* remove the user-added components from the workspace, and from the model
*
@@ -490,7 +478,7 @@ public class Presenter {
titleBar.getSectionSwitchPanel().setPageDisplayer(model.getCurrentPage(), model.getTotalPages());
titleBar.getSectionSwitchPanel().setVisible(false);
resizeWorkingArea(model.getPageWidth(), model.getPageHeight());
-
+
toolBoxPanel.clear();
toolBoxPanel.collapse();
@@ -595,56 +583,6 @@ public class Presenter {
this.@org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter::location = $wnd.location.href;
}-*/;
-
- /**
- *
- * @param area .
- */
- public void disaableTextToolBar(RichTextArea area) {
-
- }
- /**
- * used when the resizing textAreas depending on the content
- * @param myY a
- * @param pixel a
- */
- public void shiftComponentsByTextArea(int myY, int pixel) {
- int section = model.getCurrentPage();
- List comps = model.getSectionComponent(section);
-
- if (comps != null) {
- for (TemplateComponent tc : comps) {
- if (tc.getType() != ComponentType.FAKE_TEXTAREA) {
- if (tc.getY() > myY) {
- GWT.log("FOUND " + tc.getX() + ", " + tc.getY(), null);
- GWT.log("pixel " + pixel , null);
- int newY = tc.getY()+pixel;// : tc.getY()-pixel;
- //
- tc.setY(newY);
- GWT.log("moveWidget " + tc.getX() + ", " + tc.getY(), null);
- moveWidget(tc.getContent(), tc.getX(),newY);
- GWT.log("MOVED " + tc.getX() + ", " + tc.getY(), null);
- }
- }
- //Window.alert("myY - tc.getY() " + myY + ", " + tc.getY());
-
- }
- }
-
- }
-
- /**
- *
- * @param toMove .
- * @param left .
- * @param top .
- */
- public void moveWidget(Widget toMove, int left, int top) {
- //wp.getMainLayout().add(toMove);
- wp.moveWidget(toMove, left, top);
- }
-
-
/**
* Import a Section in the View and in the Model
* @param toLoad the SerializableModel instance where toget the section
@@ -678,7 +616,22 @@ public class Presenter {
while (! ( model.getCurrentPage() == sect2Seek) )
nextPageButtonClicked();
}
+ /**
+ *
+ */
+ public void addTextToolBar(boolean enableCommands) {
+ RichTextToolbar rtbar = new RichTextToolbar(new RichTextArea(), false, getCommands(), true);
+ rtbar.enableCommands(enableCommands);
+ currentSelectedToolbar = rtbar;
+ SimplePanel deco = new SimplePanel();
+ rtbar.setEnabled(false);
+ deco.add(rtbar);
+ deco.setSize("100%", "25");
+ rtbar.setWidth("100%");
+ ReportGenerator.get().getToolbarPanel().clear();
+ ReportGenerator.get().getToolbarPanel().add(deco);
+ }
/**
* enable the format text toolbar for the given Rich Textarea passed as argument
* @param d4sArea the enabled text area
@@ -697,7 +650,7 @@ public class Presenter {
rtbar.setWidth("100%");
ReportGenerator.get().getToolbarPanel().add(deco);
}
-
+
/**
* enable the format text toolbar for the given Rich Textarea passed as argument
* @param d4sArea the enabled text area
@@ -818,29 +771,11 @@ public class Presenter {
titleBar.getSectionSwitchPanel().showPrevButton();
}
-
- /**
- * load the template to edit in the MODEL and in the VIEW
- * @param serializedpath the temp file to open
- */
- public void openImportedFimesXML(String serializedpath) {
- model.getModelService().readImportedModel(serializedpath, new AsyncCallback() {
- @Override
- public void onSuccess(Model toLoad) {
- loadModel(toLoad);
- }
- @Override
- public void onFailure(Throwable caught) {
- Window.alert("Could not Load report, please try again later: " + caught.getMessage());
- }
- });
- }
-
/**
*
* @param toLoad
*/
- private void loadModel(Model toLoad) {
+ private void loadModel(Model toLoad, boolean savingEnabled) {
//reset the UI
cleanAllNotSession();
@@ -854,7 +789,7 @@ public class Presenter {
titleBar.getSectionSwitchPanel().setVisible(true);
resizeWorkingArea(model.getPageWidth(), model.getPageHeight());
- addTextToolBar();
+ addTextToolBar(savingEnabled);
int currPage = model.getCurrentPage();
//load the UI components of the current page
GWT.log("READ CURR PAGE"+currPage, null);
@@ -866,7 +801,7 @@ public class Presenter {
}
if (currPage > 1)
titleBar.getSectionSwitchPanel().showPrevButton();
-
+
//show the structure
showReportStructure();
}
@@ -904,7 +839,7 @@ public class Presenter {
titleBar.setTemplateName(model.getTemplateName());
titleBar.getSectionSwitchPanel().setPageDisplayer(model.getCurrentPage(), model.getTotalPages());
titleBar.getSectionSwitchPanel().setVisible(true);
- addTextToolBar();
+ addTextToolBar(true);
int currPage = model.getCurrentPage();
//load the UI components of the current page
GWT.log("READ CURR PAGE"+currPage, null);
@@ -1188,7 +1123,7 @@ public class Presenter {
public void showReportStructure() {
toolBoxPanel.showStructure(new ReportStructurePanel(eventBus, model.getSerializableModel(), ToolboxPanel.TOOLBOX_WIDTH+"px", ToolboxPanel.TOOLBOX_HEIGHT+"px"));
- }
+ }
public HorizontalPanel getExportsPanel() {
return exportsPanel;
@@ -1248,21 +1183,28 @@ public class Presenter {
*
*/
public void showVMEImportDialog() {
- ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus(), VMETypeIdentifier.Vme);
+ ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus(), VMETypeIdentifier.Vme, false);
dlg.show();
}
+ /**
+ *
+ */
+ public void showVMEReportRefImportDialog(VMETypeIdentifier refType) {
+ ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus(), refType, false);
+ dlg.show();
+ }
/**
*
*/
public void showVMERefAssociateDialog(VMETypeIdentifier refType) {
- ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus(), refType);
+ ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus(), refType, true);
dlg.show();
}
- private void importVMEReport(String reportId) {
+ private void importVMEReport(String reportId, final VMETypeIdentifier type) {
showLoading();
- reportService.importVMEReport(reportId, new AsyncCallback() {
+ reportService.importVMEReport(reportId, type, new AsyncCallback() {
@Override
public void onFailure(Throwable caught) {
Window.alert("Could not Load Report Model, error on server.: " + caught.getMessage());
@@ -1270,8 +1212,8 @@ public class Presenter {
@Override
public void onSuccess(Model toLoad) {
- if (toLoad != null)
- loadModel(toLoad);
+ if (toLoad != null)
+ loadModel(toLoad, type == VMETypeIdentifier.Vme);
else
Window.alert("Could not Load Report Model, error on server.");
}
@@ -1282,7 +1224,7 @@ public class Presenter {
private void associateVMRReportRef(VMETypeIdentifier type, String reportId) throws Exception {
GWT.log("Type="+type);
GWT.log("Id"+reportId);
- reportService.importVMEReportRef(reportId, type, new AsyncCallback() {
+ reportService.getVMEReportRef2Associate(reportId, type, new AsyncCallback() {
@Override
public void onFailure(Throwable caught) {
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 e765dd0..7341db3 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
@@ -132,7 +132,7 @@ public class ReportGenerator implements EntryPoint {
eastPanel.add(workSpacePanel);
eastPanel.add(divHidden);
bottomScrollerPanel.add(eastPanel);
- presenter.addTextToolBar();
+ presenter.addTextToolBar(true);
// Add image and button to the RootPanel
RootPanel.get("ReportGeneratorDIV").add(mainLayout);
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java
index f76feb2..9218b62 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportService.java
@@ -25,9 +25,9 @@ public interface ReportService extends RemoteService{
ArrayList listVMEReportRefByType(VMETypeIdentifier refType);
- Model importVMEReport(String id);
+ Model importVMEReport(String id, VMETypeIdentifier refType);
- Model importVMEReportRef(String id, VMETypeIdentifier refType);
+ Model getVMEReportRef2Associate(String id, VMETypeIdentifier refType);
String save(String filePath, String workspaceFolderId, String ItemName,
TypeExporter type, boolean overwrite)
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java
index 7be7eaa..c881d61 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportServiceAsync.java
@@ -77,10 +77,11 @@ public interface ReportServiceAsync {
void listVMEReports(AsyncCallback> callback);
- void importVMEReport(String id, AsyncCallback callback);
+ void importVMEReport(String id, VMETypeIdentifier refType,
+ AsyncCallback callback);
void listVMEReportRefByType(VMETypeIdentifier refType,
AsyncCallback> callback);
- void importVMEReportRef(String id, VMETypeIdentifier refType, AsyncCallback callback);
+ void getVMEReportRef2Associate(String id, VMETypeIdentifier refType, AsyncCallback callback);
}
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 cda6958..0c71234 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
@@ -30,8 +30,8 @@ public class ToolboxPanel extends VerticalPanel {
public ToolboxPanel(AppControllerExplorer appController) {
this.appController = appController;
- AsyncTreePanel tp = appController.getTree(TOOLBOX_WIDTH, TOOLBOX_HEIGHT);
- this.tp = tp;
+// AsyncTreePanel tp = appController.getTree(TOOLBOX_WIDTH, TOOLBOX_HEIGHT);
+// this.tp = tp;
// add(tp);
// this.appController.hideSharingFacilities(); //sharing disabled we have problems from Reports
}
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 6ac38ef..c3659ef 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
@@ -46,9 +46,10 @@ public class ImportVMEReportDialog extends Window {
*
* @param eventBus the bus to fire events into
*/
- public ImportVMEReportDialog(final HandlerManager eventBus, VMETypeIdentifier type) {
+ public ImportVMEReportDialog(final HandlerManager eventBus, VMETypeIdentifier type, final boolean isAssociation) {
this.eventBus = eventBus;
this.type = type;
+ setModal(true);
mainPanel.setHeaderVisible(false);
setWidth(WIDTH);
setHeight(HEIGHT);
@@ -78,7 +79,8 @@ public class ImportVMEReportDialog extends Window {
add(hp);
add(mainPanel);
showLoading();
- if (type == VMETypeIdentifier.Vme)
+ if (type == VMETypeIdentifier.Vme) {
+ setHeading("Select the VME");
reportService.listVMEReports(new AsyncCallback>() {
@Override
public void onFailure(Throwable caught) {
@@ -90,8 +92,10 @@ public class ImportVMEReportDialog extends Window {
mainPanel.unmask();
showAvailableReports(reports);
}
- });
+ });
+ }
else {
+ setHeading("Select the " + type.getId());
reportService.listVMEReportRefByType(type, new AsyncCallback>() {
@Override
public void onFailure(Throwable caught) {
@@ -101,7 +105,7 @@ public class ImportVMEReportDialog extends Window {
@Override
public void onSuccess(ArrayList refReports) {
mainPanel.unmask();
- showAvailableReferenceReports(refReports);
+ showAvailableReferenceReports(refReports, isAssociation);
}
});
}
@@ -110,7 +114,7 @@ public class ImportVMEReportDialog extends Window {
*
* @param reports
*/
- public void showAvailableReferenceReports(List reports) {
+ public void showAvailableReferenceReports(List reports, boolean isAssociation) {
ColumnModel cm = null;
List configs = new ArrayList();
@@ -127,7 +131,7 @@ public class ImportVMEReportDialog extends Window {
column.setHeader("Name");
column.setWidth(150);
configs.add(column);
-
+
cm = new ColumnModel(configs);
/**
@@ -158,13 +162,24 @@ public class ImportVMEReportDialog extends Window {
}
}));
- gridPanel.addButton(new Button("Edit Selected", new SelectionListener() {
- @Override
- public void componentSelected(ButtonEvent ce) {
- hide();
- eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), type));
- }
- }));
+ 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(), 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(), type, false));
+ }
+ }));
+ }
mainPanel.add(gridPanel);
mainPanel.setLayout(new FitLayout());
mainPanel.layout();
@@ -245,7 +260,7 @@ public class ImportVMEReportDialog extends Window {
@Override
public void componentSelected(ButtonEvent ce) {
hide();
- eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), VMETypeIdentifier.Vme));
+ eventBus.fireEvent(new SelectedReportEvent(grid.getSelectionModel().getSelectedItem().getId(), VMETypeIdentifier.Vme, false));
}
}));
mainPanel.add(gridPanel);
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEvent.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEvent.java
index 4664276..1451e33 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEvent.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEvent.java
@@ -8,11 +8,13 @@ public class SelectedReportEvent extends GwtEvent{
public static Type TYPE = new Type();
private final String id;
private final VMETypeIdentifier type;
+ private final boolean isAssociation;
- public SelectedReportEvent(String id, VMETypeIdentifier type) {
+ public SelectedReportEvent(String id, VMETypeIdentifier type, boolean isAssociation) {
super();
this.id = id;
this.type = type;
+ this.isAssociation = isAssociation;
}
public String getId() {
@@ -23,6 +25,10 @@ public class SelectedReportEvent extends GwtEvent{
return type;
}
+ public boolean isAssociation() {
+ return isAssociation;
+ }
+
@Override
public Type getAssociatedType() {
return TYPE;
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 860c9f5..a0834e7 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
@@ -377,10 +377,10 @@ public class TemplateComponent {
case REPORT_REFERENCE:
GWT.log("FOUND Master SEQUENCE trying getGroup");
- ReportReferences ref = (ReportReferences) sc.getPossibleContent();
- ArrayList tuple = ref.getTuples();
+ ReportReferences refs = (ReportReferences) sc.getPossibleContent();
+ ArrayList tuple = refs.getTuples();
- ClientReportReference cmSeq = new ClientReportReference(presenter, ref.getRefType(), tuple);
+ ClientReportReference cmSeq = new ClientReportReference(presenter, refs.getRefType(), tuple, refs.isSingleRelation());
this.content = cmSeq;
break;
}
@@ -498,7 +498,7 @@ public class TemplateComponent {
break;
case REPORT_REFERENCE:
ClientReportReference cRef = (ClientReportReference) this.content;
- ReportReferences ref = new ReportReferences(cRef.getRefType(), cRef.getTupleList());
+ ReportReferences ref = new ReportReferences(cRef.getRefType(), cRef.getTupleList(), cRef.isSingleRelation());
content = ref;
break;
}
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 6e0acbf..26710bf 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
@@ -2,15 +2,14 @@ package org.gcube.portlets.user.reportgenerator.client.targets;
import java.util.ArrayList;
-import org.gcube.portlets.d4sreporting.common.shared.Tuple;
+import org.gcube.portlets.d4sreporting.common.shared.BasicComponent;
import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence;
+import org.gcube.portlets.d4sreporting.common.shared.Tuple;
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import com.google.gwt.core.shared.GWT;
-import com.google.gwt.event.dom.client.HasClickHandlers;
-import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
@@ -27,19 +26,23 @@ public class ClientReportReference extends Composite implements ClientSequence {
private ArrayList tupleList;
private SequenceWidget first;
private Presenter p;
+ private boolean singleRelation; //allow or not to add new entries
/**
* s
* @param p
* @param ms
*/
- public ClientReportReference(Presenter p, String refType, ArrayList tupleList) {
+ public ClientReportReference(Presenter p, String refType, ArrayList tupleList, boolean singleRelation) {
this.p = p;
this.refType = refType;
this.tupleList = tupleList;
+ this.singleRelation = singleRelation;
for (Tuple seq : tupleList) {
if (myPanel.getWidgetCount()==0) { // if is the first one
first = getMasterSequence(seq);
+ if (isSingleRelation())
+ first.removeAddAnotherButton();
myPanel.add(first);
} else {
SequenceWidget seqW = new SequenceWidget(p, this, seq, false, false);
@@ -48,7 +51,7 @@ public class ClientReportReference extends Composite implements ClientSequence {
}
initWidget(myPanel);
}
-
+
/**
* the first seq has to behave differently
*/
@@ -56,11 +59,23 @@ public class ClientReportReference extends Composite implements ClientSequence {
SequenceWidget toReturn = new SequenceWidget(p, this, seq, true, false);
if (tupleList.size() == 1) {
toReturn.enableClear();
- toReturn.removeAddAnotherButton();
+ if (isTupleEmpty(tupleList.get(0))) {
+ toReturn.clearAssociation();
+ }
}
return toReturn;
}
+ private boolean isTupleEmpty(Tuple toCheck) {
+ boolean toReturn = false;
+ for (BasicComponent bc : toCheck.getGroupedComponents()) {
+ if (bc.getPossibleContent() == null)
+ return true;
+
+ }
+ return toReturn;
+
+ }
public ArrayList getTupleList() {
return tupleList;
@@ -72,6 +87,10 @@ public class ClientReportReference extends Composite implements ClientSequence {
}
+ public boolean isSingleRelation() {
+ return singleRelation;
+ }
+
@Override
public ArrayList getGroupedComponents() {
return groupedComponents;
@@ -105,7 +124,7 @@ public class ClientReportReference extends Composite implements ClientSequence {
tupleList.remove(toRemove.getSequence());
if (tupleList.size() == 1)
first.enableClear();
-
+
GWT.log("List Tuple Size = "+tupleList.size());
return toRemove;
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java
index b1b40e3..ce8d811 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java
@@ -102,7 +102,6 @@ public class D4sRichTextarea extends ReportTextArea {
div.setHTML(area.getHTML());
int newHeight = div.getOffsetHeight()+20 ;
if (newHeight > height-10 && newHeight != currHeight) {
- presenter.shiftComponentsByTextArea(myInstance.top, newHeight - currHeight);
resizePanel(width, div.getOffsetHeight());
//Window.alert("myInstance.top: " + myInstance.top);
presenter.resizeTemplateComponentInModel(myInstance, width, newHeight);
@@ -123,7 +122,6 @@ public class D4sRichTextarea extends ReportTextArea {
div.setHTML(area.getHTML());
int newHeight = div.getOffsetHeight()+20 ;
if (newHeight > height-10 && newHeight != currHeight) {
- presenter.shiftComponentsByTextArea(myInstance.top, newHeight - currHeight);
resizePanel(myPanel.getOffsetWidth(), div.getOffsetHeight());
//Window.alert("myInstance.top: " + myInstance.top);
presenter.resizeTemplateComponentInModel(myInstance, myPanel.getOffsetWidth()+5, newHeight);
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 e11d8b2..35d4f3a 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
@@ -1502,7 +1502,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
ArrayList toReturn = new ArrayList();
ReportType type = new ReportType();
type.setTypeIdentifier(refType.toString());
-
+
for (ReportEntry re : getFakeReports(type)) {
String name = re.getNameValueList().get(0).getValue();
toReturn.add(new VMEReportBean(""+re.getId(), "", name, -1));
@@ -1510,7 +1510,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
return toReturn;
}
-
+
private List getFakeReports(ReportType type, NameValue... filters) {
Random generator = new Random();
int n = generator.nextInt(15) + 5;
@@ -1520,7 +1520,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
for (int i = 0; i < n; i++) {
re = new ReportEntry();
re.setId(i);
-
+
NameValue rfmo = new NameValue();
rfmo.setName("Rfmo");
rfmo.setValue(i % 2 == 0 ? "NAFO" : "NEAFC");
@@ -1534,7 +1534,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
namesValues.add(rfmo);
namesValues.add(name);
namesValues.add(year);
-
+
re.setNameValueList(namesValues);
toReturn.add(re);
}
@@ -1556,36 +1556,58 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
}
@Override
- public Model importVMEReport(String id) {
- String reportName = "Sample VME Report imported with id: " + id;
- ReportsModeler rm = new ReportsModeler(
- UUID.randomUUID().toString(),
- reportName,
- getASLSession().getUsername(),
- new Date(),
- new Date(),
- getASLSession().getUsername()
- );
- rm.add(new Instruction(null));
- rm.add(new Title("Name for id " + id, 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);
- rm.nextSection();
- ReportComponent rp = new TextInput("With props and id");
- rp.setId(UUID.randomUUID().toString());
- rp.setProperties(new Property("theId", "theValue"));
- rm.add(rp);
-
- rp = new Heading(1, "Ciao!");
- rp.setId(UUID.randomUUID().toString());
- rp.setProperties(new Property("theId", "theValue"));
- rm.add(rp);
-
+ public Model importVMEReport(String id, VMETypeIdentifier refType) {
+ ReportsModeler rm = null;
+ if (refType == VMETypeIdentifier.Vme) {
+ String reportName = "Sample VME Report imported with id: " + id;
+ rm = new ReportsModeler(
+ UUID.randomUUID().toString(),
+ reportName,
+ getASLSession().getUsername(),
+ new Date(),
+ new Date(),
+ getASLSession().getUsername()
+ );
+ rm.add(new Instruction(null));
+ rm.add(new Title("Name for id " + id, 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);
+ rm.nextSection();
+ ReportComponent rp = new TextInput("With props and id");
+ rp.setId(UUID.randomUUID().toString());
+ rp.setProperties(new Property("theId", "theValue"));
+ rm.add(rp);
+
+ rp = new Heading(1, "Ciao!");
+ rp.setId(UUID.randomUUID().toString());
+ rp.setProperties(new Property("theId", "theValue"));
+ rm.add(rp);
+ }
+ else {
+ String reportName = refType.getId() + " VME Reference Report with id: " + id;
+ rm = new ReportsModeler(
+ UUID.randomUUID().toString(),
+ reportName,
+ getASLSession().getUsername(),
+ new Date(),
+ new Date(),
+ getASLSession().getUsername()
+ );
+ rm.add(new Title("Test" + refType.getId()));
+ rm.add(new Heading(2, "Year"));
+ rm.add(new TextInput());
+ rm.add(new Heading(2, "Validity Period - Start"));
+ rm.add(new TextInput());
+ rm.add(new Heading(2, "Validity Period - End"));
+ rm.add(new TextInput());
+ rm.add(getTestReference(ReferenceReportType.InformationSource, false));
+ rm.add(new Heading(1, "Ciao!"));
+ }
try {
return rm.getReportInstance();
} catch (Exception e) {
@@ -1594,8 +1616,8 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
return null;
}
-
- public Model importVMEReportRef(String id, VMETypeIdentifier refType) {
+ @Override
+ public Model getVMEReportRef2Associate(String id, VMETypeIdentifier refType) {
String reportName = "Sample Reference Report: " + id;
ReportsModeler rm = new ReportsModeler(
UUID.randomUUID().toString(),
@@ -1623,7 +1645,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
rm.add(new ReferenceReport(ReferenceReportType.InformationSource, dBTableRows));
try {
Model toReturn = rm.getReportInstance();
- ReportsReader.readReportStructure(toReturn);
+ //ReportsReader.readReportStructure(toReturn);
return toReturn;
} catch (Exception e) {
e.printStackTrace();
@@ -1631,6 +1653,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
return null;
}
+
private ReportsModeler addSection2(ReportsModeler rm) {
rm.add(new Heading(1, "Specific Measure"));
ReportSequence seq = new ReportSequence(UUID.randomUUID().toString());
@@ -1640,34 +1663,42 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
seq.add(new TextInput());
seq.add(new Heading(2, "Validity Period - End"));
seq.add(new TextInput());
-
+ seq.add(getTestReference(ReferenceReportType.InformationSource, true));
+ rm.add(seq);
+ return rm;
+ }
+ /**
+ * TODO: remove
+ * @return
+ */
+ private ReferenceReport getTestReference(ReferenceReportType type, boolean single) {
//construct the options (the references)
ArrayList dBTableRows = new ArrayList();
ArrayList md = new ArrayList();
+
+ Random generator = new Random();
+ int year = generator.nextInt(15) + 2000;
//construct the references
- md.add(new Column("Meeting Date", "2009"));
+ 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));
- seq.add(new ReferenceReport(ReferenceReportType.InformationSource, dBTableRows));
- rm.add(seq);
- return rm;
+ return new ReferenceReport(type, dBTableRows, single);
}
/**
* TODO: remove once you get real names
* @return
*/
private static String generateRandomWord() {
- Random random = new Random();
- char[] word = new char[random.nextInt(8)+3]; // words of length 3 through 10. (1 and 2 letter words are boring.)
- for(int j = 0; j < word.length; j++)
- {
- word[j] = (char)('a' + random.nextInt(26));
- }
- return new String(word);
+ Random random = new Random();
+ char[] word = new char[random.nextInt(7)+5]; // words of length 5 through 12
+ for(int j = 0; j < word.length; j++) {
+ word[j] = (char)('a' + random.nextInt(26));
+ }
+ return new String(word);
}
}