public LoadByPage ( IProgressMonitor progress ) : List |
||
progress | IProgressMonitor | |
return | List |
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 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); } } } } } } }