| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
| 01 public void preWindowOpen() { 网管bitscn_com 02 ...... 03 configurer.addEditorAreaTransfer(LocalSelectionTransfer.getInstance()); 04 configurer.configureEditorAreaDropListener(new EditorAreaDropAdapter( 05 configurer.getWindow())); 06 } |
| EditorAreaDropAdapter.java | |
| 01 public class EditorAreaDropAdapter extends DropTargetAdapter { 网管u家bitscn.net 02 private IWorkbenchWindow window; 03 04 public EditorAreaDropAdapter(IWorkbenchWindow window) { 05 this.window = window; 06 } 07 08 public void dragEnter(DropTargetEvent event) { 09 // always indicate a copy 10 event.detail = DND.DROP_COPY; 11 } 12 13 public void dragOperationChanged(DropTargetEvent event) { 14 // always indicate a copy 15 event.detail = DND.DROP_COPY; 16 } 17 18 public void drop(final DropTargetEvent event) { 19 Display d = window.getShell().getDisplay(); 网管u家u.bitscn@com 20 final IWorkbenchPage page = window.getActivePage(); 21 if (page != null) { 22 d.asyncExec(new Runnable() { 23 public void run() { 24 asyncDrop(event, page); 25 } 26 }); 27 } 28 } 29 30 private void asyncDrop(DropTargetEvent event, IWorkbenchPage page) { 31 if (LocalSelectionTransfer.getInstance().isSupportedType( 32 event.currentDataType)) { 33 StructuredSelection selection = (StructuredSelection) event.data; 网管有家bitscn.net 34 for (Iterator iter = selection.iterator(); iter.hasNext();) { 35 Object o = iter.next(); 36 if (o instanceof Record) { 37 IEditorInput input = new RecordEditorInput((Record) o); 38 try { 39 page.openEditor(input, RecordEditor.ID); 40 } catch (Exception e) { 41 PwdgatePlugin.log("open ediotr RecordEditor", e); 42 } 中国网管论坛bbs.bitsCN.com 43 } else if (o instanceof Group) { 44 IEditorInput input = new GroupEditorInput((Group) o); 45 try { 46 page.openEditor(input, GroupEditor.ID); 47 } catch (PartInitException e) { 48 PwdgatePlugin.log("open ediotr GroupEditor", e); 49 } 50 } 51 } 52 } 53 } 网管有家bitscn.net 54 } |
|
Row 18,用来处理Drop事件,Row 30的asyncDrop()方法用来打来相应对象的Editor.
现在Editor Area已经可以接收拖入对象了。下一步要使一个View支持拖出对象的功能。下面的例子是在Pass Gate View中的createPartControl()方法中为一个TreeViewer添加拖出功能。
网管论坛bbs_bitsCN_com
| PassGateView.java | |
| 01 private void initDragAndDrop() { 网管下载dl.bitscn.com 02 Transfer[] transfer = new Transfer[] { LocalSelectionTransfer 03 .getInstance() }; 04 LocalSelectionDragAdapter adapter = new LocalSelectionDragAdapter( 05 viewer); 06 viewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, transfer, adapter); 07 08 LocalSelectionDropAdapter dropAdapter = new LocalSelectionDropAdapter( 09 viewer); 10 viewer.addDropSupport(DND.DROP_MOVE | DND.DROP_COPY, transfer, 11 dropAdapter); 12 } |
|
| LocalSelectionDragAdapter.java | |
| 01 public class LocalSelectionDragAdapter extends DragSourceAdapter { 中国网管论坛bbs.bitsCN.com 02 03 ISelectionProvider selectionProvider; 04 05 public LocalSelectionDragAdapter(ISelectionProvider provider) { 06 selectionProvider = provider; 07 } 08 09 public void dragFinished(DragSourceEvent event) { 10 // TODO Auto-generated method stub 11 super.dragFinished(event); 12 System.out 13 .println("DragSourceListener.dragFinished(DragSourceEvent event)"); 14 } 15 16 public void dragSetData(DragSourceEvent event) { 17 System.out 18 .println("DragSourceListener.dragSetData(DragSourceEvent event)"); 网管有家www.bitscn.net 19 DragSource dragSource = (DragSource) event.widget; 20 Control control = dragSource.getControl(); 21 if (control != control.getDisplay().getFocusControl()) { 22 event.doit = false; 23 return; 24 } 25 26 IStructuredSelection selection = (IStructuredSelection) selectionProvider 27 .getSelection(); 28 29 if (selection.isEmpty()) { 30 event.doit = false; 31 return; 32 } 33 LocalSelectionTransfer.getInstance().setSelection(selection); 中国网管论坛bbs.bitsCN.com 34 event.doit = true; 35 } 36 37 public void dragStart(DragSourceEvent event) { 38 System.out 39 .println("DragSourceListener.dragStart(DragSourceEvent event)"); 40 } 41 } |
|
网管下载dl.bitscn.com
|
0
|
评论加载中…