public void internalTestDrop(Object target, int eventDetail) { if (isWorkingSetSelection()) { performWorkingSetReordering(); } else { performElementRearrange(eventDetail); } }
@Override protected int determineOperation(Object target, int operation, TransferData transferType, int operations) { switch(operation) { case DND.DROP_DEFAULT: case DND.DROP_COPY: case DND.DROP_MOVE: return validateTarget(target, operation); default: return DND.DROP_NONE; } }
@Override public boolean performDrop(Object data) { if (isWorkingSetSelection()) { performWorkingSetReordering(); } else { performElementRearrange(getCurrentOperation()); } return true; }
private int validateTarget(Object target, int operation) { setFeedbackEnabled(false); setScrollEnabled(true); setExpandEnabled(true); if (!isValidTarget(target)) return DND.DROP_NONE; ISelection s= LocalSelectionTransfer.getInstance().getSelection(); if (!isValidSelection(s)) { return DND.DROP_NONE; initializeState(target, s); if (isWorkingSetSelection()) { setExpandEnabled(false); if ((getCurrentLocation() == LOCATION_BEFORE || getCurrentLocation() == LOCATION_AFTER) && !fPackageExplorer.getWorkingSetModel().isSortingEnabled()) { setFeedbackEnabled(true); return DND.DROP_MOVE; if (isOthersWorkingSet(fWorkingSet) && operation == DND.DROP_COPY) return DND.DROP_NONE; if (paths.length == 1) { IWorkingSet ws= (IWorkingSet)path.getSegment(0); if (isOthersWorkingSet(ws)) return DND.DROP_MOVE;
private int validateTarget(Object target, int operation) { showInsertionFeedback(false); setDefaultFeedback(DND.FEEDBACK_SCROLL | DND.FEEDBACK_EXPAND); if (!isValidTarget(target)) return DND.DROP_NONE; ISelection s= LocalSelectionTransfer.getInstance().getSelection(); if (!isValidSelection(s)) { return DND.DROP_NONE; initializeState(target, s); if (isWorkingSetSelection()) { setDefaultFeedback(DND.FEEDBACK_SCROLL); if (fLocation == LOCATION_BEFORE || fLocation == LOCATION_AFTER) { showInsertionFeedback(true); return DND.DROP_MOVE; if (isOthersWorkingSet(fWorkingSet) && operation == DND.DROP_COPY) return DND.DROP_NONE;
public boolean isEnabled(DropTargetEvent event) { Object target= event.item != null ? event.item.getData() : null; if (target == null) return false; ISelection selection= LocalSelectionTransfer.getInstance().getSelection(); if (!isValidSelection(selection)) { return false; } if (!isValidTarget(target)) return false; initializeState(target, selection); return true; }
private void performElementRearrange(int eventDetail) { // only move if target isn't the other working set. If this is the case // the move will happenn automatically by refreshing the other working set if (!isOthersWorkingSet(fWorkingSet)) { List<Object> elements= new ArrayList<Object>(Arrays.asList(fWorkingSet.getElements())); elements.addAll(Arrays.asList(fElementsToAdds)); fWorkingSet.setElements(elements.toArray(new IAdaptable[elements.size()])); } if (eventDetail == DND.DROP_MOVE) { ITreeSelection treeSelection= (ITreeSelection)fSelection; Map<IWorkingSet, List<Object>> workingSets= groupByWorkingSets(treeSelection.getPaths()); for (Iterator<IWorkingSet> iter= workingSets.keySet().iterator(); iter.hasNext();) { IWorkingSet ws= iter.next(); List<Object> toRemove= workingSets.get(ws); List<IAdaptable> currentElements= new ArrayList<>(Arrays.asList(ws.getElements())); currentElements.removeAll(toRemove); ws.setElements(currentElements.toArray(new IAdaptable[currentElements.size()])); } } }
private void initDrop() { JdtViewerDropSupport dropSupport= new JdtViewerDropSupport(fViewer); dropSupport.addDropTargetListener(new WorkingSetDropAdapter(this)); dropSupport.start(); }
private int validateTarget(Object target, int operation) { setFeedbackEnabled(false); setScrollEnabled(true); setExpandEnabled(true); if (!isValidTarget(target)) return DND.DROP_NONE; ISelection s= LocalSelectionTransfer.getInstance().getSelection(); if (!isValidSelection(s)) { return DND.DROP_NONE; initializeState(target, s); if (isWorkingSetSelection()) { setExpandEnabled(false); if ((getCurrentLocation() == LOCATION_BEFORE || getCurrentLocation() == LOCATION_AFTER) && !fPackageExplorer.getWorkingSetModel().isSortingEnabled()) { setFeedbackEnabled(true); return DND.DROP_MOVE; if (isOthersWorkingSet(fWorkingSet) && operation == DND.DROP_COPY) return DND.DROP_NONE; if (paths.length == 1) { IWorkingSet ws= (IWorkingSet)path.getSegment(0); if (isOthersWorkingSet(ws)) return DND.DROP_MOVE;
@Override public boolean isEnabled(DropTargetEvent event) { Object target= event.item != null ? event.item.getData() : null; if (target == null) return false; ISelection selection= LocalSelectionTransfer.getInstance().getSelection(); if (!isValidSelection(selection)) { return false; } if (!isValidTarget(target)) return false; initializeState(target, selection); return true; }
@Override public boolean performDrop(Object data) { if (isWorkingSetSelection()) { performWorkingSetReordering(); } else { performElementRearrange(getCurrentOperation()); } return true; }
private void performElementRearrange(int eventDetail) { // only move if target isn't the other working set. If this is the case // the move will happenn automatically by refreshing the other working set if (!isOthersWorkingSet(fWorkingSet)) { List<Object> elements= new ArrayList<>(Arrays.asList(fWorkingSet.getElements())); elements.addAll(Arrays.asList(fElementsToAdds)); fWorkingSet.setElements(elements.toArray(new IAdaptable[elements.size()])); } if (eventDetail == DND.DROP_MOVE) { ITreeSelection treeSelection= (ITreeSelection)fSelection; Map<IWorkingSet, List<Object>> workingSets= groupByWorkingSets(treeSelection.getPaths()); for (Iterator<IWorkingSet> iter= workingSets.keySet().iterator(); iter.hasNext();) { IWorkingSet ws= iter.next(); List<Object> toRemove= workingSets.get(ws); List<IAdaptable> currentElements= new ArrayList<>(Arrays.asList(ws.getElements())); currentElements.removeAll(toRemove); ws.setElements(currentElements.toArray(new IAdaptable[currentElements.size()])); } } }
private void initDrop() { JdtViewerDropSupport dropSupport= new JdtViewerDropSupport(fViewer); dropSupport.addDropTargetListener(new WorkingSetDropAdapter(this)); dropSupport.start(); }
public void internalTestDrop(Object target, int eventDetail) { if (isWorkingSetSelection()) { performWorkingSetReordering(); } else { performElementRearrange(eventDetail); } } }
@Override public boolean isEnabled(DropTargetEvent event) { Object target= event.item != null ? event.item.getData() : null; if (target == null) return false; ISelection selection= LocalSelectionTransfer.getInstance().getSelection(); if (!isValidSelection(selection)) { return false; } if (!isValidTarget(target)) return false; initializeState(target, selection); return true; }
private void performElementRearrange(int eventDetail) { // only move if target isn't the other working set. If this is the case // the move will happenn automatically by refreshing the other working set if (!isOthersWorkingSet(fWorkingSet)) { List elements= new ArrayList(Arrays.asList(fWorkingSet.getElements())); elements.addAll(Arrays.asList(fElementsToAdds)); fWorkingSet.setElements((IAdaptable[])elements.toArray(new IAdaptable[elements.size()])); } if (eventDetail == DND.DROP_MOVE) { ITreeSelection treeSelection= (ITreeSelection)fSelection; Map workingSets= groupByWorkingSets(treeSelection.getPaths()); for (Iterator iter= workingSets.keySet().iterator(); iter.hasNext();) { IWorkingSet ws= (IWorkingSet)iter.next(); List toRemove= (List)workingSets.get(ws); List currentElements= new ArrayList(Arrays.asList(ws.getElements())); currentElements.removeAll(toRemove); ws.setElements((IAdaptable[])currentElements.toArray(new IAdaptable[currentElements.size()])); } } }
public void validateDrop(Object target, DropTargetEvent event, int operation) { event.detail= DND.DROP_NONE; switch(operation) { case DND.DROP_DEFAULT: case DND.DROP_COPY: case DND.DROP_MOVE: event.detail= validateTarget(target, operation); break; case DND.DROP_LINK: event.detail= DND.DROP_NONE; break; } }
private void initDrop() { int ops= DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK | DND.DROP_DEFAULT; Transfer[] transfers= new Transfer[] { LocalSelectionTransfer.getInstance(), FileTransfer.getInstance()}; TransferDropTargetListener[] dropListeners= new TransferDropTargetListener[] { new SelectionTransferDropAdapter(fViewer), new FileTransferDropAdapter(fViewer), new WorkingSetDropAdapter(this) }; fViewer.addDropSupport(ops, transfers, new DelegatingDropAdapter(dropListeners)); }
public void drop(Object target, final DropTargetEvent event) { if (isWorkingSetSelection()) { performWorkingSetReordering(); } else { performElementRearrange(event.detail); } // drag adapter has nothing to do, even on move. event.detail= DND.DROP_NONE; }
@Override protected int determineOperation(Object target, int operation, TransferData transferType, int operations) { switch(operation) { case DND.DROP_DEFAULT: case DND.DROP_COPY: case DND.DROP_MOVE: return validateTarget(target, operation); default: return DND.DROP_NONE; } }