public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { var uiApp = commandData.Application; var doc = uiApp.ActiveUIDocument.Document; Log.AppendLog(LogMessageType.INFO, "Started"); try { // (Konrad) We are gathering information about the addin use. This allows us to // better maintain the most used plug-ins or discontiue the unused ones. AddinUtilities.PublishAddinLog(new AddinLog("MissionControl-GroupsManager", commandData.Application.Application.VersionNumber)); var model = new GroupsManagerModel(doc); var viewModel = new GroupsManagerViewModel(model); var view = new GroupsManagerView { DataContext = viewModel }; var unused = new WindowInteropHelper(view) { Owner = Process.GetCurrentProcess().MainWindowHandle }; view.Show(); } catch (Exception e) { Log.AppendLog(LogMessageType.EXCEPTION, e.Message); } Log.AppendLog(LogMessageType.INFO, "Ended"); return(Result.Succeeded); }
public GroupsManagerViewModel(GroupsManagerModel model) { Model = model; Groups = Model.CollectGroups(); Title = "Mission Control - Groups Manager v." + Assembly.GetExecutingAssembly().GetName().Version; BindingOperations.EnableCollectionSynchronization(_groups, _lock); WindowLoaded = new RelayCommand <Window>(OnWindowLoaded); WindowClosed = new RelayCommand <Window>(OnWindowClosed); SubmitComment = new RelayCommand(OnSubmitComment); Close = new RelayCommand <Window>(OnClose); Delete = new RelayCommand(OnDelete); Ungroup = new RelayCommand(OnUngroup); SelectAll = new RelayCommand(OnSelectAll); SelectNone = new RelayCommand(OnSelectNone); Check = new RelayCommand <bool>(OnCheck); FindGroup = new RelayCommand <GroupTypeWrapper>(OnFindGroup); IsolateGroup = new RelayCommand <GroupTypeWrapper>(OnIsolateGroup); Messenger.Default.Register <GroupsDeleted>(this, OnGroupsDeleted); Messenger.Default.Register <DocumentChanged>(this, OnDocumentChanged); }