List of usage examples for org.eclipse.jface.viewers ViewerDropAdapter setScrollExpandEnabled
public void setScrollExpandEnabled(boolean value)
From source file:com.google.gdt.eclipse.designer.mobile.preferences.device.DevicesPreferencePage.java
License:Open Source License
/** * Configures DND in {@link #m_viewer}./*from w ww . j a v a 2 s . c o m*/ */ private void configureDND() { Transfer[] transfers = new Transfer[] { EmptyTransfer.INSTANCE }; m_viewer.addDragSupport(DND.DROP_MOVE, transfers, new DragSourceListener() { public void dragStart(DragSourceEvent event) { m_dragElements = getSelectedElements(); m_dragCategory = m_dragElements.get(0) instanceof CategoryInfo; // check that we drag only categories or only entries for (Object element : m_dragElements) { if (m_dragCategory != element instanceof CategoryInfo) { event.doit = false; } } } public void dragSetData(DragSourceEvent event) { } public void dragFinished(DragSourceEvent event) { } }); ViewerDropAdapter dropAdapter = new ViewerDropAdapter(m_viewer) { @Override protected int determineLocation(DropTargetEvent event) { if (event.item instanceof Item) { Item item = (Item) event.item; Point coordinates = m_viewer.getControl().toControl(event.x, event.y); Rectangle bounds = getBounds(item); // when drag device, relation with category can be only ON if (!m_dragCategory && determineTarget(event) instanceof CategoryInfo) { return LOCATION_ON; } // in all other cases, drop before/after return coordinates.y < bounds.y + bounds.height / 2 ? LOCATION_BEFORE : LOCATION_AFTER; } return LOCATION_NONE; } @Override public boolean validateDrop(Object target, int operation, TransferData transferType) { // category can be dragged only relative other category if (m_dragCategory) { return target instanceof CategoryInfo; } // all other cases are valid return true; } @Override public boolean performDrop(Object data) { Object target = getCurrentTarget(); int location = getCurrentLocation(); if (m_dragCategory) { Assert.instanceOf(CategoryInfo.class, target); Assert.isTrue(location == LOCATION_BEFORE || location == LOCATION_AFTER); // prepare next category CategoryInfo nextCategory; { List<CategoryInfo> categories = DeviceManager.getCategories(); int index = categories.indexOf(target); if (location == LOCATION_BEFORE) { nextCategory = categories.get(index); } else { nextCategory = GenericsUtils.getNextOrNull(categories, index); } } // add commands for (Object element : m_dragElements) { CategoryInfo category = (CategoryInfo) element; commands_add(new CategoryMoveCommand(category, nextCategory)); } } else if (target instanceof CategoryInfo) { Assert.isTrue(location == LOCATION_ON); CategoryInfo targetCategory = (CategoryInfo) target; for (Object element : m_dragElements) { DeviceInfo device = (DeviceInfo) element; commands_add(new DeviceMoveCommand(device, targetCategory, null)); } } else { DeviceInfo targetDevice = (DeviceInfo) target; CategoryInfo targetCategory = targetDevice.getCategory(); // prepare next device DeviceInfo nextDevice; { List<DeviceInfo> entries = targetCategory.getDevices(); int index = entries.indexOf(targetDevice); if (location == LOCATION_BEFORE) { nextDevice = entries.get(index); } else { nextDevice = GenericsUtils.getNextOrNull(entries, index); } } // add commands for (Object element : m_dragElements) { DeviceInfo device = (DeviceInfo) element; commands_add(new DeviceMoveCommand(device, targetCategory, nextDevice)); } } // refresh viewer to show result of applying commands refreshViewer(); return true; } }; dropAdapter.setScrollExpandEnabled(false); m_viewer.addDropSupport(DND.DROP_MOVE, transfers, dropAdapter); }
From source file:com.microsoft.tfs.client.common.ui.controls.CommonStructureControl.java
License:Open Source License
private void addDragDropSupport() { viewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { TextTransfer.getInstance() }, new DragSourceAdapter() { @Override/*w ww.j a v a2 s . co m*/ public void dragFinished(final DragSourceEvent event) { setInDragDrop(false); } @Override public void dragSetData(final DragSourceEvent event) { final CSSNode node = (CSSNode) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); event.data = node.getPath(); } @Override public void dragStart(final DragSourceEvent event) { final CSSNode node = (CSSNode) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); event.doit = node.getParentURI() != null && node.getParentURI().length() > 0; setInDragDrop(true); } }); final ViewerDropAdapter dropAdapter = new ViewerDropAdapter(viewer) { @Override public boolean performDrop(final Object data) { final CSSNode newParent = (CSSNode) getCurrentTarget(); final CSSNode node = CSSNode.resolveNode(rootNode, data.toString()); if (node == null || !node.getPath().equals(data.toString())) { // This is not the node that you are looking for. return false; } if (newParent != null && !node.equals(newParent) && !node.getParentNode().equals(newParent)) { moveNode(node, newParent); return true; } return false; } @Override public boolean validateDrop(final Object target, final int operation, final TransferData transferType) { return TextTransfer.getInstance().isSupportedType(transferType); } }; dropAdapter.setFeedbackEnabled(false); dropAdapter.setScrollExpandEnabled(true); viewer.addDropSupport(DND.DROP_MOVE, new Transfer[] { TextTransfer.getInstance() }, dropAdapter); }
From source file:org.eclipse.wb.internal.core.editor.palette.dialogs.PaletteManagerDialog.java
License:Open Source License
/** * Configures DND in {@link #m_viewer}.//from ww w. j ava2 s. c om */ private void configureDND() { Transfer[] transfers = new Transfer[] { EmptyTransfer.INSTANCE }; m_viewer.addDragSupport(DND.DROP_MOVE, transfers, new DragSourceListener() { public void dragStart(DragSourceEvent event) { m_dragElements = getSelectedElements(); m_dragCategory = m_dragElements.get(0) instanceof CategoryInfo; // check that we drag only categories or only entries for (Object element : m_dragElements) { if (m_dragCategory != element instanceof CategoryInfo) { event.doit = false; } } } public void dragSetData(DragSourceEvent event) { } public void dragFinished(DragSourceEvent event) { } }); ViewerDropAdapter dropAdapter = new ViewerDropAdapter(m_viewer) { @Override protected int determineLocation(DropTargetEvent event) { if (event.item instanceof Item) { Item item = (Item) event.item; Point coordinates = m_viewer.getControl().toControl(event.x, event.y); Rectangle bounds = getBounds(item); // when drag entry, relation with category can be only ON if (!m_dragCategory && determineTarget(event) instanceof CategoryInfo) { return LOCATION_ON; } // in all other cases, drop before/after return coordinates.y < bounds.y + bounds.height / 2 ? LOCATION_BEFORE : LOCATION_AFTER; } return LOCATION_NONE; } @Override public boolean validateDrop(Object target, int operation, TransferData transferType) { // category can be dragged only relative other category if (m_dragCategory) { return target instanceof CategoryInfo; } // all other cases are valid return true; } @Override public boolean performDrop(Object data) { Object target = getCurrentTarget(); int location = getCurrentLocation(); if (m_dragCategory) { Assert.instanceOf(CategoryInfo.class, target); Assert.isTrue(location == LOCATION_BEFORE || location == LOCATION_AFTER); // prepare next category CategoryInfo nextCategory; { List<CategoryInfo> categories = m_palette.getCategories(); int index = categories.indexOf(target); if (location == LOCATION_BEFORE) { nextCategory = categories.get(index); } else { nextCategory = GenericsUtils.getNextOrNull(categories, index); } } // add commands for (Object element : m_dragElements) { CategoryInfo category = (CategoryInfo) element; commands_add(new CategoryMoveCommand(category, nextCategory)); } } else if (target instanceof CategoryInfo) { Assert.isTrue(location == LOCATION_ON); CategoryInfo targetCategory = (CategoryInfo) target; for (Object element : m_dragElements) { EntryInfo entry = (EntryInfo) element; commands_add(new EntryMoveCommand(entry, targetCategory, null)); } } else { EntryInfo targetEntry = (EntryInfo) target; CategoryInfo targetCategory = targetEntry.getCategory(); // prepare next entry EntryInfo nextEntry; { List<EntryInfo> entries = targetCategory.getEntries(); int index = entries.indexOf(targetEntry); if (location == LOCATION_BEFORE) { nextEntry = entries.get(index); } else { nextEntry = GenericsUtils.getNextOrNull(entries, index); } } // add commands for (Object element : m_dragElements) { EntryInfo entry = (EntryInfo) element; commands_add(new EntryMoveCommand(entry, targetCategory, nextEntry)); } } // refresh viewer to show result of applying commands refreshViewer(); return true; } }; dropAdapter.setScrollExpandEnabled(false); m_viewer.addDropSupport(DND.DROP_MOVE, transfers, dropAdapter); }
From source file:org.eclipse.wb.internal.swing.preferences.laf.LafPreferencePage.java
License:Open Source License
/** * Configures DND for LAF list viewer.//from www. j a va 2 s .c o m */ private void configureDND() { Transfer[] transfers = new Transfer[] { LookAndFeelTransfer.INSTANCE }; m_lafTree.addDragSupport(DND.DROP_MOVE, transfers, new DragSourceListener() { public void dragStart(DragSourceEvent event) { m_dragEntries = getSelectedEntries(); m_dragCategory = m_dragEntries.get(0) instanceof CategoryInfo; // check that we drag only categories or only entries for (Object element : m_dragEntries) { if (m_dragCategory != element instanceof CategoryInfo) { event.doit = false; } } } public void dragSetData(DragSourceEvent event) { } public void dragFinished(DragSourceEvent event) { } }); ViewerDropAdapter dropAdapter = new ViewerDropAdapter(m_lafTree) { @Override protected int determineLocation(DropTargetEvent event) { if (event.item instanceof Item) { Item item = (Item) event.item; Point coordinates = m_lafTree.getControl().toControl(event.x, event.y); Rectangle bounds = getBounds(item); // when dragging LAF entry relation with category can be only ON if (!m_dragCategory && determineTarget(event) instanceof CategoryInfo) { return LOCATION_ON; } // in all other cases, drop before/after return coordinates.y < bounds.y + bounds.height / 2 ? LOCATION_BEFORE : LOCATION_AFTER; } return LOCATION_NONE; } @Override public boolean validateDrop(Object target, int operation, TransferData transferType) { // category can be dragged only relative other category if (m_dragCategory) { return target instanceof CategoryInfo; } // all other cases are valid return true; } @Override public boolean performDrop(Object data) { Object target = getCurrentTarget(); int location = getCurrentLocation(); if (m_dragCategory) { Assert.instanceOf(CategoryInfo.class, target); Assert.isTrue(location == LOCATION_BEFORE || location == LOCATION_AFTER); // prepare next category CategoryInfo nextCategory; { List<CategoryInfo> categories = LafSupport.getLAFCategoriesList(); int index = categories.indexOf(target); if (location == LOCATION_BEFORE) { nextCategory = categories.get(index); } else { nextCategory = GenericsUtils.getNextOrNull(categories, index); } } // add commands for (Object element : m_dragEntries) { CategoryInfo category = (CategoryInfo) element; commands_add(new MoveCategoryCommand(category, nextCategory)); } } else if (target instanceof CategoryInfo) { Assert.isTrue(location == LOCATION_ON); CategoryInfo targetCategory = (CategoryInfo) target; for (Object entry : m_dragEntries) { commands_add(new MoveCommand((LafInfo) entry, targetCategory, null)); } } else { LafInfo targetLAF = (LafInfo) target; CategoryInfo targetCategory = targetLAF.getCategory(); // prepare next LAF LafInfo nextLAF; { List<LafInfo> entries = targetCategory.getLAFList(); int index = entries.indexOf(targetLAF); if (location == LOCATION_BEFORE) { nextLAF = entries.get(index); } else { nextLAF = GenericsUtils.getNextOrNull(entries, index); } } // add commands for (Object entry : m_dragEntries) { commands_add(new MoveCommand((LafInfo) entry, targetCategory, nextLAF)); } } // refresh viewer to show result of applying commands refreshViewer(); return true; } }; dropAdapter.setScrollExpandEnabled(false); m_lafTree.addDropSupport(DND.DROP_MOVE, transfers, dropAdapter); }