From 1d3de9f423f49f711df92f44612ee4e9a6c322ef Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Tue, 8 May 2018 10:23:11 +0000 Subject: [PATCH] Enhancement on Task #10070 GUI enhancement git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/widgets/ws-task-executor-widget@167361 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/WsTaskExecutorWidget.java | 4 +- .../client/event/DeleteCustomFieldEvent.java | 51 +++++ .../event/DeleteCustomFieldEventHandler.java | 19 ++ .../rpc/WsTaskExecutorWidgetService.java | 10 + .../rpc/WsTaskExecutorWidgetServiceAsync.java | 11 ++ .../view/WsTaskExecutorWidgetViewManager.java | 18 +- .../binder/CreateTaskConfigurationView.java | 121 +++++++----- .../binder/CreateTaskConfigurationView.ui.xml | 30 +-- .../client/view/binder/CustomFieldEntry.java | 179 ++++++++++++++++++ .../view/binder/CustomFieldEntry.ui.xml | 21 ++ .../WsTaskExecutorWidgetServiceImpl.java | 12 +- .../wstaskexecutor/shared/WsFolder.java | 63 +++++- 12 files changed, 455 insertions(+), 84 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEvent.java create mode 100644 src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEventHandler.java create mode 100644 src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.java create mode 100644 src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.ui.xml diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/WsTaskExecutorWidget.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/WsTaskExecutorWidget.java index 2e42aa1..5ae9a75 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/WsTaskExecutorWidget.java +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/WsTaskExecutorWidget.java @@ -84,8 +84,6 @@ public class WsTaskExecutorWidget { } }); - - } @@ -147,7 +145,7 @@ public class WsTaskExecutorWidget { if(caught instanceof ItemNotConfiguredException){ - viewManager.showCreateConfigurationFolder(folder, null); + viewManager.showCreateTaskConfigurationForFolder(folder, null); }else if(caught instanceof WorkspaceFolderLocked){ VerticalPanel v = new VerticalPanel(); diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEvent.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEvent.java new file mode 100644 index 0000000..3cc953c --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEvent.java @@ -0,0 +1,51 @@ +package org.gcube.portlets.widgets.wstaskexecutor.client.event; +import org.gcube.portlets.widgets.wstaskexecutor.client.view.binder.CustomFieldEntry; + +import com.google.gwt.event.shared.GwtEvent; + + +/** + * The Class DeleteCustomFieldEvent. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 8, 2018 + */ +public class DeleteCustomFieldEvent extends GwtEvent { + public static Type TYPE = new Type(); + + private CustomFieldEntry removedEntry; + + /** + * Instantiates a new delete custom field event. + * + * @param removedEntry the removed entry + */ + public DeleteCustomFieldEvent(CustomFieldEntry removedEntry) { + this.removedEntry = removedEntry; + } + + /** + * Gets the removed entry. + * + * @return the removed entry + */ + public CustomFieldEntry getRemovedEntry() { + return removedEntry; + } + + /* (non-Javadoc) + * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() + */ + @Override + public Type getAssociatedType() { + return TYPE; + } + + /* (non-Javadoc) + * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler) + */ + @Override + protected void dispatch(DeleteCustomFieldEventHandler handler) { + handler.onRemoveEntry(this); + } +} diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEventHandler.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEventHandler.java new file mode 100644 index 0000000..e14bd2d --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/event/DeleteCustomFieldEventHandler.java @@ -0,0 +1,19 @@ +package org.gcube.portlets.widgets.wstaskexecutor.client.event; + +import com.google.gwt.event.shared.EventHandler; + +/** + * The Interface DeleteCustomFieldEventHandler. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 8, 2018 + */ +public interface DeleteCustomFieldEventHandler extends EventHandler { + + /** + * On remove entry. + * + * @param event the event + */ + void onRemoveEntry(DeleteCustomFieldEvent event); +} diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetService.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetService.java index 0fd3d70..0ba23f9 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetService.java +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetService.java @@ -2,6 +2,7 @@ package org.gcube.portlets.widgets.wstaskexecutor.client.rpc; import java.util.List; +import org.gcube.common.workspacetaskexecutor.shared.TaskParameterType; import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskConfiguration; import org.gcube.common.workspacetaskexecutor.shared.exception.ItemNotConfiguredException; import org.gcube.portlets.widgets.wstaskexecutor.shared.GcubeScope; @@ -35,4 +36,13 @@ public interface WsTaskExecutorWidgetService extends RemoteService { * @throws ItemNotConfiguredException, Exception */ List checkItemTaskConfigurations(String itemId) throws ItemNotConfiguredException, Exception; + + + /** + * Gets the availables parameter types. + * + * @return the availables parameter types + * @throws Exception the exception + */ + List getAvailableParameterTypes() throws Exception; } diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetServiceAsync.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetServiceAsync.java index f64f082..a6fd250 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetServiceAsync.java +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/rpc/WsTaskExecutorWidgetServiceAsync.java @@ -5,6 +5,7 @@ package org.gcube.portlets.widgets.wstaskexecutor.client.rpc; import java.util.List; +import org.gcube.common.workspacetaskexecutor.shared.TaskParameterType; import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskComputation; import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskConfiguration; import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskExecutionStatus; @@ -84,4 +85,14 @@ public interface WsTaskExecutorWidgetServiceAsync { void monitorTaskExecutionStatus( TaskConfiguration configuration, TaskComputation taskComputation, AsyncCallback asyncCallback); + + + + /** + * Gets the available parameter types. + * + * @param asyncCallback the async callback + * @return the available parameter types + */ + void getAvailableParameterTypes(AsyncCallback> asyncCallback); } diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/WsTaskExecutorWidgetViewManager.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/WsTaskExecutorWidgetViewManager.java index 68db205..8b98681 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/WsTaskExecutorWidgetViewManager.java +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/WsTaskExecutorWidgetViewManager.java @@ -35,12 +35,6 @@ public class WsTaskExecutorWidgetViewManager { private Map mapMonitor = new HashMap(); - /** - * Instantiates a new ws thredds widget view manager. - */ - public WsTaskExecutorWidgetViewManager() { - } - /** * Cancel scheduler. * @@ -239,13 +233,15 @@ public class WsTaskExecutorWidgetViewManager { public void showTaskConfigurationsFolderInfo(WsFolder folder, final List result, final List taskEventsListeners) { } + + /** - * Show create configuration folder. + * Show create task configuration for folder. * * @param folder the folder * @param conf the conf */ - public void showCreateConfigurationFolder(final WsFolder folder, TaskConfiguration conf){ + public void showCreateTaskConfigurationForFolder(final WsFolder folder, TaskConfiguration conf){ final Modal box = new Modal(true); box.setTitle("Create Task Configuration for: "+FormatUtil.getFolderTitle(folder.getFoderName(), 20)); @@ -272,7 +268,7 @@ public class WsTaskExecutorWidgetViewManager { } }; - CreateTaskConfigurationView createThreddsConfiguration = new CreateTaskConfigurationView(folder.getFolderId()) { + CreateTaskConfigurationView createTaskConfiguration = new CreateTaskConfigurationView(folder) { @Override public void submitHandler() { @@ -282,7 +278,7 @@ public class WsTaskExecutorWidgetViewManager { conf.setTaskId(getTaskId()); conf.setTaskDescription(""); conf.setWorkspaceItemId(folder.getFolderId()); - conf.setMapParameters(getParameters()); + conf.setListParameters(getParameters()); WsTaskExecutorWidget.eventBus.fireEvent(new PerformRunTaskEvent(folder, conf)); } @@ -319,7 +315,7 @@ public class WsTaskExecutorWidgetViewManager { } }; - panelView.addViewAsWidget(createThreddsConfiguration); + panelView.addViewAsWidget(createTaskConfiguration); box.add(panelView); box.show(); diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.java index 03ed1de..dad7189 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.java +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.java @@ -1,15 +1,24 @@ package org.gcube.portlets.widgets.wstaskexecutor.client.view.binder; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.gcube.common.workspacetaskexecutor.shared.TaskParameter; +import org.gcube.common.workspacetaskexecutor.shared.TaskParameterType; import org.gcube.portlets.widgets.wstaskexecutor.client.WsTaskExecutorWidget; +import org.gcube.portlets.widgets.wstaskexecutor.client.event.DeleteCustomFieldEvent; +import org.gcube.portlets.widgets.wstaskexecutor.client.event.DeleteCustomFieldEventHandler; import org.gcube.portlets.widgets.wstaskexecutor.client.view.FormatUtil; import org.gcube.portlets.widgets.wstaskexecutor.shared.GcubeScope; +import org.gcube.portlets.widgets.wstaskexecutor.shared.WsFolder; +import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.ControlGroup; +import com.github.gwtbootstrap.client.ui.Controls; +import com.github.gwtbootstrap.client.ui.Form; import com.github.gwtbootstrap.client.ui.ListBox; import com.github.gwtbootstrap.client.ui.Pager; import com.github.gwtbootstrap.client.ui.TextBox; @@ -19,8 +28,10 @@ import com.google.gwt.dom.client.Document; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.DomEvent; +import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; @@ -56,12 +67,6 @@ public abstract class CreateTaskConfigurationView extends Composite { @UiField ListBox field_select_scope; - @UiField - TextBox field_key_param; - - @UiField - TextBox field_value_param; - @UiField ControlGroup cg_input_task_id; @@ -69,27 +74,33 @@ public abstract class CreateTaskConfigurationView extends Composite { ControlGroup cg_select_vre; @UiField - ControlGroup cg_input_key_param; + ControlGroup cg_parameters_control; @UiField - ControlGroup cg_input_value_param; - - + Form form_unit_fields; @UiField TextBox field_task_id; + @UiField + Controls task_parameters_control; + + @UiField + Button addCustomFieldButton; - /** The folder id. */ - private String folderId; /** The map VR es. */ private Map mapScopes = new HashMap(); - - private String currentScope; + public final static HandlerManager eventBus = new HandlerManager(null); + + // added custom field entries (by the user) + private List customFieldEntriesList = new ArrayList(); + + + private WsFolder folder; /** * Submit handler. @@ -126,13 +137,15 @@ public abstract class CreateTaskConfigurationView extends Composite { * Note that depending on the widget that is used, it may be necessary to * implement HasHTML instead of HasText. * - * @param folderId the folder id + * @param folder the folder */ - public CreateTaskConfigurationView(String folderId) { - this.folderId = folderId; + public CreateTaskConfigurationView(WsFolder folder) { + this.folder = folder; initWidget(uiBinder.createAndBindUi(this)); + bindEvents(); + pager.getLeft().setVisible(false); pager.getRight().addClickHandler(new ClickHandler() { @@ -176,20 +189,48 @@ public abstract class CreateTaskConfigurationView extends Composite { } }); + CustomFieldEntry customFieldEntry; + if(folder.getPublicLink()!=null){ + customFieldEntry = new CustomFieldEntry(eventBus, "publicLink", folder.getPublicLink(), false); + customFieldEntriesList.add(customFieldEntry); + task_parameters_control.add(customFieldEntry); + }else + addCustomFieldEvent(null); } - /** - * Inits the field catalogue name. + * Adds the custom field event. + * + * @param e the e */ - private void initFields() { + @UiHandler("addCustomFieldButton") + void addCustomFieldEvent(ClickEvent e){ + + CustomFieldEntry toAdd = new CustomFieldEntry(eventBus, "", "", true); + customFieldEntriesList.add(toAdd); + task_parameters_control.add(toAdd); - field_task_id.setText(""); - field_key_param.setText(""); - field_value_param.setText(""); } + /** + * Bind events. + */ + private void bindEvents() { + + // when a custom field is removed, remove it from the list + eventBus.addHandler(DeleteCustomFieldEvent.TYPE, new DeleteCustomFieldEventHandler() { + + @Override + public void onRemoveEntry(DeleteCustomFieldEvent event) { + customFieldEntriesList.remove(event.getRemovedEntry()); + task_parameters_control.remove(event.getRemovedEntry()); + } + }); + + } + + /** * Validate submit. * @@ -197,8 +238,7 @@ public abstract class CreateTaskConfigurationView extends Composite { */ protected boolean validateSubmit() { cg_input_task_id.setType(ControlGroupType.NONE); - cg_input_key_param.setType(ControlGroupType.NONE); - cg_input_value_param.setType(ControlGroupType.NONE); + cg_parameters_control.setType(ControlGroupType.NONE); //cg_remote_path.setType(ControlGroupType.NONE); if(field_select_scope.getSelectedItemText()==null){ @@ -213,16 +253,12 @@ public abstract class CreateTaskConfigurationView extends Composite { return false; } - if(field_key_param.getValue() == null || field_key_param.getValue().isEmpty()){ - cg_input_key_param.setType(ControlGroupType.WARNING); - setConfirm(true, "The key of input parameter is empty. Do you want continue anyway?"); - return false; - } - - if(field_value_param.getValue() == null || field_value_param.getValue().isEmpty()){ - cg_input_key_param.setType(ControlGroupType.WARNING); - setConfirm(true, "The value of input parameter is empty. Do you want continue anyway?"); - return false; + for (CustomFieldEntry cFE : customFieldEntriesList) { + if(cFE.getKey()==null || cFE.getKey().isEmpty()){ + cg_parameters_control.setType(ControlGroupType.ERROR); + setError(true, "You must type a valid key paramter!"); + return false; + } } return true; @@ -251,20 +287,19 @@ public abstract class CreateTaskConfigurationView extends Composite { } - /** * Gets the parameters. * * @return the parameters */ - public Map getParameters(){ + public List getParameters(){ - Map map = new HashMap(1); - map.put(field_key_param.getValue(), field_value_param.getValue()); - return map; + List listParameters = new ArrayList(); + for (CustomFieldEntry cFE : customFieldEntriesList) { + TaskParameter tp = new TaskParameter(cFE.getKey(), cFE.getValue(), null, new TaskParameterType(cFE.getType())); + listParameters.add(tp); + } + return listParameters; } - - - } diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.ui.xml b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.ui.xml index 82316d4..1a058c2 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.ui.xml +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CreateTaskConfigurationView.ui.xml @@ -7,8 +7,8 @@ } - - + + @@ -29,27 +29,15 @@ - With Parameter - - - Parameter Key - - - - - - Parameter Value - - - - - - + + With Parameters + + + + diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.java new file mode 100644 index 0000000..12f8e7c --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.java @@ -0,0 +1,179 @@ +package org.gcube.portlets.widgets.wstaskexecutor.client.view.binder; + +import java.util.List; + +import org.gcube.common.workspacetaskexecutor.shared.TaskParameterType; +import org.gcube.portlets.widgets.wstaskexecutor.client.WsTaskExecutorWidget; +import org.gcube.portlets.widgets.wstaskexecutor.client.event.DeleteCustomFieldEvent; + +import com.github.gwtbootstrap.client.ui.Button; +import com.github.gwtbootstrap.client.ui.InputAddOn; +import com.github.gwtbootstrap.client.ui.ListBox; +import com.github.gwtbootstrap.client.ui.TextBox; +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.shared.HandlerManager; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +import com.google.gwt.user.client.Window; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.Widget; + + +/** + * The Class CustomFieldEntry. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 8, 2018 + */ +public class CustomFieldEntry extends Composite { + + private static CustomFieldEntryUiBinder uiBinder = GWT + .create(CustomFieldEntryUiBinder.class); + + /** + * The Interface CustomFieldEntryUiBinder. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * May 8, 2018 + */ + interface CustomFieldEntryUiBinder extends + UiBinder { + } + + @UiField InputAddOn keyFieldPrepend; + @UiField InputAddOn valueFieldPrepend; + @UiField Button removeCustomField; + @UiField ListBox field_select_parameter; + + private List parameterTypes; + + //inserted values + private String value; + private String key; + private boolean isCustomCreatedByUser; + + // event bus + private HandlerManager eventBus; + + /** + * Instantiates a new custom field entry. + * + * @param eventBus the event bus + * @param key the key + * @param value the value + * @param isCustomCreatedByUser the is custom created by user + */ + public CustomFieldEntry(HandlerManager eventBus, String key, String value, boolean isCustomCreatedByUser) { + initWidget(uiBinder.createAndBindUi(this)); + + keyFieldPrepend.setTitle("This is the key of the parameter"); + valueFieldPrepend.setTitle("This is the value of the parameter"); + + // save information + this.eventBus = eventBus; + this.value = value; + this.key = key; + this.isCustomCreatedByUser = isCustomCreatedByUser; + + // remove the first appendbox + if(!isCustomCreatedByUser){ + this.valueFieldPrepend.removeFromParent(); + this.keyFieldPrepend.setPrependText(key + ":"); + ((TextBox)this.keyFieldPrepend.getWidget(1)).setText(value); + } + + WsTaskExecutorWidget.wsTaskService.getAvailableParameterTypes(new AsyncCallback>() { + + + @Override + public void onFailure(Throwable caught) { + Window.alert(caught.getMessage()); + field_select_parameter.setEnabled(false); + + } + + @Override + public void onSuccess(List result) { + + parameterTypes = result; + + for (TaskParameterType taskParameterType : result) { + field_select_parameter.addItem(taskParameterType.getType(), taskParameterType.getType()); + } + + field_select_parameter.setEnabled(true); + } + }); + + field_select_parameter.setEnabled(false); + + } + + /** + * Retrieve the key value. + * + * @return the key + */ + public String getKey(){ + + if(isCustomCreatedByUser){ + + return ((TextBox)this.keyFieldPrepend.getWidget(1)).getText(); + + } + + return key; + + } + + /** + * Retrieve the value. + * + * @return the value + */ + public String getValue(){ + + if(isCustomCreatedByUser){ + + return ((TextBox)this.valueFieldPrepend.getWidget(1)).getText(); + + } + + return value; + } + + /** + * On remove custom field. + * + * @param e the e + */ + @UiHandler("removeCustomField") + void onRemoveCustomField(ClickEvent e){ + + // fire event + eventBus.fireEvent(new DeleteCustomFieldEvent(this)); + + } + + /** + * Remove delete button. + */ + public void freeze() { + + removeCustomField.setEnabled(false); + + } + + /** + * Gets the type. + * + * @return the type + */ + public String getType(){ + return field_select_parameter.getSelectedValue(); + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.ui.xml b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.ui.xml new file mode 100644 index 0000000..57757bb --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/client/view/binder/CustomFieldEntry.ui.xml @@ -0,0 +1,21 @@ + + + + Type of Parameter + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/server/WsTaskExecutorWidgetServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/server/WsTaskExecutorWidgetServiceImpl.java index db45c46..9f1c882 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/server/WsTaskExecutorWidgetServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/server/WsTaskExecutorWidgetServiceImpl.java @@ -6,6 +6,7 @@ import java.util.List; import org.gcube.common.portal.PortalContext; import org.gcube.common.workspacetaskexecutor.dataminer.WorkspaceDataMinerTaskExecutor; +import org.gcube.common.workspacetaskexecutor.shared.TaskParameterType; import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskConfiguration; import org.gcube.common.workspacetaskexecutor.shared.exception.ItemNotConfiguredException; import org.gcube.common.workspacetaskexecutor.shared.exception.WorkspaceFolderLocked; @@ -208,8 +209,15 @@ public class WsTaskExecutorWidgetServiceImpl extends RemoteServiceServlet implem } + /* (non-Javadoc) + * @see org.gcube.portlets.widgets.wstaskexecutor.client.rpc.WsTaskExecutorWidgetService#getAvailablesParameterTypes() + */ + @Override + public List getAvailableParameterTypes() + throws Exception { - - + WorkspaceDataMinerTaskExecutor exec = WorkspaceDataMinerTaskExecutor.getInstance(); + return exec.getParameterTypes(); + } } diff --git a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/shared/WsFolder.java b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/shared/WsFolder.java index 3380103..1bdefb1 100644 --- a/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/shared/WsFolder.java +++ b/src/main/java/org/gcube/portlets/widgets/wstaskexecutor/shared/WsFolder.java @@ -4,6 +4,14 @@ import java.io.Serializable; import com.google.gwt.user.client.rpc.IsSerializable; + + +/** + * The Class WsFolder. + * + * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * May 8, 2018 + */ public class WsFolder implements Serializable, IsSerializable{ @@ -13,52 +21,99 @@ public class WsFolder implements Serializable, IsSerializable{ private static final long serialVersionUID = 1L; private String folderId; private String foderName; + private String publicLink; + /** + * Instantiates a new ws folder. + */ public WsFolder() { } - - public WsFolder(String folderId, String foderName) { + /** + * Instantiates a new ws folder. + * + * @param folderId the folder id + * @param foderName the foder name + * @param publicLink the public link + */ + public WsFolder(String folderId, String foderName, String publicLink) { this.folderId = folderId; this.foderName = foderName; + this.publicLink = publicLink; } + /** + * Gets the folder id. + * + * @return the folder id + */ public String getFolderId() { return folderId; } + /** + * Sets the folder id. + * + * @param folderId the new folder id + */ public void setFolderId(String folderId) { this.folderId = folderId; } + /** + * Gets the foder name. + * + * @return the foder name + */ public String getFoderName() { return foderName; } + /** + * Gets the public link. + * + * @return the public link + */ + public String getPublicLink() { + + return publicLink; + } + + + /** + * Sets the foder name. + * + * @param foderName the new foder name + */ public void setFoderName(String foderName) { this.foderName = foderName; } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ @Override public String toString() { + StringBuilder builder = new StringBuilder(); builder.append("WsFolder [folderId="); builder.append(folderId); builder.append(", foderName="); builder.append(foderName); + builder.append(", publicLink="); + builder.append(publicLink); builder.append("]"); return builder.toString(); } - - }