我真的需要了解父/子对话框的工作原理。
我的用户使用名为 Teamcenter 的 OTB 应用程序。我正在编写一个从 Teamcenter 应用程序中的菜单选择调用的附加应用程序。
当他们单击菜单项时,它将执行一个处理程序类并为我的应用程序创建基本对话框。
public class AplotDialogHandler extends AbstractHandler {
private static AplotBaseDialog dlg = null;
public AplotDialogHandler() {
}// end Constructor
//////////////////////////////////////////////////////////////////////////
// execute() //
//////////////////////////////////////////////////////////////////////////
@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
if (dlg == null) {
try {
AbstractAIFApplication app = AIFDesktop.getActiveDesktop().getCurrentApplication();
TCSession session = (TCSession) app.getSession();
TCUserService userService = session.getUserService();
AplotVersion.negotiateVersion(userService);
AplotQueryCapabilities.initialize(userService);
dlg = new AplotBaseDialog(null, session);
}
catch (Exception ex) {
MessageBox.post(HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell(), ex, true);
}
}
dlg.create();
dlg.getShell().setSize(700, 400);
dlg.open();
return null;
}// end execute()
}// end EdiDialogHandler()
问题 1. 我的应用程序似乎没有绑定到 Teamcenter 应用程序。这意味着我可以关闭 Teamcenter 并且我的应用程序保持打开状态。
问题 2. 我应该获取工作区外壳并将其传递到基本对话框中吗?但是即使我的应用程序打开了,用户仍然需要能够使用 Teamcenter 应用程序来选择要发送到我的应用程序的数据
问题 3. 从我的基本对话框打开对话框时,我是否应该始终将基本对话框外壳传递给这些对话框?
问题 4. 当用户完成后,我应该关闭对话框是否有标准方法?