org.geotools.event |
package org.geotools.event
Allows for events on GeoTools nested data structures.
Several of the GeoTools objects are produced in reference to
specifications, in particular XML based specifications. Often
we try and match the same abstractions present in a specification
like SLD or Filter. But rather then make use of pure Java Beans, and
make user interface code responsible for managing a host of listeners
we are providing a single set of listeners located at the object
matching the document base.
For more Details:
- This design is similar to EMF, or JFace use (aka borrow code examples)
- Not specific to Documents (just nesting),
the Catalog api will use these events
- We do try and match the document structure perfectly for Feature/FeatureCollection/GML
(so that the same XPath expressions can be respected). FeatureCollection and
Feature have their own well explored structure and issues and will not be using
this event system. Given the size of FeatureCollections it is not practicle for each
child to "know" its parent.
References
The following links will be of interest:
- Eclipse Modeling Framework
- JFace
@author Jody Garnett, Refractions Research
|
Java Source File Name | Type | Comment |
AbstractGTComponent.java | Class | Provides basic StyleEvent notification, may be used in conjuction with
StyleList during event handling.
This class has package scope to prevent user code mistaking it for something
important. |
AbstractGTRoot.java | Class | Provides basic StyleEvent notification, may be used in conjuction with
StyleList during event handling.
This class has package scope to prevent user code mistaking it for something
important. |
GTAdapter.java | Class | Helper class for listenting to style events. |
GTCloneUtil.java | Class | Temporary hack for cloning (for use in DuplicatorStyleVisitor). |
GTComponent.java | Interface | Provides support for Parent/Child relationships for the event system.
Several of the GeoTools objects are produced in reference to
specifications, in particular XML based specifications. |
GTConstant.java | Class | Indicates a constant immutable data object, may be shared (and will
not issue change notifications). |
GTDelta.java | Interface | Indicates which style constructs have been changed.
Acts as a series of breadcrumbs stored up by a StyleEvent to communicate
changes.
This delta is constructed a fashion following the outline of the style
document, allowing you to skip over entire branches of changes if you are
not interested.
Example Use
The following examples will make use of the following
allegorical data structure
Root
+--Parent
+-- Child
+-- List
[0]--Element
These roles are allegorical in nature any may be played
in real life by arrays, beans, collections, etc..
(as example StyleLayerDescriptor is a "Root").
Example 0: An Child is changed.
Event.POST_CHANGE
+---Delta1 "" -1 NO_CHANGE(Root,null,)
+---Delta2 "Parent" -1 NO_CHANGE (Parent, null )
+---Delta3 "Child" -1 CHANGED (Child, oldChild )
Location of change is indicated by delta, including
name of "Child". |
GTDeltaImpl.java | Class | Describes the extent of changes. |
GTDeltaVisitor.java | Interface | Allows for processing of StyleDeltas. |
GTEvent.java | Interface | Captures changes to Style.
The "delta" acts as a series of bread crumbs allowing you the listener to
figure out what changed where. |
GTEventImpl.java | Class | Captures changes to Style.
The "delta" acts as a series of bread crumbs allowing you the listener to
figure out what changed where. |
GTList.java | Class | |
GTListener.java | Interface | Listens to changes in the Style content. |
GTNote.java | Interface | Small stratagy object passed in by our parent so we can call home. |
GTNoteImpl.java | Class | |
GTRoot.java | Interface | Indicates the "root" of a Geotools data structure with event notification.
Several of the GeoTools objects are produced in reference to specifications,
in particular XML based specifications. |