From da00f0e4e3f719fa33dab130ff830dc932728713 Mon Sep 17 00:00:00 2001
From: Giancarlo Panichi
Date: Thu, 30 Mar 2017 16:38:05 +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@146465 82a268e6-3cf1-43bd-a215-b396298e98cf
---
.../client/events/TabularFldChangeEvent.java | 2 +-
.../client/parametersfield/ColumnFld.java | 36 +++--
.../client/parametersfield/ColumnListFld.java | 38 +++--
.../client/parametersfield/FileFld.java | 138 ++++++++++++++++--
.../client/parametersfield/TabularFld.java | 13 +-
5 files changed, 184 insertions(+), 43 deletions(-)
diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularFldChangeEvent.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularFldChangeEvent.java
index 59944b9..e3adc71 100644
--- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularFldChangeEvent.java
+++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/events/TabularFldChangeEvent.java
@@ -9,7 +9,7 @@ import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.HasHandlers;
/**
- * Start Computation Event
+ * TabularFldChangeEvent
*
*
* @author "Giancarlo Panichi"
");
+ descr = new HtmlLayoutContainer(
+ "");
descr.addStyleName("workflow-fieldDescription");
} else {
- //comboBox.setToolTip(columnParameter.getDescription());
- descr = new HtmlLayoutContainer(""
- + columnParameter.getDescription() + "
");
+ // comboBox.setToolTip(columnParameter.getDescription());
+ descr = new HtmlLayoutContainer(
+ ""
+ + columnParameter.getDescription() + "
");
descr.addStyleName("workflow-fieldDescription");
}
@@ -130,8 +133,20 @@ public class ColumnFld extends AbstractFld implements
*/
@Override
public String getValue() {
- ColumnItem columnItem = comboBox.getCurrentValue();
- return columnItem != null ? columnItem.getName() : null;
+ if (tableItemSimple == null) {
+ return null;
+ } else {
+ ColumnItem columnItem = comboBox.getCurrentValue();
+ if (columnItem == null) {
+ return null;
+ } else {
+ if (tableItemSimple.isTabularResource()) {
+ return columnItem.getId();
+ } else {
+ return columnItem.getName();
+ }
+ }
+ }
}
/**
@@ -149,7 +164,7 @@ public class ColumnFld extends AbstractFld implements
@Override
public void onChange(TabularFldChangeEvent event) {
- TableItemSimple tableItemSimple = event.getTableItemSimple();
+ tableItemSimple = event.getTableItemSimple();
if (tableItemSimple == null) {
store.clear();
store.commitChanges();
@@ -164,16 +179,15 @@ public class ColumnFld extends AbstractFld implements
if (columns != null) {
store.addAll(columns);
store.commitChanges();
- Log.debug("DefaultColumn: "+defaultColumn);
+ Log.debug("DefaultColumn: " + defaultColumn);
for (ColumnItem columnItem : columns) {
- Log.debug("ColumnItem: "+ columnItem);
+ Log.debug("ColumnItem: " + columnItem);
if (columnItem.getName().compareToIgnoreCase(defaultColumn) == 0) {
comboBox.setValue(columnItem);
break;
}
}
-
-
+
}
comboBox.setEnabled(true);
showFieldWithSelection(tableItemSimple);
diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/ColumnListFld.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/ColumnListFld.java
index 574a9fd..5cb32d5 100644
--- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/ColumnListFld.java
+++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/ColumnListFld.java
@@ -50,7 +50,7 @@ public class ColumnListFld extends AbstractFld implements
@XTemplate("{value}")
SafeHtml format(String value);
}
-
+
// private VerticalLayoutContainer vp;
private ColumnListParameter columnListParameter;
private ListStore store;
@@ -58,6 +58,7 @@ public class ColumnListFld extends AbstractFld implements
private CheckBoxSelectionModel sm;
private SimpleContainer fieldContainer;
private SimpleContainer vContainer;
+ private TableItemSimple tableItemSimple;
/**
*
@@ -79,13 +80,15 @@ public class ColumnListFld extends AbstractFld implements
HtmlLayoutContainer descr;
if (columnListParameter.getDescription() == null) {
- descr = new HtmlLayoutContainer("");
+ descr = new HtmlLayoutContainer(
+ "");
descr.addStyleName("workflow-fieldDescription");
} else {
- //grid.setToolTip(columnListParameter.getDescription());
- descr = new HtmlLayoutContainer(""
- + columnListParameter.getDescription() + "
");
+ // grid.setToolTip(columnListParameter.getDescription());
+ descr = new HtmlLayoutContainer(
+ ""
+ + columnListParameter.getDescription() + "
");
descr.addStyleName("workflow-fieldDescription");
}
@@ -104,7 +107,7 @@ public class ColumnListFld extends AbstractFld implements
ColumnConfig labelCol = new ColumnConfig(
props.label());
-
+
labelCol.setCell(new AbstractCell() {
@Override
@@ -114,7 +117,6 @@ public class ColumnListFld extends AbstractFld implements
sb.append(labelTemplates.format(value));
}
});
-
IdentityValueProvider identity = new IdentityValueProvider();
sm = new CheckBoxSelectionModel(identity);
@@ -181,12 +183,22 @@ public class ColumnListFld extends AbstractFld implements
String value = "";
boolean first = true;
- for (ColumnItem columnItem : sm.getSelection()) {
- String columnName = columnItem.getName();
- value += (first ? "" : separator) + columnName;
- first = false;
+ if (tableItemSimple == null) {
+ return value;
+ } else {
+ for (ColumnItem columnItem : sm.getSelection()) {
+ String columnName;
+ if (tableItemSimple.isTabularResource()) {
+ columnName = columnItem.getId();
+ } else {
+ columnName = columnItem.getName();
+ }
+ value += (first ? "" : separator) + columnName;
+ first = false;
+ }
+ return value;
}
- return value;
+
}
/**
@@ -207,7 +219,7 @@ public class ColumnListFld extends AbstractFld implements
@Override
public void onChange(TabularFldChangeEvent event) {
- TableItemSimple tableItemSimple = event.getTableItemSimple();
+ tableItemSimple = event.getTableItemSimple();
if (tableItemSimple == null) {
store.clear();
store.commitChanges();
diff --git a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/FileFld.java b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/FileFld.java
index 23ba1f0..2657234 100644
--- a/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/FileFld.java
+++ b/src/main/java/org/gcube/portlets/widgets/dataminermanagerwidget/client/parametersfield/FileFld.java
@@ -12,7 +12,10 @@ import org.gcube.data.analysis.dataminermanagercl.shared.parameters.Parameter;
import org.gcube.portlets.widgets.dataminermanagerwidget.client.DataMinerManagerPanel;
import org.gcube.portlets.widgets.dataminermanagerwidget.client.common.EventBusProvider;
import org.gcube.portlets.widgets.dataminermanagerwidget.client.events.SessionExpiredEvent;
+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;
@@ -47,27 +50,65 @@ import com.sencha.gxt.widget.core.client.form.TextField;
public class FileFld extends AbstractFld {
private VerticalLayoutContainer vp;
-
+ private SimpleContainer fieldContainer;
+ private HBoxLayoutContainer horiz;
+
// FileSelector fileSelector;
private WorkspaceExplorerSelectDialog wselectDialog;
- private TextButton selectButton, selectButton2, cancelButton;
- private ItemDescription selectedFileItem = null;
-
- private FileParameter fileParameter;
-
- private SimpleContainer fieldContainer;
-
- private HBoxLayoutContainer horiz;
-
+ private TextButton selectButton;
+ private TextButton selectButton2;
+ private TextButton selectTRButton;
+ private TextButton selectTRButton2;
+ private TextButton cancelButton;
private TextButton downloadButton;
+ private ItemDescription selectedFileItem = null;
+ private TabularResourceData tabularResourceData;
+ private FileParameter fileParameter;
+ private boolean created = false;
+
+
+
/**
* @param parameter
*/
public FileFld(Parameter parameter) {
super(parameter);
fileParameter = (FileParameter) parameter;
+ Log.debug("FileField");
+ retrieveInfo();
+ }
+ private void retrieveInfo() {
+ bind();
+ retrieveTabularResourceInfo();
+
+ }
+
+ 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(){
SimpleContainer tabContainer = new SimpleContainer();
vp = new VerticalLayoutContainer();
init();
@@ -144,6 +185,34 @@ public class FileFld extends AbstractFld {
wselectDialog.addWorkspaceExplorerSelectNotificationListener(handler);
wselectDialog.setZIndex(XDOM.getTopZIndex());
+
+ 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("Use Tabular Resource");
+
+
+
selectButton = new TextButton("Select File");
selectButton.setIcon(DataMinerManagerPanel.resources.folderExplore());
selectButton.addSelectHandler(new SelectEvent.SelectHandler() {
@@ -177,6 +246,7 @@ public class FileFld extends AbstractFld {
showNoSelectionField();
}
});
+ cancelButton.setToolTip("Cancel");
downloadButton = new TextButton("");
downloadButton.setIcon(DataMinerManagerPanel.resources.download());
@@ -187,8 +257,21 @@ public class FileFld extends AbstractFld {
downloadFile();
}
});
+ downloadButton.setToolTip("Download File");
}
+
+ private void useTabularResource() {
+ Log.debug("TabularResourceData: " + tabularResourceData);
+ selectedFileItem = new ItemDescription(
+ tabularResourceData.getTabularResourceId(),
+ tabularResourceData.getName(),
+ "","",
+ tabularResourceData.getType());
+ selectedFileItem.setPublicLink(tabularResourceData.getTabularResourceId());
+ showFieldWithTRSelection();
+ }
+
private void retrieveFileInformation(final Item item) {
Log.debug("Retrieved: " + item);
@@ -219,7 +302,7 @@ public class FileFld extends AbstractFld {
itemDescription.setPublicLink(result);
selectedFileItem = itemDescription;
Log.debug("SelectedFileItem: " + selectedFileItem);
- showFieldWithSelection();
+ showFieldWithFileSelection();
}
});
@@ -260,14 +343,17 @@ public class FileFld extends AbstractFld {
}
+
private void showNoSelectionField() {
vp.clear();
+ vp.add(selectTRButton);
vp.add(selectButton);
vp.forceLayout();
fieldContainer.forceLayout();
}
-
- private void showFieldWithSelection() {
+
+
+ private void showFieldWithFileSelection() {
String fileName = selectedFileItem.getName();
if (fileName == null || fileName.isEmpty()) {
@@ -280,6 +366,7 @@ public class FileFld extends AbstractFld {
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()));
@@ -289,6 +376,31 @@ public class FileFld extends AbstractFld {
fieldContainer.forceLayout();
}
+
+ private void showFieldWithTRSelection() {
+ String fileName = selectedFileItem.getName();
+
+ if (fileName == null || fileName.isEmpty()) {
+ fileName = "NoName";
+ }
+
+ TextField tableDescription = new TextField();
+ tableDescription.setValue(fileName);
+ 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.forceLayout();
+ fieldContainer.forceLayout();
+
+ }
+
/**
*
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 0757e23..5662391 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
@@ -85,6 +85,12 @@ public class TabularFld extends AbstractFld implements
retrieveInfo();
}
+ private void retrieveInfo() {
+ bind();
+ retrieveTabularResourceInfo();
+
+ }
+
private void bind() {
EventBusProvider.INSTANCE.addHandler(TabularResourceInfoEvent.TYPE,
new TabularResourceInfoEvent.TabularResourceInfoEventHandler() {
@@ -114,7 +120,7 @@ public class TabularFld extends AbstractFld implements
SimpleContainer tabContainer = new SimpleContainer();
vp = new VerticalLayoutContainer();
- retrieveInfo();
+ //retrieveInfo();
init();
createField(tabContainer);
@@ -127,11 +133,7 @@ public class TabularFld extends AbstractFld implements
}
}
- private void retrieveInfo() {
- bind();
- retrieveTabularResourceInfo();
- }
private void createField(SimpleContainer tabContainer) {
List templates = tabularParameter.getTemplates();
@@ -349,6 +351,7 @@ public class TabularFld extends AbstractFld implements
tabularResourceData.getDescription(),
tabularResourceData.getType());
selectedTableItem.setColumns(tabularResourceData.getColumns());
+ selectedTableItem.setTabularResource(true);
showFieldWithTRSelection();
updateListeners(selectedTableItem);