Platform: Eclipse 3.2Dialog是SWT和JFace的一个重要的组成部分,我们在开发Plug-in或RCP的时候也经常会用到它们。这篇随笔不会介绍 SWT的Dialog,因为我想很多人都已经非常熟悉它了。在这里,我要讨论的是JFace的Dialog,或者更进一步说是JFace的 TitleAreaDialog。什么是TitleAreaDialog呢?想想我们常常用到的New XX Wizard就知道了。在我们创建一个Java Project或Class的时候,我们所使用的Wizard其实就是由TitleAreaDialog构成的。这种Dialog有如下所示的 TitleA ...
Platform: Eclipse 3.2Eclipse Plug-in开发离不开与用户的交互,我们往往把用户的鼠标点击之类动作所调用的代码包装成一个Action。例如,如果用户点击了一个Menu Item,那么绑定到这个Menu Item上的Action就会运行,这一切都很直观。但是有的时候,用户触发的操作可能需要很长时间才能完成,比如连接数据库,在这种情况下,就必须把鼠标的状态改为忙碌,这样就可以用沙漏手势提示用户当前操作正在进行,也避免了用户在等待当前操作的时候又去触发其他的操作。那么如何实现这一点呢?Eclipse有一个High-level的实现,也有一个Low-level的实现。因为 ...
Platform: Eclipse 3.2开发任何软件都不得不处理Exception和Log,Eclipse Plug-in也是如此。不过幸运的是,Eclipse PDE提供了记录及显示Exception和Log的机制:Error Log View。作为Eclipse SDK的一部分,PDE的普及率很高,所以除非你是要做RCP,不然的话用Error Log View处理Exception和Log应该是你的最佳选择。当然,这也带来了对PDE的依赖性。使用Error Log View实际上非常简单,每个Plug-in的Activator类都有一个getLog()方法,返回一个ILog对象,这个对象 ...
开发Eclipse Plugin的过程中,难免要用到其它的Framework或Lib,如果自己不做配置,那么Eclipse不会自动把这些jar文件作为Plugin运行的classpath,因此Plugin运行的时候就会出错。怎么办呢?假设我们使用的第三方jar文件都放置在Plugin根目录的lib目录下。那么首先要做的是把这些jar文件包含到Plugin的build中,打开plugin.xml文件,在Build一页中选择lib目录,这样最后export出了Plugin就会包含这些jar文件了。但是这还不够,因为虽然有了jar文件,Plugin还是不知道应该使用它们。还是在Build页中,我们可 ...
ONJava.com -- What's New in Eclipse 3.2 Java Development Tools
看看Eclipse主页上闪烁的图片吧,Callisto is coming in 1 day!于是有许多人开始欣喜若狂了,甚至高呼这种按时发布是敏捷开发的伟大成果。我不知道按时发布是否真的和敏捷开发有关,在这里我也不像讨论这个东西。我想说的是,为什么Callisto这个东西会让大家如此着迷?让我们先来看看Callisto是用来做什么的。Callisto的主页上面说:“Callisto的目的是通过提供一个更透明的可估算的开发周期提高在Eclipse框架上层工作的开发者的生产力。通过一次性发布10个项目,除去版本兼容的不确定性,并使得在开发环境中使用多个插件变得更简单。”看 ...
_part是是action中的IEidtorPart。 如何获得一个未被TextEditor打开的文件的内容: 这个在做“选中文件并对其中内容进行操作”这种功能时很有用,代码如下:  1  IFile file = ((FileEditorInput) Workbench.getInstance().getActiveWorkbenchWindow().getActivePage().getActiveEditor().getEditorInput()).getFile(); 2  3&n ...
前面有片entry写了如何动态设置Action的Enable性,使用了plugin.xml中的enableFor机制,虽然达到了效果,但是没说清楚具体的机制,今天在这里简单说一下我的理解。 如果我们的Action是继承自org.eclipse.ui.actions.ActionDelegate这个类,我们可以发现它有一个方法叫做selectionChanged,其完整的接口如下: 1 public void selectionChanged(IAction action, ISelection selection) 让我们看一看它的 ...
最近做的一个PrettyPro的plugin有这样一个需求:用户在Editor中的右键菜单中有Format和Format Selection两个Action,根据用户是否选择了Editor中的内容而决定其中那个是enable的,哪个是disable的。本来以为实现这个功能要动态的添加action而不是在plugin.xml中声明能做到的,但是苦于找不到动态添加action的方法,就回头去啃plugin.xml的dtd,终于让我找到了~  1 <extension point="org.eclipse.ui.popupMenus"> 2 &nb ...
 1// 新建一个MessageConsole 2MessageConsole console = new MessageConsole("My Console", null); 3 4// 通过ConsolePlugin得到ConsoleManager,并添加新的MessageConsole 5ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { ...
AllenYoung
  • 浏览: 137411 次
  • 来自: 上海交通大学软件学院
  • 详细资料
搜索本博客
最近加入圈子
存档
最新评论