added upload image integrated with upload popup
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@95187 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
5645ceafab
commit
fd610b29bc
|
@ -1,7 +1,11 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||||
|
<dependent-module archiveName="fileupload-progress-bar-1.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/fileupload-progress-bar/fileupload-progress-bar">
|
||||||
|
<dependency-type>uses</dependency-type>
|
||||||
|
</dependent-module>
|
||||||
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
|
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
|
||||||
<property name="context-root" value="reports"/>
|
<property name="context-root" value="reports"/>
|
||||||
</wb-module>
|
</wb-module>
|
||||||
|
|
6
pom.xml
6
pom.xml
|
@ -170,9 +170,9 @@
|
||||||
<scope>${setScope}</scope>
|
<scope>${setScope}</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
<groupId>org.gcube.portlets.widgets</groupId>
|
||||||
<artifactId>workspace-tree-widget</artifactId>
|
<artifactId>fileupload-progress-bar</artifactId>
|
||||||
<scope>${setScope}</scope>
|
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
|
|
@ -50,10 +50,10 @@ import org.gcube.portlets.user.reportgenerator.client.targets.GenericTable;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingDelimiterArea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingDelimiterArea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.HeadingTextArea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.HeadingTextArea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.TSArea;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.TextTableImage;
|
import org.gcube.portlets.user.reportgenerator.client.targets.TextTableImage;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.toolbar.RichTextToolbar;
|
import org.gcube.portlets.user.reportgenerator.client.toolbar.RichTextToolbar;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.uibinder.ExportOptions;
|
import org.gcube.portlets.user.reportgenerator.client.uibinder.ExportOptions;
|
||||||
|
import org.gcube.portlets.user.reportgenerator.shared.ReportImage;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.UserBean;
|
import org.gcube.portlets.user.reportgenerator.shared.UserBean;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
|
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
|
||||||
|
@ -65,6 +65,9 @@ import org.gcube.portlets.widgets.exporter.client.event.ExportingCompletedEventH
|
||||||
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEvent;
|
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEvent;
|
||||||
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEventHandler;
|
import org.gcube.portlets.widgets.exporter.client.event.ReportExporterEventHandler;
|
||||||
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
|
import org.gcube.portlets.widgets.exporter.shared.TypeExporter;
|
||||||
|
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEvent;
|
||||||
|
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEventHandler;
|
||||||
|
import org.gcube.portlets.widgets.fileupload.client.view.UploadProgressDialog;
|
||||||
|
|
||||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
|
@ -105,8 +108,15 @@ public class Presenter {
|
||||||
|
|
||||||
private final WaitingOperationDialog dlg = new WaitingOperationDialog();
|
private final WaitingOperationDialog dlg = new WaitingOperationDialog();
|
||||||
|
|
||||||
|
private UploadProgressDialog uploadDlg;
|
||||||
|
|
||||||
private UserBean currentUser;
|
private UserBean currentUser;
|
||||||
private String currentScope;
|
private String currentScope;
|
||||||
|
|
||||||
|
private ClientImage selectedImage;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Model
|
* Model
|
||||||
*/
|
*/
|
||||||
|
@ -141,15 +151,42 @@ public class Presenter {
|
||||||
/**
|
/**
|
||||||
* eventbus events handler
|
* eventbus events handler
|
||||||
*/
|
*/
|
||||||
HandlerManager eventBus = new HandlerManager(null);
|
static HandlerManager eventBus = new HandlerManager(null);
|
||||||
|
|
||||||
public HandlerManager getEventBus() {
|
public static HandlerManager getEventBus() {
|
||||||
return eventBus;
|
return eventBus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void handleEvents() {
|
private void handleEvents() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get the uploaded file result
|
||||||
|
*/
|
||||||
|
eventBus.addHandler(FileUploadCompleteEvent.TYPE, new FileUploadCompleteEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUploadComplete(FileUploadCompleteEvent event) {
|
||||||
|
|
||||||
|
//the filename and its path on server are returned to the client
|
||||||
|
String fileName = event.getUploadedFileInfo().getFilename();
|
||||||
|
String absolutePathOnServer = event.getUploadedFileInfo().getAbsolutePath();
|
||||||
|
GWT.log(fileName + " uploaded on Server here: " + absolutePathOnServer);
|
||||||
|
|
||||||
|
reportService.getUploadedImageUrlById(fileName, absolutePathOnServer, new AsyncCallback<ReportImage>() {
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
Window.alert("An error occurred in the server: " + caught.getMessage());
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onSuccess(ReportImage result) {
|
||||||
|
uploadDlg.showRegisteringResult(true); //or false if an error occurred
|
||||||
|
selectedImage.dropImage(result.getUrl(), result.getId(), result.getWidth(), result.getHeight());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
eventBus.addHandler(SelectedReportEvent.TYPE, new SelectedReportEventHandler() {
|
eventBus.addHandler(SelectedReportEvent.TYPE, new SelectedReportEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void onReportSelected(SelectedReportEvent event) {
|
public void onReportSelected(SelectedReportEvent event) {
|
||||||
|
@ -954,9 +991,6 @@ public class Presenter {
|
||||||
setCurrCursorPos(uiY);
|
setCurrCursorPos(uiY);
|
||||||
break;
|
break;
|
||||||
case TIME_SERIES:
|
case TIME_SERIES:
|
||||||
TSArea dp5 = (TSArea) component.getContent();
|
|
||||||
wp.addComponentToLayout(dp5, component.isDoubleColLayout());
|
|
||||||
setCurrCursorPos(uiY);
|
|
||||||
break;
|
break;
|
||||||
case FLEX_TABLE:
|
case FLEX_TABLE:
|
||||||
GenericTable gt = (GenericTable) component.getContent();
|
GenericTable gt = (GenericTable) component.getContent();
|
||||||
|
@ -1118,8 +1152,11 @@ public class Presenter {
|
||||||
/**
|
/**
|
||||||
* show the upload file popup
|
* show the upload file popup
|
||||||
*/
|
*/
|
||||||
public void showUploadFilePopup() {
|
public void showUploadFilePopup(ClientImage selectedImage) {
|
||||||
toolBoxPanel.showUploadFile();
|
uploadDlg = new UploadProgressDialog("Upload Image", eventBus);
|
||||||
|
uploadDlg.center();
|
||||||
|
uploadDlg.show();
|
||||||
|
this.selectedImage = selectedImage;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package org.gcube.portlets.user.reportgenerator.client;
|
package org.gcube.portlets.user.reportgenerator.client;
|
||||||
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
|
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
|
||||||
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
|
||||||
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceServiceAsync;
|
|
||||||
|
|
||||||
import com.google.gwt.core.client.EntryPoint;
|
import com.google.gwt.core.client.EntryPoint;
|
||||||
import com.google.gwt.event.logical.shared.ResizeEvent;
|
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||||
|
@ -82,8 +80,6 @@ public class ReportGenerator implements EntryPoint {
|
||||||
|
|
||||||
private ScrollPanel bottomScrollerPanel = new ScrollPanel();
|
private ScrollPanel bottomScrollerPanel = new ScrollPanel();
|
||||||
|
|
||||||
private AppControllerExplorer treeController;
|
|
||||||
|
|
||||||
private HTML divHidden = new HTML();
|
private HTML divHidden = new HTML();
|
||||||
/**
|
/**
|
||||||
* This is the entry point method.
|
* This is the entry point method.
|
||||||
|
@ -91,14 +87,13 @@ public class ReportGenerator implements EntryPoint {
|
||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
singleton = this;
|
singleton = this;
|
||||||
presenter = new Presenter();
|
presenter = new Presenter();
|
||||||
treeController = new AppControllerExplorer();
|
|
||||||
mainLayout.setWidth("100%");
|
mainLayout.setWidth("100%");
|
||||||
mainLayout.setHeight("100%");
|
mainLayout.setHeight("100%");
|
||||||
//
|
//
|
||||||
workSpacePanel = new WorkspacePanel(presenter);
|
workSpacePanel = new WorkspacePanel(presenter);
|
||||||
titlebar = new TitleBar(presenter);
|
titlebar = new TitleBar(presenter);
|
||||||
header = new Headerbar(presenter);
|
header = new Headerbar(presenter);
|
||||||
toolBoxPanel = new ToolboxPanel(treeController);
|
toolBoxPanel = new ToolboxPanel();
|
||||||
|
|
||||||
presenter.setHeader(header);
|
presenter.setHeader(header);
|
||||||
presenter.setTitleBar(titlebar);
|
presenter.setTitleBar(titlebar);
|
||||||
|
@ -197,12 +192,6 @@ public class ReportGenerator implements EntryPoint {
|
||||||
public ToolboxPanel getToolBoxPanel() {
|
public ToolboxPanel getToolBoxPanel() {
|
||||||
return toolBoxPanel;
|
return toolBoxPanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GWTWorkspaceServiceAsync getWSTreeService() {
|
|
||||||
return treeController.getRpcWorkspaceService();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return .
|
* @return .
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.Model;
|
import org.gcube.portlets.d4sreporting.common.shared.Model;
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
|
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.Table;
|
import org.gcube.portlets.d4sreporting.common.shared.Table;
|
||||||
|
import org.gcube.portlets.user.reportgenerator.shared.ReportImage;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
|
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
|
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
|
||||||
|
@ -22,6 +23,8 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
|
||||||
@RemoteServiceRelativePath("ReportServiceImpl")
|
@RemoteServiceRelativePath("ReportServiceImpl")
|
||||||
public interface ReportService extends RemoteService{
|
public interface ReportService extends RemoteService{
|
||||||
|
|
||||||
|
ReportImage getUploadedImageUrlById(String fileName, String absolutePath);
|
||||||
|
|
||||||
ArrayList<VMEReportBean> listVMEReports();
|
ArrayList<VMEReportBean> listVMEReports();
|
||||||
|
|
||||||
ArrayList<VMEReportBean> listVMEReportRefByType(VMETypeIdentifier refType);
|
ArrayList<VMEReportBean> listVMEReportRefByType(VMETypeIdentifier refType);
|
||||||
|
@ -35,6 +38,8 @@ public interface ReportService extends RemoteService{
|
||||||
String save(String filePath, String workspaceFolderId, String ItemName,
|
String save(String filePath, String workspaceFolderId, String ItemName,
|
||||||
TypeExporter type, boolean overwrite)
|
TypeExporter type, boolean overwrite)
|
||||||
throws SaveReportFileException, SaveReportFileExistException;
|
throws SaveReportFileException, SaveReportFileExistException;
|
||||||
|
|
||||||
|
ReportImage getImageUrlById(String identifier);
|
||||||
/**
|
/**
|
||||||
* return the first ten records of the timeseries having id as param
|
* return the first ten records of the timeseries having id as param
|
||||||
* @param sTS .
|
* @param sTS .
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.Model;
|
import org.gcube.portlets.d4sreporting.common.shared.Model;
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
|
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.Table;
|
import org.gcube.portlets.d4sreporting.common.shared.Table;
|
||||||
|
import org.gcube.portlets.user.reportgenerator.shared.ReportImage;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
|
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
|
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
|
||||||
|
@ -91,4 +92,7 @@ public interface ReportServiceAsync {
|
||||||
AsyncCallback<VmeExportResponse> callback);
|
AsyncCallback<VmeExportResponse> callback);
|
||||||
void deleteReportFromRSG(VMETypeIdentifier refType, String idToDelete,
|
void deleteReportFromRSG(VMETypeIdentifier refType, String idToDelete,
|
||||||
AsyncCallback<VmeExportResponse> callback);
|
AsyncCallback<VmeExportResponse> callback);
|
||||||
|
void getImageUrlById(String identifier, AsyncCallback<ReportImage> callback);
|
||||||
|
void getUploadedImageUrlById(String fileName, String absolutePath,
|
||||||
|
AsyncCallback<ReportImage> callback);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,9 @@
|
||||||
package org.gcube.portlets.user.reportgenerator.client;
|
package org.gcube.portlets.user.reportgenerator.client;
|
||||||
|
|
||||||
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
|
||||||
import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent;
|
import org.gcube.portlets.widgets.fileupload.client.view.UploadProgressDialog;
|
||||||
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.core.client.GWT;
|
||||||
import com.google.gwt.user.client.ui.SimplePanel;
|
|
||||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -17,8 +12,6 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ToolboxPanel extends VerticalPanel {
|
public class ToolboxPanel extends VerticalPanel {
|
||||||
private AppControllerExplorer appController;
|
|
||||||
private AsyncTreePanel tp;
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -28,12 +21,7 @@ public class ToolboxPanel extends VerticalPanel {
|
||||||
*/
|
*/
|
||||||
public static final int TOOLBOX_HEIGHT= 800;
|
public static final int TOOLBOX_HEIGHT= 800;
|
||||||
|
|
||||||
public ToolboxPanel(AppControllerExplorer appController) {
|
public ToolboxPanel() {
|
||||||
this.appController = appController;
|
|
||||||
// AsyncTreePanel tp = appController.getTree(TOOLBOX_WIDTH, TOOLBOX_HEIGHT);
|
|
||||||
// this.tp = tp;
|
|
||||||
// add(tp);
|
|
||||||
// this.appController.hideSharingFacilities(); //sharing disabled we have problems from Reports
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showStructure(ReportStructurePanel panel) {
|
public void showStructure(ReportStructurePanel panel) {
|
||||||
|
@ -50,7 +38,7 @@ public class ToolboxPanel extends VerticalPanel {
|
||||||
|
|
||||||
public void showExportedVersion(String id, String fileName) {
|
public void showExportedVersion(String id, String fileName) {
|
||||||
GWT.log("showExportedVersion");
|
GWT.log("showExportedVersion");
|
||||||
AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(id, fileName, DownloadType.SHOW));
|
//AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(id, fileName, DownloadType.SHOW));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* refresh the root
|
* refresh the root
|
||||||
|
@ -58,12 +46,6 @@ public class ToolboxPanel extends VerticalPanel {
|
||||||
public void refreshRoot() {
|
public void refreshRoot() {
|
||||||
//appController.refreshRoot();
|
//appController.refreshRoot();
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* show upload file popup
|
|
||||||
*/
|
|
||||||
public void showUploadFile() {
|
|
||||||
AppControllerExplorer.getEventBus().fireEvent(new FileUploadEvent(tp.getRootItem(), UploadType.FILE));
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* lalala
|
* lalala
|
||||||
* @return the toolbox height
|
* @return the toolbox height
|
||||||
|
|
|
@ -1,112 +0,0 @@
|
||||||
package org.gcube.portlets.user.reportgenerator.client.dialog;
|
|
||||||
|
|
||||||
import com.google.gwt.user.client.ui.CheckBox;
|
|
||||||
import com.google.gwt.user.client.ui.ClickListener;
|
|
||||||
import com.google.gwt.user.client.ui.FlexTable;
|
|
||||||
import com.google.gwt.user.client.ui.HTML;
|
|
||||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author massi
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class TSHeader extends HorizontalPanel {
|
|
||||||
|
|
||||||
private CheckBox myCB;
|
|
||||||
private HTML myHeader;
|
|
||||||
private int myColNo;
|
|
||||||
private FlexTable myTable;
|
|
||||||
TimeSeriesFilterDialog caller;
|
|
||||||
TSHeader myinstance;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param tsf -
|
|
||||||
* @param myTable .
|
|
||||||
* @param cb .
|
|
||||||
* @param myColNo .
|
|
||||||
* @param myHeader .
|
|
||||||
*/
|
|
||||||
public TSHeader(TimeSeriesFilterDialog tsf, FlexTable myTable, CheckBox cb, int myColNo, HTML myHeader) {
|
|
||||||
super();
|
|
||||||
myinstance = this;
|
|
||||||
caller = tsf;
|
|
||||||
this.myTable = myTable;
|
|
||||||
this.myCB = cb;
|
|
||||||
|
|
||||||
this.myColNo = myColNo;
|
|
||||||
this.myHeader = myHeader;
|
|
||||||
setVerticalAlignment(ALIGN_MIDDLE);
|
|
||||||
myHeader.setStyleName("timeSeries_header_font");
|
|
||||||
add(myHeader);
|
|
||||||
add(myCB);
|
|
||||||
|
|
||||||
myCB.addClickListener(cbListener);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void removeEmptyHeaders( FlexTable myTable) {
|
|
||||||
|
|
||||||
for (int i = 0; i < myTable.getCellCount(0); i++) {
|
|
||||||
if (myTable.getWidget(0, i) == null) {
|
|
||||||
myTable.removeCell(0, i);
|
|
||||||
myTable.removeCell(1, i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ClickListener cbListener = new ClickListener() {
|
|
||||||
public void onClick(Widget sender) {
|
|
||||||
caller.removeHeader(myinstance);
|
|
||||||
myTable.remove(sender.getParent());
|
|
||||||
removeEmptyHeaders(myTable);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return .
|
|
||||||
*/
|
|
||||||
public CheckBox getMyCB() {
|
|
||||||
return myCB;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param myCB .
|
|
||||||
*/
|
|
||||||
public void setMyCB(CheckBox myCB) {
|
|
||||||
this.myCB = myCB;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return .
|
|
||||||
* */
|
|
||||||
public HTML getMyHeader() {
|
|
||||||
return myHeader;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param myHeader .
|
|
||||||
*/
|
|
||||||
public void setMyHeader(HTML myHeader) {
|
|
||||||
this.myHeader = myHeader;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return .
|
|
||||||
*/
|
|
||||||
public int getMyColNo() {
|
|
||||||
return myColNo;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param myColNo .
|
|
||||||
*/
|
|
||||||
public void setMyColNo(int myColNo) {
|
|
||||||
this.myColNo = myColNo;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,212 +0,0 @@
|
||||||
package org.gcube.portlets.user.reportgenerator.client.dialog;
|
|
||||||
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.portlets.d4sreporting.common.client.CommonConstants;
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.TimeSeriesFilter;
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.TimeSeriesinfo;
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.TSArea;
|
|
||||||
|
|
||||||
import com.google.gwt.event.dom.client.ClickEvent;
|
|
||||||
import com.google.gwt.event.dom.client.ClickHandler;
|
|
||||||
import com.google.gwt.user.client.Window;
|
|
||||||
import com.google.gwt.user.client.ui.Button;
|
|
||||||
import com.google.gwt.user.client.ui.ChangeListener;
|
|
||||||
import com.google.gwt.user.client.ui.CheckBox;
|
|
||||||
import com.google.gwt.user.client.ui.ClickListener;
|
|
||||||
import com.google.gwt.user.client.ui.DialogBox;
|
|
||||||
import com.google.gwt.user.client.ui.FlexTable;
|
|
||||||
import com.google.gwt.user.client.ui.Grid;
|
|
||||||
import com.google.gwt.user.client.ui.HTML;
|
|
||||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
|
||||||
import com.google.gwt.user.client.ui.ScrollPanel;
|
|
||||||
import com.google.gwt.user.client.ui.TextBox;
|
|
||||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author massi
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class TimeSeriesFilterDialog extends DialogBox {
|
|
||||||
ScrollPanel scroller = new ScrollPanel();
|
|
||||||
TextBox from = new TextBox();
|
|
||||||
TextBox to = new TextBox();
|
|
||||||
FlexTable flexTable = new FlexTable();
|
|
||||||
|
|
||||||
List<TSHeader> compoundHeaders = new LinkedList<TSHeader>();
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param sts a ts
|
|
||||||
* @param caller .
|
|
||||||
*/
|
|
||||||
public TimeSeriesFilterDialog(final TSArea caller, final RepTimeSeries sts) {
|
|
||||||
|
|
||||||
final TimeSeriesinfo droppedTS = sts.getTsMetadata();
|
|
||||||
|
|
||||||
setText(droppedTS.getTitle() + " Filter");
|
|
||||||
String name = droppedTS.getTitle();
|
|
||||||
long rowsNo = droppedTS.getDimension();
|
|
||||||
|
|
||||||
|
|
||||||
Grid metadata = new Grid(2, 2);
|
|
||||||
metadata.setWidget(0, 0, new HTML("Name:", true));
|
|
||||||
metadata.setWidget(0, 1, new HTML(name));
|
|
||||||
metadata.setWidget(1, 0, new HTML("Total rows : ", true));
|
|
||||||
metadata.setWidget(1, 1, new HTML(""+rowsNo));
|
|
||||||
|
|
||||||
|
|
||||||
final VerticalPanel main_panel = new VerticalPanel();
|
|
||||||
main_panel.addStyleName("bgBlank p8 font_family font_12");
|
|
||||||
|
|
||||||
main_panel.add(metadata);
|
|
||||||
|
|
||||||
List<String> headersString = droppedTS.getHeaderLabels();
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
for (int i = 0; i < headersString.size(); i++) {
|
|
||||||
CheckBox toAdd = new CheckBox();
|
|
||||||
toAdd.setChecked(true);
|
|
||||||
compoundHeaders.add(new TSHeader(this, flexTable, toAdd, i, new HTML(headersString.get(i) )));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main_panel.add(new HTML("Selected fields: (click to remove)"));
|
|
||||||
|
|
||||||
flexTable = getTableHeader(compoundHeaders);
|
|
||||||
main_panel.add(flexTable);
|
|
||||||
|
|
||||||
main_panel.add(new HTML("Select rows interval:"));
|
|
||||||
|
|
||||||
from.setText("1");
|
|
||||||
to.setText("10");
|
|
||||||
to.setMaxLength(6);
|
|
||||||
from.setMaxLength(6);
|
|
||||||
from.addChangeListener(textBoxListener);
|
|
||||||
to.addChangeListener(textBoxListener);
|
|
||||||
|
|
||||||
|
|
||||||
Grid rowsInterval = new Grid(1, 4);
|
|
||||||
rowsInterval.setWidget(0, 0, new HTML("From row:"));
|
|
||||||
rowsInterval.setWidget(0, 1, from);
|
|
||||||
rowsInterval.setWidget(0, 2, new HTML(" To row:"));
|
|
||||||
rowsInterval.setWidget(0, 3, to);
|
|
||||||
|
|
||||||
main_panel.add(rowsInterval);
|
|
||||||
|
|
||||||
main_panel.add(new HTML("<hr align=\"left\" size=\"1\" width=\"100%\" color=\"gray\" noshade>"));
|
|
||||||
HorizontalPanel buttonspanel = new HorizontalPanel();
|
|
||||||
buttonspanel.setHeight("50");
|
|
||||||
buttonspanel.setSpacing(3);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// PopupPanel is a SimplePanel, so you have to set it's widget property to
|
|
||||||
// whatever you want its contents to be.
|
|
||||||
Button close = new Button("Close");
|
|
||||||
close.addClickHandler(new ClickHandler() {
|
|
||||||
public void onClick(ClickEvent event) {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Button apply = new Button("Apply");
|
|
||||||
apply.addClickHandler(new ClickHandler() {
|
|
||||||
@Override
|
|
||||||
public void onClick(ClickEvent event) {
|
|
||||||
List<TSHeader> selectedCols = compoundHeaders;
|
|
||||||
|
|
||||||
List<Integer> colsToShow = new LinkedList<Integer>();
|
|
||||||
|
|
||||||
for (TSHeader head : selectedCols) {
|
|
||||||
colsToShow.add(new Integer(head.getMyColNo()));
|
|
||||||
}
|
|
||||||
int fromInt = Integer.parseInt(from.getText());
|
|
||||||
int toInt = Integer.parseInt(to.getText());
|
|
||||||
|
|
||||||
TimeSeriesFilter toSet = new TimeSeriesFilter(colsToShow, null, null, fromInt, toInt);
|
|
||||||
caller.setNewFilter(toSet);
|
|
||||||
caller.refreshHeaders();
|
|
||||||
hide();
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
buttonspanel.add(close);
|
|
||||||
buttonspanel.add(apply);
|
|
||||||
main_panel.add(buttonspanel);
|
|
||||||
|
|
||||||
scroller.setPixelSize(550, 280);
|
|
||||||
main_panel.setPixelSize(550, 260);
|
|
||||||
|
|
||||||
scroller.add(main_panel);
|
|
||||||
setWidget(scroller);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param toRemove .
|
|
||||||
* @return .
|
|
||||||
*/
|
|
||||||
public boolean removeHeader(TSHeader toRemove) {
|
|
||||||
return compoundHeaders.remove(toRemove);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* display the header of the ts
|
|
||||||
* @param droppedTS
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private FlexTable getTableHeader(List<TSHeader> headers) {
|
|
||||||
flexTable.clear();
|
|
||||||
int n = headers.size();
|
|
||||||
|
|
||||||
for (int i = 0; i < n ; i++) {
|
|
||||||
flexTable.getCellFormatter().setStyleName(0, i, "timeSeries_header");
|
|
||||||
flexTable.setWidget(0, i, headers.get(i));
|
|
||||||
flexTable.getCellFormatter().setStyleName(1, i, "timeSeries_td");
|
|
||||||
flexTable.setWidget(1, i, new HTML("..."));
|
|
||||||
}
|
|
||||||
|
|
||||||
return flexTable;
|
|
||||||
}
|
|
||||||
|
|
||||||
ChangeListener textBoxListener = new ChangeListener() {
|
|
||||||
|
|
||||||
public void onChange(Widget sender) {
|
|
||||||
TextBox tb = (TextBox) sender;
|
|
||||||
String text = tb.getText();
|
|
||||||
String checkedText = text;
|
|
||||||
text = text.replaceAll(CommonConstants.ACCEPTED_CHARS_JUST_NUM, "");
|
|
||||||
if (! text.equals(checkedText) ) {
|
|
||||||
Window.alert("Only numbers are accepted");
|
|
||||||
tb.setText(text);
|
|
||||||
}
|
|
||||||
int start = Integer.parseInt(from.getText());
|
|
||||||
int end = Integer.parseInt(to.getText());
|
|
||||||
|
|
||||||
if (start >= end) {
|
|
||||||
Window.alert("From must be greater than to");
|
|
||||||
to.setText(""+(start+10));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void show() {
|
|
||||||
super.show();
|
|
||||||
center();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -23,14 +23,12 @@ import org.gcube.portlets.user.reportgenerator.client.targets.ClientRepeatableSe
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.ClientReportReference;
|
import org.gcube.portlets.user.reportgenerator.client.targets.ClientReportReference;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.ClientSequence;
|
import org.gcube.portlets.user.reportgenerator.client.targets.ClientSequence;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.D4sRichTextarea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.D4sRichTextarea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.DropTSListener;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.ExtHidden;
|
import org.gcube.portlets.user.reportgenerator.client.targets.ExtHidden;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.GenericTable;
|
import org.gcube.portlets.user.reportgenerator.client.targets.GenericTable;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingDelimiterArea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingDelimiterArea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingInnerArea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingInnerArea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.HeadingTextArea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.HeadingTextArea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea;
|
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.TSArea;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.targets.TextTableImage;
|
import org.gcube.portlets.user.reportgenerator.client.targets.TextTableImage;
|
||||||
|
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
|
@ -338,24 +336,6 @@ public class TemplateComponent {
|
||||||
this.content = hiddenField;
|
this.content = hiddenField;
|
||||||
break;
|
break;
|
||||||
case TIME_SERIES:
|
case TIME_SERIES:
|
||||||
TSArea tsa;
|
|
||||||
RepTimeSeries sts = null;
|
|
||||||
try {
|
|
||||||
sts = ((RepTimeSeries) sc.getPossibleContent());
|
|
||||||
} catch (ClassCastException e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
//need to reset the filter when loading a TS
|
|
||||||
sts.setFilter(null);
|
|
||||||
tsa = new TSArea(presenter, width, 155, sts);
|
|
||||||
|
|
||||||
tsa.setPixelSize(width, 155);
|
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
DropTSListener dropTSListener = new DropTSListener(tsa);
|
|
||||||
|
|
||||||
this.content = tsa;
|
|
||||||
break;
|
break;
|
||||||
case REPEAT_SEQUENCE_DELIMITER:
|
case REPEAT_SEQUENCE_DELIMITER:
|
||||||
GroupingDelimiterArea gp = new GroupingDelimiterArea(width, height);
|
GroupingDelimiterArea gp = new GroupingDelimiterArea(width, height);
|
||||||
|
@ -490,9 +470,7 @@ public class TemplateComponent {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TIME_SERIES:
|
case TIME_SERIES:
|
||||||
GWT.log("Found Time Series", null);
|
GWT.log("Found Time Series, not supported anymore", null);
|
||||||
TSArea tsa = (TSArea) this.content;
|
|
||||||
content = tsa.getSts();
|
|
||||||
break;
|
break;
|
||||||
case FLEX_TABLE:
|
case FLEX_TABLE:
|
||||||
GenericTable gt = (GenericTable) this.content;
|
GenericTable gt = (GenericTable) this.content;
|
||||||
|
|
|
@ -5,13 +5,12 @@ import java.util.List;
|
||||||
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.BasicComponent;
|
import org.gcube.portlets.d4sreporting.common.shared.BasicComponent;
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.Metadata;
|
import org.gcube.portlets.d4sreporting.common.shared.Metadata;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.ReportGenerator;
|
import org.gcube.portlets.user.reportgenerator.client.ReportService;
|
||||||
|
import org.gcube.portlets.user.reportgenerator.client.ReportServiceAsync;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
|
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent;
|
import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent;
|
||||||
import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel;
|
import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel;
|
||||||
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
|
import org.gcube.portlets.user.reportgenerator.shared.ReportImage;
|
||||||
import org.gcube.portlets.user.workspace.client.workspace.folder.item.GWTExternalImage;
|
|
||||||
import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.GWTImageDocument;
|
|
||||||
import org.gcube.portlets.widgets.lighttree.client.ItemType;
|
import org.gcube.portlets.widgets.lighttree.client.ItemType;
|
||||||
import org.gcube.portlets.widgets.lighttree.client.event.PopupEvent;
|
import org.gcube.portlets.widgets.lighttree.client.event.PopupEvent;
|
||||||
import org.gcube.portlets.widgets.lighttree.client.event.PopupHandler;
|
import org.gcube.portlets.widgets.lighttree.client.event.PopupHandler;
|
||||||
|
@ -43,7 +42,7 @@ import com.google.gwt.user.client.ui.Widget;
|
||||||
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
|
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
|
||||||
*/
|
*/
|
||||||
public class ClientImage extends Composite {
|
public class ClientImage extends Composite {
|
||||||
|
private ReportServiceAsync reportService = (ReportServiceAsync) GWT.create(ReportService.class);
|
||||||
private String expectedContent = "";
|
private String expectedContent = "";
|
||||||
|
|
||||||
private final String METADATA_TITLE_KEY = "title";
|
private final String METADATA_TITLE_KEY = "title";
|
||||||
|
@ -72,10 +71,11 @@ public class ClientImage extends Composite {
|
||||||
private TextBox sourceTB = new TextBox();
|
private TextBox sourceTB = new TextBox();
|
||||||
|
|
||||||
private Button resetB = new Button("Clear");
|
private Button resetB = new Button("Clear");
|
||||||
private Button addImageB = new Button("Select Image");
|
private Button addImageB = new Button("Select from Workspace");
|
||||||
private Button uploadImageB = new Button("Upload Image");
|
private Button uploadImageB = new Button("Upload Image");
|
||||||
private Button removeB = new Button("Remove Image");
|
private Button removeB = new Button("Remove Image");
|
||||||
private BasicComponent basicComponent;
|
private BasicComponent basicComponent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param presenter
|
* @param presenter
|
||||||
|
@ -174,7 +174,7 @@ public class ClientImage extends Composite {
|
||||||
uploadImageB.addClickHandler(new ClickHandler() {
|
uploadImageB.addClickHandler(new ClickHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
presenter.showUploadFilePopup();
|
showUploadPopup();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -188,6 +188,10 @@ public class ClientImage extends Composite {
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showUploadPopup() {
|
||||||
|
presenter.showUploadFilePopup(this);
|
||||||
|
}
|
||||||
|
|
||||||
private VerticalPanel getAttributesPanel(BasicComponent co) {
|
private VerticalPanel getAttributesPanel(BasicComponent co) {
|
||||||
VerticalPanel toReturn = new VerticalPanel();
|
VerticalPanel toReturn = new VerticalPanel();
|
||||||
|
|
||||||
|
@ -214,7 +218,7 @@ public class ClientImage extends Composite {
|
||||||
|
|
||||||
hp1.add(desc);
|
hp1.add(desc);
|
||||||
hp1.add(descTB);
|
hp1.add(descTB);
|
||||||
descTB.setWidth("435px");
|
descTB.setWidth("400px");
|
||||||
toReturn.add(hp1);
|
toReturn.add(hp1);
|
||||||
|
|
||||||
toReturn.add(source);
|
toReturn.add(source);
|
||||||
|
@ -286,23 +290,22 @@ public class ClientImage extends Composite {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fetchImage(String identifier, final boolean isInteralImage, boolean fullDetails) {
|
public void fetchImage(String identifier, final boolean isInteralImage, boolean fullDetails) {
|
||||||
ReportGenerator.get().getWSTreeService().getImageById(identifier, isInteralImage, fullDetails, new AsyncCallback<GWTWorkspaceItem>() {
|
GWT.log("fetchImage:" + identifier);
|
||||||
|
reportService.getImageUrlById(identifier, new AsyncCallback<ReportImage>() {
|
||||||
|
|
||||||
public void onSuccess(GWTWorkspaceItem result) {
|
@Override
|
||||||
if (isInteralImage) {
|
public void onSuccess(ReportImage image) {
|
||||||
GWTImageDocument image = (GWTImageDocument) result;
|
|
||||||
int width = image.getWidth();
|
int width = image.getWidth();
|
||||||
int height = image.getHeight();
|
int height = image.getHeight();
|
||||||
dropImage(image.getImageUrl(), image.getId(), width, height);
|
GWT.log("image.getUrl():" + image.getUrl());
|
||||||
} else {
|
dropImage(image.getUrl(), image.getId(), width, height);
|
||||||
GWTExternalImage image = (GWTExternalImage) result;
|
|
||||||
int width = image.getWidth();
|
|
||||||
int height = image.getHeight();
|
|
||||||
dropImage(image.getImageUrl(), image.getId(), width, height);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
Window.alert("Could not fetch image from infrastructure " + caught.getCause());
|
Window.alert("Could not fetch image from infrastructure " + caught.getCause());
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -316,36 +319,6 @@ public class ClientImage extends Composite {
|
||||||
return new Image();
|
return new Image();
|
||||||
return currImage;
|
return currImage;
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * return a URL which is lookable for on the web
|
|
||||||
// * @param imageName .
|
|
||||||
// * @param templateName .
|
|
||||||
// * @return .
|
|
||||||
// */
|
|
||||||
// public String getImageURL(String imageName, String templateName) {
|
|
||||||
// currentUser = presenter.getCurrentUser().getUsername();
|
|
||||||
// currentScope = presenter.getCurrentScope();
|
|
||||||
// /**
|
|
||||||
// * Images will be stored under webapps/usersArea...
|
|
||||||
// * GWT.getModuleBaseURL() returns * e.g. http://dlib28.isti.cnr.it/templatecreator/html/
|
|
||||||
// * need to get just http://dlib28.isti.cnr.it/
|
|
||||||
// */
|
|
||||||
// //remove "/html/" and get e.g. http://dlib28.isti.cnr.it/templatecreator
|
|
||||||
// String host = GWT.getModuleBaseURL().substring(0, GWT.getModuleBaseURL().length()-6);
|
|
||||||
//
|
|
||||||
// //loog for last slash
|
|
||||||
// int lastSlash = host.lastIndexOf("/");
|
|
||||||
//
|
|
||||||
// //get what i need : e.g. http://dlib28.isti.cnr.it/ or host = "http://localhost:8080/";
|
|
||||||
// host = host.substring(0, lastSlash +1 );
|
|
||||||
// //host = "http://localhost:8080/";
|
|
||||||
//
|
|
||||||
// String imgURL = host + "usersArea/" + currentScope + "/templates/"
|
|
||||||
// + currentUser + "/CURRENT_OPEN/images/" + imageName;
|
|
||||||
//
|
|
||||||
// return imgURL;
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,115 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package org.gcube.portlets.user.reportgenerator.client.targets;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
|
||||||
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
|
||||||
|
|
||||||
import com.extjs.gxt.ui.client.dnd.DND.Operation;
|
|
||||||
import com.extjs.gxt.ui.client.dnd.DropTarget;
|
|
||||||
import com.extjs.gxt.ui.client.dnd.Insert;
|
|
||||||
import com.extjs.gxt.ui.client.event.DNDEvent;
|
|
||||||
import com.extjs.gxt.ui.client.store.TreeStoreModel;
|
|
||||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
|
|
||||||
import com.google.gwt.core.client.GWT;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Federico De Faveri defaveri@isti.cnr.it
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class DropTSListener extends DropTarget {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static final String NO_DROP = "x-dd-drop-nodrop";
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static final String OK_DROP = "x-dd-drop-ok";
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static final String OK_DROP_ADD = "x-dd-drop-ok-add";
|
|
||||||
|
|
||||||
protected TSArea panel;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param panel .
|
|
||||||
* @param config .
|
|
||||||
*/
|
|
||||||
public DropTSListener(TSArea panel) {
|
|
||||||
super(panel);
|
|
||||||
this.panel = panel;
|
|
||||||
//IMPORTANT
|
|
||||||
setOperation(Operation.COPY);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void showFeedback(DNDEvent event) {
|
|
||||||
if (!isValidDropTarget(event)) {
|
|
||||||
Insert.get().hide();
|
|
||||||
event.getStatus().setStatus(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
super.showFeedback(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
private boolean isValidDropTarget(DNDEvent event) {
|
|
||||||
GWT.log("isValidDropTarget");
|
|
||||||
TreePanel<FileModel> source = (TreePanel<FileModel>) event.getDragSource().getComponent();
|
|
||||||
List<FileModel> selection = source.getSelectionModel().getSelection();
|
|
||||||
|
|
||||||
for (FileModel model : selection) {
|
|
||||||
GWT.log("selection: " + model.getGXTFolderItemType());
|
|
||||||
if(model.getGXTFolderItemType()!=null){
|
|
||||||
if (model.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.TIME_SERIES))
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param source .
|
|
||||||
* @param e .
|
|
||||||
* @param data .
|
|
||||||
* @return .
|
|
||||||
*/
|
|
||||||
protected void onDragDrop(DNDEvent event) {
|
|
||||||
|
|
||||||
super.onDragDrop(event);
|
|
||||||
|
|
||||||
if(event.getData() != null){
|
|
||||||
List<TreeStoreModel> listItemsSource = event.getData();
|
|
||||||
GWT.log("Number of move " + listItemsSource.size());
|
|
||||||
|
|
||||||
FileModel sourceFileModel = null; //for print
|
|
||||||
|
|
||||||
for(TreeStoreModel itemSource : listItemsSource){
|
|
||||||
|
|
||||||
sourceFileModel = (FileModel) itemSource.getModel();
|
|
||||||
|
|
||||||
if(sourceFileModel.getParentFileModel()!=null)
|
|
||||||
GWT.log("Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag " + " Parent Name: " + sourceFileModel.getParentFileModel().getName() + "id " + sourceFileModel.getParentFileModel().getIdentifier());
|
|
||||||
else
|
|
||||||
GWT.log("Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag ");
|
|
||||||
|
|
||||||
GWT.log("Child count: " + itemSource.getChildCount());
|
|
||||||
|
|
||||||
panel.fetchTS(sourceFileModel.getIdentifier(), false , true);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,312 +0,0 @@
|
||||||
package org.gcube.portlets.user.reportgenerator.client.targets;
|
|
||||||
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.TimeSeriesFilter;
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.TimeSeriesinfo;
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.Table;
|
|
||||||
import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.ReportGenerator;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.dialog.TimeSeriesDialog;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.dialog.TimeSeriesFilterDialog;
|
|
||||||
import org.gcube.portlets.user.reportgenerator.client.dialog.TimeSeriesSampleDialog;
|
|
||||||
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
|
|
||||||
import org.gcube.portlets.user.workspace.client.workspace.folder.item.GWTTimeSeries;
|
|
||||||
|
|
||||||
import com.extjs.gxt.ui.client.widget.Composite;
|
|
||||||
import com.extjs.gxt.ui.client.widget.VerticalPanel;
|
|
||||||
import com.google.gwt.core.client.GWT;
|
|
||||||
import com.google.gwt.event.dom.client.ClickEvent;
|
|
||||||
import com.google.gwt.event.dom.client.ClickHandler;
|
|
||||||
import com.google.gwt.user.client.Window;
|
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
||||||
import com.google.gwt.user.client.ui.Button;
|
|
||||||
import com.google.gwt.user.client.ui.FlexTable;
|
|
||||||
import com.google.gwt.user.client.ui.Grid;
|
|
||||||
import com.google.gwt.user.client.ui.HTML;
|
|
||||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
|
||||||
import com.google.gwt.user.client.ui.Label;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <code> TSArea </code> class is a Widget you can drop a Workspace Time Series on
|
|
||||||
*
|
|
||||||
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
|
|
||||||
* @version July 2011 (3.0)
|
|
||||||
*/
|
|
||||||
public class TSArea extends Composite {
|
|
||||||
|
|
||||||
private VerticalPanel mainPanel;
|
|
||||||
private RepTimeSeries sts = new RepTimeSeries();
|
|
||||||
private String idInBasket;
|
|
||||||
private Presenter presenter;
|
|
||||||
private FlexTable flexTable;
|
|
||||||
private TSArea singleton;
|
|
||||||
|
|
||||||
VerticalPanel tableContainer = new VerticalPanel();
|
|
||||||
Grid metadata = new Grid(3, 2);
|
|
||||||
|
|
||||||
Label label;
|
|
||||||
/**
|
|
||||||
* @param presenter .
|
|
||||||
* @param width .
|
|
||||||
* @param height .
|
|
||||||
* @param sts the time series
|
|
||||||
*/
|
|
||||||
public TSArea(Presenter presenter, int width, int height, RepTimeSeries sts) {
|
|
||||||
singleton = this;
|
|
||||||
this.presenter = presenter;
|
|
||||||
mainPanel = new VerticalPanel();
|
|
||||||
//setElement(mainPanel.getElement());
|
|
||||||
|
|
||||||
mainPanel.setStyleName("timeseriesArea");
|
|
||||||
mainPanel.addStyleName("timeseriesArea_bg");
|
|
||||||
mainPanel.setWidth(width);
|
|
||||||
mainPanel.setHeight(height);
|
|
||||||
|
|
||||||
mainPanel.add(new HTML(" ", true));
|
|
||||||
this.sts = sts;
|
|
||||||
if (sts != null) {
|
|
||||||
if (sts.getTsMetadata() != null) {
|
|
||||||
showTS(sts.getTsMetadata());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
initComponent(mainPanel);
|
|
||||||
mainPanel.layout(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* called when dropped a TS on the area
|
|
||||||
* @param toShow the TS to show
|
|
||||||
*/
|
|
||||||
public void showTS(TimeSeriesinfo toShow) {
|
|
||||||
mainPanel.removeAll();
|
|
||||||
mainPanel.removeStyleName("timeseriesArea_bg");
|
|
||||||
tableContainer.removeAll();
|
|
||||||
|
|
||||||
metadata.setWidget(0, 0, new HTML("<b>TS name:</b>", true));
|
|
||||||
metadata.setWidget(0, 1, new HTML(toShow.getTitle()));
|
|
||||||
metadata.setWidget(1, 0, new HTML("<b>Creation Date:</b> ", true));
|
|
||||||
metadata.setWidget(1, 1, new HTML(toShow.getTimeSeriesCreationDate()));
|
|
||||||
metadata.setWidget(2, 0, new HTML("<b>Total rows:</b>", true));
|
|
||||||
metadata.setWidget(2, 1, new HTML(""+toShow.getDimension()));
|
|
||||||
|
|
||||||
|
|
||||||
List<String> headers = toShow.getHeaderLabels();
|
|
||||||
flexTable = new FlexTable();
|
|
||||||
|
|
||||||
int n = (headers.size() > 10) ? 10 : headers.size();
|
|
||||||
|
|
||||||
for (int i = 0; i < n ; i++) {
|
|
||||||
flexTable.getCellFormatter().setStyleName(0, i, "timeSeries_header");
|
|
||||||
flexTable.setWidget(0, i, new HTML(headers.get(i)));
|
|
||||||
flexTable.setWidget(1, i, new HTML(".."));
|
|
||||||
flexTable.getCellFormatter().setStyleName(1, i, "timeSeries_td");
|
|
||||||
}
|
|
||||||
if (headers.size() > 10) {
|
|
||||||
flexTable.setWidget(0, 11, new HTML(" more .."));
|
|
||||||
flexTable.setWidget(1, 11, new HTML(".."));
|
|
||||||
flexTable.getCellFormatter().setStyleName(0, 11, "timeSeries_header");
|
|
||||||
flexTable.getCellFormatter().setStyleName(1, 11, "timeSeries_td");
|
|
||||||
}
|
|
||||||
|
|
||||||
tableContainer.add(flexTable);
|
|
||||||
|
|
||||||
mainPanel.add(metadata);
|
|
||||||
mainPanel.add(tableContainer);
|
|
||||||
|
|
||||||
Button moreDetails = new Button("View Timeseries Metadata");
|
|
||||||
Button filter = new Button("Filter Table");
|
|
||||||
Button showSample = new Button("Show Sample");
|
|
||||||
|
|
||||||
HorizontalPanel buttonsPanel = new HorizontalPanel();
|
|
||||||
buttonsPanel.setSpacing(5);
|
|
||||||
buttonsPanel.add(moreDetails);
|
|
||||||
buttonsPanel.add(filter);
|
|
||||||
buttonsPanel.add(showSample);
|
|
||||||
|
|
||||||
mainPanel.add(buttonsPanel);
|
|
||||||
|
|
||||||
moreDetails.addClickHandler(viewMetadataTS);
|
|
||||||
showSample.addClickHandler(showTSSample);
|
|
||||||
filter.addClickHandler(applyFilterTs);
|
|
||||||
|
|
||||||
mainPanel.layout(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
ClickHandler viewMetadataTS = new ClickHandler() {
|
|
||||||
public void onClick(ClickEvent event) {
|
|
||||||
TimeSeriesDialog dlg = new TimeSeriesDialog(sts.getTsMetadata());
|
|
||||||
dlg.setAnimationEnabled(true);
|
|
||||||
dlg.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
ClickHandler applyFilterTs = new ClickHandler() {
|
|
||||||
|
|
||||||
public void onClick(ClickEvent event) {
|
|
||||||
TimeSeriesFilterDialog dlg = new TimeSeriesFilterDialog(singleton, sts);
|
|
||||||
//dlg.setPopupPosition(sender.getAbsoluteLeft(), sender.getAbsoluteTop());
|
|
||||||
dlg.setAnimationEnabled(true);
|
|
||||||
dlg.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
ClickHandler showTSSample = new ClickHandler() {
|
|
||||||
public void onClick(ClickEvent event) {
|
|
||||||
presenter.getModel().getModelService().getSampleTimeSeries(sts, new AsyncCallback<Table>() {
|
|
||||||
public void onFailure(Throwable caught) { Window.alert("There were Problem contacting Server, please try later");}
|
|
||||||
|
|
||||||
public void onSuccess(Table result) {
|
|
||||||
Table toPass = result;
|
|
||||||
TimeSeriesSampleDialog dlg = new TimeSeriesSampleDialog(toPass);
|
|
||||||
dlg.setAnimationEnabled(true);
|
|
||||||
dlg.show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param droppedTS the dropped timeseries
|
|
||||||
*/
|
|
||||||
public void dropTS(GWTTimeSeries droppedTS) {
|
|
||||||
idInBasket = droppedTS.getId();
|
|
||||||
TimeSeriesinfo tsMetadata = convertWSTS2SerialazableTS(droppedTS);
|
|
||||||
sts = new RepTimeSeries(null, tsMetadata);
|
|
||||||
GWT.log("showTS TS");
|
|
||||||
showTS(tsMetadata);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void fetchTS(String identifier, boolean isInteralImage, boolean fullDetails) {
|
|
||||||
GWT.log("FETCH TS");
|
|
||||||
this.mask("fetching TimeSeries, pleas wait", "loading-indicator");
|
|
||||||
|
|
||||||
ReportGenerator.get().getWSTreeService().getTimeSeriesById(identifier, new AsyncCallback<GWTWorkspaceItem>() {
|
|
||||||
public void onSuccess(GWTWorkspaceItem result) {
|
|
||||||
unmask();
|
|
||||||
GWTTimeSeries ts = (GWTTimeSeries) result;
|
|
||||||
dropTS(ts);
|
|
||||||
}
|
|
||||||
public void onFailure(Throwable caught) {
|
|
||||||
unmask();
|
|
||||||
Window.alert("Could not fetch Time Series from infrastructure " + caught.getCause());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* converts the WorkSpace TS Object into a Report TS Object
|
|
||||||
* @param md the TS metadata to convert
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private TimeSeriesinfo convertWSTS2SerialazableTS(GWTTimeSeries md) {
|
|
||||||
TimeSeriesinfo tsMetadata = new TimeSeriesinfo(md.getId(), md.getName(), md.getDescription(), md.getOwner(),
|
|
||||||
md.getCreationTime(), md.getLastModificationTime(), md.getTimeSeriesId(), md.getTitle(), md.getCreator(),
|
|
||||||
md.getTimeSeriesDescription(), md.getTimeSeriesCreationDate(),
|
|
||||||
md.getPublisher(), md.getSourceId(), md.getSourceName(), md.getRights(), md.getDimension(), md.getHeaderLabels());
|
|
||||||
|
|
||||||
return tsMetadata;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* refresh the headers once the TS has been filtered
|
|
||||||
*/
|
|
||||||
public void refreshHeaders() {
|
|
||||||
tableContainer.removeAll();
|
|
||||||
flexTable = new FlexTable();
|
|
||||||
|
|
||||||
List<String> filteredHeaders = new LinkedList<String>();
|
|
||||||
TimeSeriesFilter tf = sts.getFilter();
|
|
||||||
|
|
||||||
for (Integer colNo : tf.getColsNumberToShow()) {
|
|
||||||
String toAdd = sts.getTsMetadata().getHeaderLabels().get(colNo);
|
|
||||||
filteredHeaders.add(toAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int n = (filteredHeaders.size() > 10) ? 10 : filteredHeaders.size();
|
|
||||||
|
|
||||||
for (int i = 0; i < n ; i++) {
|
|
||||||
flexTable.getCellFormatter().setStyleName(0, i, "timeSeries_header");
|
|
||||||
flexTable.setWidget(0, i, new HTML(filteredHeaders.get(i)));
|
|
||||||
flexTable.setWidget(1, i, new HTML(".."));
|
|
||||||
flexTable.getCellFormatter().setStyleName(1, i, "timeSeries_td");
|
|
||||||
}
|
|
||||||
if (filteredHeaders.size() > 10) {
|
|
||||||
flexTable.setWidget(0, 11, new HTML(" more .."));
|
|
||||||
flexTable.setWidget(1, 11, new HTML(".."));
|
|
||||||
flexTable.getCellFormatter().setStyleName(0, 11, "timeSeries_header");
|
|
||||||
flexTable.getCellFormatter().setStyleName(1, 11, "timeSeries_td");
|
|
||||||
}
|
|
||||||
|
|
||||||
tableContainer.add(flexTable);
|
|
||||||
Grid newGrid = new Grid(1, 2);
|
|
||||||
newGrid.setWidget(0, 0, new HTML("<b>Selected Interval:</b> ", true));
|
|
||||||
newGrid.setWidget(0, 1, new HTML(tf.getFrom() + " - " + tf.getTo() ));
|
|
||||||
tableContainer.add(newGrid);
|
|
||||||
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return the possible content
|
|
||||||
*/
|
|
||||||
public Label getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param label set the label
|
|
||||||
*/
|
|
||||||
public void setLabel(Label label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return .
|
|
||||||
*/
|
|
||||||
public String getIdInBasket() {
|
|
||||||
return idInBasket;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param idInBasket .
|
|
||||||
*/
|
|
||||||
public void setIdInBasket(String idInBasket) {
|
|
||||||
this.idInBasket = idInBasket;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return .
|
|
||||||
*/
|
|
||||||
public RepTimeSeries getSts() {
|
|
||||||
return sts;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param sts .
|
|
||||||
*/
|
|
||||||
public void setSts(RepTimeSeries sts) {
|
|
||||||
this.sts = sts;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param tsf the new ts filter
|
|
||||||
*/
|
|
||||||
public void setNewFilter(TimeSeriesFilter tsf) {
|
|
||||||
this.sts.setFilter(tsf);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -67,7 +67,7 @@ public class OpenOptions extends Composite {
|
||||||
cmd.openTemplate.execute();
|
cmd.openTemplate.execute();
|
||||||
break;
|
break;
|
||||||
case UPLOAD:
|
case UPLOAD:
|
||||||
p.showUploadFilePopup();
|
p.showUploadFilePopup(null); //TODO: fix this
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
package org.gcube.portlets.user.reportgenerator.server.servlet;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.io.StringReader;
|
||||||
|
|
||||||
|
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.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.gcube.application.framework.core.session.SessionManager;
|
||||||
|
import org.gcube.common.homelibrary.home.HomeLibrary;
|
||||||
|
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
|
||||||
|
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalImage;
|
||||||
|
import org.gcube.common.homelibrary.util.MimeTypeUtil;
|
||||||
|
import org.gcube.common.portal.PortalContext;
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Servlet implementation class DownloadImageServlet
|
||||||
|
*/
|
||||||
|
public class DownloadImageServlet extends HttpServlet {
|
||||||
|
protected static Logger _log = Logger.getLogger(DownloadImageServlet.class);
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see HttpServlet#HttpServlet()
|
||||||
|
*/
|
||||||
|
public DownloadImageServlet() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
|
||||||
|
*/
|
||||||
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||||
|
String itemId = req.getParameter("id");
|
||||||
|
if(itemId==null || itemId.isEmpty()){
|
||||||
|
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Item id is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Workspace wa;
|
||||||
|
WorkspaceItem item;
|
||||||
|
try{
|
||||||
|
wa = getWorkspaceArea(req.getSession());
|
||||||
|
item = wa.getItem(itemId);
|
||||||
|
ExternalImage externalImage = (ExternalImage) item;
|
||||||
|
|
||||||
|
String mimeType = externalImage.getMimeType();
|
||||||
|
String itemName = MimeTypeUtil.getNameWithExtension(item.getName(), mimeType);
|
||||||
|
|
||||||
|
resp.setHeader( "Content-Disposition", "inline; filename=\"" + itemName + "\"" );
|
||||||
|
resp.setContentType(externalImage.getMimeType());
|
||||||
|
|
||||||
|
resp.setContentLength((int) externalImage.getLength());
|
||||||
|
|
||||||
|
OutputStream out = resp.getOutputStream();
|
||||||
|
InputStream is = externalImage.getData();
|
||||||
|
|
||||||
|
IOUtils.copy(is, out);
|
||||||
|
is.close();
|
||||||
|
|
||||||
|
out.close();
|
||||||
|
return;
|
||||||
|
} catch (Exception e) {
|
||||||
|
_log.error("Error during item retrieving "+itemId,e);
|
||||||
|
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during image retrieving: "+e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @throws WorkspaceFolderNotFoundException
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* @throws HomeNotFoundException
|
||||||
|
*/
|
||||||
|
protected Workspace getWorkspaceArea(HttpSession session) throws WorkspaceFolderNotFoundException, InternalErrorException, HomeNotFoundException {
|
||||||
|
String user = (String) session.getAttribute(ScopeHelper.USERNAME_ATTRIBUTE);
|
||||||
|
String currScope = ScopeProvider.instance.get();
|
||||||
|
if (currScope == null) {
|
||||||
|
String scope2Set = "/"+PortalContext.getConfiguration().getInfrastructureName();
|
||||||
|
ScopeProvider.instance.set(scope2Set);
|
||||||
|
_log.warn("Found scope null, setting infrastructure scope="+scope2Set);
|
||||||
|
}
|
||||||
|
if (user == null) {
|
||||||
|
user = ReportServiceImpl.getDevUser();
|
||||||
|
ScopeProvider.instance.set(ReportServiceImpl.TEST_SCOPE);
|
||||||
|
_log.warn("User is null in session, setting dev user = " + user);
|
||||||
|
}
|
||||||
|
Workspace toReturn = HomeLibrary.getUserWorkspace(user);
|
||||||
|
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void sendError(HttpServletResponse response, String resultMessage) throws IOException {
|
||||||
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
_log.trace("error message: "+resultMessage);
|
||||||
|
_log.trace("writing response...");
|
||||||
|
StringReader sr = new StringReader(resultMessage);
|
||||||
|
IOUtils.copy(sr, response.getOutputStream());
|
||||||
|
_log.trace("response wrote");
|
||||||
|
response.flushBuffer();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -30,6 +30,11 @@ import net.sf.csv4j.ParseException;
|
||||||
import net.sf.csv4j.ProcessingException;
|
import net.sf.csv4j.ProcessingException;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.tika.config.TikaConfig;
|
||||||
|
import org.apache.tika.detect.Detector;
|
||||||
|
import org.apache.tika.io.TikaInputStream;
|
||||||
|
import org.apache.tika.metadata.Metadata;
|
||||||
|
import org.apache.tika.mime.MediaType;
|
||||||
import org.gcube.application.framework.accesslogger.library.impl.AccessLogger;
|
import org.gcube.application.framework.accesslogger.library.impl.AccessLogger;
|
||||||
import org.gcube.application.framework.core.session.ASLSession;
|
import org.gcube.application.framework.core.session.ASLSession;
|
||||||
import org.gcube.application.framework.core.session.SessionManager;
|
import org.gcube.application.framework.core.session.SessionManager;
|
||||||
|
@ -85,6 +90,7 @@ import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.CreateRepo
|
||||||
import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.OpenReportLogEntry;
|
import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.OpenReportLogEntry;
|
||||||
import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.OpenWorkflowLogEntry;
|
import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.OpenWorkflowLogEntry;
|
||||||
import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.SaveWorkflowLogEntry;
|
import org.gcube.portlets.user.reportgenerator.server.servlet.loggers.SaveWorkflowLogEntry;
|
||||||
|
import org.gcube.portlets.user.reportgenerator.shared.ReportImage;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
import org.gcube.portlets.user.reportgenerator.shared.SessionInfo;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.UserBean;
|
import org.gcube.portlets.user.reportgenerator.shared.UserBean;
|
||||||
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
|
import org.gcube.portlets.user.reportgenerator.shared.VMEReportBean;
|
||||||
|
@ -107,6 +113,7 @@ import com.liferay.portlet.documentlibrary.model.DLFileEntry;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* class implementing services
|
* class implementing services
|
||||||
|
@ -122,9 +129,9 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
|
||||||
private boolean withinPortal = true;
|
private boolean withinPortal = true;
|
||||||
|
|
||||||
//private static final String TEST_SCOPE = "/gcube/devsec/devVRE";
|
//private static final String TEST_SCOPE = "/gcube/devsec/devVRE";
|
||||||
private static final String TEST_SCOPE = "/gcube/devNext/NextNext";
|
public static final String TEST_SCOPE = "/gcube/devNext/NextNext";
|
||||||
|
|
||||||
|
|
||||||
|
protected static final String IMAGE_SERVICE_URL = "reports/DownloadService";
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -142,6 +149,8 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
|
||||||
*/
|
*/
|
||||||
public static final String RSG_WS_ADDRESS = "RSG_WS_ADDRESS";
|
public static final String RSG_WS_ADDRESS = "RSG_WS_ADDRESS";
|
||||||
|
|
||||||
|
private static final String REPORT_IMAGES_FOLDER = "Report Images";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the WF DB Store
|
* the WF DB Store
|
||||||
|
@ -169,7 +178,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
|
||||||
|
|
||||||
String user = (String) this.getThreadLocalRequest().getSession().getAttribute(ScopeHelper.USERNAME_ATTRIBUTE);
|
String user = (String) this.getThreadLocalRequest().getSession().getAttribute(ScopeHelper.USERNAME_ATTRIBUTE);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
user = "massimiliano.assante";
|
user = getDevUser();
|
||||||
this.getThreadLocalRequest().getSession().setAttribute(ScopeHelper.USERNAME_ATTRIBUTE, user);
|
this.getThreadLocalRequest().getSession().setAttribute(ScopeHelper.USERNAME_ATTRIBUTE, user);
|
||||||
SessionManager.getInstance().getASLSession(sessionID, user).setScope(TEST_SCOPE);
|
SessionManager.getInstance().getASLSession(sessionID, user).setScope(TEST_SCOPE);
|
||||||
String email = user+"@isti.cnr.it";
|
String email = user+"@isti.cnr.it";
|
||||||
|
@ -187,6 +196,9 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
|
||||||
return SessionManager.getInstance().getASLSession(sessionID, user);
|
return SessionManager.getInstance().getASLSession(sessionID, user);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public static String getDevUser() {
|
||||||
|
return "massimiliano.assante";
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Retrieve the user saved template names
|
* Retrieve the user saved template names
|
||||||
*
|
*
|
||||||
|
@ -382,8 +394,12 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
|
||||||
log.logEntry(getASLSession().getUsername(), getASLSession().getScopeName(), logEntry);
|
log.logEntry(getASLSession().getUsername(), getASLSession().getScopeName(), logEntry);
|
||||||
|
|
||||||
if (! isTemplate) {
|
if (! isTemplate) {
|
||||||
|
try {
|
||||||
ModelReader reader = new ModelReader(toReturn);
|
ModelReader reader = new ModelReader(toReturn);
|
||||||
System.out.println(reader);
|
System.out.println(reader);
|
||||||
|
} catch (Exception e) {
|
||||||
|
_log.warn("ModelReader fails to read this report, continue...");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return toReturn;
|
return toReturn;
|
||||||
|
@ -398,6 +414,94 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* used when an image is uploaded
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ReportImage getUploadedImageUrlById(String fileName, String absolutePathOnServer) {
|
||||||
|
if (absolutePathOnServer == null)
|
||||||
|
return null;
|
||||||
|
try {
|
||||||
|
_log.trace("trying read: "+absolutePathOnServer);
|
||||||
|
WorkspaceFolder imagesFolder = getImagesFolder();
|
||||||
|
// Read from an input stream
|
||||||
|
InputStream imageData = new BufferedInputStream(new FileInputStream(absolutePathOnServer));
|
||||||
|
ExternalImage image = imagesFolder.createExternalImageItem(fileName, "automatically uploaded by Reports Manager", getMimeType(imageData, fileName), imageData);
|
||||||
|
_log.trace("Created external image with name " + image.getName());
|
||||||
|
return new ReportImage(image.getId(), buildImageServiceUrl(image.getId()), image.getWidth(), image.getHeight());
|
||||||
|
} catch (Exception e) {
|
||||||
|
_log.error("Error in server get image by id", e);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
private WorkspaceFolder getImagesFolder() {
|
||||||
|
Workspace ws = null;
|
||||||
|
WorkspaceFolder reportFolder = null;
|
||||||
|
try {
|
||||||
|
ws = getWorkspaceArea();
|
||||||
|
if (! ws.getRoot().exists(REPORT_IMAGES_FOLDER)) {
|
||||||
|
reportFolder = ws.getRoot().createFolder(REPORT_IMAGES_FOLDER, "This folder hosts the images uploaded by the Reports Manager");
|
||||||
|
} else {
|
||||||
|
reportFolder = (WorkspaceFolder) ws.getRoot().find(REPORT_IMAGES_FOLDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return reportFolder;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param is
|
||||||
|
* @return
|
||||||
|
* @throws IOException
|
||||||
|
* @throws MagicParseException
|
||||||
|
* @throws MagicMatchNotFoundException
|
||||||
|
* @throws MagicException
|
||||||
|
*/
|
||||||
|
protected static String getMimeType(InputStream is, String filenameWithExtension) throws IOException {
|
||||||
|
TikaConfig config = TikaConfig.getDefaultConfig();
|
||||||
|
Detector detector = config.getDetector();
|
||||||
|
TikaInputStream stream = TikaInputStream.get(is);
|
||||||
|
Metadata metadata = new Metadata();
|
||||||
|
metadata.add(Metadata.RESOURCE_NAME_KEY, filenameWithExtension);
|
||||||
|
MediaType mediaType = detector.detect(stream, metadata);
|
||||||
|
return mediaType.getBaseType().toString();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* used to actually display images in reports (when reading reports)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ReportImage getImageUrlById(String identifier) {
|
||||||
|
if (identifier == null)
|
||||||
|
return null;
|
||||||
|
try {
|
||||||
|
Workspace workspace = getWorkspaceArea();
|
||||||
|
_log.trace("get image URL by id: "+identifier);
|
||||||
|
|
||||||
|
WorkspaceItem item = workspace.getItem(identifier); //get item from workspace
|
||||||
|
|
||||||
|
//ACCOUNTING READ
|
||||||
|
item.markAsRead(true);
|
||||||
|
|
||||||
|
_log.trace("item name " + item.getName());
|
||||||
|
ExternalImage image = (ExternalImage) item; //Cast External Document
|
||||||
|
return new ReportImage(image.getId(), buildImageServiceUrl(image.getId()), image.getWidth(), image.getHeight());
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
_log.error("Error in server get image by id", e);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected String buildImageServiceUrl(String id) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(IMAGE_SERVICE_URL).append("?id=").append(id).append("&type=IMAGE");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -836,8 +940,13 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
|
||||||
ServiceUtil myUtil = new ServiceUtil(getASLSession());
|
ServiceUtil myUtil = new ServiceUtil(getASLSession());
|
||||||
boolean result = myUtil.writeModel(model, "CURRENT_OPEN", getVreName(), getUsername());
|
boolean result = myUtil.writeModel(model, "CURRENT_OPEN", getVreName(), getUsername());
|
||||||
|
|
||||||
|
try {
|
||||||
ModelReader reader = new ModelReader(model);
|
ModelReader reader = new ModelReader(model);
|
||||||
System.out.println(reader);
|
System.out.println(reader);
|
||||||
|
} catch (Exception e) {
|
||||||
|
_log.warn("ModelReader fails to read this report, continue...");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
_log.debug("Could not save report, serializing failed");
|
_log.debug("Could not save report, serializing failed");
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
package org.gcube.portlets.user.reportgenerator.shared;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class ReportImage implements Serializable {
|
||||||
|
private String id;
|
||||||
|
private String url;
|
||||||
|
private int width;
|
||||||
|
private int height;
|
||||||
|
public ReportImage() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
public ReportImage(String id, String url, int width, int height) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.url = url;
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
}
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
public int getWidth() {
|
||||||
|
return width;
|
||||||
|
}
|
||||||
|
public void setWidth(int width) {
|
||||||
|
this.width = width;
|
||||||
|
}
|
||||||
|
public int getHeight() {
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
public void setHeight(int height) {
|
||||||
|
this.height = height;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -4,14 +4,14 @@
|
||||||
<!-- Inherit the core Web Toolkit stuff. -->
|
<!-- Inherit the core Web Toolkit stuff. -->
|
||||||
<inherits name='com.google.gwt.user.User' />
|
<inherits name='com.google.gwt.user.User' />
|
||||||
<!-- To Comment out -->
|
<!-- To Comment out -->
|
||||||
<!-- <set-property name="user.agent" value="gecko1_8" /> -->
|
<!-- <set-property name="user.agent" value="gecko1_8" /> -->
|
||||||
<set-property name="user.agent" value="safari,gecko1_8,ie9" />
|
<set-property name="user.agent" value="safari,gecko1_8,ie9" />
|
||||||
<inherits
|
<inherits
|
||||||
name='org.gcube.portlets.widgets.lighttree.WorkspacePortletLightTree' />
|
name='org.gcube.portlets.widgets.lighttree.WorkspacePortletLightTree' />
|
||||||
<inherits name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' />
|
<inherits name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' />
|
||||||
<inherits name='org.gcube.portlets.d4sreporting.common.Reporting' />
|
<inherits name='org.gcube.portlets.d4sreporting.common.Reporting' />
|
||||||
<inherits name='com.extjs.gxt.ui.GXT' />
|
<inherits name='com.extjs.gxt.ui.GXT' />
|
||||||
<inherits name='org.gcube.portlets.user.workspace.WorkspaceTree' />
|
<inherits name='org.gcube.portlets.widgets.fileupload.FileUpload' />
|
||||||
<inherits name='org.gcube.portlets.widgets.exporter.Report_exporter_widget' />
|
<inherits name='org.gcube.portlets.widgets.exporter.Report_exporter_widget' />
|
||||||
<!-- Specify the app entry point class. -->
|
<!-- Specify the app entry point class. -->
|
||||||
<entry-point
|
<entry-point
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="WebApp_ID" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
|
||||||
<web-app id="WebApp_ID" version="2.4"
|
|
||||||
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
|
|
||||||
<display-name>ReportGenerator-portlet</display-name>
|
<display-name>ReportGenerator-portlet</display-name>
|
||||||
<!-- Servlets -->
|
<!-- Servlets -->
|
||||||
<servlet>
|
<servlet>
|
||||||
|
@ -36,6 +33,39 @@
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>uploadprogress</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.widgets.fileupload.server.UploadProgressServlet</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>uploadprogress</servlet-name>
|
||||||
|
<url-pattern>/reports/uploadprogress</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>DownloadService</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.reportgenerator.server.servlet.DownloadImageServlet</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>DownloadService</servlet-name>
|
||||||
|
<url-pattern>/reports/DownloadService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<!-- DO NOT CHANGE - DO NOT Replace URL PATTERN HERE -->
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>upload</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.widgets.fileupload.server.UploadServlet</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>upload</servlet-name>
|
||||||
|
<url-pattern>/FileUpload/upload</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<!-- END DO NOT CHANGE -->
|
||||||
|
|
||||||
|
|
||||||
<servlet>
|
<servlet>
|
||||||
<servlet-name>remoteLoggerServiceImpl</servlet-name>
|
<servlet-name>remoteLoggerServiceImpl</servlet-name>
|
||||||
|
@ -47,55 +77,6 @@
|
||||||
<url-pattern>/reports/gwt-log</url-pattern>
|
<url-pattern>/reports/gwt-log</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
<!-- Workspace Tree import part -->
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>WorkspaceService</servlet-name>
|
|
||||||
<servlet-class>org.gcube.portlets.user.workspace.server.GWTWorkspaceServiceImpl</servlet-class>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>WorkspaceService</servlet-name>
|
|
||||||
<url-pattern>/reports/WorkspaceService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>UploadService</servlet-name>
|
|
||||||
<servlet-class>org.gcube.portlets.user.workspace.server.UploadServlet</servlet-class>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>UploadService</servlet-name>
|
|
||||||
<url-pattern>/reports/UploadService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>localUploadServlet</servlet-name>
|
|
||||||
<servlet-class>org.gcube.portlets.user.workspace.server.LocalUploadServlet</servlet-class>
|
|
||||||
</servlet>
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>localUploadServlet</servlet-name>
|
|
||||||
<url-pattern>/reports/LocalUploadService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>DownloadService</servlet-name>
|
|
||||||
<servlet-class>org.gcube.portlets.user.workspace.server.DownloadServlet</servlet-class>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>DownloadService</servlet-name>
|
|
||||||
<url-pattern>/reports/DownloadService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>ImageService</servlet-name>
|
|
||||||
<servlet-class>org.gcube.portlets.user.workspace.server.ImageServlet</servlet-class>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>ImageService</servlet-name>
|
|
||||||
<url-pattern>/reports/ImageService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Fimes import expot part -->
|
<!-- Fimes import expot part -->
|
||||||
|
@ -127,23 +108,7 @@
|
||||||
<url-pattern>/reports/downloadEncryptedReport</url-pattern>
|
<url-pattern>/reports/downloadEncryptedReport</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>DownloadService</servlet-name>
|
|
||||||
<url-pattern>/org.gcube.portlets.user.reportgenerator.ReportGeneratorJUnit/DownloadService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>WorkspaceService</servlet-name>
|
|
||||||
<url-pattern>/org.gcube.portlets.user.reportgenerator.ReportGeneratorJUnit/WorkspaceService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>ImageService</servlet-name>
|
|
||||||
<url-pattern>/org.gcube.portlets.user.reportgenerator.ReportGeneratorJUnit/ImageService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>UploadService</servlet-name>
|
|
||||||
<url-pattern>/org.gcube.portlets.user.reportgenerator.ReportGeneratorJUnit/UploadService</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
<!-- Default page to serve -->
|
<!-- Default page to serve -->
|
||||||
<welcome-file-list>
|
<welcome-file-list>
|
||||||
<welcome-file>ReportGenerator.html</welcome-file>
|
<welcome-file>ReportGenerator.html</welcome-file>
|
||||||
|
|
Reference in New Issue