This new component would allow a read only comparison of two version of a business object.
Business Object - problems/questions
The bo being compared would have to be one where data can be displayed with in a text field. There are a couple issues to complicate things:
- grouping of 'similar' related data into groups
If the bo has a subobject then this grouping will not be an issue. Is that an assumption that can be made? For example BO1 has a subobject named BO2. It would be then easy to group the BO2 attributes together. If BO1 is just a large set of attributes and need a custom way to group them then unclear how this will be done.
- main and grouping headers
Related to above, where is the 'title/header' for the main object and any subobjects to come from?
- lists of subobjects
If the main bo object has a list/collection of similar subobjects then doing comparisons gets difficult without the definition of a primary key for the subobjects.
Sample Component Definition
<bean parent="Uif-ComparisonTable" p:propertyName1="oldState" p:propertyName2="newState"/>
propertyName1 and propertyName2 would be the variable/business objects from the form that would then be compared.
This approach does not really work well for several reasons:
- properties/variables not wanted will be displayed, such as class name
- no way to do the grouping and headers
<bean parent="Uif-ComparisonTable" p:propertyName1="oldState" p:propertyName2="newState">
<header label="group 1"/>
<attribute label="attr1" name="attr1"/>
<attribute label="Custom Attr2" name="attr2"/>
<header label="group 2"/>
<attribute label="attr3" name="attr3"/>
<attribute label="Custom Attr4" name="attr4"/>
<header label="group 3"/>
<attribute label="attr5.1" name="attr5.attr1"/>
<attribute label="Custom Attr5.2" name="attr5.attr2"/>