7.1 概述
顾名思义,Drag and Drop Support指的就是节点的拖放操作。在CNF中提供了标准的拖拽操作支持,与其他功能不同,这个功能是由两个扩展点共同实现的。
7.2 扩展点
7.2.1 Drag
扩展点org.eclipse.ui.navigator.viewer/dragAssistant,这个扩展点提供“拖”操作的支持,位于org.eclipse.ui.navigator.viewer扩展点下。
这两个属性很简单,分别为指定的实现类和对应的视图的ID。类必须继承自org.eclipse.ui.navigator.CommonDragAdapterAssistant,主要方法为:
- getSupportedTransferTypes():指定支持的操作资源类型
- setDragData(DragSourceEvent anEvent, IStructuredSelection aSelection),根据选择的节点设置拖的内容
7.2.2 Drop
扩展点org.eclipse.ui.navigator.navigatorContent/navigatorContent/dropAssistant,这个扩展点只能在navigatorContent里面声明,大概是因为Drop操作不能在不同的navigatorContent之间共享的缘故。
与Drag类似,需要指定实现的类和ID,类必须继承自org.eclipse.ui.navigator.CommonDropAdapterAssistant,主要方法为:
- validateDrop(Object target, int operation, TransferData transferType):校验“放”的状态
- handleDrop(CommonDropAdapter aDropAdapter,
DropTargetEvent aDropTargetEvent, Object aTarget):处理放的操作。
7.3 Eclipse实现
Eclipse中的Explorer Viewer实现了拖放操作的支持,对应的实现代码位于插件“org.eclipse.ui.navigator.resources”中。
Drag的实现代码类为org.eclipse.ui.navigator.resources.ResourceDragAdapterAssistant
,Drop的实现代码为org.eclipse.ui.navigator.resources.ResourceDropAdapterAssistant
。
简单的提一下,它们是通过IResource进行交互的,每次将Drag时候选中的节点(ISelection),封装为TransferData,然后交由Drop的类处理。对于实现细节,就不再进行一一描述了,自己去看看代码。
7.4 说明
Drag是在org.eclipse.ui.navigator.viewer中声明的,而且还需要一个Viewer的ID,而Drop在org.eclipse.ui.navigator.navigatorContent/navigatorContent中声明,这说明,一个提供了Drag支持的Viewer,允许有多个不同的Drop实现的navigatorContent。
分享到:
相关推荐
Common Navigator Framework(CNF)是Eclipse平台中的一...通过深入学习和实践这些知识点,开发者能够熟练地利用Common Navigator Framework来创建自定义的、满足特定需求的导航视图,提升Eclipse开发环境的用户体验。
在《Common_Navigator_Framework_分析.pdf》这份文档中,读者可以深入学习CNF的架构、工作原理以及如何进行定制开发。通过实例和代码示例,文档详细解释了如何使用CNF的API来创建自定义的导航视图,并提供了适配器和...
`CommonNavigator`类是实现此功能的基础,开发者可以通过扩展这个类并重写相关方法来自定义视图行为。 3. **AdapterFactories**:CNF使用适配器工厂(AdapterFactory)将模型对象转换为可以被视图渲染的结构。...
Common Navigator Framework (CNF) 是Eclipse中用于构建可扩展、可定制的资源导航视图的API。它提供了基本的结构,如树状视图,以及处理模型、适配器、过滤器、排序等功能。开发者可以通过实现一系列接口和扩展点,...
在Eclipse RCP中,Common Navigator Framework (CNF) 是一个关键组件,它提供了一种灵活的方式来展示资源树结构,类似于Eclipse IDE中的“Package Explorer”或“Project Explorer”。"Eclipse RCP Common Navigator...
CommonNavigator,通常与Android的第三方库如Android-Support-Library或Jetpack中的`NavigationView`相关联,是用来创建底部导航栏或者侧滑菜单的工具。这种视图组件可以帮助开发者快速、高效地构建具有多个可切换...
【Eclipse插件开发之Common Navigator View】是关于在Eclipse插件开发中创建和定制一个基于Common Navigator View(CNV)的视图的过程。Common Navigator View是一种通用的视图结构,通常用于显示项目的资源层次结构...
【使用CommonNavigator开发资源管理器】的文档主要介绍了如何利用Eclipse的Common Navigator Framework (CNF) 插件来创建自定义的资源管理器。Common Navigator Framework是Eclipse平台的一部分,它提供了一套完整的...
在本文档中,我们将深入探讨如何构建一个基于Eclipse平台的通用导航框架(Common Navigator Framework, CNF)查看器。这不仅适用于Eclipse平台的新手开发者,也适合希望深入了解CNF工作原理及其实现细节的高级用户。...
本篇文章将继续深入探讨如何构建一个通用导航框架(Common Navigator Framework,简称CNF)查看器,并着重介绍如何向该查看器添加内容扩展。通过本教程的学习,您将能够掌握在CNF查看器中展示特定文件类型数据的方法...
在Eclipse插件开发中,`CommonNavigator`框架是一个用于构建自定义资源管理器的关键组件。这个框架允许开发者创建和扩展资源视图,比如Eclipse的项目管理器。本篇文章将详细讲解如何利用`CommonNavigator`开发资源...
《中国Eclipse社区开发资料整理》是一份针对Eclipse开发工具的...通过阅读并实践这些教程,开发者可以更深入地理解Eclipse的内在工作原理,并能自如地利用Common Navigator Framework构建出符合项目需求的个性化视图。
在前一篇文章中,我们探讨了如何为一个通用导航器(Common Navigator)实例配置弹出菜单。我们了解到,通用导航器可以通过 `org.eclipse.ui.navigator.viewer` 扩展点声明所有菜单插入点,并且可以指定是否应尊重对 ...
2. **通过`org.eclipse.ui.navigator.navigatorContent`作为动作提供者贡献操作**:有时客户需要更程序化的控制,具体包括哪些操作贡献到特定上下文下的某个菜单,以及根据当前选择配置了哪些可重定向操作。...
在本"Common Navigator demo"中,我们将深入探讨如何利用Eclipse RCP创建一个基于Common Navigator的简单应用,并了解如何扩展这一基础功能。 首先,Common Navigator是Eclipse RCP中用于显示项目、文件和其他资源...
Red Hat Source-Navigator TM is a powerful code analysis and comprehention tool that provides a graphic framework for understanding and reengineering large or complex software projects. Source-...
Source-Navigator is a source code analysis tool....Source-Navigator supports C, C++, Java, Tcl, [incr Tcl], FORTRAN and COBOL, and provides and SDK so that you can write your own parsers.