private void CreateEntityElementAssociations(ParserValidationDelegate vd) { foreach (EntityElement entity in entities) { //Fields which are entities. foreach (PropertyElement property in entity.Fields) { if (property.Entity.Name.Length > 0) { EntityElement e = EntityElement.FindEntityByName(entities, property.Entity.Name); if (e != null) { property.Entity = e; } else { vd(ParserValidationArgs.NewError("Property (" + property.Name + ") specifies an entity " + property.Entity.Name + " that could not be found as an defined entity")); } } } //Dependant entities. ArrayList dependents = new ArrayList(); foreach (EntityElement dependent in entity.Dependents) { EntityElement e = EntityElement.FindEntityByName(entities, dependent.Name); if (e != null) { dependents.Add(e); } else { vd(ParserValidationArgs.NewError("Entity (" + entity.Name + ") specifies a dependent entity " + dependent.Name + " that could not be found as an defined entity")); } } entity.Dependents = dependents; } }
private void ShowEntities(Int32 level, String nodeText, String parentNodeText) { if (level == 0) { listView1.Items.Clear(); listView1.Columns.Clear(); listView1.Columns.Add("Name", -1, HorizontalAlignment.Left); listView1.Columns.Add("Base Entity", -1, HorizontalAlignment.Left); listView1.Columns.Add("Abstract", -1, HorizontalAlignment.Left); foreach (EntityElement entity in entities) { ListViewItem lvi = new ListViewItem(entity.Name); lvi.SubItems.Add(entity.BaseEntity.Name); lvi.SubItems.Add(entity.IsAbstract.ToString()); listView1.Items.Add(lvi); } } if (level == 1) { listView1.Items.Clear(); EntityElement entity = EntityElement.FindEntityByName((ArrayList)entities, nodeText); listView1.Columns.Clear(); listView1.Columns.Add("Name", -1, HorizontalAlignment.Left); listView1.Columns.Add("Type", -1, HorizontalAlignment.Left); listView1.Columns.Add("Concrete Type", -1, HorizontalAlignment.Left); listView1.Columns.Add("SqlEntity Column", -1, HorizontalAlignment.Left); listView1.Columns.Add("ViewColumn", -1, HorizontalAlignment.Left); listView1.Columns.Add("Convert From SqlType Format", -1, HorizontalAlignment.Left); listView1.Columns.Add("Access Modifier", -1, HorizontalAlignment.Left); listView1.Columns.Add("Description", -1, HorizontalAlignment.Left); listView1.Columns.Add("Readable", -1, HorizontalAlignment.Left); listView1.Columns.Add("Writable", -1, HorizontalAlignment.Left); foreach (PropertyElement field in entity.Fields) { ListViewItem lvi = new ListViewItem(field.Name); lvi.SubItems.Add(field.Type.Name); lvi.SubItems.Add(field.Type.ConcreteType); lvi.SubItems.Add(field.Column.Name); lvi.SubItems.Add(field.Column.ViewColumn.ToString()); lvi.SubItems.Add(field.Type.ConvertFromSqlTypeFormat); lvi.SubItems.Add(field.AccessModifier); lvi.SubItems.Add(field.Description); lvi.SubItems.Add(field.Readable.ToString()); lvi.SubItems.Add(field.Writable.ToString()); listView1.Items.Add(lvi); } } if (level == 3) { listView1.Items.Clear(); EntityElement entity = EntityElement.FindEntityByName((ArrayList)entities, treeView1.SelectedNode.Parent.Parent.Text); listView1.Columns.Clear(); listView1.Columns.Add("Finder Property Name", -1, HorizontalAlignment.Left); FinderElement finder = entity.FindFinderByName(nodeText); foreach (PropertyElement field in finder.Fields) { listView1.Items.Add(field.Name); } } }