Example #1
0
        /// <summary>
        /// Создание списка возможных типов таблицы.
        /// </summary>
        public void GenerateInitTables()
        {
            if (DBForm.TypeDiscoveryService != null)
            {
                ICollection types = DBForm.TypeDiscoveryService.GetTypes(typeof(DBViewBase), false);
                foreach (Type actionType in types)
                {
                    if (actionType != typeof(DBViewBase))
                    {
                        ViewMemberInfo info = new ViewMemberInfo();
                        info.ViewType = actionType;
                        info.Caption  = DBAttribute.GetCaption(actionType);

                        string name = DBAttribute.GetIconFile(info.ViewType);

                        string dir = DBForm.GetImageFullName(name);
                        if (dir != "" && File.Exists(dir) && !ImageEx.IsExist(imgInit, name))
                        {
                            imgInit.AddImage(Image.FromFile(dir), name);
                        }

                        info.ImageIndex = ImageEx.GetImageIndex(imgInit, name);
                        info.ImageName  = name;
                        if (MemberExists.FindInfo(info) != null)
                        {
                            info.IsUsed = true;
                        }

                        MemberInits.Add(info);
                    }
                }
                lblTotalCount.Caption = string.Format("Всего: {0}", types.Count);
            }
        }
        private void btnDelete_Click(object sender, EventArgs e)
        {
            TableMemberInfos deletings = new TableMemberInfos(rewriteParent: false);

            foreach (TreeListNode node in treeExist.Selection)
            {
                TableMemberInfo info = treeExist.GetDataRecordByNode(node) as TableMemberInfo;
                if (info != null &&
                    info.Item != null)
                {
                    DBInterface.DestroyInstance(info.Item);

                    UnuseInitTable(info);
                    EraseExistDate(info);

                    deletings.Add(info);
                }
            }

            // Удаление записей
            foreach (TableMemberInfo infoInter in deletings)
            {
                MemberExists.RemoveEx(infoInter);
            }
        }
Example #3
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            ViewMemberInfos deletings = new ViewMemberInfos();

            foreach (TreeListNode node in treeExist.Selection)
            {
                ViewMemberInfo info = treeExist.GetDataRecordByNode(node) as ViewMemberInfo;
                if (info != null &&
                    info.Item != null)
                {
                    DBForm.DestroyInstance(info.Item);

                    UnuseInitTable(info);
                    //EraseExistDate(vwInfo);

                    deletings.Add(info);
                }
            }

            // Удаление записей
            foreach (ViewMemberInfo infoInter in deletings)
            {
                MemberExists.Remove(infoInter);
            }
        }
        /// <summary>
        /// Анализ PropertyInfoEx объекта и добавление полученных данных в объект TableMemberInfo.
        /// </summary>
        public TableMemberInfo AnalisProperty(PropertyInfoEx propertyInfo, TableMemberInfo tableInfo, ref int recordCount)
        {
            TableMemberInfo result = new TableMemberInfo();

            result.FieldName    = propertyInfo.PropertyInfo.Name;
            result.Caption      = PropertyInfoEx.GetDisplayNameAttribute(propertyInfo.PropertyInfo);
            result.PropertyType = propertyInfo.PropertyInfo.PropertyType;
            if (propertyInfo.IsXPCollection)
            {
                result.PropertyTypeCollection = propertyInfo.PropertyInfoCollection.PropertyType;
            }
            result.IsXPBaseObject = propertyInfo.IsXPBaseObject;
            result.IsXPCollection = propertyInfo.IsXPCollection;

            if (result.IsXPBaseObject || result.IsXPCollection)
            {
                string name = "";
                if (result.IsXPBaseObject)
                {
                    name = DBAttribute.GetIconFile(result.PropertyType);
                }
                if (result.IsXPCollection)
                {
                    name = DBAttribute.GetIconFile(result.PropertyTypeCollection);
                }

                string dir = DBInterface.GetImageFullName(name);
                if (dir != "" && File.Exists(dir) && !ImageEx.IsExist(imgInit, name))
                {
                    imgInit.AddImage(Image.FromFile(dir), name);
                }

                result.ImageIndex = ImageEx.GetImageIndex(imgInit, name);
                result.ImageName  = name;
            }

            if (tableInfo != null)
            {
                tableInfo.Add(result);
            }

            if (MemberExists.FindInfo(result) != null)
            {
                result.IsUsed = true;
            }

            // Ограничение по количеству записей
            recordCount++;
            if (recordCount >= RecordCountMax)
            {
                return(null);
            }
            else
            {
                return(result);
            }
        }
Example #5
0
 /// <summary>
 /// Обновления надписей и иконок.
 /// </summary>
 public void UpdateExistCaptionAndIcon()
 {
     foreach (ViewMemberInfo info in MemberInits)
     {
         ViewMemberInfo infoExist = MemberExists.FindInfo(info);
         if (infoExist != null)
         {
             infoExist.Caption = info.Caption;
             DBForm.CreateIcon(infoExist.Item, info);
         }
     }
 }
Example #6
0
        /// <summary>
        /// Автоматическое создание элемента коллекции.
        /// </summary>
        public DBFormItemBase CreateInstance(ViewMemberInfo info = null)
        {
            DBFormItemBase item = null;

            if (info == null)
            {
                item = DBForm.CreateInstance(treeList: treeExist, memberExists: MemberExists);
            }
            else if (MemberExists.FindInfo(info) == null)
            {
                item = DBForm.CreateInstance(info, treeExist, MemberExists);
            }
            return(item);
        }
Example #7
0
        /// <summary>
        /// Обновления дерева уже созданных записей.
        /// </summary>
        public void UpdateExistData()
        {
            MemberExists.Clear();

            foreach (DBFormItemBase item in DBForm.Items)
            {
                DBForm.PrintExistData(treeExist, item, MemberExists);
            }

            treeExist.ExpandAll();

            UpdateExistButtons();

            DBForm.Items.CorrectImageIndex();
        }
 private void treeExist_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Right)
     {
         Point        point = treeExist.PointToClient(Control.MousePosition);
         TreeListNode node  = GetTreeListNode(treeExist, point);
         if (node != null)
         {
             TableMemberInfo tmInfo = treeExist.GetDataRecordByNode(node) as TableMemberInfo;
             if (tmInfo != null)
             {
                 MemberExists.Remove(tmInfo);
             }
         }
     }
 }
        /// <summary>
        /// Обновления дерева уже созданных записей.
        /// </summary>
        public void UpdateExistData()
        {
            MemberExists.Clear();
            foreach (DBInterfaceItemBase item in DBInterface.Items)
            {
                TableMemberInfo info = DBInterface.PrintExistData(treeExist, item, MemberExists);

                if (item is DBInterfaceItemXPComplex)
                {
                    CreateExistData((DBInterfaceItemXPComplex)item, info.Items, 1);
                }
            }
            treeExist.ExpandAll();
            UpdateExistButtons();
            DBInterface.ItemsSeq.CorrectImageIndex();
        }
        /// <summary>
        /// Рекурсивный метод обновления надписей и иконок..
        /// </summary>
        private void UpdateExistCaptionAndIcon(TableMemberInfos infos, int level)
        {
            foreach (TableMemberInfo info in infos)
            {
                TableMemberInfo infoExist = MemberExists.FindInfo(info);
                if (infoExist != null)
                {
                    infoExist.Caption = info.Caption;
                    DBInterface.CreateIcon(infoExist.Item, info);

                    if (info.Items.Count > 0)
                    {
                        UpdateExistCaptionAndIcon(info.Items, level + 1);
                    }
                }
            }
        }
        /// <summary>
        /// Обновления надписей и иконок.
        /// </summary>
        public void UpdateExistCaptionAndIcon()
        {
            foreach (TableMemberInfo info in MemberInits)
            {
                TableMemberInfo infoExist = MemberExists.FindInfo(info);
                if (infoExist != null)
                {
                    infoExist.Caption = info.Caption;
                    DBInterface.CreateIcon(infoExist.Item, info);

                    if (info.Items.Count > 0)
                    {
                        UpdateExistCaptionAndIcon(info.Items, 1);
                    }
                }
            }

            DBInterface.TableCaption = DBAttribute.GetCaption(DBInterface.TableType);
        }
        /// <summary>
        /// Автоматическое создание элемента коллекции.
        /// </summary>
        public DBInterfaceItemBase CreateInstance(TableMemberInfo tmInfo)
        {
            DBInterfaceItemBase item       = null;
            TableMemberInfo     infoParent = null;
            TableMemberInfo     infoSelect = null;

            int level = tmInfo.GetLevel();

            for (int i = 0; i < level; i++)
            {
                infoParent = tmInfo.GetParent(level - i);
                infoSelect = MemberExists.FindInfo(infoParent.Parent);
                if (MemberExists.FindInfo(infoParent) == null)
                {
                    item = DBInterface.CreateInstance(infoParent.PropertyType, infoParent, infoSelect, treeExist, MemberExists);
                }
            }

            return(item);
        }