@Override public void setSelectionSetTime(long time) { jfaceTransfer.setSelectionSetTime(time); }
@Override public void dragFinished(DragSourceEvent event) { LocalSelectionTransfer.getTransfer().setSelection(null); LocalSelectionTransfer.getTransfer().setSelectionSetTime(0); } }
@Override public void breakpointsRemoved(IBreakpoint[] breakpoints, IMarkerDelta[] deltas) { // remove deleted breakpoints from drag/drop clipboard if (fStamp == LocalSelectionTransfer.getTransfer().getSelectionSetTime()) { ISelection selection = LocalSelectionTransfer.getTransfer().getSelection(); if (selection instanceof IStructuredSelection) { Set<IBreakpoint> removed = new HashSet<>(); for (int i = 0; i < breakpoints.length; i++) { removed.add(breakpoints[i]); } boolean modified = false; List<Object> remain = new ArrayList<>(); IStructuredSelection ss = (IStructuredSelection) selection; Iterator<?> iterator = ss.iterator(); while (iterator.hasNext()) { Object bp = iterator.next(); if (removed.contains(bp)) { modified = true; } else { remain.add(bp); } } if (modified) { LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(remain)); fStamp = System.currentTimeMillis(); LocalSelectionTransfer.getTransfer().setSelectionSetTime(fStamp); } } } }
@Override public void dragStart(DragSourceEvent event) { ISelection selection = fViewer.getSelection(); LocalSelectionTransfer.getTransfer().setSelection(selection); LocalSelectionTransfer.getTransfer().setSelectionSetTime(event.time & 0xFFFFFFFFL); event.doit = !selection.isEmpty(); }
@Override public void dragFinished(DragSourceEvent event) { if (event.detail == DND.DROP_MOVE) { // remove from source on move operation if (fViewer instanceof BreakpointsViewer) { BreakpointsViewer viewer = (BreakpointsViewer)fViewer; viewer.performDrag(fItems); } else { fView.performDrag(fTreePaths); } } fItems = null; LocalSelectionTransfer.getTransfer().setSelection(null); LocalSelectionTransfer.getTransfer().setSelectionSetTime(0); } }
@Override public void run(IAction action) { super.run(action); LocalSelectionTransfer.getTransfer().setSelection(getSelection()); fStamp = System.currentTimeMillis(); LocalSelectionTransfer.getTransfer().setSelectionSetTime(fStamp); IAction pasteAction = ((AbstractDebugView)getView()).getAction(IDebugView.PASTE_ACTION); // update the enablement of the paste action // workaround since the clipboard does not suppot callbacks if (pasteAction instanceof PasteBreakpointsAction) { PasteBreakpointsAction pba = (PasteBreakpointsAction) pasteAction; if (pba.getStructuredSelection() != null) { pba.selectionChanged(pba.getStructuredSelection()); } } }
@Override public void dragStart(DragSourceEvent event) { ISelection selection = fViewer.getSelection(); LocalSelectionTransfer.getTransfer().setSelection(selection); LocalSelectionTransfer.getTransfer().setSelectionSetTime(event.time & 0xFFFFFFFFL); if (fViewer instanceof BreakpointsViewer) { BreakpointsViewer viewer = (BreakpointsViewer)fViewer; fItems = viewer.getSelectedItems(); event.doit = viewer.canDrag(fItems); } else { if (selection instanceof ITreeSelection) { fTreePaths = ((ITreeSelection) selection).getPaths(); } else { fTreePaths = new TreePath[0]; } event.doit = fView.canDrag(fTreePaths); } }