From 826cfbd75e94f863bcb464b865dbbf9c63e98dcb Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Mon, 13 Mar 2017 18:58:26 +0000 Subject: [PATCH] ref 6078:TDM - Create a new widget to support operations's invocation on DataMiner https://support.d4science.org/issues/6078 Updated to support DataMinerManagerWidget git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/data-miner-manager-widget@144881 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/DataMinerManagerController.java | 41 +++++---- .../client/DataMinerManagerDialog.java | 54 +++++++++-- .../client/DataMinerManagerPanel.java | 5 +- .../client/events/ComputationDataEvent.java | 4 +- .../client/events/ExternalExecutionEvent.java | 67 ++++++++++++++ .../events/ExternalExecutionRequestEvent.java | 66 +++++++++++++ .../client/tr/TabularResourceData.java | 92 +++++++++++++++++++ .../server/util/TableReader.java | 2 +- 8 files changed, 302 insertions(+), 29 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionEvent.java create mode 100644 src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionRequestEvent.java create mode 100644 src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/tr/TabularResourceData.java diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerController.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerController.java index b791032..53714b3 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerController.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerController.java @@ -28,6 +28,7 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.StartComp import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.StartComputationExecutionRequestEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.monitor.StatusMonitor; import org.gcube.portlets.widgets.dataminermanagerwidget.client.rpc.DataMinerPortletServiceAsync; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.tr.TabularResourceData; import org.gcube.portlets.widgets.dataminermanagerwidget.client.type.DataMinerWorkAreaElementType; import org.gcube.portlets.widgets.dataminermanagerwidget.client.type.DataMinerWorkAreaEventType; import org.gcube.portlets.widgets.dataminermanagerwidget.client.type.MenuType; @@ -55,7 +56,8 @@ public class DataMinerManagerController { private DataMinerWorkArea dataMinerWorkArea; private List operatorsClassifications; private MenuType currentVisualization; - private String operatorId; + //private String operatorId; + private TabularResourceData tabularResourceData; public DataMinerManagerController() { init(); @@ -64,15 +66,20 @@ public class DataMinerManagerController { public UserInfo getUserInfo() { return userInfo; } + //public String getOperatorId(){ + // return operatorId; + //} + public DataMinerWorkArea getDataMinerWorkArea() { return dataMinerWorkArea; } - public String getOperatorId(){ - return operatorId; + public void setTabularResourceData(TabularResourceData tabularResourceData){ + this.tabularResourceData=tabularResourceData; } - + + private void init() { currentVisualization = MenuType.EXPERIMENT; restoreUISession(); @@ -263,8 +270,8 @@ public class DataMinerManagerController { private void restoreUISession() { // checkLocale(); - operatorId = com.google.gwt.user.client.Window.Location - .getParameter(Constants.DATA_MINER_OPERATOR_ID); + //operatorId = com.google.gwt.user.client.Window.Location + // .getParameter(Constants.DATA_MINER_OPERATOR_ID); } @@ -536,13 +543,14 @@ public class DataMinerManagerController { } OperatorsClassificationEvent ocEvent; - if(event.isOperatorId()){ - ocEvent = new OperatorsClassificationEvent( - find, operatorId); - } else { + //TODO + //if(event.isOperatorId()){ + // ocEvent = new OperatorsClassificationEvent( + // find, operatorId); + //} else { ocEvent = new OperatorsClassificationEvent( find); - } + //} EventBusProvider.INSTANCE.fireEvent(ocEvent); } @@ -566,13 +574,14 @@ public class DataMinerManagerController { } OperatorsClassificationEvent ocEvent; - if(event.isOperatorId()){ - ocEvent = new OperatorsClassificationEvent( - event.getClassificationName(), find, operatorId); - } else { + //TODO + //if(event.isOperatorId()){ + // ocEvent = new OperatorsClassificationEvent( + // event.getClassificationName(), find, operatorId); + //} else { ocEvent = new OperatorsClassificationEvent( event.getClassificationName(), find); - } + //} EventBusProvider.INSTANCE.fireEvent(ocEvent); } diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerDialog.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerDialog.java index d000705..8175c6b 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerDialog.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerDialog.java @@ -1,6 +1,14 @@ package org.gcube.portlets.widgets.dataminermanagerwidget.client; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.common.EventBusProvider; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ExternalExecutionEvent; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ExternalExecutionEvent.ExternalExecutionEventHandler; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ExternalExecutionEvent.HasExternalExecutionEventHandler; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ExternalExecutionRequestEvent; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.tr.TabularResourceData; + import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.event.shared.HandlerRegistration; import com.sencha.gxt.widget.core.client.Window; /** @@ -9,19 +17,22 @@ import com.sencha.gxt.widget.core.client.Window; * href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it * */ -public class DataMinerManagerDialog extends Window { - //private DateTimeFormat dateTimeFormat= DateTimeFormat.getFormat("yyyy/MM/dd HH:mm:ss SSS"); +public class DataMinerManagerDialog extends Window implements HasExternalExecutionEventHandler { + // private DateTimeFormat dateTimeFormat= + // DateTimeFormat.getFormat("yyyy/MM/dd HH:mm:ss SSS"); private static final String WIDTH = "1024px"; private static final String HEIGHT = "600px"; - //private static final String PANELWIDTH = "620px"; - //private static final String PANELHEIGHT = "308px"; - + // private static final String PANELWIDTH = "620px"; + // private static final String PANELHEIGHT = "308px"; + private DataMinerManagerController dataMinerManagerController; + + public DataMinerManagerDialog() { Log.debug("DataMinerManagerDialog"); initWindow(); create(); - + bind(); } private void initWindow() { @@ -36,8 +47,35 @@ public class DataMinerManagerDialog extends Window { } private void create() { - DataMinerManagerPanel dataMinerManagerPanel=new DataMinerManagerPanel(); + dataMinerManagerController = new DataMinerManagerController(); + DataMinerManagerPanel dataMinerManagerPanel = new DataMinerManagerPanel(); setWidget(dataMinerManagerPanel); - + } + + public void setTabularResourceData(TabularResourceData tabularResourceData){ + dataMinerManagerController.setTabularResourceData(tabularResourceData); + } + + private void bind() { + EventBusProvider.INSTANCE + .addHandler( + ExternalExecutionRequestEvent.TYPE, + new ExternalExecutionRequestEvent.ExternalExecutionRequestEventHandler() { + + @Override + public void onSubmit(ExternalExecutionRequestEvent event) { + Log.debug("Catch ExternalExecutionRequestEvent: " + + event); + + } + }); + } + + @Override + public HandlerRegistration addExternalExecutionEventHandler( + ExternalExecutionEventHandler handler) { + return addHandler(handler, ExternalExecutionEvent.getType()); + } + } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerPanel.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerPanel.java index 45b373f..bf5c63c 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/DataMinerManagerPanel.java @@ -30,7 +30,7 @@ import com.sencha.gxt.widget.core.client.container.SimpleContainer; public class DataMinerManagerPanel extends ContentPanel { public static final Resources resources = GWT.create(Resources.class); - private DataMinerManagerController dataMinerManagerController; + private Header header; private HomePanel homePanel; @@ -55,7 +55,6 @@ public class DataMinerManagerPanel extends ContentPanel { } private void create() { - dataMinerManagerController = new DataMinerManagerController(); homePanel = new HomePanel(); dataSpacePanel = new DataSpacePanel(); experimentPanel = new ExperimentPanel(); @@ -108,6 +107,8 @@ public class DataMinerManagerPanel extends ContentPanel { } + + private void bind() { EventBusProvider.INSTANCE.addHandler(MenuSwitchEvent.TYPE, new MenuSwitchEvent.MenuSwitchEventHandler() { diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ComputationDataEvent.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ComputationDataEvent.java index 071ab43..a559ce6 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ComputationDataEvent.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ComputationDataEvent.java @@ -26,8 +26,8 @@ public class ComputationDataEvent extends void onComputationData(ComputationDataEvent event); } - public interface HasOutputShowResourceEventHandler extends HasHandlers { - public HandlerRegistration addOutputShowResourceEventHandler( + public interface HasComputationDataEventHandler extends HasHandlers { + public HandlerRegistration addComputationDataEventHandler( ComputationDataEventHandler handler); } diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionEvent.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionEvent.java new file mode 100644 index 0000000..dc3dbf2 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionEvent.java @@ -0,0 +1,67 @@ +package org.gcube.portlets.widgets.dataminermanagerwidget.client.events; + +import org.gcube.data.analysis.dataminermanagercl.shared.process.Operator; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +/** + * External Execution Event + * + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class ExternalExecutionEvent extends + GwtEvent { + + public static Type TYPE = new Type(); + private Operator op; + + public interface ExternalExecutionEventHandler extends EventHandler { + void onSubmit(ExternalExecutionEvent event); + } + + public interface HasExternalExecutionEventHandler extends + HasHandlers { + public HandlerRegistration addExternalExecutionEventHandler( + ExternalExecutionEventHandler handler); + } + + public ExternalExecutionEvent(Operator op) { + this.op = op; + } + + @Override + protected void dispatch(ExternalExecutionEventHandler handler) { + handler.onSubmit(this); + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + public static Type getType() { + return TYPE; + } + + public static void fire(HasHandlers source, + ExternalExecutionEvent event) { + source.fireEvent(event); + } + + public Operator getOp() { + return op; + } + + @Override + public String toString() { + return "ExternalExecutionEvent [op=" + op + "]"; + } + + +} diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionRequestEvent.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionRequestEvent.java new file mode 100644 index 0000000..18a171e --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/ExternalExecutionRequestEvent.java @@ -0,0 +1,66 @@ +package org.gcube.portlets.widgets.dataminermanagerwidget.client.events; + +import org.gcube.data.analysis.dataminermanagercl.shared.process.Operator; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +/** + * Start Computation Execution Request Event + * + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class ExternalExecutionRequestEvent extends + GwtEvent { + + public static Type TYPE = new Type(); + private Operator op; + + public interface ExternalExecutionRequestEventHandler extends EventHandler { + void onSubmit(ExternalExecutionRequestEvent event); + } + + public interface HasExternalExecutionRequestEventHandler extends + HasHandlers { + public HandlerRegistration addExternalExecutionRequestEventHandler( + ExternalExecutionRequestEventHandler handler); + } + + public ExternalExecutionRequestEvent(Operator op) { + this.op = op; + } + + @Override + protected void dispatch(ExternalExecutionRequestEventHandler handler) { + handler.onSubmit(this); + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + public static Type getType() { + return TYPE; + } + + public static void fire(HasHandlers source, + ExternalExecutionRequestEvent event) { + source.fireEvent(event); + } + + public Operator getOp() { + return op; + } + + @Override + public String toString() { + return "ExternalExecutionRequestEvent [op=" + op + "]"; + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/tr/TabularResourceData.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/tr/TabularResourceData.java new file mode 100644 index 0000000..7a7c640 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/tr/TabularResourceData.java @@ -0,0 +1,92 @@ +/** + * + */ +package org.gcube.portlets.widgets.dataminermanagerwidget.client.tr; + +import java.io.Serializable; +import java.util.ArrayList; + +import org.gcube.data.analysis.dataminermanagercl.shared.data.ColumnItem; + +/** + * + * @author Giancarlo Panichi email: g.panichi@isti.cnr.it + * + */ +public class TabularResourceData implements Serializable { + + private static final long serialVersionUID = 3680043028889915839L; + private String tabularResourceId; + private String name; + private String description; + private String type; + private ArrayList columns; + + /** + * + */ + public TabularResourceData() { + super(); + } + + public TabularResourceData(String tabularResourceId, String name, + String description, String type, ArrayList columns) { + super(); + this.tabularResourceId = tabularResourceId; + this.name = name; + this.description = description; + this.type = type; + this.columns = columns; + } + + public String getTabularResourceId() { + return tabularResourceId; + } + + public void setTabularResourceId(String tabularResourceId) { + this.tabularResourceId = tabularResourceId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public ArrayList getColumns() { + return columns; + } + + public void setColumns(ArrayList columns) { + this.columns = columns; + } + + @Override + public String toString() { + return "TabularResourceData [tabularResourceId=" + tabularResourceId + + ", name=" + name + ", description=" + description + ", type=" + + type + ", columns=" + columns + "]"; + } + + + +} diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/server/util/TableReader.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/server/util/TableReader.java index 02a07d8..9155fa2 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/server/util/TableReader.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/server/util/TableReader.java @@ -48,7 +48,7 @@ public class TableReader { TableItemSimple tableItemSimple=new TableItemSimple(publicLink,item.getName(), item.getType().name()); ArrayList columnItemList=new ArrayList(); for(int i=0; i