Exemple #1
0
 /// <summary>
 /// Фукус на искомой записи
 /// </summary>
 public void FocusRecord(XPBaseObject record)
 {
     if (DBInterface != null)
     {
         DBInterface.FocusRecord(record);
     }
 }
        public DBInterfaceDesignerForm(DBInterface dbInterface)
        {
            InitializeComponent();
            DBInterface            = dbInterface;
            TypeCurrent            = typeof(string);
            drbtnAddColletion.Text = string.Format("Добавить (String)");

            MemberInits    = new TableMemberInfos();
            MemberExists   = new TableMemberInfos();
            LevelMax       = 6;
            RecordCountMax = 100000;

            treeExist.StateImageList = DBInterface.Icons;

            TypeTables = new XPTables();
            TypeTables.FillTable(DBInterface.TypeDiscoveryService, typeof(XPBaseObject));

            UpdateExistData();

            CreateInitData();

            treeInit.DataSource       = MemberInits;
            treeExist.DataSource      = MemberExists;
            dbInterface.ItemsChanged += dbInterface_ItemsChanged;

            gluInits.Properties.DataSource = TypeTables;

            gluInits.EditValue = TypeTables.Find(DBInterface.TableType);
        }
Exemple #3
0
 private void DBInterfaceView_FormUpdate(object sender, EventArgs e)
 {
     if (DBInterface != null)
     {
         DBInterface.NavigatorControl_DateBaseUpdating(sender, e);
     }
 }
        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);
            }
        }
        /// <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);
            }
        }
Exemple #6
0
 void componentChangeService_ComponentRemoving(object sender, ComponentEventArgs e)
 {
     // If the user is removing the control itself
     if (e.Component == DBInterface)
     {
         IComponentChangeService componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
         DBInterface.DestroyVisibleComponents();
         componentChangeService.OnComponentChanged(DBInterface, null, null, null);
     }
 }
        protected override void DestroyInstance(object instance)
        {
            DBInterface dbInterface = FindDBInterface();

            if (instance is DBInterfaceItemBase)
            {
                dbInterface.DestroyInstance(instance as DBInterfaceItemBase);
            }
            base.DestroyInstance(instance);
        }
        void form_FormClosed(object sender, FormClosedEventArgs e)
        {
            //При закрытие формы уведомить компонент о необходимости обновления данных.
            DBInterface dbInterface = FindDBInterface();

            if (dbInterface != null)
            {
                dbInterface.InvokeItemsChanged(this, EventArgs.Empty);
            }
        }
 /// <summary>
 /// Рекурсивный метод обновления записей уже созданных записей.
 /// </summary>
 private void CreateExistData(DBInterfaceItemXPComplex itemComplex, TableMemberInfos infos, int level)
 {
     foreach (DBInterfaceItemBase item in itemComplex.Items)
     {
         TableMemberInfo tmInfo = DBInterface.PrintExistData(treeExist, item, infos);
         if (item is DBInterfaceItemXPComplex)
         {
             CreateExistData((DBInterfaceItemXPComplex)item, tmInfo.Items, level + 1);
         }
     }
 }
Exemple #10
0
        /// <summary>
        /// Удаление компонента и других связанных с ним компонентов.
        /// </summary>
        public void DestroyVisibleComponents()
        {
            IDesignerHost       host        = (IDesignerHost)GetService(typeof(IDesignerHost));
            DesignerTransaction transaction = host.CreateTransaction("DestroyVisibleComponent");

            DBInterface.DestroyVisibleComponents();

            HostComponent.DestroyComponent(host, DBInterface);

            transaction.Commit();
        }
        protected override object CreateInstance(Type itemType)
        {
            DBInterface dbInterface = FindDBInterface();

            if (dbInterface != null)
            {
                return(dbInterface.CreateInstance(itemType));
            }
            else
            {
                return(null);
            }
        }
Exemple #12
0
        /// <summary>
        /// Инициализация компонента и создание группы других компонентов.
        /// </summary>
        public void InitializeVisibleComponents()
        {
            IDesignerHost       host        = (IDesignerHost)GetService(typeof(IDesignerHost));
            DesignerTransaction transaction = host.CreateTransaction("InitializeDBInterfaceView");

            // Create compnonents
            DBInterface = (DBInterface)HostComponent.CreateComponent(host, typeof(DBInterface), "_dbInterface");

            DBInterface.Dock = DockStyle.Fill;
            DBInterface.InitializeVisibleComponents();

            Controls.Add(DBInterface);

            transaction.Commit();
        }
        /// <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);
        }
        void ControlEdit_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                GridLookUpEdit edit = sender as GridLookUpEdit;
                if (edit != null && edit.EditValue is XPBaseObject)
                {
                    XPObjectEventArgs arg = new XPObjectEventArgs();
                    arg.TableType = TableType;
                    arg.Record    = edit.EditValue as XPBaseObject;

                    if (RightMouseDown != null)
                    {
                        RightMouseDown(sender, arg);
                    }

                    if (DBInterface != null)
                    {
                        DBInterface.InvokeRightMouseDown(sender, arg);
                    }
                }
            }
        }
Exemple #18
0
        public DBInterfaceDesignerVerbCollections(DBInterface dbInterface)
        {
            DBInterface = dbInterface;

            Add(new DesignerVerb("Run Designer", OnDesigner));
        }
 public void OnAddFindPanelToEverything()
 {
     DBInterface.AddFindPanelToEverything();
 }
 public void OnDesigner()
 {
     DBInterface.ShowDesigner();
 }
Exemple #21
0
 public override void InitializeNewComponent(IDictionary defaultValues)
 {
     base.InitializeNewComponent(defaultValues);
     DBInterface.InitializeVisibleComponents();
 }
 private void BDInterfaceDesignerForm_FormClosed(object sender, FormClosedEventArgs e)
 {
     DBInterface.CountOpenDesigner++;
     DBInterface.RefreshDesignCode();
 }
 /// <summary>
 /// Ручное создание элемента коллекции.
 /// </summary>
 public DBInterfaceItemBase CreateInstance(Type type)
 {
     return(DBInterface.CreateInstance(type, infoSelect: SelectedExistInfo, treeList: treeExist, MemberExists: MemberExists));
 }