From 63fa725768f59374359b9ba417de4a00ada1ce52 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Fri, 14 Jan 2011 14:36:48 +0000 Subject: [PATCH] [LMS-1949] exposed TableModel once again to simplify dependencies; introduced some interfaces for managed properties SVN: 19429 --- .../ManagedPropertyEvaluator.java | 1 + .../SimpleTableModelBuilderAdaptor.java | 12 +++---- .../api/ISimpleTableModelBuilderAdaptor.java | 8 +++++ .../basic/dto/IManagedEntityProperty.java | 4 +-- .../dto/IManagedInputWidgetDescription.java | 36 +++++++++++++++++++ .../basic/dto/IManagedUiDescription.java | 7 ++-- ...ManagedComboBoxInputWidgetDescription.java | 6 ++++ .../basic/dto/ManagedEntityProperty.java | 2 +- .../dto/ManagedInputWidgetDescription.java | 10 +++++- .../basic/dto/ManagedUiDescription.java | 20 ----------- 10 files changed, 68 insertions(+), 38 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedInputWidgetDescription.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/ManagedPropertyEvaluator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/ManagedPropertyEvaluator.java index a7797a78b34..196e5ff4cbc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/ManagedPropertyEvaluator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/ManagedPropertyEvaluator.java @@ -30,6 +30,7 @@ import ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder; * * @author Chandrasekhar Ramakrishnan */ +// TODO 2011-01-14, Piotr Buczek: it should be possible to reuse evaluator by set of properties public class ManagedPropertyEvaluator { private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/SimpleTableModelBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/SimpleTableModelBuilderAdaptor.java index e8a0ba6cf95..13c6f6c3225 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/SimpleTableModelBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/SimpleTableModelBuilderAdaptor.java @@ -20,6 +20,7 @@ import java.util.Date; import ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property.api.IRowBuilderAdaptor; import ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property.api.ISimpleTableModelBuilderAdaptor; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; import ch.systemsx.cisd.openbis.generic.shared.util.IRowBuilder; import ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder; @@ -46,17 +47,12 @@ public class SimpleTableModelBuilderAdaptor implements ISimpleTableModelBuilderA // SimpleTableModelBuilder delegated methods // - // This is not exposed in API interface on purpose. - // We don't want to expose neither builder nor TableModel. - public SimpleTableModelBuilder getBuilder() + // NOTE: TableModel is exposed to keep dependencies simple + public TableModel getTableModel() { - return builder; + return builder.getTableModel(); } - // - // ISimpleTableModelBuilderAdaptor - // - public void addHeader(String title) { builder.addHeader(title); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/api/ISimpleTableModelBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/api/ISimpleTableModelBuilderAdaptor.java index 6d3844169d4..e9a8de9f711 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/api/ISimpleTableModelBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/api/ISimpleTableModelBuilderAdaptor.java @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property.api; import ch.systemsx.cisd.common.exceptions.UserFailureException; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; /** * Builder of simple table models. @@ -28,6 +29,13 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException; public interface ISimpleTableModelBuilderAdaptor { + /** + * Returns table model to be set in as output. + * <p> + * NOTE: scripts shouldn't rely on the returned object's interface + */ + TableModel getTableModel(); + /** * Adds an empty row and returns a row builder for setting values of this row. * diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedEntityProperty.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedEntityProperty.java index 82b16d187be..d581e5f5a66 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedEntityProperty.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedEntityProperty.java @@ -23,10 +23,8 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; */ public interface IManagedEntityProperty { - // private String tabName; // tab name could be just property code - boolean isOwnTab(); - ManagedUiDescription getUiDescription(); + IManagedUiDescription getUiDescription(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedInputWidgetDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedInputWidgetDescription.java new file mode 100644 index 00000000000..382919fc047 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedInputWidgetDescription.java @@ -0,0 +1,36 @@ +/* + * Copyright 2011 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.dto; + +/** + * Interface implemented by objects describing an input UI element (text field, combo box) + * + * @author Piotr Buczek + */ +public interface IManagedInputWidgetDescription extends IManagedWidgetDescription +{ + ManagedInputFieldType getManagedInputFieldType(); + + void setValue(String value); + + String getValue(); + + void setLabel(String label); + + String getLabel(); + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedUiDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedUiDescription.java index 23bd22f9035..d523f544cb4 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedUiDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IManagedUiDescription.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; -import ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property.api.ISimpleTableModelBuilderAdaptor; /** * The interface exposed to the Managed Property script. @@ -25,13 +24,11 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property.api. */ public interface IManagedUiDescription { - public void setupTableOutput(ISimpleTableModelBuilderAdaptor tableModelBuilder); - - // FIXME remove this as it exposes TableModel (or introduce TableModelAdaptor) - @Deprecated public void useTableOutput(TableModel tableModel); public void addTextInputField(String label); public void addComboBoxInputField(String labels, String[] values); + + public IManagedWidgetDescription getOutputWidgetDescription(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedComboBoxInputWidgetDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedComboBoxInputWidgetDescription.java index f6cd5594e50..e74084dbd4c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedComboBoxInputWidgetDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedComboBoxInputWidgetDescription.java @@ -28,6 +28,12 @@ public class ManagedComboBoxInputWidgetDescription extends ManagedInputWidgetDes private List<String> options = new ArrayList<String>(); + @Override + public ManagedInputFieldType getManagedInputFieldType() + { + return ManagedInputFieldType.COMBO_BOX; + } + public List<String> getOptions() { return options; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedEntityProperty.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedEntityProperty.java index 0d5795996bf..a94fa8942d1 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedEntityProperty.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedEntityProperty.java @@ -53,7 +53,7 @@ public class ManagedEntityProperty implements IEntityProperty, IManagedEntityPro this.ownTab = ownTab; } - public ManagedUiDescription getUiDescription() + public IManagedUiDescription getUiDescription() { return uiDescription; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedInputWidgetDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedInputWidgetDescription.java index ca150330a9e..62814f5ad4a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedInputWidgetDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedInputWidgetDescription.java @@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; /** * @author Chandrasekhar Ramakrishnan */ -public abstract class ManagedInputWidgetDescription implements IManagedWidgetDescription +public abstract class ManagedInputWidgetDescription implements IManagedInputWidgetDescription { private static final long serialVersionUID = 1L; @@ -27,11 +27,19 @@ public abstract class ManagedInputWidgetDescription implements IManagedWidgetDes private String value; + // + // IManagedWidgetDescription + // + public ManagedWidgetType getManagedWidgetType() { return ManagedWidgetType.INPUT; } + // + // IManagedInputWidgetDescription + // + public ManagedInputFieldType getManagedInputFieldType() { return ManagedInputFieldType.TEXT; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java index 5b344d2e614..a91b0342caa 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ManagedUiDescription.java @@ -19,10 +19,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; import java.util.Arrays; import java.util.List; -import ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property.SimpleTableModelBuilderAdaptor; -import ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property.api.ISimpleTableModelBuilderAdaptor; import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable; -import ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder; /** * Object that declaratively describes a UI (labels, fields, their ordering, table content). @@ -82,23 +79,6 @@ public class ManagedUiDescription implements IManagedUiDescription, ISerializabl addInputWidgetDescription(inputField); } - public void setupTableOutput(ISimpleTableModelBuilderAdaptor tableModelBuilder) - { - ManagedTableWidgetDescription tableWidget = new ManagedTableWidgetDescription(); - SimpleTableModelBuilder simpleTableModelBuilder; - if (tableModelBuilder instanceof SimpleTableModelBuilderAdaptor) - { - simpleTableModelBuilder = - ((SimpleTableModelBuilderAdaptor) tableModelBuilder).getBuilder(); - } else - { - simpleTableModelBuilder = new SimpleTableModelBuilder(); - simpleTableModelBuilder.setMessage("can't handle table builder"); - } - tableWidget.setTableModel(simpleTableModelBuilder.getTableModel()); - setOutputWidgetDescription(tableWidget); - } - public void useTableOutput(TableModel tableModel) { ManagedTableWidgetDescription tableWidget = new ManagedTableWidgetDescription(); -- GitLab