@Test @Ignore public void testDropOn() { // Given BookmarkFolder bookmarkFolderToMoved = getBookmarkFolder(bookmarkDatabase.getBookmarksTree(), 1, 1, 1); IStructuredSelection data = new StructuredSelection(bookmarkFolderToMoved); BookmarkFolder currentTarget = getBookmarkFolder(bookmarkDatabase.getBookmarksTree(), 1, 1); BookmarksViewerDropListener listener = getBookmarksViewerDropListener(ViewerDropAdapter.LOCATION_ON, currentTarget); // When DropTargetEvent dropTargetEvent = mock(DropTargetEvent.class); listener.dragEnter(dropTargetEvent); listener.dragOver(dropTargetEvent); listener.dropAccept(dropTargetEvent); listener.drop(dropTargetEvent); // assertTrue(listener.validateDrop(currentTarget, ViewerDropAdapter.LOCATION_ON, /* transferType */ null)); // boolean result = listener.performDrop(data); // Then // assertTrue(result); assertEquals(1, bookmarksListener.getModifications().size()); assertIsBookmarksMovedModification(bookmarksListener.getModifications().get(0), currentTarget.getId(), Lists.newArrayList(bookmarkFolderToMoved.getId())); }
@Override public void drop(DropTargetEvent event) { int location = this.determineLocation(event); source = getSelectedObject(); target = determineTarget(event); String translatedLocation = ""; switch (location) { case ViewerDropAdapter.LOCATION_BEFORE: translatedLocation = "Dropped before the target "; break; case ViewerDropAdapter.LOCATION_AFTER: translatedLocation = "Dropped after the target "; break; case ViewerDropAdapter.LOCATION_ON: translatedLocation = "Dropped on the target "; break; case ViewerDropAdapter.LOCATION_NONE: translatedLocation = "Dropped into nothing "; break; } System.out.println(translatedLocation); System.out.println("The drop was done on the element: " + target); super.drop(event); }
/** * @param listener */ public void configureDropSupport(final DropListener listener) { modelViewer.treeViewer.addDropSupport(DND.DROP_MOVE, new Transfer[] {LocalSelectionTransfer.getTransfer()}, new ViewerDropAdapter(modelViewer.treeViewer) { @Override public boolean performDrop(final Object data) { try { listener.drop(((IStructuredSelection) LocalSelectionTransfer .getTransfer() .getSelection()).getFirstElement(), (Model) getCurrentTarget()); return true; } catch (final Exception e) { Activator.error(e); return false; } } @Override public boolean validateDrop(final Object target, final int operation, final TransferData transferType) { return getCurrentLocation() == ViewerDropAdapter.LOCATION_ON; } }); }
public void run( ) { DNDService.getInstance( ).performDrop( TYPE, ( (IStructuredSelection) getSelection( ) ).getFirstElement( ), DND.DROP_DEFAULT, new DNDLocation( ViewerDropAdapter.LOCATION_ON ) ); }
protected boolean calculateEnabled( ) { if ( getSelection( ) instanceof IStructuredSelection ) return DNDService.getInstance( ) .validDrop( TYPE, ( (IStructuredSelection) getSelection( ) ).getFirstElement( ), DND.DROP_DEFAULT, new DNDLocation( ViewerDropAdapter.LOCATION_ON ) ); return false; }
private boolean performProfileDrop(Profile draggedProfile) { Profile targetProfile = (Profile) getCurrentTarget(); ProfilesContentProvider contentProvider = getContentProvider(); List<Profile> profiles = contentProvider.getProfiles(); if (profiles.remove(draggedProfile)) { int index = profiles.indexOf(targetProfile) + 1; switch (getCurrentLocation()) { case ViewerDropAdapter.LOCATION_AFTER: ++index; break; case ViewerDropAdapter.LOCATION_BEFORE: --index; break; default: break; } if (index >= profiles.size()) { profiles.add(draggedProfile); } else { profiles.add(index, draggedProfile); } viewer.refresh(); return true; } return false; }