private void Fill(TreeNodeCollection nodes, List <BaseDat> lst, List <int> included, BaseDat dat) { foreach (BaseDat dt in GetChildren(lst, dat)) { string path = ""; string name = ""; int code = 0; if (dt is ITreeDat) { ITreeDat tr = (ITreeDat)dt; path = tr.FP.ToString(); name = tr.Name; code = tr.FP.Code; } else if (dt is ICardDat) { ICardDat cr = (ICardDat)dt; if (included != null && included.IndexOf(cr.ID) < 0) { continue; } path = cr.FP.ToString(); name = cr.Name; code = cr.Code; } bool is_empty = false; TreeNode node = nodes.Add(path, string.Format("{0}: {1}", code, name)); node.Tag = dt; if (dt is ITreeDat) { node.ImageIndex = node.SelectedImageIndex = 0; Fill(node.Nodes, lst, included, dt); if (node.Nodes.Count == 0) { is_empty = true; } else { is_empty = CardsCount(node.Nodes) == 0; } } else if (dt is ICardDat) { node.ImageIndex = node.SelectedImageIndex = 1; } if (is_empty && included != null) { nodes.Remove(node); } } }
public T GetChooserCard <T>() where T : class { ICardDat cd = this.Value as ICardDat; if (cd != null) { T ret = (T)Activator.CreateInstance(typeof(T), cd); return(ret); } else { return(null); } }
public static int CardsFPComparison(ICardDat card1, ICardDat card2) { if (card1 == null && card2 == null) { return(0); } if (card1 == null) { return(-1); } if (card2 == null) { return(1); } if (card1.ID == 0 && card2.ID == 0) { return(0); } if (card1.ID == 0) { return(-1); } if (card2.ID == 0) { return(1); } if (card1.ID < 0 && card2.ID > 0) { return(-1); } if (card1.ID > 0 && card2.ID < 0) { return(1); } if (card1.ID > 0) { return(card1.FP.CompareTo(card2.FP)); } else { PathTree tree1 = new PathTree(card1.Parent_FP, card1.Code); PathTree tree2 = new PathTree(card2.Parent_FP, card2.Code); return(tree1.CompareTo(tree2)); } }
private void CardForm_Load(object sender, EventArgs e) { if (FillExtraInfo != null) { FillExtraInfo(this, EventArgs.Empty); } ICardDat dat = NewValue as ICardDat; if (dat != null) { this.Text = (NewValue.IsNew) ? string.Format("Новая карточка в ветке {0}", dat.Parent_FP) : string.Format("Изменение карточки {0}", dat); BindControls(this); } }
virtual public void FillExtraFields(ICardDat card, Dictionary <string, Control> ctls) { }
virtual public Dictionary <string, Control> FillExtraControls(ICardDat card) { return(null); }