Migration Guide


View wrappers that use attribute-to-attribute connections

When a view wrapper creates its view, it initializes the attribute-to-attribute connections in the parent part. In Version 3.0, this initialization forces the view wrapper to always be the target of the alignment whether or not it is the target of the connection, and also whether or not the connection is unidirectional. In Version 4.0, this initialization changed to make it consistent with the initialization of any attribute-to-attribute connection. This means that if the target attribute is read-only or the source attribute's value is nil, and the connection is bidirectional (source attribute is not read-only and the target attribute's value is not nil), the source of the connection is aligned with the target; otherwise, the target of the connection is aligned with the source.

This change may cause changes in the behavior of your Version 3.0 applications. To minimize the cases where there is behavior change between 3.0 and 4.5, Version 5.5 migration will reverse all connections involving a view wrapper where the view wrapper was a source. At the end of migration, all connections involving view wrappers will have the view wrappers as targets.

The following table summarizes the different cases with results in Version 3.0 compared to results in Version 5.5, and the last column Need user attention indicates the cases you might want to look at after migration.

Connection Source readOnly or target readOnly Target readOnly or source nil V3.0 result V5.5 result Migration restores V3.0 result Needs your attention
Parent A > Wrapper A

A unidirectional connection from attribute A of the parent part to attribute A of the view wrapper

true true No alignment No alignment

true false Parent A > Wrapper A Parent A > Wrapper A

false true No alignment No alignment

false false Parent A > Wrapper A Parent A > Wrapper A

Wrapper A > Parent A

A unidirectional connection from attribute A of the view wrapper to attribute A of the parent part

true true No alignment No alignment

true false No alignment Wrapper A > Parent A

The value of A in the parent part is set to the value of A in the view wrapper.

X X
false true Parent A > Wrapper A No alignment

No alignment takes place.

X X
false false Parent A > Wrapper A Wrapper A > Parent A

The value of A in the parent part is set to the value of A in the view wrapper.

X X
Parent A <> Wrapper A

A bidirectional connection from attribute A of the parent part to attribute A of the view wrapper

true true No alignment No alignment

true false Parent A > Wrapper A Parent A > Wrapper A

false true No alignment Wrapper A > Parent A

The value of A in the parent part is set to the value of A in the view wrapper.

X X
false false Parent A > Wrapper A Parent A > Wrapper A

true true No alignment No alignment

true false No alignment Wrapper A > Parent A

The value of A in the parent part is set to the value of A in the view wrapper.

X X
false true Parent A > Wrapper A Parent A > Wrapper A

false  false  Parent A > Wrapper A  Wrapper A > Parent A

The value of A in the parent part is set to the value of A in the view wrapper.

X X


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]