/// <summary> /// Execute command. /// </summary> int IOleCommandTarget.Exec(ref Guid pguidCmdGroup, uint cmdId, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut) { if (pguidCmdGroup != GuidList.guidWorkItemViewExtCmdSet) { return(OlecmderrEUnknowngroup); } IWorkItemViewExtCommand command; if (!_commands.TryGetValue(cmdId, out command)) { return(OlecmderrEUnknowngroup); } var dte = (EnvDTE.DTE)GetService(typeof(EnvDTE.DTE)); var selectedWorkItems = WorkItemHelper.GetSelectedWorkItems(dte); if (selectedWorkItems == null) { return(VSConstants.S_OK); } command.Execute(this, selectedWorkItems); return(VSConstants.S_OK); }
private void RunWorkItemHelper(WorkItem workItem) { Style itemStyle = FindResource("DefaultTreeViewItemStyle") as Style; Style activeStyle = FindResource("ActiveTreeViewItemStyle") as Style; Style workItemStyle = FindResource("WorkItemTreeViewItemStyle") as Style; WorkItemHelper wiHelper = new WorkItemHelper(TreeView, activeStyle, itemStyle, workItemStyle); wiHelper.OnSelectedItem += delegate(object sender, Utility.DataEventArgs <object> e) { if (OnSelectedItem != null) { OnSelectedItem(this, new Utility.DataEventArgs <object>(e.Data)); } }; wiHelper.Run(workItem); }
/// <summary> /// Query command status. /// </summary> int IOleCommandTarget.QueryStatus(ref Guid pguidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText) { if (pguidCmdGroup != GuidList.guidWorkItemViewExtCmdSet) { return(OlecmderrEUnknowngroup); } if (!_commands.ContainsKey(prgCmds[0].cmdID)) { return(OlecmderrEUnknowngroup); } prgCmds[0].cmdf = (uint)OLECMDF.OLECMDF_SUPPORTED; var dte = (EnvDTE.DTE)GetService(typeof(EnvDTE.DTE)); var selectedWorkItems = WorkItemHelper.GetSelectedWorkItems(dte); if (selectedWorkItems != null && selectedWorkItems.Length > 0) { prgCmds[0].cmdf = prgCmds[0].cmdf | (uint)OLECMDF.OLECMDF_ENABLED; } return(VSConstants.S_OK); }