/**
* 获得当前工程
* @return
*/
public static IProject getActiveProject() {
IWorkbenchPage page = getWorkbenchPage();
if (page == null) {
return null;
}
IWorkbenchPart part = page.getActivePart();
Object adaptable = null;
if ((part instanceof IEditorPart)) {
IEditorPart editorPart = (IEditorPart) part;
IEditorInput input = editorPart.getEditorInput();
adaptable = input.getAdapter(IFile.class);
} else {
IViewPart viewPart = (IViewPart) part;
adaptable = viewPart.getAdapter(IResource.class);
if (adaptable == null) {
ISelection selection = page.getSelection();
if ((isValidSelection(selection)) && ((selection instanceof IStructuredSelection))) {
IStructuredSelection newSelection = (IStructuredSelection) selection;
Object[] objects = newSelection.toArray();
if (!ArrayUtils.isEmpty(objects)) {
for (int i = 0; i < objects.length; i++) {
Object object = objects;
adaptable = AdapterUtil.getAdapter(object, IResource.class);
if (adaptable != null) {
break;
}
}
}
}
}
}
if (adaptable == null) {
IEditorPart editor = getActiveEditor();
if (editor == null)
return null;
IEditorInput input = editor.getEditorInput();
adaptable = input.getAdapter(IFile.class);
}
if ((adaptable instanceof IResource)) {
IResource resource = (IResource) adaptable;
IProject project = resource.getProject();
return project;
}
return null;
}
public static boolean isValidSelection(ISelection selection) {
return (selection != null) && (!selection.isEmpty());
}
/**
* 适配器工具类
*
* @author Ming.He
*
*/
public class AdapterUtil {
public static Object getAdapter(Object r_Element, Class r_AdapterType) {
if (r_Element == null) {
return null;
}
if ((r_Element instanceof IAdaptable)) {
return ((IAdaptable) r_Element).getAdapter(r_AdapterType);
}
return Platform.getAdapterManager().getAdapter(r_Element, r_AdapterType);
}
}
分享到:
相关推荐
iProject学生 使い方:goToChat()->チャットルーム一覧に移动できます。goToChat(userId(String型))->入力したユーザId(ニフクラ上のもの)のgoToChat(ChatGroupのId或OneOnOneChatのId(String型),is...
【标题】"iproject-fw4jREST-master_java_" 指示的是一个基于Java的项目,专注于fw4j框架的修改和优化。这个项目的主要目标是去除Spring MVC框架中的注解命名方式,并引入Groovy语言来编写Controller。此外,它还...
【标题】"iproject:APDC个人项目"指的是一个由个人完成的项目,它与APDC(可能是一个组织或活动)相关,并且是FCT UNL(葡萄牙新里斯本大学科学和技术学院)UI(用户界面)领域的一部分。这个项目很可能涉及软件开发...
在示例代码中,我们首先尝试通过`getCurrentProjectName()`方法获取当前编辑器所关联的项目名称。如果无法获取,我们可以直接指定项目名称,如"project1"。使用`ResourcesPlugin.getWorkspace().getRoot()....
在你自己的类中(比如继承EditorPart的类)可用下面的代码(前提这个编辑器打开的是本地文件)获得关联的项目Iproject或者容器IContainer
电视 CST 515 CST 515 iProject
此外,它还介绍了项目背景,强调在当前快速变化的商业环境中,有效项目管理的重要性。预期读者主要是项目管理人员、开发团队成员和相关业务决策者。 2. 系统架构 系统架构设计是整个项目的核心,包括了对系统的基本...
《I-Project持续创新项目管理系统概要设计》 在当今快速发展的信息技术领域,项目管理系统的创新与优化成为了提升企业效率的关键。成都鼎域前沿科技有限公司的I-Project系统旨在为组织提供一个高效、灵活且全面的...
1. **获取当前类的资源路径**:Java提供了一个内置的方法`getClass().getResource()`或`getClass().getResourceAsStream()`,它们可以从类路径中获取资源的URL。例如,如果你有一个名为`MyClass.class`的文件,你...
例如,可以获取当前工程的IPackageFragmentRoot,然后创建新的包名(如"com.cownew"),接着使用createCompilationUnit()方法创建名为"Hello.java"的源文件,指定包名和源代码内容。 此外,Eclipse插件开发中还经常...
在本篇文章中,我们将深入探讨如何利用 Delphi 中的一个自定义单元 cxGetFieldValue 来实现“通过某模块的 ID 获取主要信息中某字段的值”的功能。这一技术不仅局限于特定的应用场景,而是几乎适用于所有基于相同...
例如,IWorkSpace接口有一个DM_OpenProject函数,可以返回当前打开或聚焦的IProject接口。 3. IProject接口:代表Altium Designer中的当前项目。 4. IDocument接口:代表Altium Designer中的一个文档。 文档分类: ...
获取jar文件后,创建一个新文件夹并将jar文件移动到该文件夹。 如果您已配置了Java correclty,则可以双击jar文件以启动应用程序。 如果这不适合您,则可以通过打开文件夹中的命令行窗口来启动程序,然后键入...
- `setProject(IProject project)`:在项目特性类中保存对当前项目的引用。 - `getProject()`:返回当前项目。 - `configure()`:当特性被添加到项目时,此方法用于配置项目。例如,添加新的构建器或修改项目描述...
路径操作则通过IPath接口实现,包括获取文件扩展名、拼接路径、验证路径和转换为文件对象等。 总的来说,Eclipse插件开发中的资源管理是构建插件功能的基础,理解并熟练掌握这些API和概念,能帮助开发者更高效地...
每个向导页面都描述了一步任务,向导页面被添加到向导中,页面的状态决定了该页面是否已经完成。当该页面已经完成时,用户就可以切换到向导的下一个页面;当向导可感知的所有页面都完成时,就可以调用并执行向导的 ...
资源可以分为IContainer(如IFolder和IProject)和IFile两种类型。 使用Eclipse的资源管理API,开发者可以创建、查找和操作资源。创建资源需要依赖org.eclipse.core.resources插件,可以通过ResourcesPlugin获取...
- `GetCurrentTime`:获取当前时间。 ##### 2.8 导航 (INavigate61) - **简介**:提供导航控制,如平移、缩放等。 - **方法**: - `Pan`:平移视图。 - `Zoom`:缩放视图。 ##### 2.9 项目 (IProject61) - **...
- **ISGWorld61**:主要负责管理整个三维世界的设置和状态。 - **IApplication61**:用于控制TerraExplorer应用程序的行为。 - **INavigate61**:提供导航功能,如视点移动、旋转等。 - **IProject61**:管理项目...