public void TestGlueWithGluedControlInvisible_ChangedToVisible() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl = CreateControl(30, 10); IControlHabanero ctl2 = CreateControl(50, 10); //---------------Execute Test ---------------------- manager.AddControl(CreateControl(50, 10)); ctl.Visible = false; manager.AddControl(ctl); manager.AddGlue(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(0, ctl.Left, "ctl is invisible so should be ignored"); Assert.AreEqual(0, ctl.Top, "ctl is invisible so should be ignored"); Assert.AreEqual(stdFirstPosLeft(), ctl2.Left, "ctl2 should move to next line but still be at left border because ctl is invisible "); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be in row 2"); //---------------Execute Test ---------------------- ctl.Visible = true; //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), ctl.Left); Assert.AreEqual(StdSecondRowTop(), ctl.Top, "ctl be in second row because of glue"); Assert.AreEqual(_STD_BORDER + ctl.Width + _STD_GAP, ctl2.Left, "ctl2 should move accross because ctl is visible "); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be in row 2"); }
///<summary> /// Constructs the <see cref="FileChooserManager"/> ///</summary> ///<param name="controlFactory"></param> ///<param name="fileChooser"></param> public FileChooserManager(IControlFactory controlFactory, IFileChooser fileChooser) { _controlFactory = controlFactory; _fileChooser = fileChooser; FlowLayoutManager manager = new FlowLayoutManager(_fileChooser, _controlFactory); _fileTextBox = _controlFactory.CreateTextBox(); _selectFileButton = _controlFactory.CreateButton("Select...", null); manager.AddControl(_fileTextBox); manager.AddControl(_selectFileButton); }
/// <summary> /// Creates the panel on the form /// </summary> /// <returns>Returns the panel created</returns> public IPanel createControlPanel() { IPanel panel = _controlFactory.CreatePanel(); ILabel label = _controlFactory.CreateLabel(_message, false); FlowLayoutManager flowLayoutManager = new FlowLayoutManager(panel, _controlFactory); flowLayoutManager.AddControl(label); flowLayoutManager.AddControl(_textBox); panel.Height = _textBox.Height + label.Height; panel.Width = _controlFactory.CreateLabel(_message, true).PreferredWidth + 20; _textBox.Width = panel.Width - 30; return(panel); }
//public int CountOfFilterControls() //{ // return //} private void CreateFilterButtons(IPanel filterButtonPanel) { const int buttonHeight = 20; const int buttonWidth = 45; _filterButton = CreateFilterButton(buttonWidth, buttonHeight); _clearButton = CreateClearButton(buttonWidth, buttonHeight); FlowLayoutManager layoutManager = new FlowLayoutManager(filterButtonPanel, _controlFactory); layoutManager.AddControl(_filterButton); layoutManager.AddControl(_clearButton); }
public void TestAddTwoControls() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.AddControl(CreateStandardControl()); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER + _STD_GAP + _STD_CONTROL_WIDTH, ctl2.Left, "Left should equal Border + First control's width + spacing"); Assert.AreEqual(_STD_BORDER, ctl2.Top, "Top should equal Border"); }
public void TestNewLine() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl = CreateControl(20, 10); IControlHabanero ctl2 = CreateControl(20, 10); //---------------Execute Test ---------------------- manager.AddControl(ctl); manager.NewLine(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), ctl2.Left, "ctl2 should be on the far left of a new line"); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be on a new line"); }
public void TestLeftAlignedTabOrdering() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Left; manager.AddControl(ctl1); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(0, ctl1.TabIndex); Assert.AreEqual(1, ctl2.TabIndex); }
public void TestGapSize() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.HorizontalGapSize = 2; manager.VerticalGapSize = 2; manager.AddControl(CreateStandardControl()); IControlHabanero ctl = CreateStandardControl(); manager.AddControl(ctl); //---------------Test Result ----------------------- Assert.AreEqual(manager.HorizontalGapSize + _STD_CONTROL_WIDTH + _STD_BORDER, ctl.Left, "Left of ctl should be bordersize + 10 + gapsize."); }
public void TestAddTwoControlsWithWrap() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- managedControl.Width = 30; manager.AddControl(CreateStandardControl()); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER, ctl2.Left, "Should wrap to the next line because it's right is outside the area."); Assert.AreEqual(_STD_BORDER + _STD_GAP + _STD_CONTROL_HEIGHT, ctl2.Top, "Top should equal Border + first line's max height + gap."); }
public void TestGlueSimpleCase_DontAddSecondControlToGlue_Resize() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); //---------------Execute Test ---------------------- manager.AddControl(CreateControl(40, 10)); IControlHabanero gluedCtl = CreateControl(35, 10); manager.AddControl(gluedCtl); manager.AddGlue(); manager.ManagedControl.Width = 50; //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), gluedCtl.Left, "Glue should mean ctl moves with ctl2 (if space permits)"); Assert.AreEqual(StdSecondRowTop(), gluedCtl.Top, "Glue should mean ctl moves to new row with ctl2 (if space permits)"); }
public void TestRefreshOnBorderSizeChange() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); manager.ManagedControl.Width = 40; manager.AddControl(ctl1); manager.AddControl(ctl2); manager.BorderSize = 10; //---------------Test Result ----------------------- Assert.AreEqual(manager.BorderSize, ctl2.Left, "Left of ctl2 should equal bordersize because it should wrap."); Assert.AreEqual(manager.BorderSize + _STD_CONTROL_HEIGHT + _STD_GAP, ctl2.Top, "Top of ctl2 should equal bordersize + rowsize + gapsize."); }
public void TestRefreshOnControlSizeChanged() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.AddControl(CreateStandardControl()); IControlHabanero ctl1 = CreateStandardControl(); manager.AddControl(ctl1); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); ctl1.Width = 20; //---------------Test Result ----------------------- Assert.AreEqual(ctl1.Width + _STD_GAP + StdSecondPosLeft(), ctl2.Left, "Control positions should be refreshed when one control's size is changed."); }
public void TestOnlyVisibleControlsIncluded() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.AddControl(CreateStandardControl()); IControlHabanero ctl1 = CreateStandardControl(); ctl1.Visible = false; manager.AddControl(ctl1); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(StdSecondPosLeft(), ctl2.Left, "Second Control should be ignored because it is invisible."); }
public void TestRefreshOnGapSizeChange() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.ManagedControl.Width = 100; manager.BorderSize = 0; manager.AddControl(CreateControl(80, 20)); IControlHabanero ctl = CreateControl(50, 20); manager.AddControl(ctl); manager.HorizontalGapSize = 2; manager.VerticalGapSize = 2; //---------------Test Result ----------------------- Assert.AreEqual(22, ctl.Top, "Top of ctl should be 20 + gapsize. Border is zero"); }
public void TestAddThreeControlsOfDifferentHeightWithWrap() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); IControlHabanero ctl2 = CreateControl(10, 20); //---------------Execute Test ---------------------- managedControl.Width = 40; manager.AddControl(CreateStandardControl()); manager.AddControl(ctl2); IControlHabanero ctl = CreateStandardControl(); manager.AddControl(ctl); //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER, ctl.Left, "Should wrap to next line because it doesn't fit on first line."); Assert.AreEqual(stdFirstRowTop() + ctl2.Height + _STD_GAP, ctl.Top, "Top should equal border + first line's max height + gap."); }
public void TestResizeWhenPositionsShouldChange() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl1); manager.AddControl(ctl2); manager.ManagedControl.Width = 30; //---------------Test Result ----------------------- Assert.AreEqual(FirstPositionLeft(), ctl1.Left, "Left of ctl1 should be the same after resize"); Assert.AreEqual(FirstPositionTop(), ctl1.Top, "Top of ctl1 should be the same after resize."); Assert.AreEqual(FirstPositionLeft(), ctl2.Left, "Left of ctl2 should have wrapped to next line after resize."); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "Top should be on the next row after resize."); }
public void TestResizeWhenNothingHappens() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl1); manager.AddControl(ctl2); manager.ManagedControl.Height = 50; //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER, ctl1.Left, "Left should be the same after resize"); Assert.AreEqual(_STD_BORDER, ctl1.Top, "Top should be the same after resize."); Assert.AreEqual(_STD_BORDER + _STD_CONTROL_WIDTH + _STD_GAP, ctl2.Left, "Left should be the same after resize."); Assert.AreEqual(_STD_BORDER, ctl2.Top, "Top should be the same after resize."); }
public void TestLeftAlignedTabOrderingMultipleRows() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Left; IControlHabanero ctl1 = CreateControl(50, 20); manager.AddControl(ctl1); manager.AddControl(CreateControl(20, 20)); IControlHabanero ctl3 = CreateControl(50, 20); manager.AddControl(ctl3); //---------------Test Result ----------------------- Assert.AreEqual(1, ctl1.TabIndex); Assert.AreEqual(3, ctl3.TabIndex); }
public void TestGlueSimpleCase() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl1 = CreateControl(35, 10); IControlHabanero ctl2 = CreateControl(35, 10); //---------------Execute Test ---------------------- manager.AddControl(CreateControl(40, 10)); manager.AddControl(ctl1); manager.AddGlue(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), ctl1.Left, "Glue should mean ctl moves with ctl2 (if space permits)"); Assert.AreEqual(StdSecondRowTop(), ctl1.Top, "Glue should mean ctl moves to new row with ctl2 (if space permits)"); Assert.AreEqual(stdFirstPosLeft() + ctl1.Width + _STD_GAP, ctl2.Left, "ctl2 should be to the right of ctl on a new line because of glue"); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be in row 2"); }
public void TestRightAlignedTabOrderingMultipleRows() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl1 = CreateControl(50, 20); IControlHabanero ctl2 = CreateControl(20, 20); IControlHabanero ctl3 = CreateControl(50, 20); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Right; manager.AddControl(ctl1); manager.AddControl(ctl2); manager.AddControl(ctl3);//will be on a new line due to size //---------------Test Result ----------------------- Assert.AreEqual(1, ctl1.TabIndex); Assert.AreEqual(0, ctl2.TabIndex); Assert.AreEqual(2, ctl3.TabIndex); }
public void TestCentreAlignRowTwoControls() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Centre; manager.AddControl(ctl1); manager.AddControl(ctl2); //---------------Test Result ----------------------- const int ctl1LeftPos = (_STD_ManagedControl_Width - _STD_CONTROL_WIDTH - _STD_GAP - _STD_CONTROL_WIDTH) / 2; const int ctl2LeftPos = ctl1LeftPos + _STD_GAP + _STD_CONTROL_WIDTH; Assert.AreEqual(ctl1LeftPos, ctl1.Left, "Control should be centre aligned."); Assert.AreEqual(ctl2LeftPos, ctl2.Left, "Control should be centre aligned."); }
public void TestRightAlignRows() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); const int managedControlWidth = 60; manager.ManagedControl.Width = managedControlWidth; IControlHabanero ctl = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Right; manager.AddControl(ctl); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(managedControlWidth - ctl.Width - manager.BorderSize, ctl.Left, "Control should be right aligned."); Assert.AreEqual(ctl.Left - _STD_GAP - ctl2.Width, ctl2.Left, "Control should be right aligned."); }
public void TestCentreAlignRowWithInvisibleControls() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); const int controlWidth = 20; const int managedControlWidth = 100; IControlHabanero ctl = CreateControl(controlWidth, 10); IControlHabanero ctl2 = CreateControl(controlWidth, 10); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Centre; manager.ManagedControl.Width = managedControlWidth; manager.AddControl(ctl); ctl2.Visible = false; manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual((managedControlWidth - controlWidth) / 2, ctl.Left, "Control should be centre aligned - other Control is invisible."); }
public void TestRefreshOnControlVisibilityChanged_ChangeControlToNotVisibleControlToRightShiftLeft() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); manager.AddControl(CreateStandardControl()); IControlHabanero ctl1 = CreateStandardControl(); manager.AddControl(ctl1); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); //---------------Execute Test ---------------------- Assert.AreEqual(StdSecondPosLeft() + _STD_CONTROL_WIDTH + _STD_GAP, ctl2.Left); ctl1.Visible = false; //---------------Test Result ----------------------- Assert.AreEqual(StdSecondPosLeft(), ctl2.Left, "Control positions should be refreshed when one is made invisible."); }
public void TestRightAlignRowsWithWrap() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); const int ManagedControlWidth = 30; manager.ManagedControl.Width = ManagedControlWidth; IControlHabanero ctl = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Right; manager.AddControl(ctl); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(ManagedControlWidth - _STD_BORDER - ctl.Width, ctl.Left, "Control should be right aligned."); Assert.AreEqual(ManagedControlWidth - _STD_BORDER - ctl2.Width, ctl2.Left, "Control should be right aligned."); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "Control should be right aligned."); }
public void TestCentreAlignRowTwoRows() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); const int controlWidth = 20; const int managedControlWidth = 40; IControlHabanero ctl = CreateControl(controlWidth, 10); IControlHabanero ctl2 = CreateControl(controlWidth, 10); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Centre; manager.ManagedControl.Width = managedControlWidth; manager.AddControl(ctl); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual((managedControlWidth - controlWidth) / 2, ctl.Left, "Control should be centre aligned."); Assert.AreEqual((managedControlWidth - controlWidth) / 2, ctl2.Left, "Control should be centre aligned."); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "Control should be in second row."); }
public void TestGlueWithGluedControlAtLeftBorder() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); //---------------Execute Test ---------------------- IControlHabanero ctl = CreateControl(30, 10); manager.AddControl(ctl); manager.AddGlue(); IControlHabanero ctl2 = CreateControl(90, 10); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(5, ctl.Left, "ctl should stay where it is in spite of glue"); Assert.AreEqual(5, ctl.Top, "ctl should stay where it is in spite of glue"); Assert.AreEqual(5, ctl2.Left, "ctl2 should move to next line by itself (since ctl and ctl2 can't fit on one line."); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be in row 2"); }
public void TestCentreAlignRowOneControl() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); IControlHabanero ctl = CreateStandardControl(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Centre; manager.AddControl(ctl); //---------------Test Result ----------------------- Assert.AreEqual((_STD_ManagedControl_Width - _STD_CONTROL_WIDTH) / 2, ctl.Left, "Control should be centre aligned."); }
public void TestGlueWithGluedControlTooWideToKeepOnSameLine() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl1 = CreateControl(30, 10); IControlHabanero ctl2 = CreateControl(50, 10); IControlHabanero ctl3 = CreateControl(50, 10); //---------------Execute Test ---------------------- manager.AddControl(ctl1); manager.AddControl(ctl2); manager.AddGlue(); manager.AddControl(ctl3); //---------------Test Result ----------------------- Assert.AreEqual(ctl1.Width + _STD_GAP + _STD_BORDER, ctl2.Left, "ctl should stay where it is in spite of glue since it cant fit with ctl2 on one line"); Assert.AreEqual(stdFirstRowTop(), ctl2.Top, "ctl should stay where it is in spite of glue since it cant fit with ctl2 on one line"); Assert.AreEqual(stdFirstPosLeft(), ctl3.Left, "ctl2 should move to next line by itself (since ctl and ctl2 can't fit on one line."); Assert.AreEqual(StdSecondRowTop(), ctl3.Top, "ctl2 should be in row 2"); }
public void TestBorderSize() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); manager.BorderSize = 10; manager.AddControl(ctl1); //---------------Test Result ----------------------- Assert.AreEqual(manager.BorderSize, ctl1.Left, "Left of ctl1 should equal bordersize."); Assert.AreEqual(manager.BorderSize, ctl1.Top, "Top of ctl1 should equal bordersize."); }
/// <summary> /// Creates the panel on the form /// </summary> /// <returns>Returns the panel created</returns> public IPanel createControlPanel() { IPanel panel = _controlFactory.CreatePanel(); ILabel label = _controlFactory.CreateLabel(_message, false); FlowLayoutManager flowLayoutManager = new FlowLayoutManager(panel, _controlFactory); flowLayoutManager.AddControl(label); flowLayoutManager.AddControl(_textBox); panel.Height = _textBox.Height + label.Height; panel.Width = _controlFactory.CreateLabel(_message, true).PreferredWidth + 20; _textBox.Width = panel.Width - 30; return panel; }