From 66ee8e99fdf6572db4a7561b16d6febdbecd5329 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Wed, 15 Mar 2017 15:13:53 +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 DataMiner git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/data-miner-manager-widget@144961 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 1 - pom.xml | 1 - .../client/DataMinerManagerController.java | 91 +++++++------ .../client/DataMinerManagerDialog.java | 1 - .../ComputationsExecutedPanel.java | 13 +- .../events/TabularResourceInfoEvent.java | 65 ++++++++++ .../TabularResourceInfoRequestEvent.java | 60 +++++++++ .../ComputationParametersPanel.java | 9 +- .../client/experiments/WorkflowPanel.java | 15 ++- .../client/parametersfield/TabularFld.java | 122 +++++++++++++++++- .../client/resources/Resources.java | 3 + .../dataminermanagerwidget.gwt.xml | 15 +-- 12 files changed, 327 insertions(+), 69 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoEvent.java create mode 100644 src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoRequestEvent.java diff --git a/.classpath b/.classpath index a8cb542..db5e9fc 100644 --- a/.classpath +++ b/.classpath @@ -22,7 +22,6 @@ - diff --git a/pom.xml b/pom.xml index c4d449c..d2ccb1c 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,6 @@ org.gcube.portlets.widgets data-miner-manager-widget 1.0.0-SNAPSHOT - war data-miner-manager-widget data-miner-manager-widget offers a unique access to perform data mining and statistical operations on heterogeneous data 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 53714b3..0fc8f59 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 @@ -14,6 +14,7 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.Computati import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.DataMinerWorkAreaEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.DataMinerWorkAreaRequestEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.DeleteItemRequestEvent; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ExternalExecutionEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.MenuEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.MenuSwitchEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.OperatorsClassificationEvent; @@ -24,8 +25,9 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.RefreshDa import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ResubmitComputationExecutionEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ResubmitComputationExecutionRequestEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.SessionExpiredEvent; -import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.StartComputationExecutionEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.StartComputationExecutionRequestEvent; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.TabularResourceInfoEvent; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.TabularResourceInfoRequestEvent; 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; @@ -56,7 +58,7 @@ public class DataMinerManagerController { private DataMinerWorkArea dataMinerWorkArea; private List operatorsClassifications; private MenuType currentVisualization; - //private String operatorId; + // private String operatorId; private TabularResourceData tabularResourceData; public DataMinerManagerController() { @@ -66,20 +68,19 @@ public class DataMinerManagerController { public UserInfo getUserInfo() { return userInfo; } - //public String getOperatorId(){ - // return operatorId; - //} - + // public String getOperatorId(){ + // return operatorId; + // } + public DataMinerWorkArea getDataMinerWorkArea() { return dataMinerWorkArea; } - - public void setTabularResourceData(TabularResourceData tabularResourceData){ - this.tabularResourceData=tabularResourceData; + + public void setTabularResourceData(TabularResourceData tabularResourceData) { + this.tabularResourceData = tabularResourceData; } - - + private void init() { currentVisualization = MenuType.EXPERIMENT; restoreUISession(); @@ -90,11 +91,11 @@ public class DataMinerManagerController { private void checkSession() { // if you do not need to something when the session expire - //CheckSession.getInstance().startPolling(); + // CheckSession.getInstance().startPolling(); } private void sessionExpiredShow() { - //CheckSession.showLogoutDialog(); + // CheckSession.showLogoutDialog(); } /* @@ -142,7 +143,9 @@ public class DataMinerManagerController { StartComputationExecutionRequestEvent event) { Log.debug("Catch StartComputationExecutionRequestEvent: " + event); - startComputationRequest(event); + ExternalExecutionEvent ev=new ExternalExecutionEvent(event.getOp()); + EventBusProvider.INSTANCE.fireEvent(ev); + //startComputationRequest(event); } }); @@ -266,15 +269,31 @@ public class DataMinerManagerController { }); + EventBusProvider.INSTANCE + .addHandler( + TabularResourceInfoRequestEvent.TYPE, + new TabularResourceInfoRequestEvent.TabularResourceInfoRequestEventHandler() { + + @Override + public void onRequest( + TabularResourceInfoRequestEvent event) { + Log.debug("Catch TabularResourceInfoRequestEvent: " + + event); + TabularResourceInfoEvent ev = new TabularResourceInfoEvent( + tabularResourceData); + EventBusProvider.INSTANCE.fireEvent(ev); + + } + + }); + } 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); } - - private void callHello() { @@ -322,6 +341,7 @@ public class DataMinerManagerController { EventBusProvider.INSTANCE.fireEvent(menuSwitchEvent); } + /* private void startComputationRequest( final StartComputationExecutionRequestEvent event) { DataMinerPortletServiceAsync.INSTANCE.startComputation(event.getOp(), @@ -363,7 +383,7 @@ public class DataMinerManagerController { StartComputationExecutionEvent event = new StartComputationExecutionEvent( computationId, computationStatusPanelIndex); EventBusProvider.INSTANCE.fireEvent(event); - } + }*/ private void cancelExecutionFromComputationsRequest( CancelExecutionFromComputationsRequestEvent event) { @@ -541,16 +561,15 @@ public class DataMinerManagerController { break; } } - + OperatorsClassificationEvent ocEvent; - //TODO - //if(event.isOperatorId()){ - // ocEvent = new OperatorsClassificationEvent( - // find, operatorId); - //} else { - ocEvent = new OperatorsClassificationEvent( - find); - //} + // TODO + // if(event.isOperatorId()){ + // ocEvent = new OperatorsClassificationEvent( + // find, operatorId); + // } else { + ocEvent = new OperatorsClassificationEvent(find); + // } EventBusProvider.INSTANCE.fireEvent(ocEvent); } @@ -572,16 +591,16 @@ public class DataMinerManagerController { } } } - + OperatorsClassificationEvent ocEvent; - //TODO - //if(event.isOperatorId()){ - // ocEvent = new OperatorsClassificationEvent( - // event.getClassificationName(), find, operatorId); - //} else { - ocEvent = new OperatorsClassificationEvent( + // 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 52e114b..4e54320 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,7 +1,6 @@ package org.gcube.portlets.widgets.dataminermanagerwidget.client; import org.gcube.portlets.widgets.dataminermanagerwidget.client.common.EventBusProvider; -import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ComputationReadyEvent; 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; diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/computations/ComputationsExecutedPanel.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/computations/ComputationsExecutedPanel.java index 6bff7c6..4d8c192 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/computations/ComputationsExecutedPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/computations/ComputationsExecutedPanel.java @@ -13,7 +13,6 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.Computati import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.DataMinerWorkAreaEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.DeleteItemRequestEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.RefreshDataMinerWorkAreaEvent; -import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ResubmitComputationExecutionRequestEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.SessionExpiredEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.UIStateEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.rpc.DataMinerPortletServiceAsync; @@ -64,7 +63,7 @@ public class ComputationsExecutedPanel extends FramedPanel { private TextButton btnDownload; private TextButton btnDelete; private TextButton btnRefresh; - private TextButton btnResubmit; + //private TextButton btnResubmit; private TextButton btnCancel; private VerticalLayoutContainer v; @@ -373,7 +372,7 @@ public class ComputationsExecutedPanel extends FramedPanel { }); - btnResubmit = new TextButton("Resubmit"); + /*btnResubmit = new TextButton("Resubmit"); btnResubmit.setIcon(DataMinerManagerPanel.resources.resubmit()); btnResubmit.setScale(ButtonScale.SMALL); btnResubmit.setIconAlign(IconAlign.LEFT); @@ -385,7 +384,7 @@ public class ComputationsExecutedPanel extends FramedPanel { resubmitComputation(); } - }); + });*/ btnCancel = new TextButton("Cancel"); btnCancel.setIcon(DataMinerManagerPanel.resources.cancelCircle()); @@ -406,7 +405,7 @@ public class ComputationsExecutedPanel extends FramedPanel { toolBar.add(btnDownload, new BoxLayoutData(new Margins(0))); toolBar.add(btnDelete, new BoxLayoutData(new Margins(0))); toolBar.add(btnRefresh, new BoxLayoutData(new Margins(0))); - toolBar.add(btnResubmit, new BoxLayoutData(new Margins(0))); + //toolBar.add(btnResubmit, new BoxLayoutData(new Margins(0))); toolBar.add(btnCancel, new BoxLayoutData(new Margins(0))); v = new VerticalLayoutContainer(); @@ -561,7 +560,7 @@ public class ComputationsExecutedPanel extends FramedPanel { } } - private void resubmitComputation() { + /*private void resubmitComputation() { if (selectedItem != null) { ItemDescription itemDescription = new ItemDescription( selectedItem.getId(), selectedItem.getName(), @@ -575,6 +574,6 @@ public class ComputationsExecutedPanel extends FramedPanel { UtilsGXT3.info("Attention", "Select a computation!"); } - } + }*/ } diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoEvent.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoEvent.java new file mode 100644 index 0000000..9ca2404 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoEvent.java @@ -0,0 +1,65 @@ +package org.gcube.portlets.widgets.dataminermanagerwidget.client.events; + +import org.gcube.portlets.widgets.dataminermanagerwidget.client.tr.TabularResourceData; + +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; + +/** + * Tabular Resource Info Event + * + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class TabularResourceInfoEvent extends + GwtEvent { + + public static Type TYPE = new Type(); + private TabularResourceData tabularResourceData; + + public interface TabularResourceInfoEventHandler extends EventHandler { + void onInfoReceived(TabularResourceInfoEvent event); + } + + public interface HasTabularResourceInfoEventHandler extends HasHandlers { + public HandlerRegistration addTabularResourceInfoEventHandler( + TabularResourceInfoEventHandler handler); + } + + public TabularResourceInfoEvent(TabularResourceData tabularResourceData) { + this.tabularResourceData = tabularResourceData; + } + + @Override + protected void dispatch(TabularResourceInfoEventHandler handler) { + handler.onInfoReceived(this); + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + public static Type getType() { + return TYPE; + } + + public static void fire(HasHandlers source, TabularResourceInfoEvent event) { + source.fireEvent(event); + } + + public TabularResourceData getTabularResourceData() { + return tabularResourceData; + } + + @Override + public String toString() { + return "TabularResourceInfoEvent [tabularResourceData=" + + tabularResourceData + "]"; + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoRequestEvent.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoRequestEvent.java new file mode 100644 index 0000000..add4006 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularResourceInfoRequestEvent.java @@ -0,0 +1,60 @@ +package org.gcube.portlets.widgets.dataminermanagerwidget.client.events; + +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; + +/** + * Tabular Resource Info Request Event + * + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class TabularResourceInfoRequestEvent + extends + GwtEvent { + + public static Type TYPE = new Type(); + + public interface TabularResourceInfoRequestEventHandler extends + EventHandler { + void onRequest(TabularResourceInfoRequestEvent event); + } + + public interface HasTabularResourceInfoRequestEventHandler extends + HasHandlers { + public HandlerRegistration addTabularResourceInfoRequestEventHandler( + TabularResourceInfoRequestEventHandler handler); + } + + public TabularResourceInfoRequestEvent() { + } + + @Override + protected void dispatch(TabularResourceInfoRequestEventHandler handler) { + handler.onRequest(this); + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + public static Type getType() { + return TYPE; + } + + public static void fire(HasHandlers source, + TabularResourceInfoRequestEvent event) { + source.fireEvent(event); + } + + @Override + public String toString() { + return "TabularResourceInfoRequestEvent []"; + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/ComputationParametersPanel.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/ComputationParametersPanel.java index e9d474b..3a3405a 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/ComputationParametersPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/ComputationParametersPanel.java @@ -23,14 +23,12 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.parametersfield. import org.gcube.portlets.widgets.dataminermanagerwidget.client.parametersfield.TabularFld; import org.gcube.portlets.widgets.dataminermanagerwidget.client.rpc.DataMinerPortletServiceAsync; import org.gcube.portlets.widgets.dataminermanagerwidget.client.util.UtilsGXT3; -import org.gcube.portlets.widgets.dataminermanagerwidget.shared.Constants; import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.SessionExpiredServiceException; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.resources.client.ImageResource; -import com.google.gwt.user.client.Window.Location; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Image; import com.sencha.gxt.core.client.util.Margins; @@ -101,18 +99,21 @@ public class ComputationParametersPanel extends SimpleContainer { img.setStylePrimaryName("workflow-icon");// -15 v.add(img, new VerticalLayoutData(-1, -1, new Margins(-15, 0, 0, 5))); - String locationRef = ""; + /*String locationRef = ""; try { String location = Location.getHref(); String[] locationData = location.split("\\?"); locationRef = locationData[0]; } catch (Throwable e) { Log.error("Error retrieving location: " + e.getLocalizedMessage()); - } + }*/ + /* HtmlLayoutContainer title = new HtmlLayoutContainer("" + operator.getName() + ""); + */ + HtmlLayoutContainer title = new HtmlLayoutContainer("" + operator.getName() + ""); title.addStyleName("workflow-title"); v.add(title, new VerticalLayoutData(-1, -1, new Margins(20, 0, 0, -25))); diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/WorkflowPanel.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/WorkflowPanel.java index a21cecb..f237690 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/WorkflowPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/experiments/WorkflowPanel.java @@ -8,6 +8,7 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.DataMinerManager import org.gcube.portlets.widgets.dataminermanagerwidget.client.common.EventBusProvider; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ComputationReadyEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.ResubmitComputationExecutionEvent; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.StartComputationExecutionRequestEvent; import com.allen_sauer.gwt.log.client.Log; import com.sencha.gxt.widget.core.client.TabItemConfig; @@ -23,7 +24,7 @@ public class WorkflowPanel extends TabPanel { public static final String DEFAULT_OPERATOR = "AQUAMAPS_SUITABLE"; - private ComputationExecutionPanel computationExecutionPanel; + //private ComputationExecutionPanel computationExecutionPanel; private ComputationPanel computationPanel; /** @@ -60,13 +61,15 @@ public class WorkflowPanel extends TabPanel { }); add(computationPanel, tabWorkFlowLcItemConf); + /* TabItemConfig tabComputationPanelItemConf = new TabItemConfig( "Computations Execution", false); tabComputationPanelItemConf.setIcon(DataMinerManagerPanel.resources .folderExplore()); computationExecutionPanel = new ComputationExecutionPanel(); add(computationExecutionPanel, tabComputationPanelItemConf); - + */ + setActiveWidget(computationPanel); } @@ -90,7 +93,7 @@ public class WorkflowPanel extends TabPanel { * */ private void resubmitComputation() { - setActiveWidget(computationExecutionPanel); + //setActiveWidget(computationExecutionPanel); } /** @@ -99,8 +102,12 @@ public class WorkflowPanel extends TabPanel { * */ private void startComputation(Operator op) { + StartComputationExecutionRequestEvent event = new StartComputationExecutionRequestEvent( + op, 1); + EventBusProvider.INSTANCE.fireEvent(event); + /* setActiveWidget(computationExecutionPanel); - computationExecutionPanel.startNewComputation(op); + computationExecutionPanel.startNewComputation(op);*/ } diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/TabularFld.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/TabularFld.java index 5f629b4..1021695 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/TabularFld.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/TabularFld.java @@ -16,7 +16,10 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.SessionEx import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.TabularFldChangeEvent; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.TabularFldChangeEvent.HasTabularFldChangeEventHandler; import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.TabularFldChangeEvent.TabularFldChangeEventHandler; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.TabularResourceInfoEvent; +import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.TabularResourceInfoRequestEvent; 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.util.UtilsGXT3; import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.SessionExpiredServiceException; import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.ItemDescription; @@ -59,12 +62,14 @@ public class TabularFld extends AbstractFld implements private VerticalLayoutContainer vp; private WorkspaceExplorerSelectDialog wselectDialog; - private TextButton selectButton, selectButton2, cancelButton, + private TextButton selectButton, selectButton2, selectTRButton, selectTRButton2, cancelButton, downloadButton; private HtmlLayoutContainer templatesList; + private TabularResourceData tabularResourceData; private TableItemSimple selectedTableItem = null; private ItemDescription itemDescriptionSelected; private TabularParameter tabularParameter; + private boolean created=false; /** @@ -73,12 +78,43 @@ public class TabularFld extends AbstractFld implements public TabularFld(Parameter parameter) { super(parameter); Log.debug("TabularField"); + retrieveInfo(); + } + + private void bind() { + EventBusProvider.INSTANCE.addHandler(TabularResourceInfoEvent.TYPE, + new TabularResourceInfoEvent.TabularResourceInfoEventHandler() { + + + @Override + public void onInfoReceived(TabularResourceInfoEvent event) { + Log.debug("Catch TabularResourceInfoEvent"); + tabularResourceData=event.getTabularResourceData(); + if(!created){ + created=true; + create(); + } + + } + }); + + } + + private void retrieveTabularResourceInfo(){ + TabularResourceInfoRequestEvent event=new TabularResourceInfoRequestEvent(); + EventBusProvider.INSTANCE.fireEvent(event); + } + + + + private void create(){ try { tabularParameter = (TabularParameter) parameter; SimpleContainer tabContainer = new SimpleContainer(); vp = new VerticalLayoutContainer(); + retrieveInfo(); init(); createField(tabContainer); @@ -91,6 +127,12 @@ public class TabularFld extends AbstractFld implements } } + private void retrieveInfo() { + bind(); + retrieveTabularResourceInfo(); + + } + private void createField(SimpleContainer tabContainer) { List templates = tabularParameter.getTemplates(); if (templates == null || templates.isEmpty()) { @@ -214,6 +256,32 @@ public class TabularFld extends AbstractFld implements + e.getLocalizedMessage()); } + selectTRButton = new TextButton("Use Tabular Resource"); + selectTRButton.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + useTabularResource(); + } + }); + selectTRButton.setIcon(DataMinerManagerPanel.resources.tabularResource()); + selectTRButton.setToolTip("Use Tabular Resource"); + + selectTRButton2 = new TextButton(""); + selectTRButton2.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + useTabularResource(); + } + }); + + selectTRButton2.setIcon(DataMinerManagerPanel.resources.tabularResource()); + selectTRButton2.setToolTip("Select Tabular Resource"); + + + + selectButton = new TextButton("Select Data Set"); selectButton.addSelectHandler(new SelectEvent.SelectHandler() { @@ -222,10 +290,10 @@ public class TabularFld extends AbstractFld implements wselectDialog.show(); } }); - selectButton.setIcon(DataMinerManagerPanel.resources.folderExplore()); selectButton.setToolTip("Select Data Set"); + selectButton2 = new TextButton(""); selectButton2.addSelectHandler(new SelectEvent.SelectHandler() { @@ -238,6 +306,9 @@ public class TabularFld extends AbstractFld implements selectButton2.setIcon(DataMinerManagerPanel.resources.folderExplore()); selectButton2.setToolTip("Select Another Data Set"); + + + cancelButton = new TextButton(""); cancelButton.setIcon(DataMinerManagerPanel.resources.cancel()); cancelButton.addSelectHandler(new SelectEvent.SelectHandler() { @@ -265,6 +336,18 @@ public class TabularFld extends AbstractFld implements throw e; } } + + + private void useTabularResource() { + Log.debug("TabularResourceData: " + tabularResourceData); + selectedTableItem=new TableItemSimple(tabularResourceData.getTabularResourceId(), + tabularResourceData.getName(),tabularResourceData.getDescription(), tabularResourceData.getType()); + selectedTableItem.setColumns(tabularResourceData.getColumns()); + showFieldWithTRSelection(); + updateListeners(selectedTableItem); + + } + private void retrieveTableInformation(Item item) { Log.debug("Retrieved: " + item); @@ -295,7 +378,7 @@ public class TabularFld extends AbstractFld implements public void onSuccess(TableItemSimple result) { Log.debug("Retrieved: " + result); selectedTableItem = result; - showFieldWithSelection(); + showFieldWithFileSelection(); updateListeners(selectedTableItem); } }); @@ -340,16 +423,40 @@ public class TabularFld extends AbstractFld implements */ private void showNoSelectionField() { vp.clear(); + vp.add(selectTRButton); vp.add(selectButton); vp.add(templatesList); vp.forceLayout(); fieldContainer.forceLayout(); } - /** - * - */ - private void showFieldWithSelection() { + + private void showFieldWithFileSelection() { + String tableName = selectedTableItem.getName(); + + if (tableName == null || tableName.isEmpty()) { + tableName = "NoName"; + } + + TextField tableDescription = new TextField(); + tableDescription.setValue(tableName); + tableDescription.setReadOnly(true); + + HBoxLayoutContainer h = new HBoxLayoutContainer(); + h.add(tableDescription, new BoxLayoutData(new Margins())); + h.add(selectTRButton2, new BoxLayoutData(new Margins())); + h.add(selectButton2, new BoxLayoutData(new Margins())); + h.add(downloadButton, new BoxLayoutData(new Margins())); + h.add(cancelButton, new BoxLayoutData(new Margins())); + vp.clear(); + vp.add(h); + vp.add(templatesList); + vp.forceLayout(); + fieldContainer.forceLayout(); + } + + + private void showFieldWithTRSelection() { String tableName = selectedTableItem.getName(); if (tableName == null || tableName.isEmpty()) { @@ -372,6 +479,7 @@ public class TabularFld extends AbstractFld implements fieldContainer.forceLayout(); } + /** * */ diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/resources/Resources.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/resources/Resources.java index 9eaeefc..df54535 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/resources/Resources.java +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/resources/Resources.java @@ -102,4 +102,7 @@ public interface Resources extends ClientBundle { @Source("show.png") ImageResource show(); + @Source("table.png") + ImageResource tabularResource(); + } diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/dataminermanagerwidget.gwt.xml b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/dataminermanagerwidget.gwt.xml index 98c8b5d..1cdc103 100644 --- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/dataminermanagerwidget.gwt.xml +++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/dataminermanagerwidget.gwt.xml @@ -16,16 +16,16 @@ - + - + - - + + @@ -36,17 +36,16 @@ - + /> --> + -