我有一个模型上有不同元素的GMF编辑器。一旦我选择了任何特定的模型元素,我如何在我的处理程序中获得它?目前,要获取所有存在的元素,我使用以下代码片段:
PalladioComponentModelDiagramEditor diag = (PalladioComponentModelDiagramEditor)HandlerUtil.getActiveEditorChecked(event);
final List children = diag.getDiagramEditPart().getChildren();
我对GMF很陌生,因此这个问题
我不是百分之百明白你的问题。如果您想要在图表编辑器中找到当前被选中的元素,您可以使用SelectionProvider
,例如如下所示:
ISelectionProvider selProvider = diagramEditor.getEditorSite().getSelectionProvider();
if (selProvider.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) selProvider.getSelection();
Object selected = selection.getFirstElement();
if (selected instanceof IGraphicalEditPart) {
IGraphicalEditPart editPart = (IGraphicalEditPart) selected;
EObject eObject = ((View) editPart.getModel()).getElement();
// do stuff with selected EObject
}
}