ITKeyword,专注技术干货聚合推荐

注册 | 登录

Eclipse插件开发编辑器篇

u014249394 分享于 2015-08-06

推荐:【Eclipse插件开发】打开编辑器

        今天终于可以闲一天,想来想去就乱写点东西吧,说不定对有些新人有点帮助呢~_~         用Eclipse API的方式来打开编辑器,可能对任何一个插件开发者

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1053

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

  • 介绍

看着现有的编辑器有缺陷?想扩展不知道该从哪里下手?请看下文。

  • 添加扩展点

[codesyntax lang="xml"]

<extension
 point="org.eclipse.ui.editors">
<editor
    name="Bundle Editor"
    extensions="bundle"
    icon="icons/bird.gif"
    contributorClass="org.eclipse.ui.part.EditorActionBarContributor"
    class="org.suren.littlebird.editors.BundleEditor"
    id="org.suren.littlebird.editors.BundleEditor">
</editor>
</extension>

[/codesyntax]

  • 编辑器实现类

[codesyntax lang="java"]

/**
 * @author http://surenpi.com
 * @date 2015年7月16日
 */
package org.suren.littlebird.editors;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;

/**
 * 查看bundle详情
 * 
 * @author http://surenpi.com
 * 
 * @2015年7月16日
 */
public class BundleEditor extends EditorPart {

	@Override
	public void createPartControl(Composite parent) {
		TabFolder mainCom = new TabFolder(parent, SWT.None);
		
		TabItem metaDataItem = new TabItem(mainCom, SWT.None);
		metaDataItem.setText("MetaData");
		
		TabItem headersItem = new TabItem(mainCom, SWT.None);
		headersItem.setText("Headers");
	}

	/*
	 * 
	 */
	@Override
	public void doSave(IProgressMonitor arg0) {
		// TODO Auto-generated method stub
		
	}

	/*
	 * 
	 */
	@Override
	public void doSaveAs() {
		// TODO Auto-generated method stub
		
	}

	/*
	 * 
	 */
	@Override
	public void init(IEditorSite site, IEditorInput input)
			throws PartInitException {
		setSite(site);
		setInput(input);
	}

	/*
	 * 
	 */
	@Override
	public boolean isDirty() {
		// TODO Auto-generated method stub
		return false;
	}

	/*
	 * 
	 */
	@Override
	public boolean isSaveAsAllowed() {
		// TODO Auto-generated method stub
		return false;
	}

	/*
	 * 
	 */
	@Override
	public void setFocus() {
		// TODO Auto-generated method stub
		
	}
}

[/codesyntax]

推荐:Eclipse插件开发之FindBugs插件

  问题提出:   当我们编写完代码,做完单元测试等各种测试后就提交正式运行,只能由运行的系统来检测我们代码是否有问题了,代码中隐藏的错误在系统运行的过

特别要注意init方法,如果不那么写的话,可能报错哦。

  • 通过代码打开editor

通过前面的代码我们已经可以看到,接口IEditorInput就是文件(或者其他数据源)与编辑器的数据交换通道。所以,如果要通过代码来打开一个editor的话,必须就需要这样一个参数。还是一睹为快吧:

[codesyntax lang="java"]

IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
try {
	BundleEditorInput input = new BundleEditorInput();
	input.setBundleStorage(new BundleStorage(bundle));
	window.getActivePage().openEditor(input, "org.suren.littlebird.editors.BundleEditor");
} catch (PartInitException ex) {
	ex.printStackTrace();
}

[/codesyntax]

上面的代码片段中的org.suren.littlebird.editors.BundleEditor就是你要打开的编辑器的id。

  • 参考

http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-rcprich/

查看原文:http://surenpi.com/2015/07/16/eclipse%e6%8f%92%e4%bb%b6%e5%bc%80%e5%8f%91%e7%bc%96%e8%be%91%e5%99%a8%e7%af%87/

推荐:笔记-Eclipse下jQuery编辑器插件

 http://update.aptana.com/update

介绍 看着现有的编辑器有缺陷?想扩展不知道该从哪里下手?请看下文。 添加扩展点 [codesyntax lang="xml"] <extension point="org.eclipse.ui.editors"><editor name="Bundle Editor"

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。