private List <Control> GetControls(InputTextBoxField field, Size canvasSize)
        {
            DragableTextBox textBox = new DragableTextBox();

            textBox.Width = defaultControlWidth;

            if (field is MultilineTextField)
            {
                textBox.Multiline  = true;
                textBox.AcceptsTab = false;
            }

            if (field is PhoneNumberField)
            {
                textBox.Text = ((IPatternable)field).Pattern;
            }

            SetControlProperties(textBox, field, canvasSize);
            textBox.ReadOnly    = true;
            textBox.BorderStyle = borderStyle;

            DragableLabel  prompt   = GetPrompt(textBox, field, canvasSize);
            List <Control> controls = new List <Control>();

            controls.Add(prompt);
            controls.Add(textBox);
            return(controls);
        }
        private List <Control> GetControls(MirrorField field, Size canvasSize)
        {
            DragableTextBox textBox = new DragableTextBox();

            SetControlProperties(textBox, field, canvasSize);
            textBox.ReadOnly    = true;
            textBox.BorderStyle = borderStyle;
            DragableLabel  prompt   = GetPrompt(textBox, field, canvasSize);
            List <Control> controls = new List <Control>();

            controls.Add(prompt);
            controls.Add(textBox);
            return(controls);
        }
        private List <Control> GetControls(TableBasedDropDownField field, Size canvasSize)
        {
            string displayMember = field.TextColumnName.Trim();
            string valueMember;

            if (field is DDLFieldOfCodes)
            {
                valueMember = field.CodeColumnName.Trim();
            }
            else if (field is DDListField)
            {
                valueMember = field.CodeColumnName.Trim();
            }
            else
            {
                valueMember = field.TextColumnName.Trim();
            }

            DragableComboBox comboBox = new DragableComboBox();

            comboBox.Width = defaultControlWidth;
            SetControlProperties(comboBox, field, canvasSize);
            if (field is DDListField)
            {
                comboBox.DropDownStyle = ComboBoxStyle.Simple;
            }
            else
            {
                comboBox.DropDownStyle = ComboBoxStyle.DropDown;
            }
            comboBox.Sorted = field.ShouldSort;

            if (!string.IsNullOrEmpty(displayMember))
            {
                DataTable dataTable = field.GetSourceData();

                if (dataTable != null)
                {
                    DataBind(comboBox, dataTable, displayMember, valueMember);
                }
            }
            DragableLabel  prompt   = GetPrompt(comboBox, field, canvasSize);
            List <Control> controls = new List <Control>();

            controls.Add(prompt);
            controls.Add(comboBox);
            return(controls);
        }
        private List <Control> GetControls(ImageField field, Size canvasSize)
        {
            DragablePictureBox pictureBox = new DragablePictureBox();

            pictureBox.Width  = 256;
            pictureBox.Height = 128;
            SetControlProperties(pictureBox, field, canvasSize);
            pictureBox.BorderStyle           = BorderStyle.Fixed3D;
            pictureBox.BackgroundImage       = global::Epi.Windows.MakeView.Properties.Resources.imageControlIcon;
            pictureBox.BackgroundImageLayout = ImageLayout.Center;
            DragableLabel  prompt   = GetPrompt(pictureBox, field, canvasSize);
            List <Control> controls = new List <Control>();

            controls.Add(prompt);
            controls.Add(pictureBox);
            return(controls);
        }
        private List <Control> GetControls(YesNoField field, Size canvasSize)
        {
            Epi.Windows.Controls.DragableComboBox comboBox = new DragableComboBox();
            comboBox.Width = defaultControlWidth;
            SetControlProperties(comboBox, field, canvasSize);
            comboBox.DropDownStyle = ComboBoxStyle.DropDown;
            comboBox.FlatStyle     = flatStyle;
            Configuration config = Configuration.GetNewInstance();

            comboBox.Items.Add(config.Settings.RepresentationOfYes);
            comboBox.Items.Add(config.Settings.RepresentationOfNo);
            DragableLabel  prompt   = GetPrompt(comboBox, field, canvasSize);
            List <Control> controls = new List <Control>();

            controls.Add(prompt);
            controls.Add(comboBox);
            return(controls);
        }
        private List <Control> GetControls(LabelField field, Size canvasSize)
        {
            DragableLabel label = new DragableLabel();

            label.Width = defaultControlWidth;
            SetControlProperties(label, field, canvasSize);
            label.Text = field.PromptText.Replace("\t", "    ");

            if (field.Page.FlipLabelColor)
            {
                label.ForeColor = Color.White;
            }

            List <Control> controls = new List <Control>();

            controls.Add(label);
            return(controls);
        }
        private DragableLabel GetPrompt(Control control, FieldWithSeparatePrompt field, Size canvasSize)
        {
            DragableLabel prompt = new DragableLabel();

            prompt.AutoSize    = true;
            prompt.Font        = field.PromptFont;
            prompt.Text        = field.PromptText;
            prompt.Left        = WinUtil.GetPromptLeft(field, canvasSize.Width);
            prompt.Top         = WinUtil.GetPromptTop(field, canvasSize.Height);
            prompt.LabelFor    = control;
            prompt.Field       = field;
            prompt.UseMnemonic = false;

            if (field.Page.FlipLabelColor)
            {
                prompt.ForeColor = Color.White;
            }

            return(prompt);
        }
        /// <summary>
        /// Returns grid field control.
        /// </summary>
        /// <param name="field">The grid field to get.</param>
        /// <param name="canvasSize">The size of the view canvas.</param>
        /// <returns>A list of the grid's controls.</returns>
        private List <Control> GetControls(GridField field, Size canvasSize)
        {
            DragableGrid gridView = new DragableGrid();

            gridView.AutoGenerateColumns = false;
            gridView.Width  = 160;
            gridView.Height = 150;
            SetControlProperties(gridView, field, canvasSize);
            gridView.ReadOnly = true;
            gridView.TabStop  = false;
            gridView.ColumnHeadersHeightSizeMode        = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            gridView.ColumnHeadersDefaultCellStyle.Font = field.PromptFont;

            DataTable             columnTable = new DataTable("GridColumns");
            List <GridColumnBase> cols        = new List <GridColumnBase>(field.Columns);

            cols.Sort(Util.SortByPosition);

            foreach (GridColumnBase col in cols)
            {
                if (!(col is PredefinedColumn))
                {
                    DataGridViewColumn column;

                    if (col is CheckboxColumn)
                    {
                        column = new DataGridViewCheckBoxColumn();
                    }
                    else
                    {
                        column = new DataGridViewTextBoxColumn();
                    }

                    try
                    {
                        column.MinimumWidth = 25;

                        column.Name                  = col.Name;
                        column.HeaderText            = col.Text;
                        column.ReadOnly              = col.IsReadOnly;
                        column.DataPropertyName      = col.Name;
                        column.DefaultCellStyle.Font = field.ControlFont;

                        if (col is PredefinedColumn)
                        {
                            column.ReadOnly = true;
                        }

                        column.Width = col.Width;
                    }
                    catch (InvalidOperationException ioEx)
                    {
                        MsgBox.ShowException(ioEx);
                    }

                    gridView.Columns.Add(column);
                }
            }

            gridView.RowHeadersVisible = false;
            gridView.Refresh();

            DragableLabel  prompt   = GetPrompt(gridView, field, canvasSize);
            List <Control> controls = new List <Control>();

            controls.Add(prompt);
            controls.Add(gridView);

            return(controls);
        }