public AVLTreeSort(CompareMethod <T> aSortMethod, DuplicateHandlingType aDuplicateHandling)
        {
            sortMethod        = aSortMethod;
            duplicateHandling = aDuplicateHandling;
            switch (DuplicateHandling)
            {
            case DuplicateHandlingType.CollectDuplicates:
                tree = new BaseAVLTreeSort <T, T[]> (aSortMethod, aDuplicateHandling);
                break;

            case DuplicateHandlingType.ThrowException:
            case DuplicateHandlingType.Drop:
                tree = new BaseAVLTreeSort <T, T> (aSortMethod, aDuplicateHandling);
                break;
            }
        }
 internal BaseAVLTreeSort(CompareMethod <T> aSortMethod, DuplicateHandlingType aDuplicateHandling)
 {
     sortMethod        = aSortMethod;
     duplicateHandling = aDuplicateHandling;
     args = CreateSortArgs();
     if (DuplicateHandling == DuplicateHandlingType.CollectDuplicates)
     {
         sentinel = new MultiInstanceAVLTreeSortNode <T>();
     }
     else
     {
         sentinel = new SingleInstanceAVLTreeSortNode <T>();
     }
     //sentinel = new Node<T>();
     root    = sentinel;
     deleted = null;
 }
 public ObservableSortListView(IList aParentList, CompareMethod <object> aSortMethod, DuplicateHandlingType aDuplicateHandling)
     : base(aParentList)
 {
     items = new AVLTreeSort <object> (aSortMethod, aDuplicateHandling);
 }
		public ObservableSortListView (IList aParentList, CompareMethod<object> aSortMethod, DuplicateHandlingType aDuplicateHandling)
			: base (aParentList)
		{
			items = new AVLTreeSort<object> (aSortMethod, aDuplicateHandling);
		}
 public StringArrayParameter(string name, LocalizedString dialogTitle, LocalizedString dialogLabel, int maxLength, LocalizedString noSelectionText, string inputWaterMarkText, string validationExpression, string validationErrorMessage, DuplicateHandlingType duplicateHandlingType) : this(name, dialogTitle, dialogLabel, maxLength, noSelectionText, inputWaterMarkText, validationExpression, validationErrorMessage)
 {
     this.DuplicateHandlingType = duplicateHandlingType;
 }
 public SortEventArgs(IAVLTreeSort <T> aTree, CompareMethod <T> aMethod, DuplicateHandlingType aDuplicates)
 {
     tree              = aTree;
     method            = aMethod;
     duplicateHandling = aDuplicates;
 }