diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractSwingGUI.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractSwingGUI.java index 7922591c9faa7fe8661502374144321bd94b74a4..901034a97e5e191f423fd2d4bb6628fe25e10a25 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractSwingGUI.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/AbstractSwingGUI.java @@ -32,12 +32,14 @@ import org.apache.commons.lang.WordUtils; import org.springframework.remoting.RemoteAccessException; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; +import ch.systemsx.cisd.common.api.client.ServiceFinder; import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; import ch.systemsx.cisd.common.exceptions.InvalidSessionException; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.dss.client.api.v1.DssComponentFactory; import ch.systemsx.cisd.openbis.dss.client.api.v1.IDssComponent; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService; /** * @author Chandrasekhar Ramakrishnan @@ -351,6 +353,18 @@ class DssCommunicationState { private final IDssComponent dssComponent; + private final IGeneralInformationService generalInformationService; + + private static IGeneralInformationService createGeneralInformationService(String openBISURL) + { + ServiceFinder generalInformationServiceFinder = + new ServiceFinder("openbis", IGeneralInformationService.SERVICE_URL); + IGeneralInformationService service = + generalInformationServiceFinder.createService(IGeneralInformationService.class, + openBISURL); + return service; + } + /** * Create a new instance of the DssCommunicationState based info in the arguments. Throws an * exception if it could not be created. @@ -363,7 +377,7 @@ class DssCommunicationState throw new ConfigurationFailureException( "The openBIS File Upload Client was improperly configured -- the arguments it requires were not supplied. Please talk to the openBIS administrator."); - final String openBisUrl = args[0]; + String openBisUrl = args[0]; switch (args.length) { @@ -386,10 +400,17 @@ class DssCommunicationState "The user name / password combination is incorrect."); } } + + generalInformationService = createGeneralInformationService(openBisUrl); } IDssComponent getDssComponent() { return dssComponent; } + + public IGeneralInformationService getGeneralInformationService() + { + return generalInformationService; + } } \ No newline at end of file diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java index ea789d7e18e00c51dd6485782d824fcddc609620..ed16a716d7cc7e86ab2596c649d5ce0d33b0d352 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java @@ -49,6 +49,7 @@ import javax.swing.JTextField; import ch.systemsx.cisd.openbis.dss.client.api.gui.DataSetUploadClientModel.NewDataSetInfo; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO.DataSetOwnerType; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTOBuilder; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetType; /** * @author Chandrasekhar Ramakrishnan @@ -185,9 +186,9 @@ public class DataSetMetadataPanel extends JPanel dataSetTypeComboBox.setPreferredSize(new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT)); dataSetTypeComboBox.setToolTipText("Select the data set type for the experiment"); - for (String dataSetType : getDataSetTypes()) + for (DataSetType dataSetType : getDataSetTypes()) { - dataSetTypeComboBox.addItem(dataSetType); + dataSetTypeComboBox.addItem(dataSetType.getCode()); } dataSetTypeComboBox.addItemListener(new ItemListener() { @@ -199,9 +200,6 @@ public class DataSetMetadataPanel extends JPanel }); addRow(2, label, dataSetTypeComboBox); - createDataSetTypePanel(); - addRow(3, dataSetTypePanel); - // The file row label = new JLabel("File:", JLabel.TRAILING); label.setPreferredSize(new Dimension(LABEL_WIDTH, BUTTON_HEIGHT)); @@ -229,7 +227,10 @@ public class DataSetMetadataPanel extends JPanel } }); - addRow(4, label, dataSetFileButton); + addRow(3, label, dataSetFileButton); + + createDataSetTypePanel(); + addRow(4, dataSetTypePanel); } protected void updateFileLabel() @@ -247,11 +248,11 @@ public class DataSetMetadataPanel extends JPanel private void createDataSetTypePanel() { dataSetTypePanel.setLayout(new CardLayout()); - for (String dataSetType : getDataSetTypes()) + for (DataSetType dataSetType : getDataSetTypes()) { JPanel typeView = new JPanel(); - typeView.add(new JLabel(dataSetType), BorderLayout.CENTER); - dataSetTypePanel.add(typeView, dataSetType); + typeView.add(new JLabel(dataSetType.getCode()), BorderLayout.CENTER); + dataSetTypePanel.add(typeView, dataSetType.getCode()); } } @@ -309,7 +310,7 @@ public class DataSetMetadataPanel extends JPanel add(comp, c); } - private List<String> getDataSetTypes() + private List<DataSetType> getDataSetTypes() { return clientModel.getDataSetTypes(); } diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClient.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClient.java index 20a7c3ab6891e90604aae17f24950cfa971a201b..259da27c3b0573a5cfd9814456aea1402f412517 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClient.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClient.java @@ -110,7 +110,7 @@ public class DataSetUploadClient extends AbstractSwingGUI // save and create local state super(commState); - clientModel = new DataSetUploadClientModel(getDssComponent(), timeProvider); + clientModel = new DataSetUploadClientModel(commState, timeProvider); metadataPanel = new DataSetMetadataPanel(clientModel, getWindowFrame()); tableModel = new DataSetUploadTableModel(this, clientModel, metadataPanel, getWindowFrame()); diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClientModel.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClientModel.java index 76610f168ffc02d60ef1fd3f038fc35e330d3741..79f4119ae202e97d9076e89598efd41fe71f13bb 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClientModel.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetUploadClientModel.java @@ -17,7 +17,6 @@ package ch.systemsx.cisd.openbis.dss.client.api.gui; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -26,22 +25,31 @@ import ch.systemsx.cisd.common.utilities.ITimeProvider; import ch.systemsx.cisd.openbis.dss.client.api.v1.IDssComponent; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTOBuilder; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetType; /** * @author Chandrasekhar Ramakrishnan */ public class DataSetUploadClientModel { + private final IDssComponent dssComponent; + private final IGeneralInformationService generalInformationService; + private final ITimeProvider timeProvider; + private final List<DataSetType> dataSetTypes; + private final ArrayList<NewDataSetInfo> newDataSetInfos = new ArrayList<NewDataSetInfo>(); - public DataSetUploadClientModel(IDssComponent dssComponent, ITimeProvider timeProvider) + public DataSetUploadClientModel(DssCommunicationState commState, ITimeProvider timeProvider) { - this.dssComponent = dssComponent; + this.dssComponent = commState.getDssComponent(); + this.generalInformationService = commState.getGeneralInformationService(); this.timeProvider = timeProvider; + dataSetTypes = generalInformationService.listDataSetTypes(dssComponent.getSessionToken()); } /** @@ -195,11 +203,9 @@ public class DataSetUploadClientModel /** * Get the data set types that are shown here. */ - public List<String> getDataSetTypes() + public List<DataSetType> getDataSetTypes() { - String[] dataSetTypes = - { "Data Set Type 1", "Data Set Type 2", "Data Set Type 3" }; - return Arrays.asList(dataSetTypes); + return dataSetTypes; } public int getIndexOfDataSetType(String dataSetType) @@ -208,12 +214,15 @@ public class DataSetUploadClientModel { return 0; } - int index = getDataSetTypes().indexOf(dataSetType); - if (index < 0) + + for (int i = 0; i < dataSetTypes.size(); ++i) { - return 0; + if (dataSetTypes.get(i).getCode().equals(dataSetType)) + { + return i; + } } - return index; + return 0; } }