diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetUploadConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetUploadConfirmationDialog.java index 15a45fd1514f3524a83e2c9ab81216e5009414e7..314d68aa152449c49d675733d0fe65191ea1ee17 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetUploadConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetUploadConfirmationDialog.java @@ -42,7 +42,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; /** * @author Franz-Josef Elmer */ -final class DataSetUploadConfirmationDialog extends +public final class DataSetUploadConfirmationDialog extends AbstractDataConfirmationDialog<List<ExternalData>> { private static final int FIELD_WIDTH_IN_UPLOAD_DIALOG = 200; @@ -93,7 +93,10 @@ final class DataSetUploadConfirmationDialog extends formPanel.setBodyBorder(false); formPanel.setHeaderVisible(false); - formPanel.add(createDataSetsRadio()); + if (displayedItemsCount > 1) + { + formPanel.add(createDataSetsRadio()); + } fileNameField = new TextField<String>(); fileNameField.setFieldLabel(viewContext @@ -135,16 +138,17 @@ final class DataSetUploadConfirmationDialog extends private final RadioGroup createDataSetsRadio() { - return WidgetUtils.createAllOrSelectedRadioGroup(uploadSelectedRadio = - WidgetUtils.createRadio(viewContext.getMessage(Dict.ONLY_SELECTED_RADIO, data - .size())), WidgetUtils.createRadio(viewContext.getMessage(Dict.ALL_RADIO, - displayedItemsCount)), viewContext.getMessage(Dict.DATA_SETS_RADIO_GROUP_LABEL), - data.size()); + return WidgetUtils.createAllOrSelectedRadioGroup( + uploadSelectedRadio = + WidgetUtils.createRadio(viewContext.getMessage(Dict.ONLY_SELECTED_RADIO, + data.size())), WidgetUtils.createRadio(viewContext.getMessage( + Dict.ALL_RADIO, displayedItemsCount)), viewContext + .getMessage(Dict.DATA_SETS_RADIO_GROUP_LABEL), data.size()); } private boolean getUploadSelected() { - return WidgetUtils.isSelected(uploadSelectedRadio); + return uploadSelectedRadio == null ? true : WidgetUtils.isSelected(uploadSelectedRadio); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java index 45db810e767c32a9315d4a80804e02e5e433fb78..12882f23d2006420b2bbaf9c07796e7ab7573881 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java @@ -22,6 +22,9 @@ import java.util.List; import java.util.Set; import com.extjs.gxt.ui.client.Style.Scroll; +import com.extjs.gxt.ui.client.event.BaseEvent; +import com.extjs.gxt.ui.client.event.Events; +import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.widget.Component; import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.MessageBox; @@ -42,10 +45,13 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.ActionMenu; import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.IActionMenuItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewerWithVerticalSplit; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.AbstractExternalDataGrid.SelectedAndDisplayedItems; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetListDeletionConfirmationDialog; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetUploadConfirmationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.deletion.RevertDeletionConfirmationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.SectionsPanel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedActionWithResult; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedDatasetCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder; @@ -140,6 +146,24 @@ abstract public class GenericDataSetViewer extends AbstractViewerWithVerticalSpl private void extendToolBar() { + Button exportButton = new Button(viewContext.getMessage(Dict.BUTTON_UPLOAD_DATASETS)); + exportButton.addListener(Events.Select, new Listener<BaseEvent>() + { + public void handleEvent(BaseEvent be) + { + final List<ExternalData> dataSets = Arrays.asList(originalData); + IDelegatedActionWithResult<SelectedAndDisplayedItems> action = + new IDelegatedActionWithResult<SelectedAndDisplayedItems>() + { + public SelectedAndDisplayedItems execute() + { + return new SelectedAndDisplayedItems(dataSets, null, 1); + } + }; + new DataSetUploadConfirmationDialog(dataSets, action, 1, viewContext).show(); + } + }); + addToolBarButton(exportButton); if (getViewContext().isSimpleOrEmbeddedMode()) { return; @@ -151,8 +175,8 @@ abstract public class GenericDataSetViewer extends AbstractViewerWithVerticalSpl final AsyncCallback<Void> callback = isTrashEnabled() ? createDeletionCallback() : createPermanentDeletionCallback(); - new DataSetListDeletionConfirmationDialog(getViewContext().getCommonViewContext(), - callback, getOriginalData()).show(); + new DataSetListDeletionConfirmationDialog(getViewContext() + .getCommonViewContext(), callback, getOriginalData()).show(); } })); @@ -294,8 +318,8 @@ abstract public class GenericDataSetViewer extends AbstractViewerWithVerticalSpl setToolBarButtonsEnabled(false); updateTitle(getOriginalDataDescription() + " (not available)"); String msg = - getViewContext().getMessage(Dict.DATASET_NOT_AVAILABLE_MSG, result.getCode(), result - .getStatus().getDescription().toLowerCase()); + getViewContext().getMessage(Dict.DATASET_NOT_AVAILABLE_MSG, result.getCode(), + result.getStatus().getDescription().toLowerCase()); MessageBox.info("Data not available", msg, null); } @@ -358,7 +382,8 @@ abstract public class GenericDataSetViewer extends AbstractViewerWithVerticalSpl /** @param data external data that will be processed */ public void setupData(final ExternalData data) { - getViewContext().getCommonService().listDataStoreServices(DataStoreServiceKind.PROCESSING, + getViewContext().getCommonService().listDataStoreServices( + DataStoreServiceKind.PROCESSING, new ProcessingServicesCallback(getViewContext(), getOriginalData(), button)); } }