消息动作的实现 利用 Expeditor 的 Property Broker,我们可以定义不同级别的动作实现,如果组件所运行的设备没有 SWT 或 AWT 界面,我们可以用 Eclipse 核心命令的消息处理接口(org.eclipes.core.commands.IHandler)来实现动作,其中 IHandler 接口的 execute() 方法必须实现。PropertyChangeEvent 可以作为消息的触发器并且可以通过 ExecutionEvent.getTrigger() 获得。 以下是处理数据改变时事件响应的动作处理代码:
public Object execute(ExecutionEvent event) throws ExecutionException {
final Object eventTrigger = event.getTrigger();
if (eventTrigger instanceof PropertyChangeEvent){
final PropertyChangeEvent pce = (PropertyChangeEvent)eventTrigger;
final PropertyValue value = pce.getPropertyValue();
//TODO implement your handler
}
return null;
}
我们的样例是基于 Eclipse 的 Expeditor 客户端,有一个视图用以界面显示,这样我们的事件处理代码可以基于
org.eclipse.jface.action.Action,需要实现的接口函数是
runWithEvent, 代码如下:
public class setTimeAction extends Action {
public void runWithEvent(Event event) {
if (event instanceof PropertyChangeEvent)
{
final PropertyChangeEvent pEvent = (PropertyChangeEvent)event;
//System.out.println("Event received");
Thread t = new Thread() {
public void run() {
PropertyValue value = pEvent.getPropertyValue();
//TODO implement your handler
}
};
Display display = Display.getDefault();
display.asyncExec(t);
}
}
}
观看专家视频讲座,了解人员协作信息,赢取免费试用软件。