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 a7797a78b34238dc6d1caf0094f213868454968d..196e5ff4cbc1336171aedf8311462843bba3ec79 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 e8a0ba6cf950ae1823986c683907718593200db7..13c6f6c32258f10d069b6081d9cfc40ede55d507 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 6d3844169d4e58f2b45e4e7d6bf5ff5477c7a9f3..e9a8de9f711f6cc5178082ed06a1392c95ffb9e5 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 82b16d187be512d0ae2c88623d278a2c7c0ae525..d581e5f5a66260a4de6be8d8728fa63d7a330c9b 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 0000000000000000000000000000000000000000..382919fc0476470d42bf6a4130a5e72291095b6d --- /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 23bd22f9035f1b1b4e984d892ce5864fb5f14bc0..d523f544cb4b65b7b33405f30b67d770aab1dbc8 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 f6cd5594e50e44d48f17c05514e46494edd89f94..e74084dbd4c61aeb43960be2cc16fd1d6f499ebd 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 0d5795996bf16adfb7756f87a5eb82bf78924688..a94fa8942d1d4d0b40df4d2f47a75198be262d68 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 ca150330a9e597b4f985ec4c4b1842d5ad2114f4..62814f5ad4a24de26cb43d8349283a76a52a98a1 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 5b344d2e61408af56a36fc9b35bb64b190fd0662..a91b0342caa023a35397c9720e9906e9c3b1ba45 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();