diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/managed_property/ManagedPropertyGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/managed_property/ManagedPropertyGrid.java index 8a53854b5038cdbd950e84209e795c4f551c7b23..687d6e3130f4c5853d3f833a57506aaf4b35930a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/managed_property/ManagedPropertyGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/managed_property/ManagedPropertyGrid.java @@ -106,7 +106,7 @@ public class ManagedPropertyGrid extends TypedTableGrid<ReportRowModel> { return; } - if (managedProperty.getUiDescription().getActions().length > 0) + if (managedProperty.getUiDescription().getActions().size() > 0) { addEntityOperationsLabel(); addEntityOperationButtons(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiActionDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiActionDescription.java index 913807ad4ef538a2ed0fa2804f9eabe8f6932d13..3d42d5101cdca453ffd40f9b0ba3ba989dc8ef9c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiActionDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiActionDescription.java @@ -67,9 +67,9 @@ public class ManagedUiActionDescription implements IManagedUiAction, ISerializab return this; } - public IManagedInputWidgetDescription[] getInputWidgetDescriptions() + public List<IManagedInputWidgetDescription> getInputWidgetDescriptions() { - return inputWidgets.toArray(new IManagedInputWidgetDescription[inputWidgets.size()]); + return inputWidgets; } public void setInputWidgetDescriptions(List<IManagedInputWidgetDescription> widgetDescriptions) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java index 6194b4822cc0dc04bf875ba81956410a89a9243d..f298ac9b2ac82efc75cd07e31adab44a2c6533a3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java @@ -66,9 +66,9 @@ public class ManagedUiDescription implements IManagedUiDescription, ISerializabl return action; } - public IManagedUiAction[] getActions() + public List<IManagedUiAction> getActions() { - return actions.toArray(new IManagedUiAction[actions.size()]); + return actions; } public void useTableOutput(ITableModel tableModel) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiTableActionDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiTableActionDescription.java index c11dbe9c68340b9b6845935ed6428f094881165d..c98c00fd19fcf959e488c2ae26384c4e4bf622f3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiTableActionDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiTableActionDescription.java @@ -80,14 +80,9 @@ public class ManagedUiTableActionDescription extends ManagedUiActionDescription return this; } - public int[] getSelectedRows() + public List<Integer> getSelectedRows() { - int[] result = new int[selectedRows.size()]; - for (int i = 0; i < result.length; i++) - { - result[i] = selectedRows.get(i); - } - return result; + return selectedRows; } public void setSelectedRows(List<Integer> selectedRows) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiAction.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiAction.java index f75df268712569e3ae23801e34b25d5ae9f4f0b8..80534180ed219b49a347594edcb29e8581a6233b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiAction.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiAction.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto.api; +import java.util.List; + import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable; /** @@ -64,10 +66,10 @@ public interface IManagedUiAction extends ISerializable public IManagedInputWidgetDescription addComboBoxInputField(String labels, String[] values); /** - * Returns an array of objects describing input widgets that will be used in user interface user + * Returns list of objects describing input widgets that will be used in user interface user * interface for modification of the managed property. */ - public IManagedInputWidgetDescription[] getInputWidgetDescriptions(); + public List<IManagedInputWidgetDescription> getInputWidgetDescriptions(); /** * Convenience method returning value of input widget with given label or null if such widget diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiDescription.java index 9e42436cf10f8a7a973948ff329889a06ac33568..204d6f4776ad5d7bf0b7a60832aede670149970e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiDescription.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto.api; +import java.util.List; + import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable; /** @@ -35,7 +37,7 @@ public interface IManagedUiDescription extends ISerializable IManagedUiTableAction addTableAction(String name); - IManagedUiAction[] getActions(); + List<IManagedUiAction> getActions(); /** * Returns description of the widget that will be shown in detail view of the entity owning the diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiTableAction.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiTableAction.java index 2612a7d6df758bb196a5e389bed0d51e9d791ae2..6810a8e23e126cb34e742c0a8e19a53507ad48b6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiTableAction.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/api/IManagedUiTableAction.java @@ -16,6 +16,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto.api; +import java.util.List; import java.util.Map; /** @@ -61,7 +62,7 @@ public interface IManagedUiTableAction extends IManagedUiAction /** * Returns list of indices of selected rows (empty if no row was selected). */ - int[] getSelectedRows(); + List<Integer> getSelectedRows(); /** * Adds a binding between input field and table column. diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java index ce2622f2823ef87fcaf4f0a4a3ca281fc269c497..82cc2e388457450816c92fa80b6f3e1090d77ba1 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java @@ -24,9 +24,10 @@ import ch.systemsx.cisd.common.logging.LogInitializer; import ch.systemsx.cisd.openbis.generic.server.business.bo.AbstractBOTest; import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; -import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkElement; import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.ElementFactory; @@ -62,30 +63,57 @@ public class EntityInformationProviderTest extends AbstractBOTest IEntityLinkElement datasetLink = elementFactory.createDataSetLink(dPermId); final SamplePE sample = CommonTestUtils.createSample(); - final ExperimentPE experiment = - CommonTestUtils.createExperiment(new ExperimentIdentifier("proj", "exp")); + final ExperimentPE experiment = CommonTestUtils.createExperiment(); + final DataPE dataSet = CommonTestUtils.createDataSet(); + final MaterialPE material = CommonTestUtils.createMaterial(mCode, mTypeCode); context.checking(new Expectations() { { one(sampleDAO).tryToFindByPermID(sPermId); will(returnValue(sample)); - one(experimentDAO).tryGetByPermID(ePermId); will(returnValue(experiment)); - one(materialDAO).tryFindMaterial(new MaterialIdentifier(mCode, mTypeCode)); - // will(returnValue(any(MaterialPE.class))); - one(externalDataDAO).tryToFindDataSetByCode(dPermId); - // will(returnValue(any(DataPE.class))); + will(returnValue(dataSet)); + one(materialDAO).tryFindMaterial(new MaterialIdentifier(mCode, mTypeCode)); + will(returnValue(material)); } }); String sIdentifier = provider.getIdentifier(sampleLink); assertEquals(sample.getIdentifier(), sIdentifier); + String eIdentifier = provider.getIdentifier(experimentLink); assertEquals(experiment.getIdentifier(), eIdentifier); - String mIdentifier = provider.getIdentifier(materialLink); + String dIdentifier = provider.getIdentifier(datasetLink); - } + assertEquals(dataSet.getIdentifier(), dIdentifier); + String mIdentifier = provider.getIdentifier(materialLink); + assertEquals(MaterialIdentifier.print(mCode, mTypeCode), mIdentifier); + + // get identifiers of missing entities + final String fakePermId = "fakePermId"; + final String fakeMCode = "fakeMCode"; + final String fakeMTypeCode = "fakeMTypeCode"; + context.checking(new Expectations() + { + { + one(sampleDAO).tryToFindByPermID(fakePermId); + will(returnValue(null)); + one(experimentDAO).tryGetByPermID(fakePermId); + will(returnValue(null)); + one(externalDataDAO).tryToFindDataSetByCode(fakePermId); + will(returnValue(null)); + one(materialDAO).tryFindMaterial( + new MaterialIdentifier(fakeMCode, fakeMTypeCode)); + will(returnValue(null)); + } + }); + assertNull(provider.getIdentifier(elementFactory.createSampleLink(fakePermId))); + assertNull(provider.getIdentifier(elementFactory.createExperimentLink(fakePermId))); + assertNull(provider.getIdentifier(elementFactory.createDataSetLink(fakePermId))); + assertNull(provider.getIdentifier(elementFactory.createMaterialLink(fakeMCode, + fakeMTypeCode))); + } } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/CommonTestUtils.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/CommonTestUtils.java index 0553e457ef1c99f175411472eb222b98a3e0d8bb..65eff158fbe549a413e3ddf062c7f5c8748d9c41 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/CommonTestUtils.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/CommonTestUtils.java @@ -24,6 +24,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentContentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.DataTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE; import ch.systemsx.cisd.openbis.generic.shared.dto.EntityPropertyPE; @@ -33,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPropertyPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePropertyTypePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; @@ -81,6 +84,10 @@ public class CommonTestUtils private static final String SAMPLE_TYPE = "SAMPLE_TYPE"; + private static final String DATA_SET_CODE = "20081105092158673-1"; + + private static final String DATA_SET_TYPE = "PROPRIETARY"; + public static final String USER_ID = "test"; private static final String MATERIAL_TYPE_VIRUS = "MATERIAL_TYPE_VIRUS"; @@ -288,6 +295,25 @@ public class CommonTestUtils return samplePE; } + public static final DataPE createDataSet() + { + final DataPE dataPE = new DataPE(); + dataPE.setCode(CommonTestUtils.DATA_SET_CODE); + final DataSetTypePE dataSetTypePE = new DataSetTypePE(); + dataSetTypePE.setCode(CommonTestUtils.DATA_SET_TYPE); + dataPE.setDataSetType(dataSetTypePE); + return dataPE; + } + + public static final MaterialPE createMaterial(String materialCode, String typeCode) + { + final MaterialPE materialPE = new MaterialPE(); + materialPE.setCode(materialCode); + final MaterialTypePE materialTypePE = createMaterialType(typeCode); + materialPE.setMaterialType(materialTypePE); + return materialPE; + } + public static final ExperimentIdentifier createExperimentIdentifier() { final ExperimentIdentifier identifier = @@ -295,6 +321,11 @@ public class CommonTestUtils return identifier; } + public static final ExperimentPE createExperiment() + { + return createExperiment(createExperimentIdentifier()); + } + public static final ExperimentPE createExperiment(final ExperimentIdentifier ei) { final ExperimentPE exp = new ExperimentPE(); @@ -325,9 +356,13 @@ public class CommonTestUtils public static MaterialTypePE createMaterialType() { + return createMaterialType(MATERIAL_TYPE_VIRUS); + } + public static MaterialTypePE createMaterialType(String typeCode) + { final MaterialTypePE type = new MaterialTypePE(); - type.setCode(MATERIAL_TYPE_VIRUS); + type.setCode(typeCode); type.setDatabaseInstance(createHomeDatabaseInstance()); return type; } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluatorTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluatorTest.java index 44b7bdbba636a57298d66fa7716599da5b780e5e..8cdd02949274304c08b8f3cf98a6a5dd8a8ed119 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluatorTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluatorTest.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property; import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.testng.AssertJUnit; @@ -150,33 +151,33 @@ public class ManagedPropertyEvaluatorTest extends AssertJUnit evaluator.configureUI(managedProperty); assertEquals(false, managedProperty.isOwnTab()); - IManagedUiAction[] actions = managedProperty.getUiDescription().getActions(); - assertEquals(1, actions.length); - IManagedUiAction action = actions[0]; + List<IManagedUiAction> actions = managedProperty.getUiDescription().getActions(); + assertEquals(1, actions.size()); + IManagedUiAction action = actions.get(0); assertEquals("Create", action.getName()); - IManagedInputWidgetDescription[] inputWidgets = action.getInputWidgetDescriptions(); - assertEquals(5, inputWidgets.length); - checkInputFieldWidget(inputWidgets[0], ManagedInputFieldType.TEXT, "t1", null, null, + List<IManagedInputWidgetDescription> inputWidgets = action.getInputWidgetDescriptions(); + assertEquals(5, inputWidgets.size()); + checkInputFieldWidget(inputWidgets.get(0), ManagedInputFieldType.TEXT, "t1", null, null, false); - checkInputFieldWidget(inputWidgets[1], ManagedInputFieldType.TEXT, "t2", "default 2", + checkInputFieldWidget(inputWidgets.get(1), ManagedInputFieldType.TEXT, "t2", "default 2", null, false); - checkInputFieldWidget(inputWidgets[2], ManagedInputFieldType.TEXT, "t3", null, + checkInputFieldWidget(inputWidgets.get(2), ManagedInputFieldType.TEXT, "t3", null, "description 3", false); - checkInputFieldWidget(inputWidgets[3], ManagedInputFieldType.MULTILINE_TEXT, "multi", + checkInputFieldWidget(inputWidgets.get(3), ManagedInputFieldType.MULTILINE_TEXT, "multi", "default m", "multiline", false); - checkInputFieldWidget(inputWidgets[4], ManagedInputFieldType.COMBO_BOX, "combo", null, + checkInputFieldWidget(inputWidgets.get(4), ManagedInputFieldType.COMBO_BOX, "combo", null, "select from list", true); - if (inputWidgets[4] instanceof ManagedComboBoxInputWidgetDescription) + if (inputWidgets.get(4) instanceof ManagedComboBoxInputWidgetDescription) { ManagedComboBoxInputWidgetDescription comboBox = - (ManagedComboBoxInputWidgetDescription) inputWidgets[4]; + (ManagedComboBoxInputWidgetDescription) inputWidgets.get(4); assertEquals("[v1, v2, v3]", comboBox.getOptions().toString()); } else { fail("expected instance of " + ManagedComboBoxInputWidgetDescription.class.getSimpleName() + ", got " - + inputWidgets[4].getClass().getSimpleName()); + + inputWidgets.get(4).getClass().getSimpleName()); } }