Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
 virtual public void FillExtraFields(ICardDat card, Dictionary <string, Control> ctls)
 {
 }
Esempio n. 6
0
 virtual public Dictionary <string, Control> FillExtraControls(ICardDat card)
 {
     return(null);
 }