diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 400921f..a5078d4 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -8,6 +8,15 @@
uses
+
+ uses
+
+
+ uses
+
+
+ uses
+
uses
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 74ccf87..2a258d4 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
@@ -131,9 +131,9 @@ public class Headerbar extends Composite{
separator1 = menuBar.addSeparator();
viewMenu = getViewMenu();
menuBar.addItem(viewMenu);
- separator2 = menuBar.addSeparator();
- sectionsMenu = getSectionMenu();
- menuBar.addItem(sectionsMenu);
+// separator2 = menuBar.addSeparator();
+// sectionsMenu = getSectionMenu();
+// menuBar.addItem(sectionsMenu);
separator3 = menuBar.addSeparator();
biblioMenu = getBiblioMenu();
menuBar.addItem(biblioMenu);
@@ -447,21 +447,12 @@ public class Headerbar extends Composite{
viewMetadata.setHTML("View Metadata");
viewMetadata.setScheduledCommand(openMetadata);
- viewComments.setHTML(VIEW_USER_COMMENTS);
- viewComments.setScheduledCommand(showUserComments);
- discardSection.setHTML("Discard current");
- discardSection.setScheduledCommand(discardSectionCom);
+// discardSection.setHTML("Discard current");
+// discardSection.setScheduledCommand(discardSectionCom);
}
- /**
- *
- */
- Command showUserComments = new Command() {
- public void execute() {
- presenter.showSectionUserCommentsTooltips();
- }
- };
+
/**
* rewrite with setHTML to remove the gray color
* @param d4sArea
@@ -620,11 +611,6 @@ public class Headerbar extends Composite{
};
- ScheduledCommand discardSectionCom = new ScheduledCommand() {
- public void execute() {
- presenter.discardCurrentSection();
- }
- };
//************** COMMANDS ********************************////
Command addBiblioEntryCommand = new Command() {
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 753bb07..4d8239d 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
@@ -21,6 +21,7 @@ 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.ImportVMEReportDialog;
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;
@@ -32,6 +33,8 @@ import org.gcube.portlets.user.reportgenerator.client.events.RemovedCitationEven
import org.gcube.portlets.user.reportgenerator.client.events.RemovedCitationEventHandler;
import org.gcube.portlets.user.reportgenerator.client.events.RemovedUserCommentEvent;
import org.gcube.portlets.user.reportgenerator.client.events.RemovedUserCommentEventHandler;
+import org.gcube.portlets.user.reportgenerator.client.events.SelectedReportEvent;
+import org.gcube.portlets.user.reportgenerator.client.events.SelectedReportEventHandler;
import org.gcube.portlets.user.reportgenerator.client.model.ExportManifestationType;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel;
@@ -62,8 +65,6 @@ import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEvent;
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEventHandler;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import org.gcube.portlets.widgets.userselection.client.UserSelectionDialog;
-import org.gcube.portlets.widgets.userselection.client.events.SelectedUserEvent;
-import org.gcube.portlets.widgets.userselection.client.events.SelectedUserEventHandler;
import org.gcube.portlets.widgets.userselection.client.events.UsersFetchedEvent;
import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean;
@@ -145,18 +146,18 @@ public class Presenter {
private void handleEvents() {
- eventBus.addHandler(SelectedUserEvent.TYPE, new SelectedUserEventHandler() {
+ eventBus.addHandler(SelectedReportEvent.TYPE, new SelectedReportEventHandler() {
@Override
- public void onSelectedUser(SelectedUserEvent event) {
- itemSelectionDialog.hide();
- if (event.getSelectedUser().getType().equals(VMETypeIdentifier.Vme.toString()))
- importVMEReport(event.getSelectedUser());
- else
+ public void onReportSelected(SelectedReportEvent event) {
+ if (event.getType() == VMETypeIdentifier.Vme) {
+ importVMEReport(event.getId());
+ } else {
try {
- associateVMRReportRef(event.getSelectedUser());
+ associateVMRReportRef(event.getType(), event.getId());
} catch (Exception e) {
e.printStackTrace();
}
+ }
}
});
@@ -333,15 +334,6 @@ public class Presenter {
});
}
- public void showSectionUserCommentsTooltips() {
- TemplateSection currSection = model.getSection(model.getCurrentPage());
- for (TemplateComponent tc : currSection.getAllComponents()) {
- if (tc.getContent() instanceof ReportTextArea && tc.getUserComments() != null) {
- ReportTextArea rpta = (ReportTextArea) tc.getContent();
- rpta.showComment(tc.getUserComments());
- }
- }
- }
/**
* called when a citation is added
* @param citekey .
@@ -502,9 +494,10 @@ public class Presenter {
titleBar.getSectionSwitchPanel().setPageDisplayer(model.getCurrentPage(), model.getTotalPages());
titleBar.getSectionSwitchPanel().setVisible(false);
resizeWorkingArea(model.getPageWidth(), model.getPageHeight());
+
+ toolBoxPanel.clear();
+ toolBoxPanel.collapse();
- //persists the change in the session
- model.storeInSession();
}
/**
* remove the user-added components from the workspace (in the current page) but not from the model
@@ -607,14 +600,6 @@ public class Presenter {
}-*/;
- /**
- *
- * @param toChange .
- */
- public void storeChangeInSession(Widget toChange) {
- model.storeInSession();
- }
-
/**
*
* @param area .
@@ -739,6 +724,7 @@ public class Presenter {
public void generateManifestation(final TemplateModel model, final ExportManifestationType type) {
GWT.runAsync(ReportExporterPopup.class, new RunAsyncCallback() {
+ @SuppressWarnings("incomplete-switch")
@Override
public void onSuccess() {
ReportExporterPopup popup = new ReportExporterPopup(eventBus);
@@ -1266,23 +1252,8 @@ public class Presenter {
*
*/
public void showVMEImportDialog() {
- itemSelectionDialog = new UserSelectionDialog("Import: Please select the VME Report", eventBus);
- itemSelectionDialog.center();
- itemSelectionDialog.show();
- reportService.listVMEReports(new AsyncCallback>() {
- @Override
- public void onFailure(Throwable caught) {
- //handled by the Widget
- }
-
- @Override
- public void onSuccess(ArrayList result) {
- for (ItemSelectableBean item : result) {
- item.setIconURL(ReportConstants.REPORT_ICON);
- }
- eventBus.fireEvent(new UsersFetchedEvent(result));
- }
- });
+ ImportVMEReportDialog dlg = new ImportVMEReportDialog(getEventBus());
+ dlg.show();
}
/**
@@ -1308,9 +1279,9 @@ public class Presenter {
});
}
- private void importVMEReport(ItemSelectableBean selectedReport) {
+ private void importVMEReport(String reportId) {
showLoading();
- reportService.importVMEReport(selectedReport.getId(), selectedReport.getName(), new AsyncCallback() {
+ reportService.importVMEReport(reportId, new AsyncCallback() {
@Override
public void onFailure(Throwable caught) {
Window.alert("Could not Load Report Model, error on server.: " + caught.getMessage());
@@ -1327,8 +1298,8 @@ public class Presenter {
}
- private void associateVMRReportRef (ItemSelectableBean selectedReport) throws Exception {
- reportService.importVMEReportRef(selectedReport.getId(), getTypeIdFromString(selectedReport.getType()), new AsyncCallback() {
+ private void associateVMRReportRef (VMETypeIdentifier type, String reportId) throws Exception {
+ reportService.importVMEReportRef(reportId, type, new AsyncCallback() {
@Override
public void onFailure(Throwable caught) {
@@ -1367,8 +1338,10 @@ public class Presenter {
return VMETypeIdentifier.InformationSource;
else if (theType.equals("FisheryAreasHistory"))
return VMETypeIdentifier.FisheryAreasHistory;
- else if (theType.equals("VmesHistory"))
- return VMETypeIdentifier.VmesHistory;
+ else if (theType.equals("VMEsHistory"))
+ return VMETypeIdentifier.VMEsHistory;
+ else if (theType.equals("Rfmo"))
+ return VMETypeIdentifier.Rfmo;
throw new Exception("Could not find any valid Report Ref, got " + theType + " should be any of " + VMETypeIdentifier.values().toString());
}
}
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 bbbff88..415d08c 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
@@ -10,6 +10,7 @@ import org.gcube.portlets.widgets.exporter.shared.SaveReportFileExistException;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean;
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
+import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import com.google.gwt.user.client.rpc.RemoteService;
@@ -21,11 +22,11 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("ReportServiceImpl")
public interface ReportService extends RemoteService{
- ArrayList listVMEReports();
+ ArrayList listVMEReports();
ArrayList listVMEReportRefByType(VMETypeIdentifier refType);
- Model importVMEReport(String id, String name);
+ Model importVMEReport(String id);
Model importVMEReportRef(String id, VMETypeIdentifier refType);
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 7a7b54c..b8a2cf4 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
@@ -8,6 +8,7 @@ import org.gcube.portlets.d4sreporting.common.shared.Table;
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean;
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
+import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -53,8 +54,7 @@ public interface ReportServiceAsync {
*/
void readTemplateFromSession( AsyncCallback callback);
- void saveReport(Model toSave, String folderid, String newname,
- AsyncCallback callback);
+ void saveReport(Model toSave, String folderid, String newname, AsyncCallback callback);
void saveReport(Model toSave, AsyncCallback callback);
/**
@@ -63,21 +63,24 @@ public interface ReportServiceAsync {
* @param callback
*/
void getSessionInfo(String currentHost, AsyncCallback callback);
- void getWorkflowDocumentFromDocumentLibrary(
- AsyncCallback callback);
- void updateWorkflowDocument(Model toSave, boolean update,
- AsyncCallback callback);
+
+ void getWorkflowDocumentFromDocumentLibrary(AsyncCallback callback);
+
+ void updateWorkflowDocument(Model toSave, boolean update, AsyncCallback callback);
+
void renewLock(AsyncCallback callback);
- void readImportedModel(String tempPath,
- AsyncCallback callback);
- void save(String filePath, String workspaceFolderId, String ItemName,
- TypeExporter type, boolean overwrite, AsyncCallback callback);
+ void readImportedModel(String tempPath, AsyncCallback callback);
+
+ void save(String filePath, String workspaceFolderId, String ItemName, TypeExporter type, boolean overwrite, AsyncCallback callback);
+
void renewHTTPSession(AsyncCallback callback);
- void listVMEReports(AsyncCallback> callback);
- void importVMEReport(String id, String name, AsyncCallback callback);
- void listVMEReportRefByType(VMETypeIdentifier refType,
- AsyncCallback> callback);
- void importVMEReportRef(String id, VMETypeIdentifier refType,
- AsyncCallback callback);
+
+ void listVMEReports(AsyncCallback> callback);
+
+ void importVMEReport(String id, AsyncCallback callback);
+
+ void listVMEReportRefByType(VMETypeIdentifier refType, AsyncCallback> callback);
+
+ void importVMEReportRef(String id, VMETypeIdentifier refType, AsyncCallback callback);
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java
index b6b49fa..e0d63c2 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/ReportStructurePanel.java
@@ -235,8 +235,8 @@ public class ReportStructurePanel extends ScrollPanel{
node.add(image);
String shortTitle = title;
- if (shortTitle.length() > 25)
- shortTitle = shortTitle.substring(0,25) + "...";
+ if (shortTitle.length() > 20)
+ shortTitle = shortTitle.substring(0,18) + "..";
Label text = new Label(shortTitle);
node.add(text);
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 eed06e7..cda6958 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,17 +3,20 @@ 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;
import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
/**
*
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
*/
-public class ToolboxPanel extends SimplePanel {
+public class ToolboxPanel extends VerticalPanel {
private AppControllerExplorer appController;
private AsyncTreePanel tp;
/**
@@ -27,8 +30,8 @@ public class ToolboxPanel extends SimplePanel {
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
}
@@ -38,6 +41,10 @@ public class ToolboxPanel extends SimplePanel {
setWidth("240px");
add(panel);
}
+
+ public void collapse() {
+ setWidth("20px");
+ }
public void showExportedVersion(String id, String fileName) {
GWT.log("showExportedVersion");
@@ -53,7 +60,7 @@ public class ToolboxPanel extends SimplePanel {
* 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/dialog/ImportVMEReportDialog.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ImportVMEReportDialog.java
new file mode 100644
index 0000000..67f5a5d
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/ImportVMEReportDialog.java
@@ -0,0 +1,188 @@
+package org.gcube.portlets.user.reportgenerator.client.dialog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gcube.portlets.user.reportgenerator.client.ReportService;
+import org.gcube.portlets.user.reportgenerator.client.ReportServiceAsync;
+import org.gcube.portlets.user.reportgenerator.client.events.SelectedReportEvent;
+import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
+import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
+
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.store.GroupingStore;
+import com.extjs.gxt.ui.client.store.Store;
+import com.extjs.gxt.ui.client.widget.ContentPanel;
+import com.extjs.gxt.ui.client.widget.Html;
+import com.extjs.gxt.ui.client.widget.Window;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.form.StoreFilterField;
+import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
+import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
+import com.extjs.gxt.ui.client.widget.grid.Grid;
+import com.extjs.gxt.ui.client.widget.grid.GroupingView;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Style.Unit;
+import com.google.gwt.event.shared.HandlerManager;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+
+public class ImportVMEReportDialog extends Window {
+ private static final int WIDTH = 600;
+ private static final int HEIGHT = 450;
+
+ private ReportServiceAsync reportService = (ReportServiceAsync) GWT.create(ReportService.class);
+ private ContentPanel mainPanel = new ContentPanel();
+ private HandlerManager eventBus;
+ private HorizontalPanel hp = new HorizontalPanel();
+ private StoreFilterField filter;
+
+ /**
+ *
+ * @param eventBus the bus to fire events into
+ */
+ public ImportVMEReportDialog(final HandlerManager eventBus) {
+ this.eventBus = eventBus;
+
+ mainPanel.setHeaderVisible(false);
+ setWidth(WIDTH);
+ setHeight(HEIGHT);
+
+ mainPanel.setWidth(WIDTH-10);
+ mainPanel.setHeight(HEIGHT-50);
+
+ filter = new StoreFilterField() {
+
+ @Override
+ protected boolean doSelect(Store store, VMEReportBean parent, VMEReportBean record, String property, String filter) {
+ String name = record.getName();
+ name = name.toLowerCase();
+ if (name.contains(filter.toLowerCase())) {
+ return true;
+ }
+ return false;
+ }
+ };
+ filter.setEmptyText("Filter by Name");
+ filter.setWidth("250px");
+ hp.add(filter);
+ hp.setPixelSize(250, 20);
+ hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
+
+
+ add(hp);
+ add(mainPanel);
+ showLoading();
+ reportService.listVMEReports(new AsyncCallback>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ mainPanel.unmask();
+ }
+
+ @Override
+ public void onSuccess(ArrayList reports) {
+ mainPanel.unmask();
+ for (VMEReportBean vmeReportBean : reports) {
+ GWT.log(vmeReportBean.getName());
+ }
+ showCollections(reports);
+ }
+ });
+ }
+ /**
+ * view for collections step
+ * @param vDesc
+ */
+ public void showCollections(List reports) {
+
+ ColumnModel cm = null;
+ List configs = new ArrayList();
+
+
+ ColumnConfig column = new ColumnConfig();
+ column.setId("id");
+ column.setHeader("ID");
+ column.setHidden(true);
+ column.setWidth(50);
+ column.setRowHeader(true);
+ configs.add(column);
+
+ column = new ColumnConfig();
+ column.setId("rfmo");
+ column.setHeader("RFMO");
+ column.setWidth(150);
+ configs.add(column);
+
+ column = new ColumnConfig();
+ column.setId("name");
+ column.setHeader("Name");
+ column.setWidth(150);
+ configs.add(column);
+
+ column = new ColumnConfig();
+ column.setId("year");
+ column.setHeader("Year");
+ column.setWidth(50);
+ configs.add(column);
+
+ cm = new ColumnModel(configs);
+
+ /**
+ * load the grid data
+ */
+ GroupingStore store = new GroupingStore();
+ store.add(reports);
+ store.groupBy("rfmo");
+
+ filter.bind(store);
+
+ final Grid grid = new Grid(store, cm);
+
+ grid.getElement().getStyle().setBorderWidth(0, Unit.PX);
+ grid.setAutoExpandColumn("name");
+ grid.setBorders(true);
+ grid.setStripeRows(true);
+
+
+ GroupingView view = new GroupingView();
+ view.setShowGroupedColumn(false);
+ grid.setView(view);
+ view.setForceFit(true);
+ ContentPanel gridPanel = new ContentPanel(new FitLayout());
+ gridPanel.setHeaderVisible(false);
+ gridPanel.add(grid);
+
+
+
+ gridPanel.addButton(new Button("Cancel", new SelectionListener() {
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ hide();
+ }
+ }));
+
+ gridPanel.addButton(new Button("Import Selected", new SelectionListener() {
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ hide();
+ fireEvent(grid.getSelectionModel().getSelectedItem());
+ }
+ }));
+ mainPanel.add(gridPanel);
+ mainPanel.setLayout(new FitLayout());
+ mainPanel.layout();
+ }
+
+ private void fireEvent(VMEReportBean toFire) {
+ eventBus.fireEvent(new SelectedReportEvent(toFire.getId(), VMETypeIdentifier.Vme));
+ }
+ /**
+ *
+ */
+ private void showLoading() {
+ mainPanel.mask("Asking for available Reports, please wait ... ", "loading-indicator");
+ }
+}
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
new file mode 100644
index 0000000..4664276
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEvent.java
@@ -0,0 +1,35 @@
+package org.gcube.portlets.user.reportgenerator.client.events;
+
+import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+public class SelectedReportEvent extends GwtEvent{
+ public static Type TYPE = new Type();
+ private final String id;
+ private final VMETypeIdentifier type;
+
+ public SelectedReportEvent(String id, VMETypeIdentifier type) {
+ super();
+ this.id = id;
+ this.type = type;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public VMETypeIdentifier getType() {
+ return type;
+ }
+
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(SelectedReportEventHandler handler) {
+ handler.onReportSelected(this);
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEventHandler.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEventHandler.java
new file mode 100644
index 0000000..8ed1802
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/events/SelectedReportEventHandler.java
@@ -0,0 +1,7 @@
+package org.gcube.portlets.user.reportgenerator.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface SelectedReportEventHandler extends EventHandler {
+ void onReportSelected(SelectedReportEvent event);
+}
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 75db161..860c9f5 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
@@ -45,7 +45,7 @@ import com.google.gwt.user.client.ui.Widget;
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
*/
public class TemplateComponent {
-
+ private String id = "";
/**
*
*/
@@ -58,7 +58,7 @@ public class TemplateComponent {
private int height;
private TemplateModel myModel;
private int templatePage;
- private String idInBasket = null;
+
private ComponentType type;
@@ -193,7 +193,7 @@ public class TemplateComponent {
this.content = area;
}
else {
- HeadingTextArea bToAdd = new HeadingTextArea(sc.getType(), presenter, sc.getX(), sc.getY(), width, 25, getUserComments() != null, showClose);
+ HeadingTextArea bToAdd = new HeadingTextArea(sc.getId(), sc.getType(), presenter, sc.getX(), sc.getY(), width, 25, getUserComments() != null, showClose);
bToAdd.setText((String) sc.getPossibleContent());
bToAdd.setMetadata(sc.getMetadata());
this.content = bToAdd;
@@ -212,7 +212,7 @@ public class TemplateComponent {
}
else {
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);
+ BasicTextArea bToAdd = new BasicTextArea(sc.getId(), sc.getType(), presenter, sc.getX(), sc.getY(), changedWidth, 25, getUserComments() != null, showClose);
bToAdd.setText((String) sc.getPossibleContent());
bToAdd.setMetadata(sc.getMetadata());
this.content = bToAdd;
@@ -231,7 +231,7 @@ public class TemplateComponent {
}
else {
height = 40;
- D4sRichTextarea ta = new D4sRichTextarea(sc.getType(), presenter, sc.getX(), sc.getY(),width, height, getUserComments() != null, showClose, owner);
+ D4sRichTextarea ta = new D4sRichTextarea(sc.getId(), sc.getType(), presenter, sc.getX(), sc.getY(),width, height, getUserComments() != null, showClose, owner);
ta.setHTML((String) sc.getPossibleContent());
//ta.setStyleName("cw-RichText");
ta.setPixelSize(width, height);
@@ -240,17 +240,17 @@ public class TemplateComponent {
this.setLocked(sc.isLocked());
break;
case TOC:
- ReportTextArea dp2 = new ReportTextArea(sc.getType(), presenter, sc.getX(), sc.getY(), width, height, getUserComments() != null, showClose);
+ ReportTextArea dp2 = new ReportTextArea(sc.getId(), sc.getType(), presenter, sc.getX(), sc.getY(), width, height, getUserComments() != null, showClose);
dp2.addStyleName("tocArea");
this.content = dp2;
break;
case BIBLIO:
- ReportTextArea dp3 = new ReportTextArea(sc.getType(), presenter, sc.getX(), sc.getY(), width, height, getUserComments() != null, showClose);
+ ReportTextArea dp3 = new ReportTextArea(sc.getId(), sc.getType(), presenter, sc.getX(), sc.getY(), width, height, getUserComments() != null, showClose);
dp3.addStyleName("biblioArea");
this.content = dp3;
break;
case PAGEBREAK:
- ReportTextArea dp4 = new ReportTextArea(sc.getType(), presenter, sc.getX(), sc.getY(), width, height, getUserComments() != null, showClose);
+ ReportTextArea dp4 = new ReportTextArea(sc.getId(), sc.getType(), presenter, sc.getX(), sc.getY(), width, height, getUserComments() != null, showClose);
dp4.addStyleName("pagebreak");
this.content = dp4;
break;
@@ -421,7 +421,6 @@ public class TemplateComponent {
ClientImage da = (ClientImage) this.content;
content = da.getDroppedImage().getElement().getAttribute("src");
id = da.getIdInBasket();
- idInBasket = id;
if (((String) content).compareTo("") == 0)
content = DEFAULT_IMAGE_PATH;
metas = da.getMetadata();
@@ -434,6 +433,7 @@ public class TemplateComponent {
}
else {
content = ((D4sRichTextarea) this.content).getHTML();
+ id = ((D4sRichTextarea) this.content).getId();
}
break;
case HEADING_1:
@@ -447,6 +447,7 @@ public class TemplateComponent {
}
else {
content = ((HeadingTextArea) this.content).getText();
+ id = ((HeadingTextArea) this.content).getId();
metas = ((HeadingTextArea) this.content).getMetadata();
}
break;
@@ -456,7 +457,9 @@ public class TemplateComponent {
}
else {
content = ((BasicTextArea) this.content).getText();
+ id = ((BasicTextArea) this.content).getId();
metas = ((BasicTextArea) this.content).getMetadata();
+
}
break;
case TIME_SERIES:
@@ -499,8 +502,8 @@ public class TemplateComponent {
content = ref;
break;
}
-
- return new BasicComponent(x, y, width, height, templatePage, type, idInBasket, "param empty", content, this.doubleColLayout, isLocked(), metas);
+ BasicComponent bc = new BasicComponent(x, y, width, height, templatePage, type, id, "param empty", content, this.doubleColLayout, isLocked(), metas);
+ return bc;
}
/**
@@ -659,14 +662,14 @@ public class TemplateComponent {
* @return .
*/
public String getIdInBasket() {
- return idInBasket;
+ return id;
}
/**
*
- * @param idInBasket .
+ * @param id .
*/
public void setIdInBasket(String idInBasket) {
- this.idInBasket = idInBasket;
+ this.id = idInBasket;
}
/**
*
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateModel.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateModel.java
index 6a52971..5d6055b 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateModel.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateModel.java
@@ -194,14 +194,12 @@ public class TemplateModel {
String tcPage = ""+currentPage;
TemplateSection singleSection = sections.get(tcPage);
singleSection.addCommentToComponent(component, comment2Add, visibleHeight);
- storeInSession();
}
public void removeComment(Widget toRemove) {
String tcPage = ""+currentPage;
TemplateSection singleSection = sections.get(tcPage);
singleSection.discardComments(toRemove);
- storeInSession();
}
/**
*
@@ -218,7 +216,6 @@ public class TemplateModel {
singleSection.addComponent(referencesTC);
sections.put(""+totalPages, singleSection);
- storeInSession();
}
/**
*
@@ -236,7 +233,7 @@ public class TemplateModel {
totalPages, ComponentType.BODY, "", citation, false, false, singleSection.getAllMetadata());
TemplateComponent entryTextTC = new TemplateComponent(this, entryText, presenter, false, null);
singleSection.addComponent(entryTextTC);
- storeInSession();
+
}
/**
* remove a Citation from the model
@@ -255,7 +252,6 @@ public class TemplateModel {
if (singleSection.removeComponent(tc)) { //removes also the previous heading 2
TemplateComponent h2 = components.get(i-1);
singleSection.removeComponent(h2);
- storeInSession();
return true;
}
@@ -444,8 +440,6 @@ public class TemplateModel {
String tcPage = ""+currentPage;
TemplateSection singleSection = sections.get(tcPage);
singleSection.resizeModelComponent(toResize, newWidth, newHeight);
-
- storeInSession();
}
@@ -483,24 +477,6 @@ public class TemplateModel {
return exportedURL;
}
- /**
- * stores the current model in the session, not to be used anymore as images could have high payload
- */
- @Deprecated
- public void storeInSession() {
-// Model modelToSend = getSerializableModel();
-//
-// GWT.log("Storing in session: currpage = " + modelToSend.getCurrPage(), null);
-//
-// modelService.storeTemplateInSession(modelToSend, new AsyncCallback() {
-// @Override
-// public void onFailure(Throwable caught) { }
-// @Override
-// public void onSuccess(Void result) {
-// }
-// });
- }
-
//****** GETTERS n SETTERS
/**
* @return .
@@ -511,7 +487,6 @@ public class TemplateModel {
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
- storeInSession();
}
/**
* @return .
@@ -579,7 +554,6 @@ public class TemplateModel {
*/
public void setTemplateName(String templateName) {
this.templateName = templateName;
- storeInSession();
}
/**
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 1a2bcf4..b740374 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
@@ -11,11 +11,8 @@ 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.MouseOutEvent;
-import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.user.client.ui.RichTextArea;
import com.google.gwt.user.client.ui.TextArea;
-import com.google.gwt.user.client.ui.Widget;
/**
* BasicTextArea
is a resizable textArea
*
@@ -23,22 +20,18 @@ import com.google.gwt.user.client.ui.Widget;
* @version July 2013
*/
public class BasicTextArea extends TextArea {
- private String myId;
+ //the id
+ private String id;
//the properties associated
private List metas;
+ // neeeded for js autosize
+ private String myId;
- 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);
+ public BasicTextArea(String id, ComponentType type, final Presenter presenter, int left, int top, final int width, final int height, boolean hasComments, boolean showClose) {
+ this.id = id;
+ myId = UUID.uuid(16); // neeeded for js autosize
this.setPixelSize(width, height);
- this.addMouseOutHandler(new MouseOutHandler() {
-
- public void onMouseOut(MouseOutEvent event) {
- presenter.storeChangeInSession((Widget) event.getSource());
- }
- });
-
this.setStyleName("report-ui-component");
this.addStyleName("d4sFrame");
this.getElement().setId(myId);
@@ -52,12 +45,6 @@ public class BasicTextArea extends TextArea {
break;
}
- addMouseOutHandler(new MouseOutHandler() {
- public void onMouseOut(MouseOutEvent event) {
- presenter.storeChangeInSession((Widget) event.getSource());
- }
- });
-
this.addKeyUpHandler(new KeyUpHandler() {
public void onKeyUp(KeyUpEvent event) {
//presenter.resizeTemplateComponentInModel(myInstance, width, newHeight);
@@ -127,4 +114,14 @@ public class BasicTextArea extends TextArea {
resize();
}-*/;
+
+ public String getId() {
+ return id;
+ }
+
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java
index 06a6ab5..12e2040 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java
@@ -264,7 +264,6 @@ public class ClientImage extends Composite {
mds.add(desc);
mds.add(source);
basicComponent.setMetadata(mds);
- presenter.storeChangeInSession(this);
GWT.log("Saved in Session");
}
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 4670cf5..b1b40e3 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
@@ -60,9 +60,9 @@ public class D4sRichTextarea extends ReportTextArea {
* @param height .
* @param type .
*/
- public D4sRichTextarea(ComponentType type, final Presenter presenter, int left, int top, final int width,
+ public D4sRichTextarea(String id, ComponentType type, final Presenter presenter, int left, int top, final int width,
final int height, boolean hasComments, boolean showClose, TextTableImage owner) {
- super(type, presenter, left, top, width, height, hasComments, showClose);
+ super(id, type, presenter, left, top, width, height, hasComments, showClose);
this.owner = owner;
currHeight = height;
myPanel = getResizablePanel();
@@ -113,7 +113,6 @@ public class D4sRichTextarea extends ReportTextArea {
area.addMouseOutHandler(new MouseOutHandler() {
public void onMouseOut(MouseOutEvent event) {
firstClick = true;
- presenter.storeChangeInSession((Widget) event.getSource());
}
});
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GenericTable.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GenericTable.java
index c9b6678..22d3b84 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GenericTable.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GenericTable.java
@@ -16,8 +16,6 @@ import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.MouseOutEvent;
-import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
@@ -139,13 +137,6 @@ public class GenericTable extends Composite {
focusPanel.add(myPanel);
initWidget(focusPanel);
-
- focusPanel.addMouseOutHandler(new MouseOutHandler() {
- @Override
- public void onMouseOut(MouseOutEvent event) {
- saveStatus();
- }
- });
}
private void saveTable(Table sTable) {
@@ -153,9 +144,6 @@ public class GenericTable extends Composite {
originalTable.setTable(sTable.getTable());
}
- private void saveStatus() {
- presenter.storeChangeInSession(this);
- }
/**
* common Constructors Code
*/
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 f3469b5..3b99994 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
@@ -19,6 +19,7 @@ import com.google.gwt.user.client.ui.Widget;
* @version July 2011 (3.0)
*/
public class HeadingTextArea extends ReportTextArea {
+
private TextArea textArea = new TextArea();
private VerticalPanel myPanel;
private Presenter presenter;
@@ -26,19 +27,13 @@ public class HeadingTextArea extends ReportTextArea {
int currHeight = 0;
- public HeadingTextArea(ComponentType type, final Presenter presenter, int left, int top, int width, final int height, boolean hasComments, boolean showClose) {
- super(type, presenter, left, top, width, height, hasComments, showClose);
+ public HeadingTextArea(String id, ComponentType type, final Presenter presenter, int left, int top, int width, final int height, boolean hasComments, boolean showClose) {
+ super(id, type, presenter, left, top, width, height, hasComments, showClose);
this.presenter = presenter;
myPanel = getResizablePanel();
textArea.setPixelSize(width, height);
- textArea.addMouseOutHandler(new MouseOutHandler() {
-
- public void onMouseOut(MouseOutEvent event) {
- presenter.storeChangeInSession((Widget) event.getSource());
- }
- });
textArea.setStyleName("report-ui-component");
switch (type) {
case TITLE:
@@ -73,13 +68,6 @@ public class HeadingTextArea extends ReportTextArea {
myPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
myPanel.setPixelSize(width, height);
- textArea.addMouseOutHandler(new MouseOutHandler() {
-
- public void onMouseOut(MouseOutEvent event) {
- presenter.storeChangeInSession((Widget) event.getSource());
-
- }
- });
}
public String getText() {
return textArea.getText();
@@ -97,4 +85,5 @@ public class HeadingTextArea extends ReportTextArea {
this.metas = metas;
}
+
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java
index 864c0d6..766c8ea 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java
@@ -24,7 +24,7 @@ import com.google.gwt.user.client.ui.VerticalPanel;
* @version July 2011 (3.0)
*/
public class ReportTextArea extends Composite {
-
+ private String id;
/**
* the allowance when mouse cursor is on borders
*/
@@ -78,10 +78,10 @@ public class ReportTextArea extends Composite {
* @param height .
* @param type a
*/
- public ReportTextArea(ComponentType type, final Presenter presenter, int left, int top, int width, int height, boolean hasComments, boolean isRemovable) {
+ public ReportTextArea(String id, ComponentType type, final Presenter presenter, int left, int top, int width, int height, boolean hasComments, boolean isRemovable) {
myInstance = this;
-
+ this.id = id;
this.type = type;
this.presenter = presenter;
this.left = left;
@@ -260,22 +260,12 @@ public class ReportTextArea extends Composite {
commentImage.setUrl(ImageConstants.IMAGE_COMMENTS);
}
- public void showComment(String comment) {
- // final Window window = new Window();
- // window.setTitle("");
- // window.setMaximizable(true);
- // window.setResizable(true);
- // window.setLayout(new FitLayout());
- // window.setWidth(200);
- // window.setHeight(100);
- // window.setModal(false);
- //
- // Panel windowPanel = new Panel();
- // windowPanel.setBaseCls("comment-popup");
- // windowPanel.setHtml(comment);
- // windowPanel.setShadow(true);
- // window.add(windowPanel);
- // window.setPosition(commentImage.getAbsoluteLeft()+25, commentImage.getAbsoluteTop());
- // window.show();
+ public String getId() {
+ return id;
}
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TSArea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TSArea.java
index feb8e2b..f39d433 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TSArea.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TSArea.java
@@ -134,9 +134,7 @@ public class TSArea extends Composite {
moreDetails.addClickHandler(viewMetadataTS);
showSample.addClickHandler(showTSSample);
filter.addClickHandler(applyFilterTs);
-
- //TODO: check this
- presenter.storeChangeInSession(this);
+
mainPanel.layout(true);
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TextTableImage.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TextTableImage.java
index a4e1324..8b890bd 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TextTableImage.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/TextTableImage.java
@@ -60,7 +60,7 @@ public class TextTableImage extends Composite {
if (isFromTemplate) {
int height = 40;
- D4sRichTextarea firstText = new D4sRichTextarea(ComponentType.BODY, presenter, 0, 0, DEFAULT_WIDTH, height, false, true, this);
+ D4sRichTextarea firstText = new D4sRichTextarea("-1", ComponentType.BODY, presenter, 0, 0, DEFAULT_WIDTH, height, false, true, this);
firstText.setPixelSize(DEFAULT_WIDTH, height);
mainPanel.add(firstText);
//construct the first component and add it
@@ -91,7 +91,7 @@ public class TextTableImage extends Composite {
private void addNewText() {
int height = 40;
- D4sRichTextarea text = new D4sRichTextarea(ComponentType.BODY, presenter, 0, 0, DEFAULT_WIDTH, height, false, true, this);
+ D4sRichTextarea text = new D4sRichTextarea("-1", ComponentType.BODY, presenter, 0, 0, DEFAULT_WIDTH, height, false, true, this);
text.setPixelSize(DEFAULT_WIDTH, height);
TemplateComponent toAdd = new TemplateComponent(presenter.getModel(), 0, 0, DEFAULT_WIDTH, height,
presenter.getModel().getCurrentPage(), ComponentType.BODY, "", text);
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ImagesUploadServlet.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ImagesUploadServlet.java
deleted file mode 100644
index bb0fda0..0000000
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ImagesUploadServlet.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.gcube.portlets.user.reportgenerator.server.servlet;
-
-
-
-
-import java.io.File;
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.gcube.application.framework.core.session.ASLSession;
-import org.gcube.application.framework.core.session.SessionManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * ImagesUploadServlet
class is the server code delgated to receinve the byte stream and store i
- *
- * @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
- * @version October 2008 (0.2)
- */
-
-public class ImagesUploadServlet extends HttpServlet {
-
-
- private static final Logger _log = LoggerFactory.getLogger(ImagesUploadServlet.class);
-
- final String returnOKMessage = "OK";
-
- private static final long serialVersionUID = 1L;
-
- private String currentUser;
-
- private String currentScope;
-
- /**
- *
- * @param message the msg
- */
- public static void logger (String message) {
- System.out.println("***" + message);
- }
- /**
- * return the user template folder
- * @param templateName
- * @param currentDL .
- * @param currentUser .
- * @return .
- */
- private String getTemplateFolder(String currentDL, String currentUser) {
- _log.debug("getTemplateFolder Method called");
- // platform indipendent slash
- String sl = File.separator;
- //e.g. /home/massi/workspace/templategen/tomcat/webapps/ROOT
- String path = System.getenv("CATALINA_HOME");
- path += sl + "webapps" + sl +"usersArea" + sl + currentDL +
- sl + "templates" + sl + currentUser + sl ;
- _log.debug("Returning Path= " + path);
- return path;
-
- }
- /**
- * file upload handler
- * @param request .
- * @param response .
- * @throws ServletException .
- * @throws IOException .
- */
-
- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
-// logger("ImagesUploadServlet received:");
-//
-// currentUser = getUsername(request);
-// currentScope = getVreName(request);
-//
-// String currTemplateName = request.getParameter("currTemplateName");
-//
-// logger("currentUser: "+currentUser);
-// logger("currentVRE: "+currentScope);
-// logger("currTemplateName: "+currTemplateName);
-// logger("CALLING :getTemplateFolder ");
-// logger("RETURNED :getTemplateFolder ");
-// //platform indipendent slash
-// String sl = File.separator;
-// String startDirectory = getTemplateFolder(currentScope, currentUser); //e.g. /home/massi/workspace/templategen/tomcat/webapps/ROOT
-// int lastSlash = startDirectory.lastIndexOf(sl);
-// startDirectory = startDirectory.substring(0, lastSlash);
-//
-// startDirectory += sl + "CURRENT_OPEN" + sl + "images";
-//
-// logger("RETURNED : " + startDirectory);
-// logger("WRITING... :");
-//
-// String fileName = "";
-// PrintWriter out = response.getWriter();
-//
-// if (!ServletFileUpload.isMultipartContent(request))
-// return;
-//
-// FileItemFactory factory = new DiskFileItemFactory();
-// ServletFileUpload upload = new ServletFileUpload(factory);
-//
-// List items = null;
-// try {
-// items = upload.parseRequest(request);
-// }
-// catch (FileUploadException e) {
-// e.printStackTrace();
-// return;
-// }
-// File uploadedFile = null;
-// for (Iterator i = items.iterator(); i.hasNext();) {
-// FileItem item = (FileItem) i.next();
-//
-// if (item.isFormField())
-// continue;
-// fileName = item.getName();
-// if (fileName != null && fileName.compareTo("")!=0) {
-// fileName = FilenameUtils.getName(fileName);
-//
-// uploadedFile = new File(startDirectory + File.separator + fileName);
-// try {
-// if(!uploadedFile.exists()){
-// File toCreate = new File(startDirectory);
-// boolean success = toCreate.mkdirs();
-// if (success)
-// Logger.debug("New file \"" + uploadedFile + "\" has been created ");
-// }
-// item.write(uploadedFile);
-// }
-// catch (Exception e) { e.printStackTrace(); }
-//
-// }
-// }
-//
-// out.print(returnOKMessage);
-// out.close();
-
- } //end service
-
- /**
- *
- * @param httpServletRequest .
- * @return .
- */
- public String getUsername(HttpServletRequest httpServletRequest) {
-
- HttpSession session = httpServletRequest.getSession();
- String user = (String) session.getAttribute("username");
- if(session.getAttribute("username")== null)
- {
- user = "massi";
- logger("D4ScienceSession user NULL set to: " + user);
- }
- logger("D4ScienceSession user: " + user);
-
- ASLSession d4session = SessionManager.getInstance().getASLSession(session.getId(), user);
- d4session.setAttribute("username", user);
- return user;
- }
-
- /**
- * @param httpServletRequest .
- * @return the shared session
- */
- public String getVreName(HttpServletRequest httpServletRequest) {
- HttpSession session = httpServletRequest.getSession();
-
- ASLSession d4session = SessionManager.getInstance().getASLSession(session.getId(), getUsername(httpServletRequest));
- String scope = d4session.getScopeName();
- //need to remove the initial / of the scope
- if (scope.charAt(0) == '/')
- scope = scope.substring(1, scope.length());
- logger("ImagesUploadServlet SCOPE: " + scope);
- //String scope = "gcube/devsec";
- return scope;
- }
-}
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 09b73ae..6d3a2a5 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,12 +31,14 @@ 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.Property;
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.component.interfaces.ReportComponent;
import org.gcube.application.reporting.reference.Column;
import org.gcube.application.reporting.reference.DBTableRow;
import org.gcube.application.reporting.reference.ReferenceReport;
@@ -86,6 +88,7 @@ import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.OpenWorkfl
import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.SaveWorkflowLogEntry;
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
import org.gcube.portlets.user.reportgenerator.shared.UserBean;
+import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import org.gcube.portlets.widgets.exporter.shared.SaveReportFileException;
import org.gcube.portlets.widgets.exporter.shared.SaveReportFileExistException;
@@ -100,6 +103,8 @@ import com.liferay.portal.service.LockLocalServiceUtil;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portlet.documentlibrary.model.DLFileEntry;
+import edu.emory.mathcs.backport.java.util.Arrays;
+
/**
@@ -671,8 +676,8 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
for (BasicComponent component : section.getComponents()) {
if (component.getType() == ComponentType.DYNA_IMAGE) {
_log.debug("Found Simple Image: " + component.getPossibleContent());
- if (component.getIdInBasket() != null) { // you need to convert only new images that stay in the HL Workspace, this is the check
- String imageID = component.getIdInBasket();
+ if (component.getId() != null) { // you need to convert only new images that stay in the HL Workspace, this is the check
+ String imageID = component.getId();
component.setPossibleContent(getdDataImagebase64(imageID));
_log.trace("Image converted base 64 OK: " + component.getPossibleContent());
}
@@ -681,8 +686,8 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
RepeatableSequence res = (RepeatableSequence) component.getPossibleContent();
for (BasicComponent co : res.getGroupedComponents()) {
_log.debug("Found Image IN SEQUENCE, type is: " + component.getType());
- if (co.getIdInBasket() != null) { // you need to convert only new images that stay in the HL Workspace, this is the check
- String imageID = co.getIdInBasket();
+ if (co.getId() != null) { // you need to convert only new images that stay in the HL Workspace, this is the check
+ String imageID = co.getId();
co.setPossibleContent(getdDataImagebase64(imageID));
_log.trace("Image converted base 64 OK, in SEQUENCE: " + co.getPossibleContent());
}
@@ -797,7 +802,11 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
*
*/
public void saveReport(Model toSave, String folderid, String newname) {
-
+ try {
+ ReportsReader.readReportStructure(toSave);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
Model model = toSave;
storeTemplateInSession(toSave);
_log.info("Serializing Model in folder: " + folderid );
@@ -1463,17 +1472,20 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
}
@Override
- public ArrayList listVMEReports() {
+ public ArrayList listVMEReports() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
- ArrayList toReturn = new ArrayList();
+ ArrayList toReturn = new ArrayList();
ReportType type = new ReportType();
type.setTypeIdentifier("Vme");
for (ReportEntry re : getFakeReports(type)) {
- toReturn.add(new ItemSelectableBean(""+re.getId(), re.getNameValueList().get(0).getValue(), "", VMETypeIdentifier.Vme.toString()));
+ String rfmo = re.getNameValueList().get(0).getValue();
+ String name = re.getNameValueList().get(1).getValue();
+ int year = Integer.parseInt(re.getNameValueList().get(2).getValue());
+ toReturn.add(new VMEReportBean(""+re.getId(), rfmo, name, year));
}
return toReturn;
@@ -1497,19 +1509,31 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
return toReturn;
}
- private List getFakeReports(ReportType type) {
+
+ private List getFakeReports(ReportType type, NameValue... filters) {
Random generator = new Random();
int n = generator.nextInt(15) + 5;
ArrayList toReturn = new ArrayList();
- if (type.equals("Vme")) {
+ if (type.getTypeIdentifier().equals("Vme")) {
ReportEntry re = new ReportEntry();
for (int i = 0; i < n; i++) {
re = new ReportEntry();
re.setId(i);
- List namesValues = new ArrayList();
+
+ NameValue rfmo = new NameValue();
+ rfmo.setName("Rfmo");
+ rfmo.setValue(i % 2 == 0 ? "NAFO" : "NEAFC");
NameValue name = new NameValue();
- name.setName( "VME Name " + i);
+ name.setName("Vme");
+ name.setValue("VME " + generateRandomWord());
+ NameValue year = new NameValue();
+ year.setName("Year");
+ year.setValue(""+(2000+generator.nextInt(15)));
+ List namesValues = new ArrayList();
+ namesValues.add(rfmo);
namesValues.add(name);
+ namesValues.add(year);
+
re.setNameValueList(namesValues);
toReturn.add(re);
}
@@ -1530,7 +1554,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
}
@Override
- public Model importVMEReport(String id, String name) {
+ public Model importVMEReport(String id) {
String reportName = "Sample VME Report imported with id: " + id;
ReportsModeler rm = new ReportsModeler(
UUID.randomUUID().toString(),
@@ -1541,7 +1565,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
getASLSession().getUsername()
);
rm.add(new Instruction(null));
- rm.add(new Title(name, false));
+ 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"));
@@ -1549,6 +1573,17 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
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);
+
try {
return rm.getReportInstance();
} catch (Exception e) {
@@ -1618,5 +1653,17 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
rm.add(seq);
return rm;
}
-
+ /**
+ * 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);
+ }
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportsReader.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportsReader.java
new file mode 100644
index 0000000..63f697f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportsReader.java
@@ -0,0 +1,94 @@
+package org.gcube.portlets.user.reportgenerator.server.servlet;
+
+import org.gcube.application.reporting.component.Box;
+import org.gcube.application.reporting.component.BoxesArea;
+import org.gcube.application.reporting.component.interfaces.ReportComponent;
+import org.gcube.application.reporting.persistence.PersistenceManager;
+import org.gcube.application.reporting.reader.ModelReader;
+import org.gcube.application.reporting.reader.Section;
+import org.gcube.application.reporting.reference.Column;
+import org.gcube.application.reporting.reference.DBTableRow;
+import org.gcube.application.reporting.reference.ReferenceReport;
+import org.gcube.portlets.d4sreporting.common.shared.Model;
+
+public class ReportsReader {
+
+ /**
+ * Read and print in the console the Structure of the serialized report
+ * @throws Exception
+ * @see {@link PersistenceManager#readModel(String)}
+ */
+ public static void readReportStructure(Model model) throws Exception {
+
+ ModelReader reader = new ModelReader(model);
+ int i = 1;
+ for (Section section : reader.getSections()) {
+ System.out.println("Reading Section " + i);
+ for (ReportComponent rc : section.getComponents()) {
+ printReportCompomnent(rc, "");
+ }
+ i++;
+ }
+
+
+ }
+
+ /** Non Test methods **/
+ /**
+ * ket method whne reading
+ * @param rc
+ * @param sep
+ */
+ private static void printReportCompomnent(ReportComponent rc, String sep) {
+ switch (rc.getType()) {
+ case TITLE:
+ case HEADING:
+ case INSTRUCTION:
+ case TEXT_INPUT:
+ System.out.println(sep +"Type: " + rc.getType()+"\n\tId: " + rc.getId() + "\tValue: " + rc.getStringValue() + " props="+rc.getProperties().toString());
+ break;
+ case BOXAREA:
+ BoxesArea ba = (BoxesArea) rc;
+ System.out.println(sep +"Type: " + rc.getType());
+ for (ReportComponent rpc : ba.getChildren()) {
+ Box attrBox = (Box) rpc;
+ System.out.println("\t"+attrBox);
+ }
+ break;
+ case SEQUENCE:
+ System.out.println(sep +"Type: " + rc.getType());
+ for (ReportComponent rpc : rc.getChildren()) {
+ printReportCompomnent(rpc, sep+"\t");
+ }
+ break;
+ case REFERENCE:
+ ReferenceReport ref = (ReferenceReport) rc;
+ System.out.println(sep +"Type: " + rc.getType() + " RefType=" + ref.getRefType());
+ for (ReportComponent rpc : rc.getChildren()) {
+ printReportCompomnent(rpc, sep+"\t");
+ }
+ break;
+ case MEDIA:
+ System.out.println(sep +"Type: " + rc.getType());
+ for (ReportComponent rpc : rc.getChildren()) {
+ printReportCompomnent(rpc, sep+"\t");
+ }
+ break;
+ case TB_ROW:
+ DBTableRow tr = (DBTableRow) rc;
+ System.out.println(sep +"Type: " + rc.getType() + " key=" + tr.getId());
+ for (ReportComponent rpc : rc.getChildren()) {
+ printReportCompomnent(rpc, sep+"\t");
+ }
+ break;
+ case TB_COLUMN:
+ Column cl = (Column) rc;
+ System.out.println(sep + rc.getType() + " Name= " + cl.getName() + ", Value ="+ cl.getValue());
+ break;
+ case ATTRIBUTE:
+ break;
+ default:
+ break;
+ }
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMEReportBean.java b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMEReportBean.java
new file mode 100644
index 0000000..8b941f0
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMEReportBean.java
@@ -0,0 +1,33 @@
+package org.gcube.portlets.user.reportgenerator.shared;
+
+import com.extjs.gxt.ui.client.data.BaseModel;
+
+@SuppressWarnings("serial")
+public class VMEReportBean extends BaseModel {
+
+ public VMEReportBean() {}
+
+ public VMEReportBean(String id, String rfmo, String name, int year) {
+ super();
+ set("id", id);
+ set("rfmo", rfmo);
+ set("name", name);
+ set("year", year);
+ }
+
+ public String getId() {
+ return (String) get("id");
+ }
+
+ public String getRfmo() {
+ return (String) get("rfmo");
+ }
+
+ public String getName() {
+ return (String) get("name");
+ }
+
+ public int getYear() {
+ return (Integer) get("year");
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java
index bf65631..d0b301f 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/shared/VMETypeIdentifier.java
@@ -1,9 +1,23 @@
package org.gcube.portlets.user.reportgenerator.shared;
public enum VMETypeIdentifier {
- Vme,
- GeneralMeasure,
- InformationSource,
- FisheryAreasHistory,
- VmesHistory;
+ Vme("GeneralMeasure"),
+ GeneralMeasure("GeneralMeasure"),
+ InformationSource("InformationSource"),
+ FisheryAreasHistory("FisheryAreasHistory"),
+ VMEsHistory("VMEsHistory"),
+ Rfmo("Rfmo");
+
+ private String _id;
+
+ private VMETypeIdentifier(String id) {
+ this._id = id;
+ }
+
+ /**
+ * @return the 'id' value
+ */
+ public String getId() {
+ return this._id;
+ }
}
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index c91c8ac..3d9ac9d 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -25,17 +25,6 @@
-
-
- ImagesUploadServlet
- org.gcube.portlets.user.reportgenerator.server.servlet.ImagesUploadServlet
-
-
-
- ImagesUploadServlet
- /reports/ImagesUploadServlet
-
-
WorkspaceLightService
org.gcube.portlets.widgets.lighttree.server.WorkspaceServiceImpl