private void FillGrids() { AvailList = DisplayFields.GetAllAvailableList(Category); //This one needs to be called repeatedly. gridMain.BeginUpdate(); gridMain.ListGridColumns.Clear(); GridColumn col; col = new GridColumn(Lan.g("FormDisplayFields", "FieldName"), 110); gridMain.ListGridColumns.Add(col); col = new GridColumn(Lan.g("FormDisplayFields", "New Descript"), 110); gridMain.ListGridColumns.Add(col); col = new GridColumn(Lan.g("FormDisplayFields", "Width"), 60); gridMain.ListGridColumns.Add(col); gridMain.ListGridRows.Clear(); GridRow row; for (int i = 0; i < ListShowing.Count; i++) { row = new GridRow(); row.Cells.Add(ListShowing[i].InternalName); row.Cells.Add(ListShowing[i].Description); row.Cells.Add(ListShowing[i].ColumnWidth.ToString()); gridMain.ListGridRows.Add(row); } gridMain.EndUpdate(); //Remove items from AvailList that are in the ListShowing. for (int i = 0; i < ListShowing.Count; i++) { for (int j = 0; j < AvailList.Count; j++) { //Only removing one item from AvailList per iteration of i, so RemoveAt() is safe without going backwards. if (ListShowing[i].InternalName == AvailList[j].InternalName) { AvailList.RemoveAt(j); break; } } } listAvailable.Items.Clear(); for (int i = 0; i < AvailList.Count; i++) { listAvailable.Items.Add(AvailList[i]); } }
private void FillGrids() { gridMain.BeginUpdate(); gridMain.Columns.Clear(); ODGridColumn col = new ODGridColumn(Lan.g("FormDisplayFields", "FieldName"), 110); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g("FormDisplayFields", "New Descript"), 110); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g("FormDisplayFields", "Width"), 60); gridMain.Columns.Add(col); gridMain.Rows.Clear(); ODGridRow row; for (int i = 0; i < ListShowing.Count; i++) { row = new ODGridRow(); row.Cells.Add(ListShowing[i].InternalName); row.Cells.Add(ListShowing[i].Description); row.Cells.Add(ListShowing[i].ColumnWidth.ToString()); gridMain.Rows.Add(row); } gridMain.EndUpdate(); List <DisplayField> availList = DisplayFields.GetAllAvailableList(); for (int i = 0; i < ListShowing.Count; i++) { for (int j = 0; j < availList.Count; j++) { if (ListShowing[i].InternalName == availList[j].InternalName) { availList.RemoveAt(j); break; } } } listAvailable.Items.Clear(); for (int i = 0; i < availList.Count; i++) { listAvailable.Items.Add(availList[i]); } }
private void LoadDisplayFields() { OrthoChartTabs.RefreshCache(); OrthoChartTabLinks.RefreshCache(); DisplayFields.RefreshCache(); _listAllDisplayFields = DisplayFields.GetAllAvailableList(DisplayFieldCategory.OrthoChart); _listTabDisplayFields = new List <OrthoChartTabFields>(); //Add all fields that are actively associated to a tab to our class wide list of tabs and fields. for (int i = 0; i < _listOrthoChartTabs.Count; i++) { OrthoChartTabFields orthoChartTabFields = new OrthoChartTabFields(); orthoChartTabFields.OrthoChartTab = _listOrthoChartTabs[i]; orthoChartTabFields.ListDisplayFields = new List <DisplayField>(); List <OrthoChartTabLink> listOrthoChartTabLinks = _listOrthoChartTabLinks.FindAll( x => x.OrthoChartTabNum == _listOrthoChartTabs[i].OrthoChartTabNum ); listOrthoChartTabLinks.OrderBy(x => x.ItemOrder); foreach (OrthoChartTabLink orthoChartTabLink in listOrthoChartTabLinks) { orthoChartTabFields.ListDisplayFields.AddRange(_listAllDisplayFields.FindAll(x => x.DisplayFieldNum == orthoChartTabLink.DisplayFieldNum)); } _listTabDisplayFields.Add(orthoChartTabFields); } //Add a dummy OrthoChartTabFields object to the list that represents available fields that are not part of any tab. //These "display fields" were previously used at least once. A patient has info for this field, then the office removed the field from all tabs. List <DisplayField> listOrphanedFields = _listAllDisplayFields.FindAll(x => x.DisplayFieldNum == 0 || !OrthoChartTabLinks.GetExists(y => y.DisplayFieldNum == x.DisplayFieldNum)); if (listOrphanedFields != null && listOrphanedFields.Count > 0) { OrthoChartTabFields orphanedFields = new OrthoChartTabFields(); orphanedFields.OrthoChartTab = null; //These are fields not associated to any tab. Purposefully use null. orphanedFields.ListDisplayFields = new List <DisplayField>(); orphanedFields.ListDisplayFields.AddRange(listOrphanedFields); _listTabDisplayFields.Add(orphanedFields); } }