public void LoadQuery(StoredQuery query) { listView.Columns.Clear(); using (var progress = new MonoDevelop.Ide.ProgressMonitoring.MessageDialogProgressMonitor(true, false, false)) { var fields = CachedMetaData.Instance.Fields; WorkItemStore store = new WorkItemStore(query); var data = store.LoadByPage(progress); if (data.Count > 0) { var firstItem = data[0]; List<IDataField> dataFields = new List<IDataField>(); var mapping = new Dictionary<Field, IDataField<object>>(); foreach (var item in firstItem.WorkItemInfo.Keys) { var field = fields[item]; var dataField = new DataField<object>(); dataFields.Add(dataField); mapping.Add(field, dataField); } if (dataFields.Any()) { workItemField = new DataField<WorkItem>(); dataFields.Insert(0, workItemField); var listStore = new ListStore(dataFields.ToArray()); foreach (var map in mapping) { listView.Columns.Add(map.Key.Name, map.Value); } listView.DataSource = listStore; foreach (var workItem in data) { var row = listStore.AddRow(); listStore.SetValue(row, workItemField, workItem); foreach (var map in mapping) { object value; if (workItem.WorkItemInfo.TryGetValue(map.Key.ReferenceName, out value)) { listStore.SetValue(row, map.Value, value); } else { listStore.SetValue(row, map.Value, null); } } } } } } }
public static void Open(StoredQuery query) { foreach (var view in IdeApp.Workbench.Documents) { var workView = view.GetContent<WorkItemsView>(); if (workView != null) { workView.Load(query); view.Window.SelectWindow(); return; } } WorkItemsView workItemsView = new WorkItemsView(); workItemsView.Load(query); IdeApp.Workbench.OpenDocument(workItemsView, true); }
public void LoadQuery(StoredQuery query) { listView.Columns.Clear(); using (var progress = new MonoDevelop.Ide.ProgressMonitoring.MessageDialogProgressMonitor(true, false, false)) { var fields = CachedMetaData.Instance.Fields; WorkItemStore store = new WorkItemStore(query); var data = store.LoadByPage(progress); if (data.Count > 0) { var firstItem = data[0]; List<IDataField> dataFields = new List<IDataField>(); var mapping = new Dictionary<Field, IDataField<object>>(); foreach (var item in firstItem.WorkItemInfo.Keys) { var field = fields[item]; var dataField = new DataField<object>(); dataFields.Add(dataField); mapping.Add(field, dataField); } if (dataFields.Any()) { if (ShowCheckboxes) { isCheckedField = new DataField<bool>(); dataFields.Insert(0, isCheckedField); var checkColumn = new CheckBoxCellView(isCheckedField) { Editable = true }; checkColumn.Toggled += (sender, e) => { var astore = (TreeStore)listView.DataSource; var node = astore.GetNavigatorAt(listView.CurrentEventRow); var workItem = node.GetValue(workItemField); if (!node.GetValue(isCheckedField)) { if (OnSelectWorkItem != null) OnSelectWorkItem(workItem); } else { if (OnRemoveWorkItem != null) OnRemoveWorkItem(workItem); } }; listView.Columns.Add("", checkColumn); } workItemField = new DataField<WorkItem>(); dataFields.Insert(0, workItemField); var listStore = new TreeStore(dataFields.ToArray()); foreach (var map in mapping) { listView.Columns.Add(map.Key.Name, map.Value); } listView.DataSource = listStore; foreach (var workItem in data) { var row = listStore.AddNode(); row.SetValue(workItemField, workItem); foreach (var map in mapping) { object value; if (workItem.WorkItemInfo.TryGetValue(map.Key.ReferenceName, out value)) { row.SetValue(map.Value, value); } else { row.SetValue(map.Value, null); } } } } } } }
public WorkItemStore(StoredQuery query) { this.clientService = query.Collection.GetService<ClientService>(); this.query = query; }
private void Load(StoredQuery query) { this.ContentName = GettextCatalog.GetString("Work Items: " + query.QueryName); widget.LoadQuery(query); }