private ObservableCollection <CheckableTreeViewItem> findChildren(CheckableTreeViewItem parent, IMa root) { var tempList = new ObservableCollection <CheckableTreeViewItem>(); IEnumerator enumerator = root.Asmas.GetEnumerator(); while (enumerator.MoveNext()) { var currentAsma = (IAsma)enumerator.Current; if (currentAsma.AssociatedBieAggregator.IsAbie) { IAbie currentAbie = currentAsma.AssociatedBieAggregator.Abie; if (findAbie(currentAbie.Name, rootElement.CandidateAbies) == null) { rootElement.CandidateAbies.Add(new CandidateAbie(currentAbie, AbieFindChildren(currentAbie))); } var currentItem = new CheckableTreeViewItem(true, currentAbie.Name, idCounter++); currentItem.Children = findChildren(currentItem, currentAbie); currentItem.Parent = parent; tempList.Add(currentItem); } else if (currentAsma.AssociatedBieAggregator.IsMa) { IMa currentMa = currentAsma.AssociatedBieAggregator.Ma; var currentItem = new CheckableTreeViewItem(currentMa.Name, idCounter++); currentItem.Children = findChildren(currentItem, currentMa); currentItem.Parent = parent; tempList.Add(currentItem); } } return(tempList); }
private void checkChildren(CheckableTreeViewItem itemToCheck) { foreach (CheckableTreeViewItem child in itemToCheck.Children) { child.Checked = itemToCheck.Checked; SetCheckedCandidateAbie(child); //var abie = findAbie(child.Text, rootElement.CandidateAbies); //abie.Checked = itemToCheck.Checked; //child.Checked = itemToCheck.Checked; //if (child.Children != null) //{ // checkChildren(child); //} } }
private ObservableCollection <CheckableTreeViewItem> findChildren(CheckableTreeViewItem parent, IAbie root) { var tempList = new ObservableCollection <CheckableTreeViewItem>(); IEnumerator enumerator = root.Asbies.GetEnumerator(); while (enumerator.MoveNext()) { var currentAsbie = (IAsbie)enumerator.Current; IAbie currentAbie = currentAsbie.AssociatedAbie; var currentItem = new CheckableTreeViewItem(true, currentAbie.Name, idCounter++); currentItem.Children = findChildren(currentItem, currentAbie); currentItem.Parent = parent; tempList.Add(currentItem); } return(tempList); }
private void checkAllParents(CheckableTreeViewItem itemToCheck) { if (itemToCheck.Parent != null) { itemToCheck.Parent.Checked = itemToCheck.Checked; SetCheckedCandidateAbie(itemToCheck.Parent); //if (itemToCheck.Checked) //{ // var abie = findAbie(itemToCheck.Parent.Text, rootElement.CandidateAbies); // if (abie != null) // { // abie.Checked = itemToCheck.Checked; // itemToCheck.Parent.Checked = itemToCheck.Checked; // } //} //checkAllParents(itemToCheck.Parent); } }
private List <CheckableTreeViewItem> buildCheckableTreeView(CandidateRootElement ma) { var checkableTreeViewItems = new List <CheckableTreeViewItem>(); foreach (IAsma asma in ma.OriginalMa.Asmas) { if (asma.AssociatedBieAggregator.IsMa) { var currentItem = new CheckableTreeViewItem(asma.AssociatedBieAggregator.Ma.Name, idCounter++) { Parent = null }; currentItem.Children = findChildren(currentItem, asma.AssociatedBieAggregator.Ma); checkableTreeViewItems.Add(currentItem); } else if (asma.AssociatedBieAggregator.IsAbie) { rootElement.CandidateAbies.Add(new CandidateAbie(asma.AssociatedBieAggregator.Abie, AbieFindChildren(asma.AssociatedBieAggregator.Abie))); var currentItem = new CheckableTreeViewItem(true, asma.AssociatedBieAggregator.Abie.Name, idCounter++) { Parent = null }; currentItem.Children = findChildren(currentItem, asma.AssociatedBieAggregator.Abie); checkableTreeViewItems.Add(currentItem); } } //also visualize Root Element in Tree! var root = new CheckableTreeViewItem(ma.OriginalMa.Name, idCounter++) { Children = new ObservableCollection <CheckableTreeViewItem>(checkableTreeViewItems) }; return(new List <CheckableTreeViewItem> { root }); }
public void SetSelectedCandidateAbie(CheckableTreeViewItem checkableTreeViewItem) { mPotentialBbieItems = new List <CheckableItem>(); CandidateAbie abie = findAbie(checkableTreeViewItem.Text, rootElement.CandidateAbies); if (abie != null) { if (abie.PotentialBbies == null) { var bbies = new List <IBbie>(abie.OriginalAbie.Bbies); abie.PotentialBbies = new List <PotentialBbie>( bbies.ConvertAll(potBbie => new PotentialBbie(potBbie.Name))); } if (abie.PotentialAsbies == null) { var asbies = new List <IAsbie>(abie.OriginalAbie.Asbies); abie.PotentialAsbies = new List <PotentialAsbie>( asbies.ConvertAll( potAsbie => new PotentialAsbie(potAsbie.Name, (potAsbie.AssociatingAbie.Equals(potAsbie))))); } mPotentialBbieItems = new List <CheckableItem>( abie.PotentialBbies.ConvertAll( potBbie => new CheckableItem(potBbie.Checked, potBbie.Name, true, false, Cursors.Arrow))); mPotentialAsbieItems = new List <IOConnectionItem>( abie.PotentialAsbies.ConvertAll( potAsbie => new IOConnectionItem(potAsbie.Name, potAsbie.Incoming, potAsbie.Checked))); abie.Selected = true; UnSelectAllButAbie(abie.Name, rootElement.CandidateAbies); } PotentialBbieItems = mPotentialBbieItems; PotentialAsbieItems = mPotentialAsbieItems; }
public void SetCheckedCandidateAbie(CheckableTreeViewItem checkableTreeViewItem) { if (checkableTreeViewItem != null) { CandidateAbie abie = findAbie(checkableTreeViewItem.Text, rootElement.CandidateAbies); if (abie == null) { return; // it's ok.. we found an MA } //check all related Nodes from tree if checked is true if (checkableTreeViewItem.Checked) { checkAllParents(checkableTreeViewItem); } else { checkChildren(checkableTreeViewItem); } //checkChildren(result, checkedValue); change from 08.04.2010 => only uncheck children if (abie.PotentialBbies == null) { var bbies = new List <IBbie>(abie.OriginalAbie.Bbies); abie.PotentialBbies = new List <PotentialBbie>(bbies.ConvertAll(potBbie => new PotentialBbie(potBbie.Name))); } foreach (PotentialBbie bbie in abie.PotentialBbies) { bbie.Checked = checkableTreeViewItem.Checked; } abie.Checked = checkableTreeViewItem.Checked; CandidateAbieItems = new ObservableCollection <CheckableTreeViewItem>(mCandidateAbieItems); } }