/// <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); }
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); } }
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); } } }
/// <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); } }
/// <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); } } } }
public DBInterfaceDesignerVerbCollections(DBInterface dbInterface) { DBInterface = dbInterface; Add(new DesignerVerb("Run Designer", OnDesigner)); }
public void OnAddFindPanelToEverything() { DBInterface.AddFindPanelToEverything(); }
public void OnDesigner() { DBInterface.ShowDesigner(); }
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)); }