The following are the developer traces resulting from the experiment. A description of the contents of the traces is found further below. Note that these are not currently conformant XML as they do not have a surrounding top-level pair.
The JavaEditorViewportMonitor causes editor changes to be recorded as selection events, with the delta containing an XML fragment such as:
<interactionEvent> <kind>selection</kind> <!-- other tags elided --> <navigation>scrolling</navigation> <delta> <scrolling removed="23 " added="64 " visible="24:26 31:64 "> <newlyVisibleElements> <handle kind="java" lines="41:150"> =jEdit-4.1pre6/<org.gjt.sp.jedit.options{LoadSaveOptionPane.java[LoadSaveOptionPane~_init </handle> </newlyVisibleElements> </scrolling> </delta> </interactionEvent>
There are four types of delta, corresponding to the navigation type:
All delta types have three attributes. The added and removed attributes report the change since the previously reported delta. The visible attribute summarizes what is currently visible. Each attribute reports a set of space-delimited numbers representing line ranges.
The delta also reports the handles of the domain-specific elements that were added as a result of the change (where available). This is a delta from the previously reported changes, and is listed in the <newlyVisibleElements>...</newlyVisibleElements> tags. Each handle represents some domain-level element (the domain is contained in the kind attribute); the handle's lines attribute provides the line range containing the elements definition.
The example above reports that a part was scrolled, with line 23 disappearing, line 64 newly appearing, and the net result being lines 24 through 26 and 31 through 64 are currently visible. The scrolling revealed more of an element (from its lines attribute, we can determine that part of the definition was previously visible).