From ba23fe0ae9284ef53ec5b816b55303ee5be8180b Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Mon, 27 Aug 2012 06:01:22 +0000 Subject: [PATCH] BIS-153 / SP-258: Material type and experiment type support added. SVN: 26451 --- .../client/application/ui/TypedTableGrid.java | 2 +- .../application/ui/data/DataSetTypeGrid.java | 36 ++------- ...java => AbstractEditEntityTypeDialog.java} | 37 ++++++++- .../entity_type/AbstractEntityTypeGrid.java | 40 +++++++++- .../ui/entity_type/AddEntityTypeDialog.java | 75 +++++++++++++++++++ .../application/ui/sample/SampleTypeGrid.java | 45 ++--------- .../client/dto/DataSetTypeGridColumnIDs.java | 3 - .../client/dto/EntityTypeGridColumnIDs.java | 6 +- .../client/dto/SampleTypeGridColumnIDs.java | 3 - .../server/resultset/DataSetTypeProvider.java | 5 -- .../server/resultset/EntityTypeProvider.java | 15 ++-- .../server/resultset/SampleTypeProvider.java | 5 -- .../openbis/generic/server/CommonServer.java | 16 ++++ .../server/business/bo/EntityTypeBO.java | 18 ++++- .../translator/ExperimentTranslator.java | 3 + 15 files changed, 211 insertions(+), 98 deletions(-) rename openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/{AbstractEditTypeDialog.java => AbstractEditEntityTypeDialog.java} (64%) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AddEntityTypeDialog.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java index d48ca3db143..21eddb50d3a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java @@ -2395,7 +2395,7 @@ public abstract class TypedTableGrid<T extends Serializable> extends LayoutConta @Override public void saveModifications() { - saveModifications(TypedTableGrid.this.createRefreshGridSilentlyAction()); + saveModifications(TypedTableGrid.this.createRefreshGridAction()); } private void setAfterSaveAction(IDelegatedAction afterSaveAction) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeGrid.java index fbddaa00aeb..46453ccca49 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeGrid.java @@ -29,7 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpP import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.DataSetKindSelectionWidget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AbstractEntityTypeGrid; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AddTypeDialog; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AddEntityTypeDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CheckBoxField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.DescriptionField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ScriptChooserField; @@ -183,12 +183,12 @@ public class DataSetTypeGrid extends AbstractEntityTypeGrid<DataSetType> } @Override - protected Window createRegisterEntityTypeDialog(String title, DataSetType newEntityType) + protected Window createRegisterEntityTypeDialog(String title, DataSetType newEntityType, + EntityKind entityKind) { - return new AddTypeDialog<DataSetType>(viewContext, title, postRegistrationCallback, - newEntityType) + return new AddEntityTypeDialog<DataSetType>(viewContext, title, postRegistrationCallback, + newEntityType, entityKind) { - private TextField<String> mainDataSetPatternField; private TextField<String> mainDataSetPathField; @@ -197,8 +197,6 @@ public class DataSetTypeGrid extends AbstractEntityTypeGrid<DataSetType> private CheckBoxField deletionDisallow; - private ScriptChooserField scriptChooser; - { dataSetKindSelectionWidget = createContainerField(); addField(dataSetKindSelectionWidget); @@ -214,12 +212,6 @@ public class DataSetTypeGrid extends AbstractEntityTypeGrid<DataSetType> DialogWithOnlineHelpUtils.addHelpButton(viewContext, this, createHelpPageIdentifier()); - - scriptChooser = - createScriptChooserField(viewContext, null, true, - ScriptType.ENTITY_VALIDATION, EntityKind.DATA_SET); - addField(scriptChooser); - } @Override @@ -232,10 +224,6 @@ public class DataSetTypeGrid extends AbstractEntityTypeGrid<DataSetType> .getBaseObject()); dataSetType.setDeletionDisallow(deletionDisallow.getValue()); - Script script = new Script(); - script.setName(scriptChooser.getValue()); - dataSetType.setValidationScript(script); - DataSetTypeGrid.this.register(dataSetType, registrationCallback); } @@ -282,18 +270,4 @@ public class DataSetTypeGrid extends AbstractEntityTypeGrid<DataSetType> GWTUtils.setToolTip(field, viewContext.getMessage(Dict.DELETION_DISALLOW_TOOLTIP)); return field; } - - private ScriptChooserField createScriptChooserField( - final IViewContext<ICommonClientServiceAsync> viewContext, String initialValue, - boolean visible, ScriptType scriptTypeOrNull, EntityKind entityKindOrNull) - { - ScriptChooserField field = - ScriptChooserField.create(viewContext.getMessage(Dict.VALIDATION_SCRIPT), - false, - initialValue, - viewContext, scriptTypeOrNull, entityKindOrNull); - FieldUtil.setVisibility(visible, field); - return field; - } - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEditTypeDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEditEntityTypeDialog.java similarity index 64% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEditTypeDialog.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEditEntityTypeDialog.java index e714b49f3f9..e50032e3285 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEditTypeDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEditEntityTypeDialog.java @@ -19,21 +19,25 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity import com.google.gwt.user.client.rpc.AsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.DescriptionField; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ScriptChooserField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ScriptType; /** * Abstract super class of dialogs editing an entity type. * * @author Franz-Josef Elmer */ -public abstract class AbstractEditTypeDialog<T extends EntityType> extends +public abstract class AbstractEditEntityTypeDialog<T extends EntityType> extends AbstractRegistrationDialog { public static final String DIALOG_ID = GenericConstants.ID_PREFIX + "edit-type-dialog"; @@ -42,11 +46,13 @@ public abstract class AbstractEditTypeDialog<T extends EntityType> extends private final DescriptionField descriptionField; + private ScriptChooserField scriptChooser; + private final EntityKind entityKind; private final IViewContext<ICommonClientServiceAsync> viewContext; - protected AbstractEditTypeDialog(IViewContext<ICommonClientServiceAsync> viewContext, + protected AbstractEditEntityTypeDialog(IViewContext<ICommonClientServiceAsync> viewContext, String title, IDelegatedAction postRegistrationCallback, EntityKind entityKind, T entityType) { @@ -58,15 +64,42 @@ public abstract class AbstractEditTypeDialog<T extends EntityType> extends descriptionField = createDescriptionField(viewContext); FieldUtil.setValueWithUnescaping(descriptionField, entityType.getDescription()); addField(descriptionField); + + scriptChooser = + createScriptChooserField(viewContext, null, true, + ScriptType.ENTITY_VALIDATION, entityKind); + addField(scriptChooser); + scriptChooser.setValue(entityType.getValidationScript() != null ? entityType + .getValidationScript().getName() : ""); + } @Override protected void register(AsyncCallback<Void> registrationCallback) { type.setDescription(descriptionField.getValue()); + + Script script = new Script(); + script.setName(scriptChooser.getValue()); + type.setValidationScript(script); + setSpecificAttributes(type); viewContext.getCommonService().updateEntityType(entityKind, type, registrationCallback); } abstract protected void setSpecificAttributes(T entityType); + + private ScriptChooserField createScriptChooserField( + final IViewContext<ICommonClientServiceAsync> context, String initialValue, + boolean visible, ScriptType scriptTypeOrNull, EntityKind entityKindOrNull) + { + ScriptChooserField field = + ScriptChooserField.create(context.getMessage(Dict.VALIDATION_SCRIPT), + false, + initialValue, + context, scriptTypeOrNull, entityKindOrNull); + FieldUtil.setVisibility(visible, field); + return field; + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java index a778a85f46a..5f0da22d8dc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java @@ -35,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.DescriptionField; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ScriptChooserField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.ConfirmationDialog; @@ -45,6 +46,8 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.EntityTypeGridColu import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ScriptType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; /** @@ -161,14 +164,16 @@ abstract public class AbstractEntityTypeGrid<T extends EntityType> extends Typed viewContext.getMessage(Dict.ADD_TYPE_TITLE_TEMPLATE, entityKind.getDescription()); T newEntityType = createNewEntityType(); - return createRegisterEntityTypeDialog(title, newEntityType); + return createRegisterEntityTypeDialog(title, newEntityType, entityKind); } abstract protected T createNewEntityType(); - protected Window createRegisterEntityTypeDialog(String title, T newEntityType) + protected Window createRegisterEntityTypeDialog(String title, T newEntityType, + EntityKind entityKind) { - return new AddTypeDialog<T>(viewContext, title, postRegistrationCallback, newEntityType) + return new AddEntityTypeDialog<T>(viewContext, title, postRegistrationCallback, + newEntityType, entityKind) { @Override protected void register(T entityType, AsyncCallback<Void> registrationCallback) @@ -187,16 +192,32 @@ abstract public class AbstractEntityTypeGrid<T extends EntityType> extends Typed return new AbstractRegistrationDialog(viewContext, title, postRegistrationCallback) { private final DescriptionField descriptionField; + + private final ScriptChooserField scriptChooser; + { descriptionField = createDescriptionField(viewContext); FieldUtil.setValueWithUnescaping(descriptionField, entityType.getDescription()); addField(descriptionField); + + Script script = entityType.getValidationScript(); + + scriptChooser = + createScriptChooserField(viewContext, script != null ? script.getName() + : null, true, ScriptType.ENTITY_VALIDATION, entityKind); + addField(scriptChooser); + } @Override protected void register(AsyncCallback<Void> registrationCallback) { entityType.setDescription(descriptionField.getValue()); + + Script script = new Script(); + script.setName(scriptChooser.getValue()); + entityType.setValidationScript(script); + viewContext.getService().updateEntityType(entityKind, entityType, registrationCallback); } @@ -245,4 +266,17 @@ abstract public class AbstractEntityTypeGrid<T extends EntityType> extends Typed return new DatabaseModificationKind[] {}; } + protected ScriptChooserField createScriptChooserField( + final IViewContext<ICommonClientServiceAsync> context, String initialValue, + boolean visible, ScriptType scriptTypeOrNull, EntityKind entityKindOrNull) + { + ScriptChooserField field = + ScriptChooserField.create(context.getMessage(Dict.VALIDATION_SCRIPT), + false, + initialValue, + context, scriptTypeOrNull, entityKindOrNull); + FieldUtil.setVisibility(visible, field); + return field; + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AddEntityTypeDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AddEntityTypeDialog.java new file mode 100644 index 00000000000..16e3a66a720 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AddEntityTypeDialog.java @@ -0,0 +1,75 @@ +/* + * Copyright 2009 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.entity_type; + +import com.google.gwt.user.client.rpc.AsyncCallback; + +import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ScriptChooserField; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ScriptType; + +/** + * Abstract super class of all dialogs adding a new entity type. + * + * @author Tomasz Pylak + */ +public abstract class AddEntityTypeDialog<T extends EntityType> extends AddTypeDialog<T> +{ + private ScriptChooserField scriptChooser; + + public AddEntityTypeDialog(final IViewContext<ICommonClientServiceAsync> viewContext, + String title, + final IDelegatedAction postRegistrationCallback, T newEntityType, EntityKind entityKind) + { + super(viewContext, title, postRegistrationCallback, newEntityType); + + scriptChooser = + createScriptChooserField(viewContext, null, true, + ScriptType.ENTITY_VALIDATION, entityKind); + addField(scriptChooser); + } + + @Override + protected void register(AsyncCallback<Void> registrationCallback) + { + Script script = new Script(); + script.setName(scriptChooser.getValue()); + newEntityType.setValidationScript(script); + super.register(registrationCallback); + } + + private ScriptChooserField createScriptChooserField( + final IViewContext<ICommonClientServiceAsync> viewContext, String initialValue, + boolean visible, ScriptType scriptTypeOrNull, EntityKind entityKindOrNull) + { + ScriptChooserField field = + ScriptChooserField.create(viewContext.getMessage(Dict.VALIDATION_SCRIPT), + false, + initialValue, + viewContext, scriptTypeOrNull, entityKindOrNull); + FieldUtil.setVisibility(visible, field); + return field; + } + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeGrid.java index 022c01e0b11..265b964a624 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeGrid.java @@ -27,23 +27,19 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericCon import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AbstractEditTypeDialog; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AbstractEditEntityTypeDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AbstractEntityTypeGrid; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AddTypeDialog; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AddEntityTypeDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CheckBoxField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CodeField; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ScriptChooserField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractSaveDialog; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.DialogWithOnlineHelpUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ScriptType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; /** @@ -72,8 +68,6 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> private static final Boolean DEFAULT_SHOW_PARENTS_VALUE = true; - private static final Script DEFAULT_VALIDATION_SCRIPT_VALUE = null; - public static IDisposableComponent create( final IViewContext<ICommonClientServiceAsync> viewContext) { @@ -128,7 +122,7 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> String title = viewContext.getMessage(Dict.EDIT_TYPE_TITLE_TEMPLATE, entityKind.getDescription(), code); - return new AbstractEditTypeDialog<SampleType>(viewContext, title, postRegistrationCallback, + return new AbstractEditEntityTypeDialog<SampleType>(viewContext, title, postRegistrationCallback, EntityKind.SAMPLE, sampleType) { private final SampleTypeDialogFieldHelper helper; @@ -154,10 +148,11 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> } @Override - protected Window createRegisterEntityTypeDialog(String title, SampleType newEntityType) + protected Window createRegisterEntityTypeDialog(String title, SampleType newEntityType, + EntityKind entityKind) { - return new AddTypeDialog<SampleType>(viewContext, title, postRegistrationCallback, - newEntityType) + return new AddEntityTypeDialog<SampleType>(viewContext, title, postRegistrationCallback, + newEntityType, entityKind) { private final SampleTypeDialogFieldHelper helper; @@ -170,7 +165,6 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> sampleType.setAutoGeneratedCode(DEFAULT_AUTO_GENERATE_CODES_VALUE); sampleType.setShowParentMetadata(DEFAULT_SHOW_PARENT_METADATA_VALUE); sampleType.setGeneratedCodePrefix(DEFAULT_GENERATED_CODE_PREFIX_VALUE); - sampleType.setValidationScript(DEFAULT_VALIDATION_SCRIPT_VALUE); helper = new SampleTypeDialogFieldHelper(viewContext, this, sampleType, createHelpPageIdentifier()); @@ -219,8 +213,6 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> private final TextField<String> generatedCodePrefixField; - private final ScriptChooserField scriptChooser; - public SampleTypeDialogFieldHelper(IViewContext<ICommonClientServiceAsync> viewContext, AbstractSaveDialog dialog, SampleType sampleType, HelpPageIdentifier helpPageIdentifier) @@ -260,12 +252,6 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> DialogWithOnlineHelpUtils.addHelpButton(viewContext, dialog, helpPageIdentifier); - Script script = sampleType.getValidationScript(); - - scriptChooser = - createScriptChooserField(viewContext, script != null ? script.getName() - : null, true, ScriptType.ENTITY_VALIDATION, EntityKind.SAMPLE); - dialog.addField(scriptChooser); } public void setAttributes(SampleType sampleType) @@ -278,23 +264,6 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> sampleType.setSubcodeUnique(subcodeUniqueField.getValue()); sampleType.setGeneratedCodePrefix(generatedCodePrefixField.getValue()); - Script script = new Script(); - script.setName(scriptChooser.getValue()); - sampleType.setValidationScript(script); - } - - private ScriptChooserField createScriptChooserField( - final IViewContext<ICommonClientServiceAsync> viewContext, String initialValue, - boolean visible, ScriptType scriptTypeOrNull, EntityKind entityKindOrNull) - { - ScriptChooserField field = - ScriptChooserField.create(viewContext.getMessage(Dict.VALIDATION_SCRIPT), - false, - initialValue, - viewContext, scriptTypeOrNull, entityKindOrNull); - FieldUtil.setVisibility(visible, field); - return field; } } - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/DataSetTypeGridColumnIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/DataSetTypeGridColumnIDs.java index 984790960b9..8c66b1fbf1d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/DataSetTypeGridColumnIDs.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/DataSetTypeGridColumnIDs.java @@ -30,7 +30,4 @@ public class DataSetTypeGridColumnIDs extends EntityTypeGridColumnIDs public static final String DATA_SET_KIND = "DATA_SET_KIND"; public static final String DELETION_DISALLOW = "DELETION_DISALLOW"; - - public static final String VALIDATION_SCRIPT = "VALIDATION_SCRIPT"; - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/EntityTypeGridColumnIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/EntityTypeGridColumnIDs.java index 9a5ad73a02c..b42022b4d86 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/EntityTypeGridColumnIDs.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/EntityTypeGridColumnIDs.java @@ -18,12 +18,16 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.dto; /** * Common column IDs for entity type grids. - * + * * @author Franz-Josef Elmer */ public class EntityTypeGridColumnIDs { public static final String CODE = "CODE"; + public static final String DESCRIPTION = "DESCRIPTION"; + public static final String DATABASE_INSTANCE = "DATABASE_INSTANCE"; + + public static final String VALIDATION_SCRIPT = "VALIDATION_SCRIPT"; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleTypeGridColumnIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleTypeGridColumnIDs.java index c99c9137323..79421674437 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleTypeGridColumnIDs.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleTypeGridColumnIDs.java @@ -36,7 +36,4 @@ public class SampleTypeGridColumnIDs extends EntityTypeGridColumnIDs public static final String SHOW_PARENT_METADATA_LABEL = "IS_SHOW_PARENT_METADATA"; public static final String GENERATED_CODE_PREFIX = "GENERATED_CODE_PREFIX"; - - public static final String VALIDATION_SCRIPT = "VALIDATION_SCRIPT"; - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataSetTypeProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataSetTypeProvider.java index e1b88fb1205..ee48ccc8153 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataSetTypeProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataSetTypeProvider.java @@ -20,7 +20,6 @@ import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.DataSetType import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.DataSetTypeGridColumnIDs.DELETION_DISALLOW; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.DataSetTypeGridColumnIDs.MAIN_DATA_SET_PATH; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.DataSetTypeGridColumnIDs.MAIN_DATA_SET_PATTERN; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.DataSetTypeGridColumnIDs.VALIDATION_SCRIPT; import java.util.List; @@ -54,7 +53,6 @@ public class DataSetTypeProvider extends EntityTypeProvider<DataSetType> builder.addColumn(DELETION_DISALLOW).hideByDefault(); builder.addColumn(MAIN_DATA_SET_PATH).hideByDefault(); builder.addColumn(MAIN_DATA_SET_PATTERN).hideByDefault(); - builder.addColumn(VALIDATION_SCRIPT).hideByDefault(); } @Override @@ -65,9 +63,6 @@ public class DataSetTypeProvider extends EntityTypeProvider<DataSetType> SimpleYesNoRenderer.render(type.isDeletionDisallow())); builder.column(MAIN_DATA_SET_PATH).addString(type.getMainDataSetPath()); builder.column(MAIN_DATA_SET_PATTERN).addString(type.getMainDataSetPattern()); - builder.column(VALIDATION_SCRIPT).addString( - type.getValidationScript() != null ? type.getValidationScript().getName() - : ""); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/EntityTypeProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/EntityTypeProvider.java index 15b3851f4de..dc04a7ccbc7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/EntityTypeProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/EntityTypeProvider.java @@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.server.resultset; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.EntityTypeGridColumnIDs.CODE; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.EntityTypeGridColumnIDs.DATABASE_INSTANCE; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.EntityTypeGridColumnIDs.DESCRIPTION; +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.EntityTypeGridColumnIDs.VALIDATION_SCRIPT; import java.util.List; @@ -29,10 +30,11 @@ import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder; /** * Abstract super class of providers of {@link EntityType} instances. - * + * * @author Franz-Josef Elmer */ -public abstract class EntityTypeProvider<T extends EntityType> extends AbstractCommonTableModelProvider<T> +public abstract class EntityTypeProvider<T extends EntityType> extends + AbstractCommonTableModelProvider<T> { public EntityTypeProvider(ICommonServer commonServer, String sessionToken) { @@ -47,6 +49,7 @@ public abstract class EntityTypeProvider<T extends EntityType> extends AbstractC builder.addColumn(CODE); builder.addColumn(DESCRIPTION).withDefaultWidth(300); builder.addColumn(DATABASE_INSTANCE).hideByDefault(); + builder.addColumn(VALIDATION_SCRIPT).hideByDefault(); addMoreColumns(builder); for (T type : types) { @@ -54,17 +57,19 @@ public abstract class EntityTypeProvider<T extends EntityType> extends AbstractC builder.column(CODE).addString(type.getCode()); builder.column(DESCRIPTION).addString(type.getDescription()); builder.column(DATABASE_INSTANCE).addString(type.getDatabaseInstance().getCode()); + builder.column(VALIDATION_SCRIPT).addString( + type.getValidationScript() != null ? type.getValidationScript().getName() : ""); addMoreCells(builder, type); } return builder.getModel(); } - + protected abstract List<T> listTypes(); - + protected void addMoreColumns(TypedTableModelBuilder<T> builder) { } - + protected void addMoreCells(TypedTableModelBuilder<T> builder, T type) { } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleTypeProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleTypeProvider.java index 7739f248b35..3d518b8af99 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleTypeProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/SampleTypeProvider.java @@ -23,7 +23,6 @@ import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleTypeG import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleTypeGridColumnIDs.IS_SHOW_PARENTS; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleTypeGridColumnIDs.SHOW_PARENT_METADATA_LABEL; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleTypeGridColumnIDs.SUBCODE_UNIQUE_LABEL; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleTypeGridColumnIDs.VALIDATION_SCRIPT; import java.util.List; @@ -61,7 +60,6 @@ public class SampleTypeProvider extends EntityTypeProvider<SampleType> builder.addColumn(AUTO_GENERATE_CODES_LABEL).hideByDefault(); builder.addColumn(SHOW_PARENT_METADATA_LABEL).hideByDefault(); builder.addColumn(GENERATED_CODE_PREFIX).hideByDefault(); - builder.addColumn(VALIDATION_SCRIPT).hideByDefault(); } @Override @@ -78,9 +76,6 @@ public class SampleTypeProvider extends EntityTypeProvider<SampleType> builder.column(SHOW_PARENT_METADATA_LABEL).addString( SimpleYesNoRenderer.render(type.isShowParentMetadata())); builder.column(GENERATED_CODE_PREFIX).addString(type.getGeneratedCodePrefix()); - builder.column(VALIDATION_SCRIPT).addString( - type.getValidationScript() != null ? type.getValidationScript().getName() - : ""); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index f4f77f4b78f..1b0a1161172 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -1268,7 +1268,23 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt IEntityTypeDAO entityTypeDAO = getDAOFactory().getEntityTypeDAO(DtoConverters.convertEntityKind(entityKind)); EntityTypePE entityTypePE = entityTypeDAO.tryToFindEntityTypeByCode(entityType.getCode()); + entityTypePE.setDescription(entityType.getDescription()); + if (entityType.getValidationScript() == null + || entityType.getValidationScript().getName() == null + || entityType.getValidationScript().getName().equals("")) + { + entityTypePE.setValidationScript(null); + } else + { + ScriptPE script = getDAOFactory().getScriptDAO() + .tryFindByName(entityType.getValidationScript().getName()); + if (script != null) + { + entityTypePE.setValidationScript(script); + } + } + updateSpecificEntityTypeProperties(entityKind, entityTypePE, entityType); entityTypeDAO.createOrUpdateEntityType(entityTypePE); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypeBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypeBO.java index 25a114e155b..99afd224568 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypeBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/EntityTypeBO.java @@ -73,7 +73,23 @@ public final class EntityTypeBO extends AbstractBusinessObject implements IEntit private ScriptPE getValidationScriptPE(EntityType entityType) { - return getScriptDAO().getByTechId(new TechId(entityType.getValidationScript().getId())); + if (entityType.getValidationScript() == null + || entityType.getValidationScript().getName() == null + || entityType.getValidationScript().getName().equals("")) + { + return null; + } else + { + ScriptPE script = getScriptDAO() + .tryFindByName(entityType.getValidationScript().getName()); + if (script != null) + { + return script; + } else + { + return null; + } + } } private EntityTypePE convertGeneric(EntityType entityType, EntityKind kind, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java index e5c56d30186..45b21cf638e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExperimentTranslator.java @@ -139,6 +139,9 @@ public final class ExperimentTranslator result.setDescription(experimentType.getDescription()); result.setDatabaseInstance(DatabaseInstanceTranslator.translate(experimentType .getDatabaseInstance())); + result.setValidationScript(ScriptTranslator.translate(experimentType + .getValidationScript())); + result.setExperimentTypePropertyTypes(ExperimentTypePropertyTypeTranslator.translate( experimentType.getExperimentTypePropertyTypes(), result, cacheOrNull)); -- GitLab