예제 #1
0
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (context != null && context.Instance != null && provider != null)
     {
         this.editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
         if (this.editorService != null)
         {
             RotationValueEditorForm frm  = new RotationValueEditorForm();
             RotationScale           frmR = (RotationScale)value;
             frm.ValueAtMaxCCWTextBox.Text = Conversions.ToString(frmR.RotationMaxValueCCW);
             frm.ValueAtMaxCWTextBox.Text  = Conversions.ToString(frmR.RotationMaxValueCW);
             frm.CCWRotationTextBox.Text   = Conversions.ToString(frmR.RotationCCWAngle);
             frm.CWRotationTextBox.Text    = Conversions.ToString(frmR.RotationCWAngle);
             frm.XPositionTextBox.Text     = Conversions.ToString(frmR.XPosition);
             frm.YPositionTextBox.Text     = Conversions.ToString(frmR.YPosition);
             if (this.editorService.ShowDialog(frm) == DialogResult.OK)
             {
                 frmR.RotationMaxValueCCW = Conversions.ToSingle(frm.ValueAtMaxCCWTextBox.Text);
                 frmR.RotationMaxValueCW  = Conversions.ToSingle(frm.ValueAtMaxCWTextBox.Text);
                 frmR.RotationCCWAngle    = Conversions.ToSingle(frm.CCWRotationTextBox.Text);
                 frmR.RotationCWAngle     = Conversions.ToSingle(frm.CWRotationTextBox.Text);
                 frmR.XPosition           = Conversions.ToInteger(frm.XPositionTextBox.Text);
                 frmR.YPosition           = Conversions.ToInteger(frm.YPositionTextBox.Text);
             }
         }
     }
     return(value);
 }
예제 #2
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            object obj = null;

            if (!destinationType.Equals(typeof(string)))
            {
                obj = base.ConvertTo(context, culture, RuntimeHelpers.GetObjectValue(value), destinationType);
            }
            else
            {
                RotationScale rotationScale = (RotationScale)value;
                string[]      str           = { Conversions.ToString(rotationScale.RotationCCWAngle), ",", Conversions.ToString(rotationScale.RotationCWAngle), ",", Conversions.ToString(rotationScale.RotationMaxValueCCW), ",", Conversions.ToString(rotationScale.RotationMaxValueCW), ",", Conversions.ToString(rotationScale.XPosition), ",", Conversions.ToString(rotationScale.YPosition) };
                obj = string.Concat(str);
            }
            return(obj);
        }
예제 #3
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            object rotationScale = null;

            if (!(value is string))
            {
                rotationScale = base.ConvertFrom(context, culture, RuntimeHelpers.GetObjectValue(value));
            }
            else
            {
                string   str       = Conversions.ToString(value);
                string[] strArrays = str.Split(new char[] { ',' });
                try
                {
                    rotationScale = new RotationScale(Conversions.ToSingle(strArrays[0]), Conversions.ToSingle(strArrays[1]), Conversions.ToSingle(strArrays[2]), Conversions.ToSingle(strArrays[3]), Conversions.ToInteger(strArrays[4]), Conversions.ToInteger(strArrays[5]));
                }
                catch (Exception exception)
                {
                    ProjectData.SetProjectError(exception);
                    throw new InvalidCastException(Conversions.ToString(value));
                }
            }
            return(rotationScale);
        }
예제 #4
0
 protected virtual void SetEditorProps(RotationScale editingInstance, RotationValueEditorForm editor)
 {
     editor.ValueAtMaxCCWTextBox.Text = Conversions.ToString(editingInstance.RotationMaxValueCCW);
 }