Example #1
0
        public void TestTooManyRows_2Rows()
        {
            //---------------Set up test pack-------------------
            IControlHabanero  ctl1 = CreateControl(10, 11, -5, -5);
            GridLayoutManager gridLayoutManager = new GridLayoutManager(ctl1, GetControlFactory());

            //--------------Assert PreConditions----------------

            //---------------Execute Test ----------------------
            gridLayoutManager.SetGridSize(2, 1);
            gridLayoutManager.AddControl(GetControlFactory().CreateTextBox());
            gridLayoutManager.AddControl(GetControlFactory().CreateTextBox());
            try
            {
                gridLayoutManager.AddControl(GetControlFactory().CreateTextBox());
                Assert.Fail("err expected");
            }
            catch (HabaneroDeveloperException ex)
            {
                StringAssert.Contains("You cannot add a control to the grid layout manager since it exceeds the grids size of '2' row and '1' column", ex.Message);
            }
            //---------------Test Result -----------------------

            //---------------Tear Down -------------------------
        }
Example #2
0
        public void TestLayoutWithColSpan()
        {
            //---------------Set up test pack-------------------
            IControlHabanero managedControl = GetControlFactory().CreateControl();

            managedControl.Width  = 100;
            managedControl.Height = 100;
            GridLayoutManager layoutManager = new GridLayoutManager(managedControl,
                                                                    GetControlFactory());

            layoutManager.SetGridSize(2, 2);
            IControlHabanero control1 = GetControlFactory().CreateControl();
            IControlHabanero control2 = GetControlFactory().CreateControl();
            IControlHabanero control3 = GetControlFactory().CreateControl();

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

            //---------------Execute Test ----------------------
            layoutManager.AddControl(new GridLayoutManager.ControlInfo(control1, 2, 1));
            layoutManager.AddControl(control2);
            layoutManager.AddControl(control3);
            //---------------Test Result -----------------------

            Assert.AreEqual(LayoutManager.DefaultBorderSize, control1.Top);
            Assert.AreEqual(LayoutManager.DefaultBorderSize, control1.Left);
            Assert.AreEqual(managedControl.Width - LayoutManager.DefaultBorderSize, control1.Right);
            Assert.AreEqual((managedControl.Height - LayoutManager.DefaultGapSize) / 2, control1.Bottom);

            Assert.AreEqual(control1.Left, control2.Left);
            Assert.AreEqual(control1.Right, control3.Right);
            Assert.AreEqual(control3.Top, control2.Top);

            Assert.AreEqual(control2.Width + control3.Width + LayoutManager.DefaultGapSize, control1.Width);
        }
Example #3
0
        public void TestColumnSpanWithOneFixedColumn()
        {
            //---------------Set up test pack-------------------
            IControlHabanero controlHabanero = GetControlFactory().CreateControl();

            controlHabanero.Width = 100;
            GridLayoutManager manager = new GridLayoutManager(controlHabanero, GetControlFactory());

            manager.SetGridSize(1, 3);
            manager.FixColumnBasedOnContents(0);
            manager.FixColumnBasedOnContents(2);

            IControlHabanero col1Control = GetControlFactory().CreateControl();

            col1Control.Width = 20;
            IControlHabanero col3Control = GetControlFactory().CreateControl();

            col3Control.Width = 10;

            //---------------Execute Test ----------------------
            manager.AddControl(col1Control, 1, 2);
            manager.AddControl(col3Control);

            //---------------Test Result -----------------------
            Assert.AreEqual(LayoutManager.DefaultBorderSize, col1Control.Left);
            Assert.AreEqual(controlHabanero.Width - LayoutManager.DefaultBorderSize - col3Control.Width - LayoutManager.DefaultGapSize, col1Control.Left + col1Control.Width);

            //---------------Tear Down -------------------------
        }
Example #4
0
        public void TestShowDatePickerForm()
        {
            //---------------Set up test pack-------------------
            IFormHabanero   formWin        = new FormWin();
            IDateTimePicker dateTimePicker = GetControlFactory().CreateDateTimePicker();

            dateTimePicker.Format           = Habanero.Faces.Base.DateTimePickerFormat.Custom;
            dateTimePicker.CustomFormat     = @"Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: dd MMM yyyy";
            dateTimePicker.NullDisplayValue = "Please Click";
            //dateTimePicker.ShowCheckBox = true;
            ITextBox textBox = GetControlFactory().CreateTextBox();
            IButton  button  = GetControlFactory().CreateButton("Check/Uncheck", delegate
            {
                //dateTimePicker.Checked = !dateTimePicker.Checked;
                if (dateTimePicker.ValueOrNull.HasValue)
                {
                    dateTimePicker.ValueOrNull = null;
                }
                else
                {
                    dateTimePicker.ValueOrNull = dateTimePicker.Value;
                }
            });
            IButton enableButton = GetControlFactory().CreateButton("Enable/Disable", delegate
            {
                dateTimePicker.Enabled = !dateTimePicker.Enabled;
            });
            GridLayoutManager gridLayoutManager = new GridLayoutManager(formWin, GetControlFactory());

            gridLayoutManager.SetGridSize(5, 1);
            gridLayoutManager.AddControl(dateTimePicker);
            gridLayoutManager.AddControl(button);
            gridLayoutManager.AddControl(textBox);
            gridLayoutManager.AddControl(enableButton);
            gridLayoutManager.AddControl(GetControlFactory().CreateButton("ChangeColor", delegate
            {
                Random random            = new Random();
                dateTimePicker.ForeColor = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));
                dateTimePicker.BackColor = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));
            }));
            dateTimePicker.ValueChanged += delegate
            {
                textBox.Text = dateTimePicker.ValueOrNull.HasValue ? dateTimePicker.Value.ToString() : "";
            };
            //---------------Execute Test ----------------------
            formWin.ShowDialog();
            //---------------Test Result -----------------------

            //---------------Tear down -------------------------
        }
        ///<summary>
        /// Constructs a multiselector
        ///</summary>
        ///<param name="controlFactory"></param>
        public MultiSelectorWin(IControlFactory controlFactory)
        {
            _controlFactory = controlFactory;
            InitializeComponent();
            _gridLayoutManager = new GridLayoutManager(this, controlFactory);
            PanelWin optionsPanel = new PanelWin();

            _availableOptionsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
            optionsPanel.Controls.Add(_availableOptionsGroupBox);
            PanelWin          buttonPanel        = new PanelWin();
            GridLayoutManager buttonPanelManager = new GridLayoutManager(buttonPanel, controlFactory);

            buttonPanelManager.SetGridSize(6, 1);
            buttonPanelManager.AddControl(null);
            buttonPanelManager.AddControl(_btnSelect);
            buttonPanelManager.AddControl(_btnSelectAll);
            buttonPanelManager.AddControl(_btnDeselectAll);
            buttonPanelManager.AddControl(_btnDeselect);
            buttonPanelManager.AddControl(null);
            buttonPanelManager.FixRow(0, 25);
            buttonPanelManager.FixRow(1, 25);
            buttonPanelManager.FixRow(2, 25);
            buttonPanelManager.FixRow(3, 25);
            buttonPanelManager.FixRow(4, 25);
            buttonPanelManager.FixRow(5, 25);
            buttonPanelManager.FixColumnBasedOnContents(0);
            PanelWin selectionsPanel = new PanelWin();

            _selectionsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
            selectionsPanel.Controls.Add(_selectionsGroupBox);
            _gridLayoutManager.SetGridSize(1, 3);
            _gridLayoutManager.FixColumn(1, 100);
            _gridLayoutManager.AddControl(optionsPanel);
            _gridLayoutManager.AddControl(buttonPanel);
            _gridLayoutManager.AddControl(selectionsPanel);
            _manager = new MultiSelectorManager <T>(this);
            AvailableOptionsListBox.SelectedIndexChanged += delegate
            {
                GetButton(MultiSelectorButton.Select).Enabled = (AvailableOptionsListBox.SelectedIndex != -1);
            };

            SelectedOptionsListBox.SelectedIndexChanged += delegate
            {
                GetButton(MultiSelectorButton.Deselect).Enabled = (SelectedOptionsListBox.SelectedIndex != -1);
            };

            SetDoubleClickEventHandlers();
        }
        private void SetupGridAndBOEditorControlVWG(IControlFactory controlFactory, IBOEditorControl iboEditorControl, IClassDef classDef, string gridUiDefName)
        {
            if (controlFactory == null)
            {
                throw new ArgumentNullException("controlFactory");
            }
            if (iboEditorControl == null)
            {
                throw new ArgumentNullException("iboEditorControl");
            }

            _controlFactory   = controlFactory;
            _iboEditorControl = iboEditorControl;

            IPanel panel = _controlFactory.CreatePanel();

            SetupReadOnlyGridControl(classDef, gridUiDefName);
            SetupButtonGroupControl();
            UpdateControlEnabledState();

            GridLayoutManager manager = new GridLayoutManager(panel, _controlFactory);

            manager.SetGridSize(2, 1);
            manager.FixAllRowsBasedOnContents();
            manager.AddControl(_iboEditorControl);
            manager.AddControl(_buttonGroupControl);

            this.FilterControl = _controlFactory.CreateGenericGridFilter(_readOnlyGridControl.Grid);

            BorderLayoutManager layoutManager = _controlFactory.CreateBorderLayoutManager(this);

            layoutManager.AddControl(this.FilterControl, BorderLayoutManager.Position.North);
            layoutManager.AddControl(_readOnlyGridControl, BorderLayoutManager.Position.West);
            layoutManager.AddControl(panel, BorderLayoutManager.Position.Centre);
            //layoutManager.AddControl(_selectButtonGroupControl, BorderLayoutManager.Position.South);

            _readOnlyGridControl.BusinessObjectSelected +=
                ((sender, e) => FireBusinessObjectSelected(e.BusinessObject));

            _readOnlyGridControl.Grid.SelectionChanged += GridSelectionChanged;
        }
        ///<summary>
        /// Constructor for the <see cref="MultiSelectorVWG{T}"/>
        ///</summary>
        ///<param name="controlFactory"></param>
        public MultiSelectorVWG(IControlFactory controlFactory)
        {
//            _controlFactory = controlFactory;
            InitializeComponent();
            _gridLayoutManager = new GridLayoutManager(this, controlFactory);
            PanelVWG optionsPanel = new PanelVWG();

            _availableOptionsGroupBox.Dock = Gizmox.WebGUI.Forms.DockStyle.Fill;
            optionsPanel.Controls.Add(_availableOptionsGroupBox);
            PanelVWG          buttonPanel        = new PanelVWG();
            GridLayoutManager buttonPanelManager = new GridLayoutManager(buttonPanel, controlFactory);

            buttonPanelManager.SetGridSize(6, 1);
            buttonPanelManager.AddControl(null);
            buttonPanelManager.AddControl(_btnSelect);
            buttonPanelManager.AddControl(_btnSelectAll);
            buttonPanelManager.AddControl(_btnDeselectAll);
            buttonPanelManager.AddControl(_btnDeselect);
            buttonPanelManager.AddControl(null);
            buttonPanelManager.FixRow(0, 25);
            buttonPanelManager.FixRow(1, 25);
            buttonPanelManager.FixRow(2, 25);
            buttonPanelManager.FixRow(3, 25);
            buttonPanelManager.FixRow(4, 25);
            buttonPanelManager.FixRow(5, 25);
            buttonPanelManager.FixColumnBasedOnContents(0);
            PanelVWG selectionsPanel = new PanelVWG();

            _selectionsGroupBox.Dock = Gizmox.WebGUI.Forms.DockStyle.Fill;
            selectionsPanel.Controls.Add(_selectionsGroupBox);
            _gridLayoutManager.SetGridSize(1, 3);
            _gridLayoutManager.FixColumn(1, 100);
            _gridLayoutManager.AddControl(optionsPanel);
            _gridLayoutManager.AddControl(buttonPanel);
            _gridLayoutManager.AddControl(selectionsPanel);
            _manager = new MultiSelectorManager <T>(this);
        }
        public void Test_Visually()
        {
            //---------------Set up test pack-------------------
            IControlFactory controlFactory = GetControlFactory();
            IGroupBox       groupBox       = controlFactory.CreateGroupBox("Test Layout");
            IPanel          panel          = controlFactory.CreatePanel();

            panel.Dock = DockStyle.Fill;
            groupBox.Controls.Add(panel);
            GridLayoutManager gridLayoutManager = new GridLayoutManager(panel, controlFactory);

            gridLayoutManager.SetGridSize(6, 2);
            int controlNumber = 1;

            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()), 2, 1);
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()), 2, 1);
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++.ToString()));
            //IButtonGroupControl buttonGroupControl = controlFactory.CreateButtonGroupControl();
            //buttonGroupControl.Dock = DockStyle.Top;
            //groupBox.Controls.Add(buttonGroupControl);
            //buttonGroupControl.AddButton("Add Control", (sender, e) => gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++ + ":")));
            //buttonGroupControl.AddButton("-Columns", (sender, e) =>
            //{
            //    if (gridLayoutManager.ColumnCount > 1)
            //    {
            //        gridLayoutManager.ColumnCount--;
            //        gridLayoutManager.Refresh();
            //    }
            //});
            //buttonGroupControl.AddButton("+Columns", (sender, e) => { gridLayoutManager.ColumnCount++; gridLayoutManager.Refresh(); });
            IFormHabanero form = controlFactory.CreateOKCancelDialogFactory().CreateOKCancelForm(groupBox, "Test Grid Layout Manager");

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            form.ShowDialog();
            //---------------Test Result -----------------------
        }
Example #9
0
 public void TestAddNullControl()
 {
     _manager.AddControl(null);
 }
Example #10
0
        public void TestShowDatePickersFormWithVisualStyles()
        {
            //---------------Set up test pack-------------------
            //Application.EnableVisualStyles();
            IFormHabanero   formWin        = new FormWin();
            IControlFactory controlFactory = GetControlFactory();
            IDateTimePicker dateTimePicker = controlFactory.CreateDateTimePicker();

            dateTimePicker.Format           = Habanero.Faces.Base.DateTimePickerFormat.Custom;
            dateTimePicker.CustomFormat     = @"dddd MMMM yyyy";
            dateTimePicker.NullDisplayValue = "Please Click";
            //dateTimePicker.ShowCheckBox = true;
            ITextBox textBox = controlFactory.CreateTextBox();
            IButton  button  = controlFactory.CreateButton("Check/Uncheck", delegate
            {
                //dateTimePicker.Checked = !dateTimePicker.Checked;
                if (dateTimePicker.ValueOrNull.HasValue)
                {
                    dateTimePicker.ValueOrNull = null;
                }
                else
                {
                    dateTimePicker.ValueOrNull = dateTimePicker.Value;
                }
            });
            IButton enableButton = controlFactory.CreateButton("Enable/Disable", delegate
            {
                dateTimePicker.Enabled = !dateTimePicker.Enabled;
            });


            IPanel panel = controlFactory.CreatePanel();

            panel.Dock = DockStyle.Fill;
            formWin.Controls.Add(panel);

            GridLayoutManager gridLayoutManager = new GridLayoutManager(panel, controlFactory);

            gridLayoutManager.SetGridSize(9, 1);
            gridLayoutManager.BorderSize = 25;
            gridLayoutManager.AddControl(dateTimePicker);
            gridLayoutManager.AddControl(button);
            gridLayoutManager.AddControl(textBox);
            gridLayoutManager.AddControl(enableButton);
            gridLayoutManager.AddControl(controlFactory.CreateButton("ChangeColor", delegate
            {
                Random random            = new Random();
                dateTimePicker.ForeColor = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));
                dateTimePicker.BackColor = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));
            }));


            IDateTimePicker anotherDateTimePicker;

            anotherDateTimePicker        = controlFactory.CreateDateTimePicker();
            anotherDateTimePicker.Format = Habanero.Faces.Base.DateTimePickerFormat.Long;
            gridLayoutManager.AddControl(anotherDateTimePicker);
            anotherDateTimePicker        = controlFactory.CreateDateTimePicker();
            anotherDateTimePicker.Format = Habanero.Faces.Base.DateTimePickerFormat.Short;
            gridLayoutManager.AddControl(anotherDateTimePicker);
            anotherDateTimePicker        = controlFactory.CreateDateTimePicker();
            anotherDateTimePicker.Format = Habanero.Faces.Base.DateTimePickerFormat.Time;
            gridLayoutManager.AddControl(anotherDateTimePicker);

            anotherDateTimePicker        = controlFactory.CreateDateTimePicker();
            anotherDateTimePicker.Format = Habanero.Faces.Base.DateTimePickerFormat.Long;
            anotherDateTimePicker.Font   = new Font(FontFamily.GenericSansSerif, 18);
            anotherDateTimePicker.Height = 60;
            gridLayoutManager.AddControl(anotherDateTimePicker);

            dateTimePicker.ValueChanged += delegate
            {
                textBox.Text = dateTimePicker.ValueOrNull.HasValue ? dateTimePicker.Value.ToString() : "";
            };
            //---------------Execute Test ----------------------
            formWin.ShowDialog();
            //---------------Test Result -----------------------

            //---------------Tear down -------------------------
        }
Example #11
0
        public void Test_Visually_Advanced()
        {
            //---------------Set up test pack-------------------
            IControlFactory controlFactory = GetControlFactory();
            IGroupBox       groupBox       = controlFactory.CreateGroupBox("Test Layout");
            IPanel          panel          = controlFactory.CreatePanel();

            panel.Dock = DockStyle.Fill;
            groupBox.Controls.Add(panel);
            ColumnLayoutManager columnLayoutManager = new ColumnLayoutManager(panel, controlFactory)
            {
                ColumnCount = 1
            };
            int    controlNumber = 1;
            IPanel panel1        = CreateColoredPanel(controlFactory, controlNumber++ + ":");

            panel1.Controls.Clear();
            GridLayoutManager gridLayoutManager = new GridLayoutManager(panel1, controlFactory);

            gridLayoutManager.SetGridSize(4, 3);
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "a:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "b:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "c:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "d:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "e:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "f:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "g:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "h:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "i:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "j:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "k:"));
            gridLayoutManager.AddControl(CreateColoredPanel(controlFactory, "l:"));


            columnLayoutManager.AddControl(panel1);
            columnLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++ + ":"));
            IButtonGroupControl buttonGroupControl = controlFactory.CreateButtonGroupControl();

            buttonGroupControl.Dock = DockStyle.Top;
            groupBox.Controls.Add(buttonGroupControl);
            buttonGroupControl.AddButton("Add Control", (sender, e) => columnLayoutManager.AddControl(CreateColoredPanel(controlFactory, controlNumber++ + ":")));
            buttonGroupControl.AddButton("-Columns", (sender, e) =>
            {
                if (columnLayoutManager.ColumnCount > 1)
                {
                    columnLayoutManager.ColumnCount--;
                    columnLayoutManager.Refresh();
                }
            });
            buttonGroupControl.AddButton("+Columns", (sender, e) => { columnLayoutManager.ColumnCount++; columnLayoutManager.Refresh(); });
            IFormHabanero form = controlFactory.CreateOKCancelDialogFactory().CreateOKCancelForm(groupBox, "Test Column Layout Manager");

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            form.ShowDialog();
            //---------------Test Result -----------------------
        }
        private void SetupGridAndBOEditorControlWin(IControlFactory controlFactory, IBOEditorControl iboEditorControl, IClassDef classDef, string gridUiDefName)
        {
            if (controlFactory == null)
            {
                throw new ArgumentNullException("controlFactory");
            }
            if (iboEditorControl == null)
            {
                throw new ArgumentNullException("iboEditorControl");
            }
            _controlFactory   = controlFactory;
            _iboEditorControl = iboEditorControl;

            SetupReadOnlyGridControl(classDef, gridUiDefName);
            SetupButtonGroupControl();
            UpdateControlEnabledState();

            this.FilterControl = controlFactory.CreateGenericGridFilter(this.GridControl.Grid);
            this.FilterControl.FilterStarted   += (sender, e) => { this.SetFilteringUIState(true); };
            this.FilterControl.FilterCompleted += (sender, e) => { this.SetFilteringUIState(false); };

            var grid = new GridLayoutManager(this, _controlFactory);

            grid.SetGridSize(3, 4);
            grid.FixRow(2, _buttonGroupControl.Height);
            grid.FixRow(0, this.FilterControl.Height + 5);
            grid.FixColumn(0, this.FilterControl.Width);

            var leftMost   = this.Width;
            var rightMost  = 0;
            var bottomMost = 0;

            foreach (var control in this._iboEditorControl.Controls)
            {
                var ctl = control as Control;
                if (ctl == null)
                {
                    continue;
                }
                if (ctl.Left < leftMost)
                {
                    leftMost = ctl.Left;
                }
                if (ctl.Right > rightMost)
                {
                    rightMost = ctl.Right;
                }
                if (ctl.Bottom > bottomMost)
                {
                    bottomMost = ctl.Bottom;
                }
            }
            var editorWidth = rightMost - leftMost;

            grid.FixColumn(3, editorWidth);

            grid.AddControl(this.FilterControl, 1, 3);
            grid.AddControl(controlFactory.CreateControl());
            grid.AddControl(_readOnlyGridControl, 1, 3);
            grid.AddControl(_iboEditorControl);
            grid.AddControl(_buttonGroupControl, 1, 4);

            this.MinimumSize = new Size(editorWidth, bottomMost);

            _readOnlyGridControl.BusinessObjectSelected +=
                ((sender, e) => FireBusinessObjectSelected(e.BusinessObject));

            _readOnlyGridControl.Grid.SelectionChanged += GridSelectionChanged;
        }