major
nice-to-have
defect
major
enhancement
(User-visible)
Currently, option providers must always be hard-coded. It would be nice if, at least for straight-through failures, option providers and constraints could also be specified directly in the administration interface using an expression.
Usage
#!xml
<config service-class="com.top_logic.element.meta.kbbased.filtergen.FilterFactory">
<instance>
<filters>
<filter name="IsAssignable">
<filter-by-expression
predicate="self -> value -> $value.get(`DemoTypes:DemoTypes.C.All#isAssignable`)"/>
</filter>
</filters>
</instance>
</config>
Or:
#!xml
<config service-class="com.top_logic.element.meta.kbbased.filtergen.GeneratorFactory">
<instance>
<generators>
<generator name="Siblings">
<options-by-expression
function="self -> $self.get(`tl.element:StructuredElement#parent`).get(`tl.element:StructuredElementContainer#children`).filter(s -> $s != $self)"
/>
</generator>
</generators>
</instance>
</config>
Code Migration
Update the GeneratorFactory configuration to be consistent with the FilterFactory configuration:
#!patch
### Eclipse Workspace Patch 1.0
#P com.top_logic.project.pos
Index: webapp/WEB-INF/conf/projectPosConf.config.xml
===================================================================
--- webapp/WEB-INF/conf/projectPosConf.config.xml (revision 257558)
+++ webapp/WEB-INF/conf/projectPosConf.config.xml (working copy)
@@ -398,8 +398,8 @@
<config service-class="com.top_logic.element.meta.kbbased.filtergen.GeneratorFactory">
<instance class="com.top_logic.element.meta.kbbased.filtergen.GeneratorFactory">
<generators>
- <generator name="TemplateMilestoneGenerator" generator="com.top_logic.project.pos.template.project.template.TemplateMilestoneGenerator" />
- <generator name="MSMilestoneGenerator" generator="com.top_logic.milestone.layout.MilestoneGenerator"/>
+ <generator name="TemplateMilestoneGenerator" impl="com.top_logic.project.pos.template.project.template.TemplateMilestoneGenerator" />
+ <generator name="MSMilestoneGenerator" impl="com.top_logic.milestone.layout.MilestoneGenerator"/>
</generators>
</instance>
</config>
Test
- tl-demo: "Siblings" options and "IsAssignable" filter.