diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java index 806ff4de60ad927a35f1d9eda999acdfa546c0d3..b3f85b0d834f08cc6fe1737f55719d3393e4f1be 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java @@ -110,7 +110,9 @@ public final class GenericConstants public static final String BATCH_OPERATION_KIND = "batch_operation_kind"; - public static final String CODES_TEXTAREA_REGEX = "\n|\r\n|, *"; + public static final String ITEMS_TEXTAREA_REGEX = "\n|\r\n|, *"; + + public static final String ITEMS_TEXTAREA_DEFAULT_SEPARATOR = ", "; /** A regular expression that match email addresses. */ public static final String EMAIL_REGEX = diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/CodesArea.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/CodesArea.java index 89999b1aa90477e9655eb70c905737e1c8fd1d46..4e0177736382e582644485d32e1c2a3ec14d4fcc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/CodesArea.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/CodesArea.java @@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui; import java.util.Collection; import java.util.List; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.MultilineVarcharField; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.MultilineItemsField; import ch.systemsx.cisd.openbis.generic.shared.basic.ICodeHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code; @@ -29,7 +29,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code; * * @author Piotr Buczek */ -abstract public class CodesArea<T extends ICodeHolder> extends MultilineVarcharField +abstract public class CodesArea<T extends ICodeHolder> extends MultilineItemsField { public CodesArea(String emptyTextMsg) { @@ -40,40 +40,7 @@ abstract public class CodesArea<T extends ICodeHolder> extends MultilineVarcharF public final void setCodeProviders(Collection<T> codeProviders) { List<String> codes = Code.extractCodes(codeProviders); - setCodes(codes); + setItems(codes); } - public final void setCodes(List<String> codes) - { - String textValue = createTextValue(codes); - setValue(textValue); - setOriginalValue(textValue); - } - - public final void appendCode(String code) - { - StringBuilder sb = new StringBuilder(); - sb.append(getValue() == null ? "" : getValue()); - appendCode(sb, code); - setValue(sb.toString()); - } - - private static String createTextValue(List<String> codes) - { - StringBuilder sb = new StringBuilder(); - for (String code : codes) - { - appendCode(sb, code); - } - return sb.toString(); - } - - private static final void appendCode(StringBuilder sb, String code) - { - if (sb.length() > 0) - { - sb.append(", "); - } - sb.append(code); - } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/amc/AddPersonToAuthorizationGroupDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/amc/AddPersonToAuthorizationGroupDialog.java index bdf4c458dacfc2e995a990cdc80ceb58651a01a5..7f2a5c0d2bbd64a44d2c2e4269d8e023504d7342 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/amc/AddPersonToAuthorizationGroupDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/amc/AddPersonToAuthorizationGroupDialog.java @@ -143,7 +143,7 @@ public class AddPersonToAuthorizationGroupDialog extends AbstractRegistrationDia String text = multiplePersonsField.getValue(); if (StringUtils.isBlank(text) == false) { - codes.addAll(Arrays.asList(text.split(GenericConstants.CODES_TEXTAREA_REGEX))); + codes.addAll(Arrays.asList(text.split(GenericConstants.ITEMS_TEXTAREA_REGEX))); } } return codes; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetParentsArea.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetParentsArea.java index 0026f969a8240e775fd18f67ba2fb7fdf7ce1383..452f4428121138199758b4f4a13094c04b18804d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetParentsArea.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetParentsArea.java @@ -62,6 +62,6 @@ public final class DataSetParentsArea extends CodesArea<ExternalData> public final void setParentCodes(List<String> parentCodes) { - setCodes(parentCodes); + setItems(parentCodes); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MultilineItemsField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MultilineItemsField.java new file mode 100644 index 0000000000000000000000000000000000000000..ebcda01e9841b98d6ff02192682ba3677dd8540c --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MultilineItemsField.java @@ -0,0 +1,97 @@ +/* + * Copyright 2008 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field; + +import java.util.List; + +import ch.systemsx.cisd.common.shared.basic.utils.StringUtils; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; + +/** + * A {@link MultilineVarcharField} extension with support of handling list of items (Strings). + * + * @author Piotr Buczek + */ +public class MultilineItemsField extends MultilineVarcharField +{ + /** Constructor for default sized field (5 lines). */ + public MultilineItemsField(final String label, final boolean mandatory) + { + super(label, mandatory); + } + + /** Constructor for multiline field with given number of lines. */ + public MultilineItemsField(final String label, final boolean mandatory, int lines) + { + super(label, mandatory, lines); + } + + /** + * null if the area has not been modified, the list of all items (separated by comma or a new + * line) otherwise + */ + public final String[] tryGetModifiedItemList() + { + if (isDirty() == false) + { + return null; + } + String text = getValue(); + if (StringUtils.isBlank(text) == false) + { + return text.split(GenericConstants.ITEMS_TEXTAREA_REGEX); + } else + { + return new String[0]; + } + } + + public final void setItems(List<String> items) + { + String textValue = createTextValue(items); + setValue(textValue); + setOriginalValue(textValue); + } + + public final void appendItem(String item) + { + StringBuilder sb = new StringBuilder(); + sb.append(getValue() == null ? "" : getValue()); + appendItem(sb, item); + setValue(sb.toString()); + } + + private static String createTextValue(List<String> items) + { + StringBuilder sb = new StringBuilder(); + for (String item : items) + { + appendItem(sb, item); + } + return sb.toString(); + } + + private static final void appendItem(StringBuilder sb, String item) + { + if (sb.length() > 0) + { + sb.append(GenericConstants.ITEMS_TEXTAREA_DEFAULT_SEPARATOR); + } + sb.append(item); + } + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MultilineVarcharField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MultilineVarcharField.java index 974a682aae07aa308d728b162faf4057bd43355d..c3e4327e0c14d1c7b306b40930a69c027bde6bfe 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MultilineVarcharField.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MultilineVarcharField.java @@ -18,8 +18,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field; import com.extjs.gxt.ui.client.widget.form.TextArea; -import ch.systemsx.cisd.common.shared.basic.utils.StringUtils; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil; /** @@ -63,24 +61,4 @@ public class MultilineVarcharField extends TextArea return (int) (lines * DEFAULT_LINE_HEIGHT * EM_TO_PIXEL); } - /** - * null if the area has not been modified, the list of all items (separated by comma or a new - * line) otherwise - */ - public final String[] tryGetModifiedItemList() - { - if (isDirty() == false) - { - return null; - } - String text = getValue(); - if (StringUtils.isBlank(text) == false) - { - return text.split(GenericConstants.CODES_TEXTAREA_REGEX); - } else - { - return new String[0]; - } - } - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/public/generic-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/public/generic-dictionary.js index da71a6b8c3eb5921ea3591fccec8c2757d06eb5d..4be86e8f2c0deeab6da3ff0e5135b94329922caa 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/public/generic-dictionary.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/public/generic-dictionary.js @@ -25,7 +25,7 @@ var generic = { instance_sample: "Shared", generated_from_sample: "Parent", - add_parent: "Add Parent", + add_parent: "Add Parent...", part_of_sample: "Container", parents: "Parents", diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IdentifierExtractor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IdentifierExtractor.java new file mode 100644 index 0000000000000000000000000000000000000000..0c2ff0cff18dbaecb2d76fd1f29e0cd73e71c41c --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IdentifierExtractor.java @@ -0,0 +1,39 @@ +/* + * Copyright 2010 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.shared.basic; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @author Piotr Buczek + */ +public class IdentifierExtractor +{ + + public static final List<String> extract( + Collection<? extends IIdentifierHolder> identifierHolders) + { + List<String> identifiers = new ArrayList<String>(); + for (IIdentifierHolder identifierHolder : identifierHolders) + { + identifiers.add(identifierHolder.getIdentifier()); + } + return identifiers; + } +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java index 0f3c9ac8e7ddf5764196aea3fe5cb77b0fcea91a..577c8a5b9a1fde141572e6eec050b24687a5fa8a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AttachmentHolderPE.java @@ -25,6 +25,7 @@ import javax.persistence.MappedSuperclass; import javax.persistence.Transient; import ch.systemsx.cisd.openbis.generic.shared.IServer; +import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifierHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AttachmentHolderKind; import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; @@ -36,7 +37,6 @@ import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; */ @MappedSuperclass public abstract class AttachmentHolderPE implements Serializable, IIdentifierHolder, IPermIdHolder - { // // Version diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/IEntityWithProperties.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/IEntityWithProperties.java index ce0d34e2c2f82cef0ec1f1d2fa5b941ae76d9ca4..af0fb8257c96704ac0e8a76933cc6f9689cb7c25 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/IEntityWithProperties.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/IEntityWithProperties.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.List; +import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifierHolder; import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind; /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/IIdentifierHolder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/IIdentifierHolder.java deleted file mode 100644 index ac3ee44d87e8e1f06699f7ef58692952e1a9a63f..0000000000000000000000000000000000000000 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/IIdentifierHolder.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2008 ETH Zuerich, CISD - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ch.systemsx.cisd.openbis.generic.shared.dto; - -/** - * A role that holds a identifier. - * - * @author Christian Ribeaud - */ -public interface IIdentifierHolder -{ - /** - * Returns a <code>String</code> that uniquely identifies this object. - */ - public String getIdentifier(); -} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java index 50e4d2327f000f3b6cbdaea5a94f0e068fd52c15..bb80684d91648304187f1cf12f59dd815bd8a75d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SamplePE.java @@ -218,13 +218,10 @@ public class SamplePE extends AttachmentHolderPE implements IIdAndCodeHolder, Co getSampleParentRelationships().add(relationship); } - // TODO 2010-08-10, Piotr Buczek: check public void removeParentRelationship(final SampleRelationshipPE relationship) { getSampleParentRelationships().remove(relationship); - relationship.getParentSample().getSampleChildRelationships().remove(relationship); relationship.setChildSample(null); - relationship.setParentSample(null); } /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/identifier/IdentifierHelper.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/identifier/IdentifierHelper.java index f17d95b8cefcce6aefadcd4a96ff4d2f78306690..0f382e8b27ef25d5b53075b6e59b629f53c1ebf6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/identifier/IdentifierHelper.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/identifier/IdentifierHelper.java @@ -262,4 +262,5 @@ public final class IdentifierHelper sample.getSpaceLevel().setSpaceCode(defaultGroupCode); } } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesArea.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesArea.java index 65b2a3bf7c3485546d81e62af98e9b11961dd717..a73926dfb51fd38133f41340bc22212384a95cd8 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesArea.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesArea.java @@ -16,16 +16,20 @@ package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment; +import java.util.Collection; +import java.util.List; + import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.CodesArea; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; -import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample.SamplesArea; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; /** - * {@link SamplesArea} extension to specify samples for an experiment. + * {@link CodesArea} extension to specify samples for an experiment. * * @author Tomasz Pylak */ -final class ExperimentSamplesArea extends SamplesArea +final class ExperimentSamplesArea extends CodesArea<Sample> { public static final String ID_SUFFIX_SAMPLES = "_samples"; @@ -41,4 +45,23 @@ final class ExperimentSamplesArea extends SamplesArea return idPrefix + ID_SUFFIX_SAMPLES; } + // delegation to abstract class methods + + // null if the area has not been modified, + // the list of all sample codes otherwise + public final String[] tryGetSampleCodes() + { + return tryGetModifiedItemList(); + } + + public void setSamples(Collection<Sample> samples) + { + setCodeProviders(samples); + } + + public final void setSampleCodes(List<String> codes) + { + setItems(codes); + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java index 95056a502049e5bcbdc167cc9499db573fd47674..9db90cd0a3230c34ee9bff759221016e1bac3403 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java @@ -227,7 +227,7 @@ abstract public class AbstractGenericSampleRegisterEditForm extends if (entity != null) { String sampleIdentifier = entity.getIdentifier(); - parentsArea.appendCode(sampleIdentifier); + parentsArea.appendItem(sampleIdentifier); } } }); @@ -288,7 +288,7 @@ abstract public class AbstractGenericSampleRegisterEditForm extends protected String[] getParents() { - return parentsArea.tryGetSampleCodes(); + return parentsArea.tryGetSamples(); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java index 6b52f35510a0c3dc5d77a5167c4fed9e9a620b9f..75e92d1c25267cc86d4b0b78117d3852c0ae8b34 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java @@ -106,7 +106,7 @@ public final class GenericSampleEditForm extends AbstractGenericSampleRegisterEd experimentField.updateOriginalValue(); updateFieldOriginalValue(groupSelectionWidget); container.updateOriginalValue(); - parentsArea.setSampleCodes(parents); + parentsArea.setSamples(parents); } private void setOriginalSample(Sample sample) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ParentSamplesArea.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ParentSamplesArea.java index 55fbbc9ab59fafab62d4da7c20ddb0949f0dd4a4..46ef28633ab6b8bfb55a92ae3b8e66a74d41624c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ParentSamplesArea.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ParentSamplesArea.java @@ -16,22 +16,29 @@ package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample; +import java.util.Collection; +import java.util.List; + import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.MultilineItemsField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; +import ch.systemsx.cisd.openbis.generic.shared.basic.IdentifierExtractor; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; /** - * {@link SamplesArea} extension to specify parent samples. + * {@link MultilineItemsField} extension to specify parent samples. * * @author Piotr Buczek */ -final class ParentSamplesArea extends SamplesArea +final class ParentSamplesArea extends MultilineItemsField { public static final String ID_SUFFIX_PARENT_SAMPLES = "_parent_samples"; public ParentSamplesArea(IMessageProvider messageProvider, String idPrefix) { - super(messageProvider.getMessage(Dict.SAMPLES_LIST)); + super("", false); + setEmptyText(messageProvider.getMessage(Dict.SAMPLES_LIST)); setLabelSeparator(""); setId(createId(idPrefix)); } @@ -41,4 +48,24 @@ final class ParentSamplesArea extends SamplesArea return idPrefix + ID_SUFFIX_PARENT_SAMPLES; } + public void setSamples(Collection<Sample> samples) + { + List<String> identifiers = IdentifierExtractor.extract(samples); + setSamples(identifiers); + } + + // delegation to superclass methods + + // null if the area has not been modified, + // the list of all sample codes otherwise + public final String[] tryGetSamples() + { + return tryGetModifiedItemList(); + } + + public final void setSamples(List<String> codesOrIdentifiers) + { + setItems(codesOrIdentifiers); + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SamplesArea.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SamplesArea.java index 8772464e680d64079ad63ea155e8628ba19e63af..b4acea077f1e9d14199323b3a87ab71847d4633d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SamplesArea.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SamplesArea.java @@ -43,13 +43,18 @@ abstract public class SamplesArea extends CodesArea<Sample> return tryGetModifiedItemList(); } - public final void setSamples(Collection<Sample> samples) + public void setSamples(Collection<Sample> samples) { setCodeProviders(samples); } public final void setSampleCodes(List<String> codes) { - setCodes(codes); + setItems(codes); + } + + public final void setSampleIdentifiers(List<String> identifiers) + { + setItems(identifiers); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java index 24d4167ac95f8ee7480ef813fd3712060b65f10c..0b4c0f6cc66c8ed62d40852a23f6ae00e3fdb81e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java @@ -54,6 +54,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin; import ch.systemsx.cisd.openbis.generic.server.plugin.ISampleTypeSlaveServerPlugin; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; +import ch.systemsx.cisd.openbis.generic.shared.basic.IdentifierExtractor; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AttachmentWithContent; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code; @@ -682,7 +683,7 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen SampleUpdateResult result = new SampleUpdateResult(); SamplePE sample = sampleBO.getSample(); result.setModificationDate(sample.getModificationDate()); - List<String> parents = Code.extractCodes(sample.getParents()); + List<String> parents = IdentifierExtractor.extract(sample.getParents()); Collections.sort(parents); result.setParents(parents); return result; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java index cbf96f2508bc72fb14c07f324b2c6ee0f60b8294..a8e7e1c94f72a4cc55d13d41fea978f9fbde0e1f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java @@ -22,7 +22,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.MultilineVarcharField; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.MultilineItemsField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code; @@ -46,7 +46,7 @@ public class ExperimentPlateLocationsSection extends SingleSectionPanel private final IEntityInformationHolderWithIdentifier experiment; - private final MultilineVarcharField materialListField; + private final MultilineItemsField materialListField; private List<MaterialType> materialTypesOrNull; @@ -71,9 +71,9 @@ public class ExperimentPlateLocationsSection extends SingleSectionPanel }); } - private MultilineVarcharField createMaterialListArea() + private MultilineItemsField createMaterialListArea() { - MultilineVarcharField area = new MultilineVarcharField("", true, 10); + MultilineItemsField area = new MultilineItemsField("", true, 10); area.setWidth(TEXT_AREA_WIDTH); area.setEmptyText(screeningViewContext .getMessage(Dict.PLATE_MATERIAL_REVIEWER_SPECIFY_METERIAL_ITEMS));