// TODO: if we pass in the contextMap here, we should also pass in the
 // contextBehavior, because otherwise a back-query scenario cannot be
 // realized.
 protected IHandlePart<Node, ? extends Node> createBoundsSelectionCornerHandlePart(
     final List<? extends IVisualPart<Node, ? extends Node>> targets,
     Map<Object, Object> contextMap,
     Provider<BezierCurve[]> segmentsProvider,
     int segmentIndex,
     double segmentParameter) {
   FXRectangleSegmentHandlePart part = injector.getInstance(FXRectangleSegmentHandlePart.class);
   part.setSegmentsProvider(segmentsProvider);
   part.setSegmentIndex(segmentIndex);
   part.setSegmentParameter(segmentParameter);
   return part;
 }
 protected Collection<? extends IHandlePart<Node, ? extends Node>>
     createTightBoundsSelectionHandleParts(
         List<? extends IVisualPart<Node, ? extends Node>> targetParts,
         Provider<BezierCurve[]> segmentsProvider,
         Map<Object, Object> contextMap) {
   List<IHandlePart<Node, ? extends Node>> hps =
       new ArrayList<IHandlePart<Node, ? extends Node>>();
   BezierCurve[] segments = segmentsProvider.get();
   for (int i = 0; i < segments.length; i++) {
     FXRectangleSegmentHandlePart part = injector.getInstance(FXRectangleSegmentHandlePart.class);
     part.setSegmentsProvider(segmentsProvider);
     part.setSegmentIndex(i);
     part.setSegmentParameter(0);
     hps.add(part);
   }
   return hps;
 }