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 3e8961aa2dae1f6d6060e4e62bf335a4b8dd2bdc..324fca296b6142daf97b92ad950894164499f8df 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 @@ -139,6 +139,11 @@ public final class ComponentProvider } public final AbstractTabItemFactory getMaterialBrowser() + { + return getMaterialBrowser(null); + } + + public final AbstractTabItemFactory getMaterialBrowser(final String initialMaterialTypeOrNull) { return new AbstractTabItemFactory() { @@ -146,7 +151,8 @@ public final class ComponentProvider public ITabItem create() { IDisposableComponent browser = - MaterialBrowserGrid.createWithTypeChooser(viewContext); + MaterialBrowserGrid.createWithTypeChooser(viewContext, + initialMaterialTypeOrNull); return createTab(Dict.MATERIAL_BROWSER, browser); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java index d8d8108962278ef7a3b2490aeae063054b8464f1..f779ebebcf744a6b9073f0fe466dee936f9fd974 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java @@ -63,7 +63,7 @@ public final class MaterialBatchRegistrationPanel extends LayoutContainer this.viewContext = viewContext; setId(ID); setScrollMode(Scroll.AUTO); - materialTypeSelection = new MaterialTypeSelectionWidget(viewContext, ID_SUFFIX); + materialTypeSelection = new MaterialTypeSelectionWidget(viewContext, null, ID_SUFFIX); final ToolBar toolBar = createToolBar(); add(toolBar); materialTypeSelection diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java index 7fd5a85889c5345848958c205c93dac73dd9267a..ba230a521baf28ab3704e695d427965ca842b648 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java @@ -70,17 +70,22 @@ public class MaterialBrowserGrid extends /** * Creates a browser with a toolbar which allows to choose the material type. Allows to show or * edit material details. + * + * @param initialMaterialTypeOrNull */ public static DisposableEntityChooser<Material> createWithTypeChooser( - final IViewContext<ICommonClientServiceAsync> viewContext) + final IViewContext<ICommonClientServiceAsync> viewContext, + String initialMaterialTypeOrNull) { - return createWithTypeChooser(viewContext, true); + return createWithTypeChooser(viewContext, true, initialMaterialTypeOrNull); } private static DisposableEntityChooser<Material> createWithTypeChooser( - final IViewContext<ICommonClientServiceAsync> viewContext, boolean detailsAvailable) + final IViewContext<ICommonClientServiceAsync> viewContext, boolean detailsAvailable, + String initialMaterialTypeOrNull) { - final MaterialBrowserToolbar toolbar = new MaterialBrowserToolbar(viewContext, null); + final MaterialBrowserToolbar toolbar = + new MaterialBrowserToolbar(viewContext, initialMaterialTypeOrNull, null); final ICriteriaProvider<ListMaterialDisplayCriteria> criteriaProvider = toolbar; final MaterialBrowserGrid browserGrid = createBrowserGrid(viewContext, criteriaProvider, detailsAvailable); @@ -100,7 +105,7 @@ public class MaterialBrowserGrid extends { if (initValueOrNull == null) { - return createWithTypeChooser(viewContext, false); + return createWithTypeChooser(viewContext, false, null); } else { return createWithoutTypeChooser(viewContext, initValueOrNull); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java index b62cb8c59a73ce743d6bfbf3e9aaf26705eb257e..40aafb1c2a4908d2befa9cd0d891f58f01f20dd0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java @@ -55,11 +55,12 @@ public class MaterialBrowserToolbar extends ToolBar implements private final IViewContext<ICommonClientServiceAsync> viewContext; public MaterialBrowserToolbar(final IViewContext<ICommonClientServiceAsync> viewContext, - String displayTypeIdOrNull) + String initialMaterialTypeOrNull, String displayTypeIdOrNull) { this.viewContext = viewContext; this.selectMaterialTypeCombo = - MaterialTypeSelectionWidget.create(viewContext, displayTypeIdOrNull, ID); + MaterialTypeSelectionWidget.create(viewContext, displayTypeIdOrNull, + initialMaterialTypeOrNull, ID); display(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java index 5151835f0078e39f7903d78cc9ba9ff22f455e9f..3d32d86073801a954d61ea6797ff4d83e76199a6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java @@ -61,33 +61,39 @@ public final class MaterialTypeSelectionWidget extends */ public static MaterialTypeSelectionWidget createWithAdditionalOption( final IViewContext<ICommonClientServiceAsync> viewContext, - final String additionalOptionLabel, final String idSuffix) + final String additionalOptionLabel, final String initialCodeOrNullParameter, + final String idSuffix) { - return new MaterialTypeSelectionWidget(viewContext, additionalOptionLabel, idSuffix, null); + return new MaterialTypeSelectionWidget(viewContext, additionalOptionLabel, idSuffix, + initialCodeOrNullParameter, null); } public static MaterialTypeSelectionWidget create( final IViewContext<ICommonClientServiceAsync> viewContext, - final String displayTypeIdOrNull, final String idSuffix) + final String displayTypeIdOrNull, final String initialCodeOrNullParameter, + final String idSuffix) { - return new MaterialTypeSelectionWidget(viewContext, null, idSuffix, displayTypeIdOrNull); + return new MaterialTypeSelectionWidget(viewContext, null, idSuffix, + initialCodeOrNullParameter, displayTypeIdOrNull); } public MaterialTypeSelectionWidget(final IViewContext<ICommonClientServiceAsync> viewContext, - final String idSuffix) + final String initialCodeOrNullParameter, final String idSuffix) { - this(viewContext, null, idSuffix, null); + this(viewContext, null, idSuffix, initialCodeOrNullParameter, null); } private MaterialTypeSelectionWidget(IViewContext<ICommonClientServiceAsync> viewContext, - String additionalOptionLabelOrNull, String idSuffix, final String displayTypeIdOrNull) + String additionalOptionLabelOrNull, String idSuffix, + final String initialCodeOrNullParameter, final String displayTypeIdOrNull) { super(viewContext, SUFFIX + idSuffix, Dict.MATERIAL_TYPE, ModelDataPropertyNames.CODE, "material type", "material types"); this.viewContext = viewContext; this.additionalOptionLabelOrNull = additionalOptionLabelOrNull; this.initialCodeOrNull = - tryGetInitialValue(displayTypeIdOrNull, viewContext.getDisplaySettingsManager()); + tryGetInitialValue(displayTypeIdOrNull, initialCodeOrNullParameter, viewContext + .getDisplaySettingsManager()); setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.CODE, ModelDataPropertyNames.TOOLTIP)); if (displayTypeIdOrNull != null) @@ -208,9 +214,13 @@ public final class MaterialTypeSelectionWidget extends } private static String tryGetInitialValue(final String displayTypeIdOrNull, - DisplaySettingsManager displaySettingsManager) + final String initialCodeOrNull, DisplaySettingsManager displaySettingsManager) { - if (displayTypeIdOrNull != null) + boolean initialCodeExplicitlyDefined = initialCodeOrNull != null; + if (initialCodeExplicitlyDefined) + { + return initialCodeOrNull; + } else if (displayTypeIdOrNull != null) { return displaySettingsManager.getDropDownSettings(displayTypeIdOrNull); } else diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java index f73714d94217acfff950b46179cb836644c4f3f8..b0f8465218d3e67683b706d9879de0db795169a2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java @@ -217,7 +217,8 @@ public final class PropertyTypeAssignmentForm extends LayoutContainer implements if (materialTypeSelectionWidget == null) { materialTypeSelectionWidget = - new MaterialTypeSelectionWidget(viewContext, MATERIAL_TYPE_ID_SUFFIX); + new MaterialTypeSelectionWidget(viewContext, null, + MATERIAL_TYPE_ID_SUFFIX); created = true; } result = materialTypeSelectionWidget; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java index 644f39174ccb74cfa2a11cb8eaa9ae5b04509c9a..1b68f064edebe52575226fe5b9a1b719d37b421c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java @@ -114,7 +114,7 @@ public final class PropertyTypeRegistrationForm extends AbstractRegistrationForm { String label = viewContext.getMessage(Dict.ALLOW_ANY_TYPE); MaterialTypeSelectionWidget chooser = - MaterialTypeSelectionWidget.createWithAdditionalOption(viewContext, label, ID); + MaterialTypeSelectionWidget.createWithAdditionalOption(viewContext, label, null, ID); FieldUtil.markAsMandatory(chooser); return chooser; }