public void Test_UncollapsePanel_FiresItemSelected()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel content1 = GetControlFactory().CreatePanel();
            IPanel content2 = GetControlFactory().CreatePanel();
            IPanel content3 = GetControlFactory().CreatePanel();

            control.AddControl(content1, "", 99);
            ICollapsiblePanel collapsiblePanel2 = control.AddControl(content2, "", 53);

            control.AddControl(content3, "", 53);
            control.AllCollapsed = true;
            bool itemSelected = false;

            control.ItemSelected += delegate { itemSelected = true; };
            //---------------Assert Precondition----------------
            Assert.AreSame(collapsiblePanel2, control.PanelsList[1]);
            Assert.AreNotEqual(collapsiblePanel2.ExpandedHeight, collapsiblePanel2.Height);
            Assert.IsFalse(itemSelected);
            //---------------Execute Test ----------------------
            collapsiblePanel2.Collapsed = false;
            //---------------Test Result -----------------------
            Assert.IsTrue(itemSelected);
        }
        public void TestSimpleMenuStructure_AddsCollapsiblePanels()
        {
            //---------------Set up test pack-------------------
            HabaneroMenu habaneroMenu = new HabaneroMenu("Main");
            string       subMenuName  = TestUtil.GetRandomString();
            HabaneroMenu submenu      = habaneroMenu.AddSubMenu(subMenuName);
            string       menuItemName = TestUtil.GetRandomString();

            submenu.AddMenuItem(menuItemName);


            IMenuBuilder menuBuilder = CreateMenuBuilder();

            //---------------Assert Preconditions---------------
            Assert.AreEqual(1, habaneroMenu.Submenus.Count);
            //---------------Execute Test ----------------------
            IMainMenuHabanero menu = menuBuilder.BuildMainMenu(habaneroMenu);

            //---------------Test Result -----------------------
            Assert.IsInstanceOf(typeof(ICollapsiblePanelGroupControl), menu);
            ICollapsiblePanelGroupControl menuAsCP = (ICollapsiblePanelGroupControl)menu;

            Assert.AreEqual(1, menuAsCP.PanelsList.Count);
            ICollapsiblePanel collapsiblePanel = menuAsCP.PanelsList[0];

            Assert.IsNotNull(collapsiblePanel);
            Assert.IsNotNull(collapsiblePanel.ContentControl);
            Assert.AreEqual(1, collapsiblePanel.ContentControl.Controls.Count);
        }
        public void Test_AddControl_WhenControlIsCollapsiblePanel_ShouldAdd()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl groupControl     = CreateCollapsiblePanelGroupControl();
            ICollapsiblePanel             collapsiblePanel = GetControlFactory().CreateCollapsiblePanel("Name");

            collapsiblePanel.MinimumSize = new Size(123, 76);
            //---------------Assert Precondition----------------
            Assert.AreEqual(0, groupControl.PanelsList.Count);
            Assert.AreEqual("Name", collapsiblePanel.Name);
            Assert.AreEqual("Name", collapsiblePanel.CollapseButton.Text);
            Assert.AreEqual("Name", collapsiblePanel.CollapseButton.Name);
            //---------------Execute Test ----------------------
            //            ICollapsiblePanel collapsiblePanel = groupControl.AddControl(GetControlFactory().CreatePanel(), "", 53);
            ICollapsiblePanel returnedCollapsiblePanel = groupControl.AddControl(collapsiblePanel);

            //---------------Test Result -----------------------
            Assert.AreSame(collapsiblePanel, returnedCollapsiblePanel);
            Assert.AreEqual(1, groupControl.PanelsList.Count);
            Assert.AreEqual(1, groupControl.Controls.Count);
            Assert.AreSame(collapsiblePanel, groupControl.PanelsList[0]);
            Assert.AreEqual(53 + collapsiblePanel.CollapseButton.Height, collapsiblePanel.ExpandedHeight);
            Assert.AreEqual("Name", collapsiblePanel.CollapseButton.Text);
            Assert.AreEqual("Name", collapsiblePanel.CollapseButton.Name);
        }
        protected override void SetSelectedIndex(IBOColSelectorControl colSelector, int index)
        {
            ICollapsiblePanelGroupControl groupControl = ((ICollapsiblePanelGroupControl)colSelector);

            groupControl.AllCollapsed = true;
            ((ICollapsiblePanelGroupControl)colSelector).PanelsList[index].Collapsed = false;
        }
 /// <summary>
 /// Constructs the <see cref="CollapsiblePanelGroupManager"/>
 /// </summary>
 // ReSharper disable SuggestBaseTypeForParameter
 public CollapsiblePanelGroupManager
     (ICollapsiblePanelGroupControl collapsiblePanelGroup, IControlFactory controlFactory)
 {
     ControlFactory      = controlFactory;
     PanelsList          = new List <ICollapsiblePanel>();
     ColumnLayoutManager = new ColumnLayoutManager(collapsiblePanelGroup, ControlFactory);
 }
 /// <summary>
 /// Constructs the <see cref="CollapsiblePanelGroupManager"/>
 /// </summary>
 // ReSharper disable SuggestBaseTypeForParameter
 public CollapsiblePanelGroupManager
     (ICollapsiblePanelGroupControl collapsiblePanelGroup, IControlFactory controlFactory)
 {
     ControlFactory = controlFactory;
     PanelsList = new List<ICollapsiblePanel>();
     ColumnLayoutManager = new ColumnLayoutManager(collapsiblePanelGroup, ControlFactory);
 }
Exemplo n.º 7
0
        /// <summary>
        /// Adds a Menu item to the <see cref="T:Habanero.Faces.Base.IMenuItemCollection" />.
        /// </summary>
        /// <param name="menuItem"></param>
        public void Add(IMenuItem menuItem)
        {
            _list.Add(menuItem);
            ICollapsiblePanelGroupControl cpGroupMenuItem = _ownerMenuItem as ICollapsiblePanelGroupControl;

            if (cpGroupMenuItem != null && menuItem is CollapsibleSubMenuItemWin)
            {
                CollapsibleSubMenuItemWin outlookStyleSubMenuItem = (CollapsibleSubMenuItemWin)menuItem;
                cpGroupMenuItem.AddControl(outlookStyleSubMenuItem);
                return;
            }
            ICollapsiblePanel cpMenuItem = _ownerMenuItem as ICollapsiblePanel;

            if (cpMenuItem != null && menuItem is CollapsibleMenuItemWin)
            {
                if (cpMenuItem.ContentControl == null)
                {
                    cpMenuItem.ContentControl = this.ControlFactory.CreatePanel();
                    _columnLayoutManager      = new ColumnLayoutManager(cpMenuItem.ContentControl, this.ControlFactory);
                    // this.ControlFactory.CreateBorderLayoutManager(cpMenuItem);
                    _columnLayoutManager.HorizontalGapSize = 0;
                    _columnLayoutManager.VerticalGapSize   = 0;
                    _columnLayoutManager.BorderSize        = 0;
                }
                _columnLayoutManager.AddControl((CollapsibleMenuItemWin)menuItem);
                cpMenuItem.Height        += ((CollapsibleMenuItemWin)menuItem).Height;
                cpMenuItem.ExpandedHeight = cpMenuItem.Height;
            }
        }
        public void TestUnCollapseAll()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel content1 = GetControlFactory().CreatePanel();
            IPanel content2 = GetControlFactory().CreatePanel();
            IPanel content3 = GetControlFactory().CreatePanel();

            control.AddControl(content1, "", 99);
            control.AddControl(content2, "", 53);
            control.AddControl(content3, "", 53);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            control.AllCollapsed = false;

            //---------------Execute Test ----------------------

            //---------------Test Result -----------------------
            Assert.AreEqual(3, control.Controls.Count);
            foreach (ICollapsiblePanel collapsiblePanel in control.Controls)
            {
                Assert.IsTrue(collapsiblePanel.Pinned);
                Assert.IsFalse(collapsiblePanel.Collapsed);
                Assert.AreEqual(collapsiblePanel.ExpandedHeight, collapsiblePanel.Height);
            }
            //---------------Tear down -------------------------
        }
        public void Test_CreateControl()
        {
            //---------------Set up test pack-------------------

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

            //---------------Execute Test ----------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();

            //---------------Test Result -----------------------
            Assert.IsNotNull(control);
            Assert.IsNotNull(control.PanelsList);
            Assert.IsNotNull(control.ControlFactory);
            Assert.IsNotNull(control.ColumnLayoutManager);
        }
        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 void Test_AddControl_TotalExpandedHeightEquals_CP1_ExpandedHeight()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel              content           = GetControlFactory().CreatePanel();
            ICollapsiblePanel   cp1           = control.AddControl(content, "", 53);
            ColumnLayoutManager layoutManager = control.ColumnLayoutManager;

            //---------------Assert Precondition----------------
            Assert.AreEqual(1, control.PanelsList.Count);
            //---------------Execute Test ----------------------
            int totalExpandedHeight = control.TotalExpandedHeight;

            //---------------Test Result -----------------------
            Assert.AreEqual(layoutManager.BorderSize + cp1.ExpandedHeight + layoutManager.VerticalGapSize, totalExpandedHeight);
        }
        public void Test_AddControl()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();

            //---------------Assert Precondition----------------
            Assert.AreEqual(0, control.PanelsList.Count);
            //---------------Execute Test ----------------------
            ICollapsiblePanel collapsiblePanel = control.AddControl(GetControlFactory().CreatePanel(), "", 53);

            //---------------Test Result -----------------------
            Assert.AreEqual(1, control.PanelsList.Count);
            Assert.AreEqual(1, control.Controls.Count);
            Assert.AreSame(collapsiblePanel, control.PanelsList[0]);
            Assert.AreEqual(53 + collapsiblePanel.CollapseButton.Height, collapsiblePanel.ExpandedHeight);
        }
        public void Test_AddControl_PlacesTextOnButton()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel       content     = GetControlFactory().CreatePanel();
            const string headingText = "some text";

            //---------------Assert Precondition----------------
            Assert.AreEqual(0, control.PanelsList.Count);
            //---------------Execute Test ----------------------
            control.AddControl(content, headingText, 53);
            //---------------Test Result -----------------------
            Assert.AreEqual(1, control.PanelsList.Count);
            ICollapsiblePanel cp2 = control.PanelsList[0];

            Assert.AreEqual(headingText, cp2.CollapseButton.Text);
        }
        public void Test_BuildMainMenu_TwoSubMenus_ShouldCreateSubMenusAndLeafMenuItems()
        {
            //---------------Set up test pack-------------------
            HabaneroMenu habaneroMenu = new HabaneroMenu("Main");
            string       subMenuName  = "sub_" + TestUtil.GetRandomString();
            HabaneroMenu submenu      = habaneroMenu.AddSubMenu(subMenuName);
            string       menuItemName = "menu_" + TestUtil.GetRandomString();

            submenu.AddMenuItem(menuItemName);
            HabaneroMenu submenu2 = habaneroMenu.AddSubMenu(TestUtil.GetRandomString());

            submenu2.AddMenuItem("subsub_" + TestUtil.GetRandomString());
            submenu2.AddMenuItem("subsub_" + TestUtil.GetRandomString());

            IMenuBuilder menuBuilder = CreateMenuBuilder();

            //---------------Assert Preconditions---------------
            Assert.AreEqual(2, habaneroMenu.Submenus.Count);
            //---------------Execute Test ----------------------
            IMainMenuHabanero menu = menuBuilder.BuildMainMenu(habaneroMenu);

            //---------------Test Result -----------------------
            Assert.IsInstanceOf(typeof(ICollapsiblePanelGroupControl), menu);
            ICollapsiblePanelGroupControl menuAsCP = (ICollapsiblePanelGroupControl)menu;

            Assert.AreEqual(2, menuAsCP.PanelsList.Count);
            ICollapsiblePanel collapsiblePanel1 = menuAsCP.PanelsList[0];

            Assert.AreEqual(subMenuName, collapsiblePanel1.CollapseButton.Text);
            Assert.IsNotNull(collapsiblePanel1);
            Assert.IsNotNull(collapsiblePanel1.ContentControl);
            Assert.AreEqual(1, collapsiblePanel1.ContentControl.Controls.Count);

            ICollapsiblePanel collapsiblePanel2 = menuAsCP.PanelsList[1];

            Assert.AreEqual(submenu2.Name, collapsiblePanel2.Text);
            Assert.AreEqual(submenu2.Name, collapsiblePanel2.Name);
            Assert.AreEqual(submenu2.Name, collapsiblePanel2.CollapseButton.Text);

            Assert.IsNotNull(collapsiblePanel2);
            Assert.IsNotNull(collapsiblePanel2.ContentControl);
            Assert.AreEqual(2, collapsiblePanel2.ContentControl.Controls.Count);

            Assert.GreaterOrEqual(collapsiblePanel1.Top, collapsiblePanel2.Top + collapsiblePanel2.Height, "The collapsible panel are put in reverse order.");
        }
        public void Test_AddTwoControl()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel content2 = GetControlFactory().CreatePanel();

            //---------------Assert Precondition----------------
            Assert.AreEqual(0, control.PanelsList.Count);
            //---------------Execute Test ----------------------
            control.AddControl(GetControlFactory().CreatePanel(), "", 53);
            control.AddControl(content2, "", 53);
            //---------------Test Result -----------------------
            Assert.AreEqual(2, control.PanelsList.Count);
            Assert.AreEqual(2, control.Controls.Count);
            ICollapsiblePanel cp2 = control.PanelsList[1];

            Assert.AreSame(content2, cp2.ContentControl);
        }
        public void Test_CollapsiblePanels_HasColumnLayout()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel content1 = GetControlFactory().CreatePanel();
            IPanel content2 = GetControlFactory().CreatePanel();

            //---------------Assert Precondition----------------
            Assert.AreEqual(0, control.PanelsList.Count);
            //---------------Execute Test ----------------------
            ICollapsiblePanel cp1 = control.AddControl(content1, "", 99);
            ICollapsiblePanel cp2 = control.AddControl(content2, "", 53);
            //---------------Test Result -----------------------
            ColumnLayoutManager layoutManager = control.ColumnLayoutManager;
            int expectedCP2_Top = cp1.Height + layoutManager.BorderSize + layoutManager.VerticalGapSize;

            Assert.AreEqual(expectedCP2_Top, cp2.Top);
        }
        public void Test_AddControl_TestMinHeight_EqualsButtonHeight_Plus_ControlMinHeight()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel    content = GetControlFactory().CreatePanel();
            const int contentControlMinimunHeight = 53;

            //---------------Assert Precondition----------------
            Assert.AreEqual(0, control.PanelsList.Count);
            //---------------Execute Test ----------------------
            control.AddControl(content, "", contentControlMinimunHeight);
            //---------------Test Result -----------------------
            Assert.AreEqual(1, control.PanelsList.Count);
            ICollapsiblePanel cp1 = control.PanelsList[0];

            Assert.AreEqual(contentControlMinimunHeight + cp1.CollapseButton.Height, cp1.ExpandedHeight);
            Assert.AreEqual(cp1.CollapseButton.Height, cp1.Height);
            Assert.IsTrue(cp1.Collapsed);
        }
        public void Test_AddTwoControl_TotalExpandedHeightEquals_CP1_CP2_ExpandedHeight()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel            content1            = GetControlFactory().CreatePanel();
            IPanel            content2            = GetControlFactory().CreatePanel();
            ICollapsiblePanel cp1 = control.AddControl(content1, "", 99);
            ICollapsiblePanel cp2 = control.AddControl(content2, "", 53);

            //---------------Assert Precondition----------------
            Assert.AreEqual(2, control.PanelsList.Count);
            ColumnLayoutManager layoutManager = control.ColumnLayoutManager;
            int expectedTotalHeight           = layoutManager.BorderSize + cp1.ExpandedHeight + layoutManager.VerticalGapSize + cp2.ExpandedHeight + layoutManager.HorizontalGapSize;
            //---------------Execute Test ----------------------
            int actualTotalHeight = control.TotalExpandedHeight;

            //---------------Test Result -----------------------
            Assert.AreEqual(expectedTotalHeight, actualTotalHeight);
        }
        public void TestUncollapsingPanelCollapsingAllOtherPanels()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel            content1            = GetControlFactory().CreatePanel();
            IPanel            content2            = GetControlFactory().CreatePanel();
            ICollapsiblePanel cp1 = control.AddControl(content1, "", 99);
            ICollapsiblePanel cp2 = control.AddControl(content2, "", 53);

            cp1.Collapsed = false;
            //---------------Assert Precondition----------------
            Assert.IsTrue(cp2.Collapsed);
            Assert.IsFalse(cp1.Collapsed);
            //---------------Execute Test ----------------------
            cp2.Collapsed = false;
            //---------------Test Result -----------------------
            Assert.IsFalse(cp2.Collapsed);
            Assert.IsTrue(cp1.Collapsed);
            //---------------Tear down -------------------------
        }
        public void TestCollapseAll_DoesNotPreventControlFromExpandingAgain_FixBug()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel content1 = GetControlFactory().CreatePanel();
            IPanel content2 = GetControlFactory().CreatePanel();
            IPanel content3 = GetControlFactory().CreatePanel();

            control.AddControl(content1, "", 99);
            ICollapsiblePanel collapsiblePanel2 = control.AddControl(content2, "", 53);

            control.AddControl(content3, "", 53);
            control.AllCollapsed = true;
            //---------------Assert Precondition----------------
            Assert.AreSame(collapsiblePanel2, control.PanelsList[1]);
            Assert.AreNotEqual(collapsiblePanel2.ExpandedHeight, collapsiblePanel2.Height);
            //---------------Execute Test ----------------------
            collapsiblePanel2.Collapsed = false;
            //---------------Test Result -----------------------
            Assert.AreEqual(collapsiblePanel2.ExpandedHeight, collapsiblePanel2.Height);
        }
        public void Test_AddTwoControl__WhenControlIsCollapsiblePanel_ShouldAdd()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control           = CreateCollapsiblePanelGroupControl();
            ICollapsiblePanel             collapsiblePanel1 = GetControlFactory().CreateCollapsiblePanel("Panel1");

            collapsiblePanel1.MinimumSize = new Size(123, 76);
            ICollapsiblePanel collapsiblePanel2 = GetControlFactory().CreateCollapsiblePanel("Panel2");

            collapsiblePanel2.MinimumSize = new Size(123, 55);
            //---------------Assert Precondition----------------
            Assert.AreEqual(0, control.PanelsList.Count);
            //---------------Execute Test ----------------------
            control.AddControl(collapsiblePanel1);
            control.AddControl(collapsiblePanel2);
            //---------------Test Result -----------------------
            Assert.AreEqual(2, control.PanelsList.Count);
            Assert.AreEqual(2, control.Controls.Count);
            ICollapsiblePanel cp2 = control.PanelsList[1];

            Assert.AreSame(collapsiblePanel2, cp2);
        }
        public void Test_UncollapseCP1_MovesCP2_Top()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel            content1            = GetControlFactory().CreatePanel();
            IPanel            content2            = GetControlFactory().CreatePanel();
            ICollapsiblePanel cp1 = control.AddControl(content1, "", 99);
            ICollapsiblePanel cp2 = control.AddControl(content2, "", 53);

            //---------------Assert Precondition----------------
            Assert.AreEqual(2, control.PanelsList.Count);
            ColumnLayoutManager layoutManager = control.ColumnLayoutManager;
            int expected_Start_CP2_Top        = cp1.CollapseButton.Height + layoutManager.BorderSize + layoutManager.VerticalGapSize;

            Assert.AreEqual(expected_Start_CP2_Top, cp2.Top);
            //---------------Execute Test ----------------------
            cp1.CollapseButton.PerformClick();
            //---------------Test Result -----------------------
            int expected_Finish_CP2_Top = cp1.ExpandedHeight + layoutManager.BorderSize + layoutManager.VerticalGapSize;

            Assert.AreEqual(expected_Finish_CP2_Top, cp2.Top);
        }
        public void TestCollapseOneAfterAnother()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel            content1            = GetControlFactory().CreatePanel();
            IPanel            content2            = GetControlFactory().CreatePanel();
            IPanel            content3            = GetControlFactory().CreatePanel();
            ICollapsiblePanel collapsiblePanel1   = control.AddControl(content1, "", 99);
            ICollapsiblePanel collapsiblePanel2   = control.AddControl(content2, "", 53);
            ICollapsiblePanel collapsiblePanel3   = control.AddControl(content3, "", 53);

            //---------------Execute Test ----------------------
            collapsiblePanel1.Collapsed = true;
            collapsiblePanel2.Collapsed = true;
            collapsiblePanel3.Collapsed = true;
            collapsiblePanel2.Collapsed = false;
            collapsiblePanel1.Collapsed = false;

            //---------------Test Result -----------------------
            //panel1 should be the same as its original height after the above steps
            Assert.AreEqual(collapsiblePanel1.ExpandedHeight, collapsiblePanel1.Height);
            //---------------Tear Down -------------------------
        }
        public void TestUncollapsingPanelCollapsingAllOtherPanelsExceptPinnedPanels()
        {
            //---------------Set up test pack-------------------
            ICollapsiblePanelGroupControl control = CreateCollapsiblePanelGroupControl();
            IPanel            content1            = GetControlFactory().CreatePanel();
            IPanel            content2            = GetControlFactory().CreatePanel();
            IPanel            content3            = GetControlFactory().CreatePanel();
            ICollapsiblePanel collapsiblePanel1   = control.AddControl(content1, "", 99);
            ICollapsiblePanel collapsiblePanel2   = control.AddControl(content2, "", 53);
            ICollapsiblePanel collapsiblePanel3   = control.AddControl(content3, "", 53);

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

            //---------------Execute Test ----------------------
            collapsiblePanel2.Pinned    = true;
            collapsiblePanel1.Collapsed = false;
            collapsiblePanel3.Collapsed = false;
            //---------------Test Result -----------------------
            Assert.IsFalse(collapsiblePanel2.Collapsed);
            Assert.IsTrue(collapsiblePanel2.Pinned);
            Assert.IsTrue(collapsiblePanel1.Collapsed);
            Assert.IsFalse(collapsiblePanel3.Collapsed);
        }