private void AddSearchPropertyNode(SearchProperty phrase, AdvanceSearchNode andOrNode) { var newnode = new AdvanceSearchNode(); newnode.ParentNode = andOrNode; newnode.Title = phrase.ColumnID.ToString(); andOrNode.ChildItems.Add(newnode); newnode.NodeManager = andOrNode.NodeManager.AddChildItem(); newnode.NodeManager.SetHeader(newnode.Title); newnode.Phrase = phrase; I_AdvanceSearchMenu removeMenu = newnode.NodeManager.AddMenu("حذف"); removeMenu.Clicked += (sender1, e1) => RemoveMenu_Clicked(sender1, e1, andOrNode, newnode); }
//private AdvanceSearchNode AddSearchRepository(AdvanceSearchNode parentNode, DP_SearchRepository searchRepository) //{ // if (searchRepository == null) // return null; // var newnode = new AdvanceSearchNode(); // newnode.ParentNode = parentNode; // newnode.Title = searchRepository.Name; // newnode.NodeManager.SetHeader(newnode.Title); // newnode.Phrase = searchRepository; // if (parentNode != null) // { // parentNode.ChildItems.Clear(); // parentNode.NodeManager.ClearItems(); // newnode.EntityID = searchRepository.TargetEntityID; // newnode.NodeManager = parentNode.NodeManager.AddChildItem(); // } // else // { // newnode.EntityID = SearchInitializer.EntityID; // RootNode = newnode; // newnode.NodeManager = AdvancedSearchView.AddTreeItem(); // } // foreach (var item in searchRepository.Phrases) // { // if (item is DP_SearchRepository) // { // AddSearchRepository(newnode, (item as DP_SearchRepository)); // } // else if (item is LogicPhrase) // { // AddLogicPhrase(newnode, (item as LogicPhrase)); // } // else if (item is SearchProperty) // { // AddChildNode((item as SearchProperty), newnode); // } // } // return newnode; //} private AdvanceSearchNode AddLogicNode(AdvanceSearchNode parentNode, LogicPhraseDTO logicPhrase) { if (RootNode == null && logicPhrase is DP_SearchRepository) { firstRepository = logicPhrase as DP_SearchRepository; } var newnode = new AdvanceSearchNode(); newnode.ParentNode = parentNode; if (logicPhrase is DP_SearchRepository) { newnode.Title = (logicPhrase as DP_SearchRepository).Title; } else { if (logicPhrase.AndOrType == AndOREqualType.And) { newnode.Title = "And"; } else if (logicPhrase.AndOrType == AndOREqualType.Or) { newnode.Title = "Or"; } else if (logicPhrase.AndOrType == AndOREqualType.NotAnd) { newnode.Title = "Not And"; } else if (logicPhrase.AndOrType == AndOREqualType.NotOr) { newnode.Title = "Not Or"; } } if (parentNode != null) { if (logicPhrase is DP_SearchRepository) { newnode.EntityID = (logicPhrase as DP_SearchRepository).TargetEntityID; } else { newnode.EntityID = parentNode.EntityID; } } else { newnode.EntityID = SearchInitializer.EntityID; } if (parentNode != null) { parentNode.ChildItems.Add(newnode); } else { RootNode = newnode; } if (parentNode != null) { newnode.NodeManager = parentNode.NodeManager.AddChildItem(); } else { newnode.NodeManager = AdvancedSearchView.AddTreeItem(); } newnode.NodeManager.SetHeader(newnode.Title); newnode.Phrase = logicPhrase; //(newnode.Phrase as LogicPhrase).AndOrType = logicPhrase.AndOrType; foreach (var item in logicPhrase.Phrases) { if (item is DP_SearchRepository) { AddLogicNode(newnode, (item as LogicPhraseDTO)); } else if (item is LogicPhraseDTO) { AddLogicNode(newnode, (item as LogicPhraseDTO)); } else if (item is SearchProperty) { AddSearchPropertyNode((item as SearchProperty), newnode); } } if (GetParentSearchRepository(newnode)) { I_AdvanceSearchMenu rootAndMenu = newnode.NodeManager.AddMenu("And"); rootAndMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.And); I_AdvanceSearchMenu rootNotAndMenu = newnode.NodeManager.AddMenu("Not And"); rootAndMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.NotAnd); I_AdvanceSearchMenu rootOrMenu = newnode.NodeManager.AddMenu("Or"); rootOrMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.Or); I_AdvanceSearchMenu rootNotOrMenu = newnode.NodeManager.AddMenu("Or"); rootOrMenu.Clicked += (sender, e) => RootAndMenu_Clicked(sender, e, newnode, AndOREqualType.NotOr); I_AdvanceSearchMenu simpleSearchMenu = newnode.NodeManager.AddMenu("خصوصیات"); simpleSearchMenu.Clicked += (sender1, e1) => RootAndMenu_Clicked1(sender1, e1, newnode); foreach (var relationship in FullEntity.Relationships) //.Where(x => x.SearchEnabled == true)) { I_AdvanceSearchMenu relationshipSearchMenu = newnode.NodeManager.AddMenu(relationship.Alias); relationshipSearchMenu.Clicked += (sender1, e1) => Relationship_ClickedNew(sender1, e1, newnode, relationship); } } else { if (logicPhrase is DP_SearchRepository) { I_AdvanceSearchMenu editRelationshipSearchMenu = newnode.NodeManager.AddMenu("اصلاح"); editRelationshipSearchMenu.Clicked += (sender1, e1) => Relationship_ClickedEdit(sender1, e1, newnode, (logicPhrase as DP_SearchRepository)); } } if (parentNode != null) { I_AdvanceSearchMenu removeMenu = newnode.NodeManager.AddMenu("حذف"); removeMenu.Clicked += (sender1, e1) => RemoveMenu_Clicked(sender1, e1, parentNode, newnode); } return(newnode); }