技术开发 频道

Lotus Expeditor Property Broker协作组件


    现在讨论一下如何在 Property Broker 中使用基于 SWT 的组件(即视图)。首先,必须了解操作代码并未直接绑定到任何具体的视图或视图实例。但是,您可以使用 CAI 和传递到操作中的数据的组合来更新特定的视图实例。遗憾的是,这在 SWT 操作中并不容易,但存在可为您提供帮助的 helper API。

    在 execute() 方法中调用操作时,必须调用一对 helper 函数来更新特定的视图实例(如果这是操作的目的)。所创建的示例代码与清单 1 类似。

清单 1. 示例代码

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(); Display.getDefault().asyncExec(new Runnable() { public void run(){ Wire def = pce.getWireDefinition(); ViewPart view = SWTHelper.locateView(def.getTargetEntityId()); } }); } return null; }

    请注意以粗体突出显示的几行代码。SWTHelper 类拥有一些静态方法,可帮助您识别所处理的特定视图实例。视图 ID 包含在 PropertyChangeEvent 的连接定义对象中。在连接定义中可以引用源视图和连接的目标视图。CAI 负责确保使用正确信息来调用操作。locateView() 调用将返回目标视图实例 IViewPart。应执行 instanceOf 操作来确保它就是正在寻找的视图,然后将其类型转换为适当的视图类。
0
相关文章