From 0a5b84f97e05f88645c634c12892aae3fa6adba0 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Tue, 30 Apr 2013 12:18:00 +0000 Subject: [PATCH] SP-607 SP-621 BIS-398: Added new form to create entity types for all 4 entity types with save functionality. SVN: 28938 --- .../framework/ComponentProvider.java | 38 +++ .../application/ui/data/DataSetTypeGrid.java | 14 +- .../entity_type/AbstractEntityTypeGrid.java | 57 ++-- .../ui/entity_type/NewEntityTypeForm.java | 264 ++++++++++++++++++ .../ui/experiment/ExperimentTypeGrid.java | 10 +- .../ui/material/MaterialTypeGrid.java | 10 +- .../application/ui/sample/SampleTypeGrid.java | 13 +- 7 files changed, 370 insertions(+), 36 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/NewEntityTypeForm.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java index df7214d9a93..537c1e90578 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java @@ -37,6 +37,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.Da import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetUploadForm; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.FileFormatTypeGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.deletion.DeletionGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.NewEntityTypeForm; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentBatchRegistrationPanel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentBrowserGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentRegistrationPanel; @@ -1435,6 +1436,43 @@ public final class ComponentProvider }; } + public AbstractTabItemFactory getNewEntityTypeForm(final EntityKind kind) + { + return new AbstractTabItemFactory() + { + @Override + public ITabItem create() + { + DatabaseModificationAwareComponent component = NewEntityTypeForm.create(kind, viewContext); + return createRegistrationTab(getTabTitle(), component); + } + + @Override + public String getId() + { + return NewEntityTypeForm.BROWSER_ID + "-" + kind.name(); + } + + @Override + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.ADMINISTRATION, HelpPageAction.VIEW); + } + + @Override + public String getTabTitle() + { + return "New "+kind.name()+" Type"; + } + + @Override + public String tryGetLink() + { + return null; + } + }; + } + public AbstractTabItemFactory getExperimentTypeBrowser() { return new AbstractTabItemFactory() 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 46453ccca49..acd47b06a17 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 @@ -16,10 +16,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data; -import com.extjs.gxt.ui.client.widget.Window; -import com.extjs.gxt.ui.client.widget.form.TextField; -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.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; @@ -47,6 +43,10 @@ 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; +import com.extjs.gxt.ui.client.widget.Window; +import com.extjs.gxt.ui.client.widget.form.TextField; +import com.google.gwt.user.client.rpc.AsyncCallback; + /** * Grid displaying data set types. * @@ -270,4 +270,10 @@ public class DataSetTypeGrid extends AbstractEntityTypeGrid<DataSetType> GWTUtils.setToolTip(field, viewContext.getMessage(Dict.DELETION_DISALLOW_TOOLTIP)); return field; } + + @Override + public AddEntityTypeDialog<DataSetType> getNewDialog(DataSetType newType) + { + return (AddEntityTypeDialog<DataSetType>) createRegisterEntityTypeDialog("New DataSet", newType, newType.getEntityKind()); + } } 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 6527ec3aaf1..05f566ecbaa 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 @@ -20,12 +20,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import com.extjs.gxt.ui.client.event.ButtonEvent; -import com.extjs.gxt.ui.client.event.SelectionListener; -import com.extjs.gxt.ui.client.widget.Window; -import com.extjs.gxt.ui.client.widget.button.Button; -import com.google.gwt.user.client.rpc.AsyncCallback; - import ch.systemsx.cisd.common.shared.basic.string.StringUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; @@ -52,6 +46,12 @@ 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; +import com.extjs.gxt.ui.client.event.ButtonEvent; +import com.extjs.gxt.ui.client.event.SelectionListener; +import com.extjs.gxt.ui.client.widget.Window; +import com.extjs.gxt.ui.client.widget.button.Button; +import com.google.gwt.user.client.rpc.AsyncCallback; + /** * Abstract grid displaying entity types. * @@ -67,7 +67,6 @@ abstract public class AbstractEntityTypeGrid<T extends EntityType> extends Typed String browserId, String gridId) { super(viewContext, browserId, true, DisplayTypeIDGenerator.TYPE_BROWSER_GRID); - postRegistrationCallback = createRefreshGridAction(); extendBottomToolbar(); allowMultipleSelection(); @@ -79,32 +78,42 @@ abstract public class AbstractEntityTypeGrid<T extends EntityType> extends Typed return createGridDisplayTypeID("-" + getEntityKindOrNull().toString()); } + public abstract AddEntityTypeDialog<T> getNewDialog(T newType); + private void extendBottomToolbar() { addEntityOperationsLabel(); final EntityKind entityKind = getEntityKindOrNull(); - Button buttonProperties = - createSelectedItemButton( - viewContext.getMessage(Dict.BUTTON_PROPERTIES_ASSIGNMENTS), // "Properties" - new ISelectedEntityInvoker<BaseEntityModel<TableModelRowWithObject<T>>>() - { - @Override - public void invoke( - BaseEntityModel<TableModelRowWithObject<T>> selectedItem, - boolean keyPressed) - { - T entityType = selectedItem.getBaseObject().getObjectOrNull(); - DispatcherHelper.dispatchNaviEvent(new ComponentProvider( - viewContext) - .getPropertyTypeAssignmentBrowser(entityType)); - } + Button buttonNew = new TextToolItem("New", + new SelectionListener<ButtonEvent>() + { + @Override + public void componentSelected(ButtonEvent ce) + { + DispatcherHelper.dispatchNaviEvent(new ComponentProvider(viewContext).getNewEntityTypeForm(entityKind)); + } + }); + buttonNew.setId("add-entity-type-new-" + getEntityKindOrNull()); + addButton(buttonNew); + + Button buttonProperties = createSelectedItemButton(viewContext.getMessage(Dict.PROPERTY_TYPE_ASSIGNMENTS), // "Properties" + new ISelectedEntityInvoker<BaseEntityModel<TableModelRowWithObject<T>>>() + { + @Override + public void invoke( + BaseEntityModel<TableModelRowWithObject<T>> selectedItem, + boolean keyPressed) + { + T entityType = selectedItem.getBaseObject().getObjectOrNull(); + DispatcherHelper.dispatchNaviEvent(new ComponentProvider(viewContext).getPropertyTypeAssignmentBrowser(entityType)); + } - }); + }); buttonProperties.setId("property-types-" + getEntityKindOrNull()); addButton(buttonProperties); - + Button button = new TextToolItem(viewContext.getMessage(Dict.ADD_NEW_TYPE_BUTTON), new SelectionListener<ButtonEvent>() { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/NewEntityTypeForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/NewEntityTypeForm.java new file mode 100644 index 00000000000..25dca49822c --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/NewEntityTypeForm.java @@ -0,0 +1,264 @@ +package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type; + +import java.util.List; + +import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; +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.framework.DatabaseModificationAwareComponent; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.BorderLayoutDataFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetTypeGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentTypeGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.material.MaterialTypeGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property_type.PropertyTypeAssignmentGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleTypeGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils; +import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; +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.ExperimentType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script; + +import com.extjs.gxt.ui.client.Style.HorizontalAlignment; +import com.extjs.gxt.ui.client.Style.LayoutRegion; +import com.extjs.gxt.ui.client.event.ButtonEvent; +import com.extjs.gxt.ui.client.event.SelectionListener; +import com.extjs.gxt.ui.client.widget.Component; +import com.extjs.gxt.ui.client.widget.ContentPanel; +import com.extjs.gxt.ui.client.widget.MessageBox; +import com.extjs.gxt.ui.client.widget.button.Button; +import com.extjs.gxt.ui.client.widget.button.ButtonBar; +import com.extjs.gxt.ui.client.widget.form.Field; +import com.extjs.gxt.ui.client.widget.form.FormPanel; +import com.extjs.gxt.ui.client.widget.layout.BorderLayout; +import com.google.gwt.user.client.rpc.AsyncCallback; + +public class NewEntityTypeForm extends ContentPanel +{ + public static final String BROWSER_ID = GenericConstants.ID_PREFIX + "new-entity-type-form"; + + private final IViewContext<ICommonClientServiceAsync> viewContext; + + // + // Entity Type + // + private final EntityKind kind; + + private EntityType newType; + + // + // Entity Form Related + // + private AbstractEntityTypeGrid<? extends EntityType> typeGrid; + + private FormPanel dialogForm = null; + + private NewEntityTypeForm(EntityKind kind, IViewContext<ICommonClientServiceAsync> viewContext) + { + this.kind = kind; + this.viewContext = viewContext; + + // Main panel + setLayout(new BorderLayout()); + this.setHeaderVisible(false); + this.setBorders(false); + this.setBodyBorder(false); + + initForm(); + } + + public static DatabaseModificationAwareComponent create(EntityKind kind, + final IViewContext<ICommonClientServiceAsync> viewContext) + { + NewEntityTypeForm form = new NewEntityTypeForm(kind, viewContext); + return new DatabaseModificationAwareComponent(form, null); + } + + private void initForm() + { + this.removeAll(); + + // Top panel + initEntityTypeForm(); + dialogForm.setHeaderVisible(false); + dialogForm.setBorders(false); + dialogForm.setBodyBorder(false); + dialogForm.setLabelWidth(180); + add(dialogForm, BorderLayoutDataFactory.create(LayoutRegion.NORTH, 350)); + + // Central panel + PropertyTypeAssignmentGrid grid = (PropertyTypeAssignmentGrid) PropertyTypeAssignmentGrid.create(viewContext, newType).getComponent(); + final Component centerPanel = grid; + add(centerPanel, BorderLayoutDataFactory.create(LayoutRegion.CENTER, 170)); + + // Bottom panel + final FormPanel bottomPanel = getSaveButton(); + add(bottomPanel, BorderLayoutDataFactory.create(LayoutRegion.SOUTH, 70)); + + layout(); + } + + private void initEntityTypeForm() + { + AddEntityTypeDialog<? extends EntityType> dialog = null; + + switch (kind) + { + case SAMPLE: + newType = new SampleType(); + typeGrid = (SampleTypeGrid) SampleTypeGrid.create(viewContext).getComponent(); + dialog = ((SampleTypeGrid) typeGrid).getNewDialog((SampleType) newType); + break; + case DATA_SET: + newType = new DataSetType(); + typeGrid = (DataSetTypeGrid) DataSetTypeGrid.create(viewContext).getComponent(); + dialog = ((DataSetTypeGrid) typeGrid).getNewDialog((DataSetType) newType); + break; + case EXPERIMENT: + newType = new ExperimentType(); + typeGrid = (ExperimentTypeGrid) ExperimentTypeGrid.create(viewContext).getComponent(); + dialog = ((ExperimentTypeGrid) typeGrid).getNewDialog((ExperimentType) newType); + break; + case MATERIAL: + newType = new MaterialType(); + typeGrid = (MaterialTypeGrid) MaterialTypeGrid.create(viewContext).getComponent(); + dialog = (AddEntityTypeDialog<MaterialType>) ((MaterialTypeGrid) typeGrid).getNewDialog((MaterialType) newType); + break; + } + + newType.setCode("" + System.currentTimeMillis()); // Just needed so the grid don't break + // afterwards + List<Component> dialogFormIntoList = dialog.getItems(); + dialogForm = (FormPanel) dialogFormIntoList.get(0); + } + + private FormPanel getSaveButton() + { + final FormPanel formWithButtons = new FormPanel(); + formWithButtons.setHeaderVisible(false); + formWithButtons.setBorders(false); + formWithButtons.setBodyBorder(false); + + ButtonBar buttonBar = new ButtonBar(); + buttonBar.setMinButtonWidth(100); + buttonBar.setAlignment(HorizontalAlignment.RIGHT); + formWithButtons.add(buttonBar); + + final Button save = new Button("Save", new SelectionListener<ButtonEvent>() + { + @Override + public final void componentSelected(final ButtonEvent ce) + { + if (dialogForm.isValid()) + { + setEntityFromForm(); + createUpdateEntity(); + } + } + }); + save.setWidth("100px"); + save.setHeight("20px"); + buttonBar.add(save); + + return formWithButtons; + } + + private class AsyncCallbackEntityType implements AsyncCallback<Void> + { + @Override + public void onFailure(Throwable throwable) + { + String message = "Error"; + if (throwable instanceof UserFailureException) + { + UserFailureException userException = (UserFailureException) throwable; + String details = GWTUtils.translateToHtmlLineBreaks(userException.getMessage()); + if (details != null) + { + message = details; + } + } + MessageBox.alert("Error", message, null); + } + + @Override + public void onSuccess(Void result) + { + initForm(); + } + } + + private void createUpdateEntity() + { + AsyncCallbackEntityType callback = new AsyncCallbackEntityType(); + + switch (kind) + { + case SAMPLE: + viewContext.getService().registerSampleType((SampleType) newType, callback); + break; + case DATA_SET: + viewContext.getService().registerDataSetType((DataSetType) newType, callback); + break; + case EXPERIMENT: + viewContext.getService().registerExperimentType((ExperimentType) newType, callback); + break; + case MATERIAL: + viewContext.getService().registerMaterialType((MaterialType) newType, callback); + break; + } + } + + private void setEntityFromForm() + { + List<Field<?>> formFields = dialogForm.getFields(); + + switch (kind) + { + case SAMPLE: + SampleType toSaveSample = new SampleType(); + toSaveSample.setCode((String) formFields.get(0).getValue()); + toSaveSample.setDescription((String) formFields.get(1).getValue()); + toSaveSample.setValidationScript((Script) formFields.get(2).getValue()); + toSaveSample.setListable((Boolean) formFields.get(3).getValue()); + toSaveSample.setShowContainer((Boolean) formFields.get(4).getValue()); + toSaveSample.setShowParents((Boolean) formFields.get(5).getValue()); + toSaveSample.setSubcodeUnique((Boolean) formFields.get(6).getValue()); + toSaveSample.setAutoGeneratedCode((Boolean) formFields.get(7).getValue()); + toSaveSample.setShowParentMetadata((Boolean) formFields.get(8).getValue()); + toSaveSample.setGeneratedCodePrefix((String) formFields.get(9).getValue()); + newType = toSaveSample; + break; + case DATA_SET: + DataSetType toSaveDataSet = new DataSetType(); + toSaveDataSet.setCode((String) formFields.get(0).getValue()); + toSaveDataSet.setDescription((String) formFields.get(1).getValue()); + toSaveDataSet.setValidationScript((Script) formFields.get(2).getValue()); + toSaveDataSet.setDataSetKind((DataSetKind) formFields.get(3).getValue()); + toSaveDataSet.setDeletionDisallow((Boolean) formFields.get(4).getValue()); + toSaveDataSet.setMainDataSetPattern((String) formFields.get(5).getValue()); + toSaveDataSet.setMainDataSetPath((String) formFields.get(6).getValue()); + newType = toSaveDataSet; + break; + case EXPERIMENT: + ExperimentType toSaveExperiment = new ExperimentType(); + toSaveExperiment.setCode((String) formFields.get(0).getValue()); + toSaveExperiment.setDescription((String) formFields.get(1).getValue()); + toSaveExperiment.setValidationScript((Script) formFields.get(2).getValue()); + newType = toSaveExperiment; + break; + case MATERIAL: + MaterialType toSaveMaterial = new MaterialType(); + toSaveMaterial.setCode((String) formFields.get(0).getValue()); + toSaveMaterial.setDescription((String) formFields.get(1).getValue()); + toSaveMaterial.setValidationScript((Script) formFields.get(2).getValue()); + newType = toSaveMaterial; + break; + } + } + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeGrid.java index 344f8a1f8b4..1fdf34c68a0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeGrid.java @@ -16,14 +16,13 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment; -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.AbstractAsyncCallback; 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.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.AddEntityTypeDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; @@ -32,6 +31,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; +import com.google.gwt.user.client.rpc.AsyncCallback; + /** * Grid displaying experiment types. * @@ -55,6 +56,11 @@ public class ExperimentTypeGrid extends AbstractEntityTypeGrid<ExperimentType> super(viewContext, BROWSER_ID, GRID_ID); } + @Override + public AddEntityTypeDialog<ExperimentType> getNewDialog(ExperimentType newType) { + return (AddEntityTypeDialog<ExperimentType>) createRegisterEntityTypeDialog("New Experiment", newType, newType.getEntityKind()); + } + @Override protected void listTableRows( DefaultResultSetConfig<String, TableModelRowWithObject<ExperimentType>> resultSetConfig, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeGrid.java index 322dd40fca4..4bef76e19f7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeGrid.java @@ -16,14 +16,13 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.material; -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.AbstractAsyncCallback; 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.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.AddEntityTypeDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; @@ -32,6 +31,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; +import com.google.gwt.user.client.rpc.AsyncCallback; + /** * Grid displaying material types. * @@ -55,6 +56,11 @@ public class MaterialTypeGrid extends AbstractEntityTypeGrid<MaterialType> super(viewContext, BROWSER_ID, GRID_ID); } + @Override + public AddEntityTypeDialog<MaterialType> getNewDialog(MaterialType newType) { + return (AddEntityTypeDialog<MaterialType>) createRegisterEntityTypeDialog("New Material", newType, newType.getEntityKind()); + } + @Override protected void listTableRows( DefaultResultSetConfig<String, TableModelRowWithObject<MaterialType>> resultSetConfig, 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 b5ae5e3139d..dcac16375ad 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 @@ -16,10 +16,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample; -import com.extjs.gxt.ui.client.widget.Window; -import com.extjs.gxt.ui.client.widget.form.TextField; -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.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; @@ -43,6 +39,10 @@ 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.TableModelRowWithObject; +import com.extjs.gxt.ui.client.widget.Window; +import com.extjs.gxt.ui.client.widget.form.TextField; +import com.google.gwt.user.client.rpc.AsyncCallback; + /** * Grid displaying sample types. * @@ -81,6 +81,11 @@ public class SampleTypeGrid extends AbstractEntityTypeGrid<SampleType> super(viewContext, BROWSER_ID, GRID_ID); } + @Override + public AddEntityTypeDialog<SampleType> getNewDialog(SampleType newType) { + return (AddEntityTypeDialog<SampleType>) createRegisterEntityTypeDialog("New Sample", newType, newType.getEntityKind()); + } + @Override protected void listTableRows( DefaultResultSetConfig<String, TableModelRowWithObject<SampleType>> resultSetConfig, -- GitLab