IModelDelta.CONTENT
but one of its descendants does, then
* for optimization reasons we return IModelDelta.STATE
@@ -621,25 +625,30 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
}
}
- /**
- * Calls the specified child nodes to build the delta for the given event.
- * @param childNodes Map of nodes to be invoked, and the corresponding delta
- * flags that they will generate. This map is generated with a call to
- * {@link #getChildNodesWithDeltaFlags(Object)}.
- * @param delta The delta object to build on. This delta should have been
- * generated by this node, unless the full delta path is not being calculated
- * due to an optimization.
- * @param event The event object that the delta is being built for.
- * @param rm The result token to invoke when the delta is completed.
- */
+ /**
+ * Calls the specified child nodes (of [node]) to build the delta for the
+ * given event.
+ *
+ * @param childNodes
+ * Map of nodes to be invoked, and the corresponding delta flags
+ * that they may (or will) generate. This map is generated with a
+ * call to {@link #getChildNodesWithDeltaFlags(Object)}.
+ * @param delta
+ * The delta object to build on. This delta should have been
+ * generated by this node, unless the full delta path is not
+ * being calculated due to an optimization.
+ * @param event
+ * The event object that the delta is being built for.
+ * @param rm
+ * The result monitor to invoke when the delta is completed.
+ */
protected void callChildNodesToBuildDelta(final IVMNode node, final Map+ * A response of IModeDelta.CONTENT has a special meaning. If we return that + * flag, it means the collection of elements of our type are + * affected. It is not a statement on the elements themselves. + * + * @param event + * the event the caller is processing + * @return IModelDelta flags + * @see #buildDelta(Object, VMDelta, int, RequestMonitor) + * @see IModelDelta + */ public int getDeltaFlags(Object event); - - /** - * Builds model delta information based on the given event. - *
- * Model deltas, which are used to control the state of elements in the viewer, are
- * generated by the layout nodes by recursively calling this method on all the nodes
- * in the layout tree. Each node implements two methods: {@link #getDeltaFlags(Object)},
- * and buildDelta()
. A parent node which is processing a
- * buildDelta
operation needs to determine which of its elements are
- * affected by a given event, set appropriate flags on these elements, and then
- * it needs to call its child nodes with those elements to give the child nodes a
- * chance to add onto the delta.
- *
- * The getDeltaFlags()
is a synchronous
- * call which tells the parent node whether on not to call the child node's
- * buildDelta
with the given event. If a child node return
- * true
, it only indicates that the node may add delta flags, but it
- * does not require it to do so.
- *
+ * Model deltas, which are used to control the state of elements in the
+ * viewer, are generated by the layout nodes by recursively calling this
+ * method on all the nodes in the layout tree. Each node implements two
+ * methods: {@link #getDeltaFlags(Object)}, and buildDelta()
. A
+ * parent node which is processing a buildDelta
operation needs
+ * to determine which of its elements are affected by a given event, set
+ * appropriate flags on these elements, and then it needs to call its child
+ * nodes with those elements to give the child nodes a chance to add onto
+ * the delta.
+ *
+ * The getDeltaFlags()
is a synchronous call which tells the
+ * parent node whether on not it needs to call us for a given child node,
+ * given the event it is processing. If a child node returns something other
+ * than IModelDelta.NO_CHANGE, then it is providing the set of flags that we
+ * might end up adding to the delta, but it doesn't mean we are
+ * obligated to or will.
+ *