Exemple #1
0
 /// <summary>
 /// when changing env letter
 /// </summary>
 /// <param name="sender"></param>
 private void cbSuffix_SelectedIndexChanged(YamuiComboBox sender)
 {
     if (Config.Instance.EnvSuffix.Equals(cbSuffix.SelectedItem.ToString()))
     {
         return;
     }
     ProEnvironment.SetCurrent(null, cbSuffix.SelectedItem.ToString(), null);
     ToggleMode(ViewMode.Select);
 }
Exemple #2
0
 /// <summary>
 /// when changing database
 /// </summary>
 /// <param name="sender"></param>
 private void cbDatabase_SelectedIndexChanged(YamuiComboBox sender)
 {
     if (ProEnvironment.Current.GetCurrentDb().Equals(cbDatabase.SelectedItem.ToString()))
     {
         return;
     }
     ProEnvironment.SetCurrent(null, null, cbDatabase.SelectedItem.ToString());
     textbox1.Text = ProEnvironment.Current.GetPfPath();
     ProEnvironment.SaveList();
 }
Exemple #3
0
        /// <summary>
        /// called when the user changes the value of the combo box
        /// </summary>
        private void SelectedIndexChanged(YamuiComboBox sender)
        {
            var val = cb_info.SelectedValue.ToString();

            if (val.Equals(FileTag.LastTag) || val.Equals(FileTag.DefaultTag))
            {
                _locFileTagObject = FileTag.GetFileTags(val, "");
            }
            else
            {
                _locFileTagObject = FileTag.GetFileTags(_filename, val);
                FileTag.SetFileTags(_filename, _locFileTagObject.CorrectionNumber, _locFileTagObject.CorrectionDate, _locFileTagObject.CorrectionDecription, _locFileTagObject.ApplicationName, _locFileTagObject.ApplicationVersion, _locFileTagObject.WorkPackage, _locFileTagObject.BugId);
            }
            UpdateView();
        }
Exemple #4
0
        private Control InsertInputForItem(int i, ref int yPos)
        {
            var item     = _items[i];
            var itemType = GetItemType(item);

            // Get default text value
            object val;

            if (item == null)
            {
                val = DataObject;
            }
            else if (item is PropertyInfo)
            {
                val = ((PropertyInfo)item).GetValue(DataObject, null);
            }
            else
            {
                val = ((FieldInfo)item).GetValue(DataObject);
            }

            string strValue   = val.ConvertToStr();
            var    inputWidth = contentPanel.Width - _dataLabelWidth - InputPadding * 3;

            // Build control type
            Control retVal;

            if (itemType == typeof(bool))
            {
                retVal = new YamuiButtonToggle {
                    Location = new Point(_dataLabelWidth + InputPadding * 2, yPos),
                    Size     = new Size(40, 16),
                    Text     = null,
                    Checked  = (bool)val
                };

                // for enum or list of strings
            }
            else if (itemType.IsEnum || (itemType == typeof(string) && GetAttr(item) != null && GetAttr(item).AllowListedValuesOnly))
            {
                var cb = new YamuiComboBox {
                    Location = new Point(_dataLabelWidth + InputPadding * 2, yPos),
                    Size     = new Size(inputWidth, 20),
                    Anchor   = Anchor | AnchorStyles.Right
                };
                var dataSource = new List <string>();
                if (itemType.IsEnum)
                {
                    foreach (var name in Enum.GetNames(itemType))
                    {
                        var attribute = Attribute.GetCustomAttribute(itemType.GetField(name), typeof(DescriptionAttribute), true) as DescriptionAttribute;
                        dataSource.Add(attribute != null ? attribute.Description : name);
                    }
                }
                else
                {
                    dataSource = strValue.Split('|').ToList();
                    strValue   = dataSource[0];
                }
                cb.DataSource = dataSource;
                cb.Text       = strValue;
                retVal        = cb;

                // for everything else
            }
            else
            {
                var tb = new YamuiTextBox {
                    Location  = new Point(_dataLabelWidth + InputPadding * 2, yPos),
                    Size      = new Size(inputWidth, 20),
                    Text      = strValue,
                    Anchor    = Anchor | AnchorStyles.Right,
                    Multiline = false
                };
                tb.AcceptsTab       = false;
                tb.CausesValidation = true;
                tb.Enter           += (s, e) => tb.SelectAll();

                if (itemType == typeof(char))
                {
                    tb.KeyPress += (s, e) => e.Handled = !char.IsControl(e.KeyChar) && tb.TextLength > 0;
                }
                else
                {
                    tb.KeyPress += (s, e) => e.Handled = Utilities.IsInvalidKey(e.KeyChar, itemType);
                }

                tb.Validating += (s, e) => {
                    bool invalid = IsTextInvalid(tb, itemType);
                    e.Cancel = invalid;
                    _errorProvider.SetError(tb, invalid ? "The value has an invalid format for <" + itemType.Name + ">." : "");
                };

                tb.Validated += (s, e) => _errorProvider.SetError(tb, "");

                _errorProvider.SetIconPadding(tb, -18);
                _errorProvider.Icon = Resources.Resources.IcoError;
                retVal = tb;
            }

            // Set standard props
            retVal.Name = "input" + i;

            // add tooltip on the control
            if (_items[i] != null && !string.IsNullOrEmpty(GetAttr(_items[i]).Tooltip))
            {
                _tooltip.SetToolTip(retVal, GetAttr(_items[i]).Tooltip);
            }

            return(retVal);
        }
Exemple #5
0
        /// <summary>
        /// Insert the correct input for the option
        /// </summary>
        private Control InsertInputForItem(FieldInfo property, Config.ConfigAttribute attr, ref int yPos)
        {
            // Build control type
            Control retVal;

            if (property.FieldType == typeof(bool))
            {
                // for bool
                var tg = new YamuiButtonToggle {
                    Location = new Point(320, yPos),
                    Size     = new Size(40, 16),
                    Text     = null,
                    Checked  = (bool)property.GetValue(Config.Instance)
                };
                tg.ButtonPressed += (sender, args) => OnFieldModified();
                retVal            = tg;
            }
            else if (property.FieldType.IsEnum)
            {
                // for enum
                var dataSource = new List <string>();
                foreach (var name in Enum.GetNames(property.FieldType))
                {
                    var attribute = Attribute.GetCustomAttribute(property.FieldType.GetField(name), typeof(DescriptionAttribute), true) as DescriptionAttribute;
                    dataSource.Add(attribute != null ? attribute.Description : name);
                }
                dataSource = dataSource.Select(s => s.Replace("_", " ").Trim()).ToNonNullList();
                var cb = new YamuiComboBox {
                    Location   = new Point(320, yPos),
                    Size       = new Size(Math.Min(300, dataSource.Select(s => TextRenderer.MeasureText(s, FontManager.GetStandardFont()).Width).Max() + 25), 20),
                    DataSource = dataSource,
                };
                cb.SelectedIndex = Enum.GetNames(property.FieldType).IndexOf(property.GetValue(Config.Instance).ConvertToStr());
                cb.SelectedIndexChangedByUser += box => OnFieldModified();
                retVal = cb;
            }
            else
            {
                // for everything else
                var tb = new YamuiTextBox {
                    Location         = new Point(320, yPos),
                    Size             = new Size(300, 20),
                    Text             = property.GetValue(Config.Instance).ConvertToStr(),
                    Multiline        = false,
                    CausesValidation = true
                };
                tb.Enter += (s, e) => tb.SelectAll();
                if (property.FieldType == typeof(char))
                {
                    tb.KeyPress += (s, e) => {
                        e.Handled = !char.IsControl(e.KeyChar) && tb.TextLength > 0;
                    }
                }
                ;
                else
                {
                    tb.KeyPress += (s, e) => {
                        e.Handled = Utilities.IsInvalidKey(e.KeyChar, property.FieldType);
                    }
                };
                tb.Validating  += ValidateTextBox;
                tb.Validated   += (s, e) => errorProvider.SetError(tb, "");
                tb.TextChanged += (sender, args) => OnFieldModified();
                errorProvider.SetIconPadding(tb, -18);
                errorProvider.Icon = ImageResources.IcoError;
                retVal             = tb;
            }

            var undoButton = new YamuiButtonImage {
                BackGrndImage = ImageResources.UndoUserAction,
                Size          = new Size(20, 20),
                Location      = new Point(retVal.Left + retVal.Width + 5, yPos),
                Tag           = retVal,
                TabStop       = false
            };

            undoButton.ButtonPressed += OnUndoButton;
            scrollPanel.ContentPanel.Controls.Add(undoButton);
            tooltip.SetToolTip(undoButton, "Click to <b>reset this field</b> to its default value");

            // add tooltip on the control
            if (!string.IsNullOrEmpty(attr.Tooltip))
            {
                var rangeAttr = (RangeAttribute)property.GetCustomAttributes(typeof(RangeAttribute), false).FirstOrDefault();
                tooltip.SetToolTip(retVal, "<b>" + attr.Label + ":</b><br><br>" + attr.Tooltip + (rangeAttr != null ? "<br><b><i>" + "Min value = " + rangeAttr.Minimum + "<br>Max value = " + rangeAttr.Maximum + "</i></b>" : ""));
            }

            // Set standard props
            retVal.Name = "option_" + property.Name;
            retVal.Tag  = property;

            return(retVal);
        }
Exemple #6
0
 private void CbNameOnSelectedIndexChanged(YamuiComboBox sender)
 {
     DeploymentProfile.Current            = DeploymentProfile.List[cbName.SelectedIndex];
     Config.Instance.CurrentDeployProfile = DeploymentProfile.Current.Name;
     SetFieldsFromData();
 }