Example #1
0
        private void SetupControl(IControlFactory controlFactory, IBusinessObjectControl businessObjectControl, string uiDefName)
        {
            if (controlFactory == null)
            {
                throw new ArgumentNullException("controlFactory");
            }
            if (businessObjectControl == null)
            {
                throw new ArgumentNullException("businessObjectControl");
            }

            _controlFactory        = controlFactory;
            _businessObjectControl = businessObjectControl;

            SetupReadOnlyGridControl(uiDefName);
            SetupButtonGroupControl();
            UpdateControlEnabledState();

            BorderLayoutManager layoutManager = _controlFactory.CreateBorderLayoutManager(_gridWithPanelControl);

            layoutManager.AddControl(ReadOnlyGridControl, BorderLayoutManager.Position.North);
            layoutManager.AddControl(_businessObjectControl, BorderLayoutManager.Position.Centre);
            layoutManager.AddControl(_buttonControl, BorderLayoutManager.Position.South);

            ConfirmSaveDelegate += CheckUserWantsToSave;
        }
Example #2
0
        public void TestBusinessObjectControlHasDifferentBOWhenTabChanges()
        {
            //---------------Set up test pack-------------------
            IBOColTabControl boColTabControl = GetControlFactory().CreateBOColTabControl();

            IBusinessObjectControl busControl = GetBusinessObjectControlStub();

            boColTabControl.BusinessObjectControl = busControl;

            BusinessObjectCollection <MyBO> myBoCol = new BusinessObjectCollection <MyBO>();
            MyBO firstBo = new MyBO();

            myBoCol.Add(firstBo);
            myBoCol.Add(new MyBO());
            MyBO thirdBO = new MyBO();

            myBoCol.Add(thirdBO);
            boColTabControl.BusinessObjectCollection = myBoCol;

            //---------------Assert Precondition----------------
            Assert.AreEqual(firstBo, boColTabControl.BusinessObjectControl.BusinessObject);

            //---------------Execute Test ----------------------
            boColTabControl.TabControl.SelectedIndex = 2;

            //---------------Test Result -----------------------
            Assert.AreNotSame(firstBo, boColTabControl.BusinessObjectControl.BusinessObject);
            Assert.AreEqual(thirdBO, boColTabControl.BusinessObjectControl.BusinessObject);
        }
Example #3
0
        public void Test_WhenUsingCreator_WhenSetBOCol_ShouldCreateTabPageWithControlFromCreator()
        {
            //---------------Set up test pack-------------------
            BusinessObjectControlCreatorDelegate creator;
            BOColTabControlManager selectorManager = GetselectorManager(out creator);
            MyBO expectedBO = new MyBO();
            BusinessObjectCollection <MyBO> myBoCol = new BusinessObjectCollection <MyBO>
            {
                expectedBO
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(selectorManager.BusinessObjectControlCreator);
            Assert.AreEqual(creator, selectorManager.BusinessObjectControlCreator);
            Assert.AreEqual(0, selectorManager.TabControl.TabPages.Count);
            //---------------Execute Test ----------------------
            selectorManager.BusinessObjectCollection = myBoCol;
            //---------------Test Result -----------------------
            Assert.AreEqual(1, selectorManager.TabControl.TabPages.Count);
            ITabPage page = selectorManager.TabControl.TabPages[0];

            Assert.AreEqual(1, page.Controls.Count);
            IControlHabanero boControl = page.Controls[0];

            Assert.IsInstanceOf(TypeOfBusinessObjectControl(), boControl);
            IBusinessObjectControl businessObjectControl = (IBusinessObjectControl)boControl;

            Assert.AreSame(expectedBO, businessObjectControl.BusinessObject);
            Assert.AreSame(boControl, selectorManager.BusinessObjectControl);
        }
Example #4
0
        /// <summary>
        /// Adds a tab page to the end of the tab order
        /// </summary>
        /// <param name="page">The Tab Page to be added to the Tab Control</param>
        protected virtual void AddTabPageToEnd(ITabPage page)
        {
            TabControl.TabPages.Add(page);
            IBusinessObjectControl boControl = this.GetBusinessObjectControl(page);

            FireTabPageAdded(page, boControl);
        }
Example #5
0
        public void Test_WhenChangeTabIndex_ShouldNotRecreateTheBOControl()
        {
            //---------------Set up test pack-------------------
            BusinessObjectControlCreatorDelegate creator;
            BOColTabControlManager selectorManager = GetselectorManager(out creator);

            MyBO firstBO  = new MyBO();
            MyBO secondBO = new MyBO();
            BusinessObjectCollection <MyBO> myBoCol = new BusinessObjectCollection <MyBO> {
                firstBO, secondBO
            };

            selectorManager.BusinessObjectCollection = myBoCol;
            ITabPage firstTabPage = selectorManager.TabControl.TabPages[0];
            IBusinessObjectControl firstBOControl = (IBusinessObjectControl)firstTabPage.Controls[0];
            ITabPage secondTabPage = selectorManager.TabControl.TabPages[1];
            IBusinessObjectControl secondBOControl = (IBusinessObjectControl)secondTabPage.Controls[0];

            //---------------Assert Precondition----------------
            Assert.AreSame(secondBO, secondBOControl.BusinessObject);
            Assert.AreSame(firstBOControl, selectorManager.BusinessObjectControl);
            Assert.AreEqual(2, selectorManager.TabControl.TabPages.Count);
            Assert.AreEqual(0, selectorManager.TabControl.SelectedIndex);
            //---------------Execute Test ----------------------
            selectorManager.CurrentBusinessObject = secondBO;
            //---------------Test Result -----------------------
            Assert.AreEqual(1, selectorManager.TabControl.SelectedIndex);
            Assert.AreSame(secondBOControl, secondTabPage.Controls[0]);
            Assert.AreSame(secondBOControl, selectorManager.BusinessObjectControl);
        }
Example #6
0
        /// <summary>
        /// This handler is called when a business object has been removed from
        /// the collection - it subsequently removes the item from the ListBox
        /// list as well.
        /// </summary>
        /// <param name="sender">The object that notified of the change</param>
        /// <param name="e">Attached arguments regarding the event</param>
        private void BusinessObjectRemovedHandler(object sender, BOEventArgs e)
        {
            ITabPage page = GetTabPage(e.BusinessObject);

            TabControl.Controls.Remove(page);
            IBusinessObjectControl boControl = this.GetBusinessObjectControl(page);

            FireTabPageRemoved(page, boControl);
        }
        ///<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();
        }
Example #8
0
        private void FireTabPageRemoved(ITabPage tabPage, IBusinessObjectControl boControl)
        {
            if (this.TabPageRemoved == null)
            {
                return;
            }

            TabPageEventArgs eventArgs = new TabPageEventArgs(tabPage, boControl);

            this.TabPageRemoved(this, eventArgs);
        }
        public void TestSetBusinessObjectControl()
        {
            //---------------Set up test pack-------------------
            IBOColTabControl       boColTabControl = GetControlFactory().CreateBOColTabControl();
            IBusinessObjectControl busControl      = GetBusinessObjectControlStub();

            //---------------Execute Test ----------------------
            boColTabControl.BusinessObjectControl = busControl;

            //---------------Test Result -----------------------
            Assert.AreSame(busControl, boColTabControl.BusinessObjectControl);
        }
        private BusinessObjectCollection <MyBO> SetupColTabControlWith3ItemCollection(IBOColTabControl boColTabControl)
        {
            IBusinessObjectControl busControl = GetBusinessObjectControlStub();

            boColTabControl.BusinessObjectControl = busControl;
            BusinessObjectCollection <MyBO> myBoCol = new BusinessObjectCollection <MyBO>
            {
                new MyBO(), new MyBO(), new MyBO()
            };

            return(myBoCol);
        }
Example #11
0
        public void TestSetBusinessObjectControl()
        {
            //---------------Set up test pack-------------------
            ITabControl            tabControl      = GetControlFactory().CreateTabControl();
            BOColTabControlManager colTabCtlMapper = new BOColTabControlManager(tabControl, GetControlFactory());
            //---------------Execute Test ----------------------
            IBusinessObjectControl busControl = CreateBusinessObjectControl();

            colTabCtlMapper.BusinessObjectControl = busControl;

            //---------------Test Result -----------------------
            Assert.AreSame(busControl, colTabCtlMapper.BusinessObjectControl);
            //---------------Tear down -------------------------
        }
 ///<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();
 }
        public void TestBusinessObjectControlHasNullBusinessObjectByDefault()
        {
            //---------------Set up test pack-------------------
            IBOColTabControl       boColTabControl = GetControlFactory().CreateBOColTabControl();
            IBusinessObjectControl busControl      = GetBusinessObjectControlStub();

            //---------------Assert Precondition----------------
            Assert.IsNull(boColTabControl.BusinessObjectControl);

            //---------------Execute Test ----------------------
            boColTabControl.BusinessObjectControl = busControl;

            //---------------Test Result -----------------------
            Assert.IsNull(boColTabControl.BusinessObjectControl.BusinessObject);
        }
Example #14
0
 /// <summary>
 /// Adds a tab page to represent the given business object
 /// </summary>
 /// <param name="page">The TabPage object to add</param>
 /// <param name="bo">The business ojbect to represent</param>
 protected virtual void AddTabPage(ITabPage page, IBusinessObject bo)
 {
     // Only load the BusinessObject into the BO control on each tab if the BusinessObjectControlCreator is being used.
     // The related logic to this is in the TabChanged event where the business object is only loaded into the bo control when a
     //  single BO Control instance is being used.
     if (BusinessObjectControlCreator != null)
     {
         IBusinessObjectControl businessObjectControl = BusinessObjectControlCreator();
         businessObjectControl.Dock           = DockStyle.Fill;
         businessObjectControl.BusinessObject = bo;
         page.Controls.Add(businessObjectControl);
     }
     AddTabPageToEnd(page);
     AddBoPageIndexing(bo, page);
 }
        public void Test_Contructor()
        {
            //---------------Set up test pack-------------------
            IClassDef              classDef      = ClassDef.Get <MyBO>();
            IBOColSelectorControl  boColSelector = GetControlFactory().CreateReadOnlyGridControl();
            IBusinessObjectControl boEditor      = GetControlFactory().CreateBOEditorControl(classDef);

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

            //---------------Execute Test ----------------------
            BOSelectorAndEditorManager boSelectorAndEditorManager = new BOSelectorAndEditorManager(boColSelector, boEditor);

            //---------------Test Result -----------------------
            Assert.IsNotNull(boSelectorAndEditorManager);
            Assert.AreSame(boColSelector, boSelectorAndEditorManager.BOColSelector);
            Assert.AreSame(boEditor, boSelectorAndEditorManager.BOEditor);
        }
        public void Test_Constructor_BOSelectorNull_ShouldRaiseError()
        {
            IClassDef classDef = ClassDef.Get <MyBO>();
            IBusinessObjectControl boEditor = GetControlFactory().CreateBOEditorControl(classDef);

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

            //---------------Execute Test ----------------------
            try
            {
                new BOSelectorAndEditorManager(null, boEditor);
                Assert.Fail("expected ArgumentNullException");
            }
            //---------------Test Result -----------------------
            catch (ArgumentNullException ex)
            {
                StringAssert.Contains("Value cannot be null", ex.Message);
                StringAssert.Contains("boColSelector", ex.ParamName);
            }
        }
        public void TestInitialLayout()
        {
            //---------------Set up test pack-------------------
            IBOColTabControl       boColTabControl = GetControlFactory().CreateBOColTabControl();
            IBusinessObjectControl busControl      = GetBusinessObjectControlStub();

            boColTabControl.BusinessObjectControl = busControl;
            BusinessObjectCollection <MyBO> myBoCol = new BusinessObjectCollection <MyBO>();
            MyBO firstBo = new MyBO();

            myBoCol.Add(firstBo);

            //---------------Execute Test ----------------------
            boColTabControl.BusinessObjectCollection = myBoCol;

            //---------------Test Result -----------------------
            Assert.AreEqual(1, boColTabControl.TabControl.TabPages[0].Controls.Count);
            Assert.AreSame(busControl, boColTabControl.TabControl.TabPages[0].Controls[0]);
            Assert.AreEqual(DockStyle.Fill, busControl.Dock);
            Assert.AreEqual(firstBo.ToString(), boColTabControl.TabControl.TabPages[0].Text);
        }
Example #18
0
        public void TestSetCollection()
        {
            //---------------Set up test pack-------------------

            MyBO.LoadDefaultClassDef();
            ITabControl            tabControl      = GetControlFactory().CreateTabControl();
            BOColTabControlManager colTabCtlMapper = new BOColTabControlManager(tabControl, GetControlFactory());
            IBusinessObjectControl busControl      = this.CreateBusinessObjectControl();

            colTabCtlMapper.BusinessObjectControl = busControl;
            //---------------Execute Test ----------------------
            BusinessObjectCollection <MyBO> myBoCol = new BusinessObjectCollection <MyBO>();

            myBoCol.Add(new MyBO());
            myBoCol.Add(new MyBO());
            myBoCol.Add(new MyBO());
            colTabCtlMapper.BusinessObjectCollection = myBoCol;
            //---------------Test Result -----------------------
            Assert.AreSame(myBoCol, colTabCtlMapper.BusinessObjectCollection);
            Assert.AreEqual(3, colTabCtlMapper.TabControl.TabPages.Count);
            //---------------Tear down -------------------------
        }
        public void TestLayoutAfterChangingBusinessObject()
        {
            //---------------Set up test pack-------------------
            IBOColTabControl       boColTabControl = GetControlFactory().CreateBOColTabControl();
            IBusinessObjectControl busControl      = GetBusinessObjectControlStub();

            boColTabControl.BusinessObjectControl = busControl;
            BusinessObjectCollection <MyBO> myBoCol = new BusinessObjectCollection <MyBO>();
            MyBO firstBo = new MyBO();

            myBoCol.Add(firstBo);
            MyBO secondBo = new MyBO();

            myBoCol.Add(secondBo);
            myBoCol.Add(new MyBO());
            boColTabControl.BusinessObjectCollection = myBoCol;

            //---------------Execute Test ----------------------
            boColTabControl.CurrentBusinessObject = secondBo;

            //---------------Test Result -----------------------
            Assert.AreEqual(1, boColTabControl.TabControl.TabPages[1].Controls.Count);
            Assert.AreSame(busControl, boColTabControl.TabControl.TabPages[1].Controls[0]);
        }
 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;
 }
Example #21
0
 /// <summary>
 /// Constructor to initialise a new set of arguments
 /// </summary>
 /// <param name="tabPage">The related business object</param>
 /// <param name="boControl"></param>
 public TabPageEventArgs(ITabPage tabPage, IBusinessObjectControl boControl)
 {
     _tabPage   = tabPage;
     _boControl = boControl;
 }
        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;
        }
 /// <summary>
 /// Constructor to initialise a new set of arguments
 /// </summary>
 /// <param name="tabPage">The related business object</param>
 /// <param name="boControl"></param>
 public TabPageEventArgs(ITabPage tabPage, IBusinessObjectControl boControl)
 {
     _tabPage = tabPage;
     _boControl = boControl;
 }
 ///<summary>
 /// Constructor for <see cref="GridWithPanelControlVWG{TBusinessObject}"/>
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="businessObjectControl"></param>
 ///<param name="uiDefName"></param>
 public GridWithPanelControlVWG(IControlFactory controlFactory, IBusinessObjectControl businessObjectControl, string uiDefName)
 {
     _gridWithPanelControlManager = new GridWithPanelControlManager <TBusinessObject>(this, controlFactory, businessObjectControl, uiDefName);
     //_gridWithPanelControlManager.SetupControl();
     _gridWithPanelControlManager.GridWithPanelControlStrategy = new GridWithPanelControlStrategyVWG <TBusinessObject>(this);
 }
 ///<summary>
 /// Constructor for <see cref="GridWithPanelControlWin{TBusinessObject}"/>
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="businessObjectControl"></param>
 public GridWithPanelControlWin(IControlFactory controlFactory, IBusinessObjectControl businessObjectControl)
     : this(controlFactory, businessObjectControl, "default")
 {
 }
        private void FireTabPageRemoved(ITabPage tabPage, IBusinessObjectControl boControl)
        {
            if (this.TabPageRemoved == null) return;

            TabPageEventArgs eventArgs = new TabPageEventArgs(tabPage, boControl);
            this.TabPageRemoved(this, eventArgs);
        }
 ///<summary>
 /// Constructor for <see cref="GridWithPanelControlWin{TBusinessObject}"/>
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="businessObjectControl"></param>
 ///<param name="uiDefName"></param>
 public GridWithPanelControlWin(IControlFactory controlFactory, IBusinessObjectControl businessObjectControl, string uiDefName)
 {
     _gridWithPanelControlManager = new GridWithPanelControlManager <TBusinessObject>(this, controlFactory, businessObjectControl, uiDefName);
 }
Example #28
0
 ///<summary>
 /// Constructor for the <see cref="GridWithPanelControlManager{TBusinessObject}"/>
 ///</summary>
 ///<param name="gridWithPanelControl"></param>
 ///<param name="controlFactory"></param>
 ///<param name="businessObjectControl"></param>
 ///<param name="uiDefName"></param>
 public GridWithPanelControlManager(IGridWithPanelControl <TBusinessObject> gridWithPanelControl, IControlFactory controlFactory, IBusinessObjectControl businessObjectControl, string uiDefName)
 {
     _gridWithPanelControl = gridWithPanelControl;
     SetupControl(controlFactory, businessObjectControl, uiDefName);
 }