From f8eab1ccf3ae0a39500440d92f69ecbdaa65ab77 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Thu, 16 Sep 2010 08:21:28 +0000 Subject: [PATCH] [LMS-1597] support for link to a material browser with preselected material type SVN: 17854 --- .../framework/ComponentProvider.java | 8 ++++- .../MaterialBatchRegistrationPanel.java | 2 +- .../ui/material/MaterialBrowserGrid.java | 15 ++++++---- .../ui/material/MaterialBrowserToolbar.java | 5 ++-- .../material/MaterialTypeSelectionWidget.java | 30 ++++++++++++------- .../PropertyTypeAssignmentForm.java | 3 +- .../PropertyTypeRegistrationForm.java | 2 +- 7 files changed, 44 insertions(+), 21 deletions(-) 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 3e8961aa2da..324fca296b6 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 d8d81089622..f779ebebcf7 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 7fd5a85889c..ba230a521ba 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 b62cb8c59a7..40aafb1c2a4 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 5151835f007..3d32d860738 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 f73714d9421..b0f8465218d 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 644f39174cc..1b68f064ede 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; } -- GitLab