///<summary>
        /// Constructor for the <see cref="BOSelectorAndEditorManager"/>
        ///</summary>
        ///<param name="boColSelector"></param>
        ///<param name="boEditor"></param>
        public BOSelectorAndEditorManager(IBOColSelectorControl boColSelector, IBusinessObjectControl boEditor)
        {

            if (boColSelector == null) throw new ArgumentNullException("boColSelector");
            if (boEditor == null) throw new ArgumentNullException("boEditor");
            this.BOColSelector = boColSelector;
            this.BOEditor = boEditor;
            this.AddBoSelectedEventHandler();
        }
        protected override int SelectedIndex(IBOColSelectorControl colSelector)
        {
            IGridBase gridSelector = (IGridBase) colSelector;
            IDataGridViewRow currentRow = null;
            if (gridSelector.SelectedRows.Count > 0)
            {
                currentRow = gridSelector.SelectedRows[0];
            }
            if (currentRow == null) return -1;

            return gridSelector.Rows.IndexOf(currentRow);
        }
        public virtual void Test_SetAutoSelectFirstItem_ShouldChangeAutoSelection()
        {
            //---------------Set up test pack-------------------
            IBOColSelectorControl colSelector = CreateSelector();

            //---------------Assert Precondition----------------
            Assert.IsTrue(colSelector.AutoSelectFirstItem);
            //---------------Execute Test ----------------------
            colSelector.AutoSelectFirstItem = false;
            //---------------Test Result -----------------------
            Assert.IsFalse(colSelector.AutoSelectFirstItem);
        }
 protected override void SetSelectedIndex(IBOColSelectorControl colSelector, int index)
 {
     int count = 0;
     foreach (IDataGridViewRow row in ((IGridBase) colSelector).Rows)
     {
         if (count == index)
         {
             IBusinessObject businessObjectAtRow = ((IGridBase) colSelector).GetBusinessObjectAtRow(count);
             colSelector.SelectedBusinessObject = businessObjectAtRow;
         }
         count++;
     }
 }
        protected override int SelectedIndex(IBOColSelectorControl colSelector)
        {
            IEditableGrid gridSelector = ((IEditableGridControl)colSelector).Grid;
            IDataGridViewRow currentRow = null;
            if (gridSelector.SelectedRows.Count > 0)
            {
                currentRow = gridSelector.SelectedRows[0];
            }

            if (currentRow == null) return -1;

            return gridSelector.Rows.IndexOf(currentRow);
        }
 protected override int SelectedIndex(IBOColSelectorControl colSelector)
 {
     ICollapsiblePanelGroupControl groupControl = ((ICollapsiblePanelGroupControl) colSelector);
     int count = 0;
     foreach (ICollapsiblePanel panel in groupControl.PanelsList)
     {
         if (!panel.Collapsed)
         {
             return count;
         }
         count++;
     }
     return -1;
 }
        public virtual void Test_SetBOCol()
        {
            //---------------Set up test pack-------------------
            IBOColSelectorControl     colSelector = CreateSelector();
            IBusinessObjectCollection collection  = GetCollectionWithNoItems();

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            colSelector.BusinessObjectCollection = collection;
            //---------------Test Result -----------------------
            Assert.AreSame(collection, colSelector.BusinessObjectCollection);
            Assert.AreEqual(ActualNumberOfRows(0), colSelector.NoOfItems, "By default should always put 1 item in blank");
        }
        public virtual void Test_Constructor_BOTabControlSet()
        {
            //---------------Set up test pack-------------------

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            IBOColSelectorControl colSelector = CreateSelector();

            //---------------Test Result -----------------------
            Assert.IsNotNull(colSelector);
            Assert.IsInstanceOf(typeof(IBOColTabControl), colSelector);
//            Assert.IsInstanceOf(typeof (IBOColTabControl), selector);
        }
        public virtual void Test_SetBOCol_SetsItemsInSelector()
        {
            //---------------Set up test pack-------------------
            IBOColSelectorControl     colSelector = CreateSelector();
            IBusinessObject           bo;
            IBusinessObjectCollection collection = GetCollectionWithOneBO(out bo);

            //---------------Assert Precondition----------------
            Assert.AreEqual(1, collection.Count);
            //---------------Execute Test ----------------------
            colSelector.BusinessObjectCollection = collection;
            //---------------Test Result -----------------------
            Assert.AreSame(collection, colSelector.BusinessObjectCollection);
            Assert.AreEqual(ActualNumberOfRows(collection.Count), colSelector.NoOfItems, "The blank item and one other");
        }
        protected override void SetSelectedIndex(IBOColSelectorControl colSelector, int index)
        {
            int count = 0;

            IEditableGrid readOnlyGrid = ((IEditableGridControl)colSelector).Grid;
            foreach (IDataGridViewRow row in readOnlyGrid.Rows)
            {
                if (row == null) continue;//This is done to stop the Pragma warning.
                if (count == index)
                {
                    IBusinessObject businessObjectAtRow = readOnlyGrid.GetBusinessObjectAtRow(count);
                    colSelector.SelectedBusinessObject = businessObjectAtRow;
                }
                count++;
            }
        }
        public virtual void Test_GetBusinessObjectAtRow_GTNoRows_ReturnsNull()
        {
            //---------------Set up test pack-------------------
            IBOColSelectorControl     colSelector = CreateSelector();
            IBusinessObject           bo;
            IBusinessObjectCollection collection = GetCollectionWithOneBO(out bo);

            colSelector.BusinessObjectCollection = collection;
            //---------------Assert Precondition----------------
            Assert.AreSame(collection, colSelector.BusinessObjectCollection);
            Assert.AreEqual(ActualNumberOfRows(collection.Count), colSelector.NoOfItems, "The blank item and one other");
            //---------------Execute Test ----------------------
            IBusinessObject businessObjectAtRow = colSelector.GetBusinessObjectAtRow(ActualIndex(1));

            //---------------Test Result -----------------------
            Assert.IsNull(businessObjectAtRow);
        }
 protected override void SetSelectedIndex(IBOColSelectorControl colSelector, int index)
 {
     ICollapsiblePanelGroupControl groupControl = ((ICollapsiblePanelGroupControl) colSelector);
     groupControl.AllCollapsed = true;
     ((ICollapsiblePanelGroupControl) colSelector).PanelsList[index].Collapsed = false;
 }
 protected abstract int SelectedIndex(IBOColSelectorControl colSelector);
 protected override void SetSelectedIndex(IBOColSelectorControl colSelector, int index)
 {
     IBOColTabControl groupControl = ((IBOColTabControl)colSelector);
     groupControl.TabControl.SelectedIndex = index;
 }
 protected override void SetSelectedIndex(IBOColSelectorControl colSelector, int index)
 {
     ((IBOListBoxSelector)colSelector).ListBox.SelectedIndex = index;
 }
 protected override int SelectedIndex(IBOColSelectorControl colSelector)
 {
     return ((IBOListBoxSelector)colSelector).ListBox.SelectedIndex;
 }
 private void CreateBoSelectorAndEditorManager(out IBOColSelectorControl boColSelector, out IBusinessObjectControl boEditor)
 {
     IClassDef classDef = ClassDef.Get<MyBO>();
     boColSelector = GetControlFactory().CreateReadOnlyGridControl();
     boEditor = GetControlFactory().CreateBOEditorControl(classDef);
     new BOSelectorAndEditorManager(boColSelector, boEditor);
     IFormHabanero form = GetControlFactory().CreateForm();
     form.Controls.Add(boColSelector);
     return;
 }
        protected override int SelectedIndex(IBOColSelectorControl colSelector)
        {

            IBOColTabControl groupControl = ((IBOColTabControl) colSelector);
            return groupControl.TabControl.SelectedIndex;
        }
 protected abstract void SetSelectedIndex(IBOColSelectorControl colSelector, int index);