/// <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); } }
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); } }
/// <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); } } }
/// <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); }
/// <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); }