Lensed views are views that live in the navigator.
They have the same behavior as "regular" and subscribe to the same model (so for example when you update something in the env you can see it updated in the nav). Essentially they are copies of PartView's in the env, but they are just views and don't do anything else; for example, they should not be sending messages for which there is a check here.
However, we were forgetting to set the PartView JS isLensed attribute on the JS PartView object instance, which was causing these to send messages as if they were 'regular' views. In effect, this would cause view change messages (such as propertyChanged) to be sent 3x (one for the view in the env, one for the lens stack view - row 1 in nav - and one for the lens card view - row 2 in nav).
Main Points
Lensed views are views that live in the navigator.
They have the same behavior as "regular" and subscribe to the same model (so for example when you update something in the env you can see it updated in the nav). Essentially they are copies of PartView's in the env, but they are just views and don't do anything else; for example, they should not be sending messages for which there is a check here.
However, we were forgetting to set the PartView JS
isLensed
attribute on the JS PartView object instance, which was causing these to send messages as if they were 'regular' views. In effect, this would cause view change messages (such aspropertyChanged
) to be sent 3x (one for the view in the env, one for the lens stack view - row 1 in nav - and one for the lens card view - row 2 in nav).