p = t.transform(p, null);
if (isDeselectGesture(evt)) {
dispatchSelectionEvent(
new SelectionEvent(null,
SelectionEvent.SELECTION_CLEARED,
null));
copyToClipboard(null);
} else if (isSelectStartGesture(evt)) {
selectionNode = source;
((Selectable) source).selectAt(p.getX(), p.getY(),
renderContext);
dispatchSelectionEvent(
new SelectionEvent(null,
SelectionEvent.SELECTION_STARTED,
null));
} else if (isSelectEndGesture(evt)) {
selectionNode = source;
((Selectable) source).selectTo(p.getX(), p.getY(),
renderContext);
Object oldSelection = getSelection();
Shape newShape =
((Selectable) source).getHighlightShape(renderContext);
dispatchSelectionEvent(
new SelectionEvent(oldSelection,
SelectionEvent.SELECTION_DONE,
newShape));
copyToClipboard(oldSelection);
} else
if (isSelectContinueGesture(evt)) {
if (selectionNode == source) {
boolean result = ((Selectable) source).selectTo(p.getX(), p.getY(),
renderContext);
if (result) {
Shape newShape =
((Selectable) source).getHighlightShape(renderContext);
dispatchSelectionEvent(
new SelectionEvent(null,
SelectionEvent.SELECTION_CHANGED,
newShape));
}
}
} else if (isSelectAllGesture(evt)) {
selectionNode = source;
((Selectable) source).selectAll(p.getX(), p.getY(),
renderContext);
Object oldSelection = getSelection();
Shape newShape =
((Selectable) source).getHighlightShape(renderContext);
dispatchSelectionEvent(
new SelectionEvent(oldSelection,
SelectionEvent.SELECTION_DONE,
newShape));
copyToClipboard(oldSelection);
}