文档章节

Eclipse插件开发工程属性页

素人派
 素人派
发布于 2016/12/31 20:46
字数 256
阅读 1
收藏 0
  • 介绍
本文介绍如何自定义一个Eclipse中的工程属性页面。
  • 扩展点 org.eclipse.ui.propertyPages
[codesyntax lang="xml"]
<extension point="org.eclipse.ui.propertyPages">
	<page objectClass="org.eclipse.core.resources.IResource"
		adaptable="true" name="%osgi.imported_packages"
		class="org.suren.osgi.ui.properties.ImportPackagePage"
		id="org.suren.osgi.ui.properties.ImportPackagePage">
	</page>
</extension>
[/codesyntax] 实现类很简单,就是使用SWT创建一个页面就好。重点是要获取当前选择的工程,然后显示该工程的信息。下面是例子: [codesyntax lang="java"]
/**
* Copyright © 1998-2015, http://surenpi.com. All Rights Reserved.
*/
package org.suren.osgi.ui.properties;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.dialogs.PropertyPage;
import org.suren.osgi.util.JavaProjectUtil;

/**
 * @author suren
 * @since jdk1.6
 * 2015年12月8日
 */
public class ImportPackagePage extends PropertyPage {

	@Override
	protected Control createContents(Composite parent) {
		IAdaptable ele = getElement();
		
		IJavaProject javaProject = JavaProjectUtil.getJavaProject(ele);
		
		List<String> importPackages = new ArrayList<String>();
		JavaProjectUtil.findImportPackage(javaProject, importPackages);
		
		Composite contents = new Composite(parent, SWT.NULL);
		contents.setLayout(new FillLayout());
		
		Set<String> packagesSet = new TreeSet<String>();
		for(String pkg : importPackages)
		{
			pkg = pkg.substring(0, pkg.lastIndexOf("."));
			packagesSet.add(pkg);
		}

		StringBuffer buf = new StringBuffer();
		Iterator<String> it = packagesSet.iterator();
		while(it.hasNext())
		{
			String pkg = it.next();
			buf.append("\n").append(pkg);
		}
		if(buf.length() > 0)
		{
			buf.delete(0, 2);
		}
		
		new Text(contents, SWT.MULTI).setText(buf.toString());;
		
		contents.layout(true, true);
		
		return contents;
	}
}
[/codesyntax]
  • 参考
Eclipse插件扩展点大全(扩展点清单)

本文转载自:http://surenpi.com/2015/12/10/eclipse%e6%8f%92%e4%bb%b6%e5%bc%80%e5%8f%91%e5%b7%a5%e7%a8%8b%e5%b1...

上一篇: 树莓派之看门狗
下一篇: awk
素人派
粉丝 26
博文 1907
码字总数 10223
作品 6
东城
程序员
私信 提问

暂无文章

微信小程序和百度小程序开发的一些不同点

1: initActive从onload放到onready中 2: bindtap='{{childTickeData.freeadd?"childticket":""}}',语法错误。会导致页面加载不出来,而且也不报任何错。 3:使用搬家工具,支付api名称转换......

醉雨
7分钟前
0
0
最近执行过的SQL语句查询

SELECT TOP 1000 ST.text AS '执行的SQL语句' , QS.execution_count AS '执行次数' , QS.total_elapsed_time / 10000 AS '耗时' , QS.total_logical_reads AS '逻辑读取次数' , QS.total_lo......

神手--追魂
8分钟前
0
0
从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。 从危在旦...

阿里云官方博客
12分钟前
0
0
阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案...

阿里云云栖社区
28分钟前
1
0
使用Redis SETNX 命令实现分布式锁

基于setnx和getset http://blog.csdn.net/lihao21/article/details/49104695 使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。 SETNX命令简介 命令格式 SETNX key value 将 ke...

彬彬公子
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部