public override void Perform(DiagramViewModel node) { var typesList = GetRelatedTypes(node); var viewModelItem = node.SelectedNodeItem as TypedItemViewModel; ITypeDiagramItem viewModelItemData; if (viewModelItem == null) { viewModelItemData = node.SelectedNode.DataObject as ITypeDiagramItem; if (viewModelItemData == null) { return; } } else { viewModelItemData = viewModelItem.Data; } ElementItemTypesWindow.InitTypeListWindow("Choose Type", typesList.ToArray(), (selected) => { uFrameEditor.ExecuteCommand((diagram) => { viewModelItemData.RelatedType = selected.Name; }); EditorWindow.GetWindow <ElementItemTypesWindow>().Close(); }); }
public void InitTypeListWindow(GraphTypeInfo[] typesInfoList, Action <GraphTypeInfo> action) { ElementItemTypesWindow.InitTypeListWindow("Choose Type", typesInfoList, (selected) => { EditorWindow.GetWindow <ElementItemTypesWindow>().Close(); InvertApplication.Execute(() => { action(selected); }); }); }