" + itemIdParameter.getDescription() + "
"); + descr.addStyleName("workflow-fieldDescription"); + + } + + horiz.add(tabContainer, new BoxLayoutData(new Margins())); + horiz.add(descr, new BoxLayoutData(new Margins())); + + fieldContainer.add(horiz); + showNoSelectionField(); + + } + + private void init() { + + wselectDialog = new WorkspaceExplorerSelectDialog("Select Item", false); + + WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener() { + + @Override + public void onSelectedItem(Item item) { + + if (item == null) { + UtilsGXT3.info("Attention", "Select a valid item!"); + + } else { + retrieveItemInformation(item); + } + + } + + @Override + public void onFailed(Throwable throwable) { + Log.error("Error in create project: " + throwable.getLocalizedMessage()); + UtilsGXT3.alert("Error", throwable.getLocalizedMessage()); + throwable.printStackTrace(); + } + + @Override + public void onAborted() { + + } + + @Override + public void onNotValidSelection() { + UtilsGXT3.info("Attention", "Select a valid item!"); + } + }; + + wselectDialog.addWorkspaceExplorerSelectNotificationListener(handler); + wselectDialog.setZIndex(XDOM.getTopZIndex()); + + selectButton = new TextButton("Select Item"); + selectButton.setIcon(DataMinerManager.resources.folderExplore()); + selectButton.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + wselectDialog.show(); + + } + }); + selectButton.setToolTip("Select Item"); + + selectButton2 = new TextButton(""); + selectButton2.setIcon(DataMinerManager.resources.folderExplore()); + selectButton2.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + wselectDialog.show(); + } + }); + selectButton2.setToolTip("Select Another Item"); + + cancelButton = new TextButton(""); + cancelButton.setIcon(DataMinerManager.resources.cancel()); + cancelButton.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + selectedItem = null; + showNoSelectionField(); + } + }); + + downloadButton = new TextButton(""); + downloadButton.setIcon(DataMinerManager.resources.download()); + downloadButton.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + downloadFile(); + } + }); + + } + + private void retrieveItemInformation(final Item item) { + Log.debug("Retrieved: " + item); + final ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner(), + item.getPath(), item.getType().name()); + selectedItem = itemDescription; + Log.debug("SelectedItem: " + selectedItem); + showFieldWithSelection(); + } + + private void downloadFile() { + if (selectedItem != null) { + DownloadWidget downloadWidget = new DownloadWidget(); + downloadWidget.download(selectedItem.getId()); + } else { + UtilsGXT3.info("Attention", "Select a Item!"); + } + + } + + private void showNoSelectionField() { + vp.clear(); + vp.add(selectButton); + vp.forceLayout(); + fieldContainer.forceLayout(); + } + + private void showFieldWithSelection() { + String fileName = selectedItem.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(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(); + + } + + /** + * + */ + @Override + public boolean isValid() { + return (selectedItem != null); + } + + @Override + public Widget getWidget() { + return fieldContainer; + } + + @Override + public String getValue() { + return (selectedItem == null) ? null : selectedItem.getId(); + } + +} diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/OperatorFieldWidget.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/OperatorFieldWidget.java index 046cb7a..dfc6b25 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/OperatorFieldWidget.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/OperatorFieldWidget.java @@ -46,6 +46,9 @@ public class OperatorFieldWidget { case FILE: field = new FileFld(parameter); break; + case ITEMID: + field = new ItemIdFld(parameter); + break; case LIST: field = createListField(parameter); break;