Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[udig-devel] LayerDecorator and LayerListener/LayerEvent

I have been attempting to hook up StyleView to the layer notification system. StyleView works by having a clone of the layer blackboard which it needs to keep in sync with updates from the layer, while only pushing changes back during the application of a style change.

The class SelectionLayer already provides a layer decorator (aka an Object that operates as a wrapper on a layer while maintaining the same interface).

SelectionLayer pretends to be the original layer while replacing the existing StyleBlackboard with one specifically designed to render things in Orange. StyleLayer pretends to be the original layer while replacing the existing StyleBlackboard with one that can be edited.

Since this is a common use I have taken the boilerplate code into LayerDecorator.

The other addition is the need to listen to modifications on the layer, right now layer makes use of EMF "adapters" which are like the listeners everyone knows and loves. Jesse has promised me normal listeners for a while, now today I have defined the interface and make use of it for StyleLayer. The implementation will forward any events from the original layer in addition to indicating changes to the local clone of the blackboard.

This work replaces the concept of StyleTransaction, StyleTransaction made allowances for editing multiple layers. This can still be accomplished - simply wraps multiple Layers (each in its own StyleLayer).

I hope this makes sense to all involved.
Jody


Back to the top