예제 #1
0
        protected virtual void GenerateControlsDesignTime(
            int currentColumn,
            KeyValuePair <string, Control> pair,
            Size propertyItemControlSize,
            Point propertyItemControlLocation)
        {
            DataLayoutControlItem component = (DataLayoutControlItem)this.designerHost.CreateComponent(typeof(DataLayoutControlItem));

            this.changeService.OnComponentChanging((object)component, (MemberDescriptor)null);
            component.Text = pair.Key;
            if (component.MinSize.Height != propertyItemControlSize.Height)
            {
                component.MinSize = new Size(component.MinSize.Width, propertyItemControlSize.Height);
            }
            this.changeService.OnComponentChanged((object)component, (MemberDescriptor)null, (object)null, (object)null);
            this.changeService.OnComponentChanging((object)this.DataLayoutControl.Site.Component, (MemberDescriptor)null);
            DataLayoutItemInitializingEventArgs e = new DataLayoutItemInitializingEventArgs((LayoutControlItem)component);

            this.OnItemInitializing((object)this, e);
            if (e.Cancel)
            {
                return;
            }
            Control index = pair.Value;

            component.AssociatedControl = index;
            component.Bounds            = new Rectangle(propertyItemControlLocation, propertyItemControlSize);
            this.DataLayoutControl.LayoutControl.Items.Add((RadItem)component);
            this.OnItemInitialized((object)this, new DataLayoutItemInitializedEventArgs((LayoutControlItem)component));
            this.changeService.OnComponentChanged((object)this.DataLayoutControl.LayoutControl.Site.Component, (MemberDescriptor)null, (object)null, (object)null);
            this.alreadyGeneratedProperties.Add(pair.Key, pair.Value);
            this.validationInfoForEachEditor[index].Item = component;
        }
예제 #2
0
        public void Clear()
        {
            if (this.designerHost != null)
            {
                foreach (IComponent component in new List <RadItem>((IEnumerable <RadItem>) this.DataLayoutControl.LayoutControl.Items))
                {
                    this.designerHost.DestroyComponent(component);
                }
            }
            RadLayoutControl layoutControl = this.DataLayoutControl.LayoutControl;
            IList <LayoutControlItemBase> layoutControlItemBaseList = (IList <LayoutControlItemBase>) new List <LayoutControlItemBase>(layoutControl.GetAllItems());

            while (layoutControlItemBaseList.Count > 0)
            {
                DataLayoutControlItem layoutControlItem = layoutControlItemBaseList[0] as DataLayoutControlItem;
                layoutControl.RemoveItem(layoutControlItemBaseList[0]);
                layoutControlItemBaseList.RemoveAt(0);
                if (layoutControlItem != null && layoutControlItem.AssociatedControl != null)
                {
                    layoutControlItem.AssociatedControl.Validating -= new CancelEventHandler(this.control_Validating);
                    layoutControlItem.AssociatedControl.Validated  -= new EventHandler(this.control_Validated);
                    layoutControl.Controls.Remove(layoutControlItem.AssociatedControl);
                }
            }
            this.editableProperties.Clear();
            this.alreadyGeneratedProperties.Clear();
            this.validationInfoForEachEditor.Clear();
        }
 public DataLayoutItemValidatedEventArgs(
     DataLayoutControlItem item,
     ErrorProvider errorProvider,
     RadRangeAttribute rangeAttribute)
 {
     this.item           = item;
     this.errorProvider  = errorProvider;
     this.rangeAttribute = rangeAttribute;
 }
예제 #4
0
 public DataLayoutValidationInfo(
     DataLayoutControlItem item,
     ErrorProvider errorProvider,
     RadRangeAttribute rangeAttribute)
 {
     this.item           = item;
     this.errorProvider  = errorProvider;
     this.rangeAttribute = rangeAttribute;
 }
예제 #5
0
        protected virtual void ArrangeLabels()
        {
            if (!this.AutoSizeLabels)
            {
                return;
            }
            Dictionary <int, List <DataLayoutControlItem> > dictionary = new Dictionary <int, List <DataLayoutControlItem> >();

            foreach (LayoutControlItemBase layoutControlItemBase in (RadItemCollection)this.DataLayoutControl.LayoutControl.Items)
            {
                DataLayoutControlItem layoutControlItem = layoutControlItemBase as DataLayoutControlItem;
                if (layoutControlItem != null)
                {
                    if (!dictionary.ContainsKey(layoutControlItem.Bounds.X))
                    {
                        dictionary.Add(layoutControlItem.Bounds.X, new List <DataLayoutControlItem>());
                    }
                    dictionary[layoutControlItem.Bounds.X].Add(layoutControlItem);
                }
            }
            foreach (KeyValuePair <int, List <DataLayoutControlItem> > keyValuePair in dictionary)
            {
                float num = 0.0f;
                MeasurementGraphics measurementGraphics = MeasurementGraphics.CreateMeasurementGraphics();
                foreach (DataLayoutControlItem layoutControlItem in keyValuePair.Value)
                {
                    SizeF sizeF = measurementGraphics.Graphics.MeasureString(layoutControlItem.Text, layoutControlItem.Font);
                    if ((double)sizeF.Width > (double)num)
                    {
                        num = (float)((double)sizeF.Width + (double)layoutControlItem.Padding.Horizontal + 2.0);
                    }
                }
                foreach (DataLayoutControlItem layoutControlItem in keyValuePair.Value)
                {
                    if (this.changeService != null)
                    {
                        this.changeService.OnComponentChanging((object)layoutControlItem, (MemberDescriptor)null);
                    }
                    layoutControlItem.TextSizeMode  = LayoutItemTextSizeMode.Fixed;
                    layoutControlItem.TextFixedSize = (int)num;
                    if (this.changeService != null)
                    {
                        this.changeService.OnComponentChanged((object)layoutControlItem, (MemberDescriptor)null, (object)null, (object)null);
                    }
                }
            }
        }
예제 #6
0
        public void SubscribeControl(DataLayoutControlItem item, PropertyDescriptor property)
        {
            if (item == null || item.AssociatedControl == null)
            {
                return;
            }
            RadRangeAttribute radRangeAttribute = (RadRangeAttribute)null;

            foreach (Attribute attribute in property.Attributes)
            {
                if (attribute is RadRangeAttribute)
                {
                    radRangeAttribute = attribute as RadRangeAttribute;
                }
            }
            Control associatedControl = item.AssociatedControl;

            associatedControl.Validating -= new CancelEventHandler(this.control_Validating);
            associatedControl.Validated  -= new EventHandler(this.control_Validated);
            associatedControl.Validating += new CancelEventHandler(this.control_Validating);
            associatedControl.Validated  += new EventHandler(this.control_Validated);
            ErrorProvider errorProvider = new ErrorProvider();

            errorProvider.SetIconAlignment(associatedControl, ErrorIconAlignment.MiddleRight);
            errorProvider.SetIconPadding(associatedControl, 2);
            errorProvider.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;
            DataLayoutValidationInfo layoutValidationInfo = new DataLayoutValidationInfo();

            layoutValidationInfo.RangeAttribute = radRangeAttribute;
            layoutValidationInfo.ErrorProvider  = errorProvider;
            layoutValidationInfo.Item           = item;
            if (this.validationInfoForEachEditor.ContainsKey(associatedControl))
            {
                this.validationInfoForEachEditor[associatedControl].ErrorProvider.Dispose();
                this.validationInfoForEachEditor.Remove(associatedControl);
            }
            if (this.validationInfoForEachEditor.ContainsKey(associatedControl))
            {
                return;
            }
            this.validationInfoForEachEditor.Add(associatedControl, layoutValidationInfo);
        }
예제 #7
0
 private void TrySubscribeControls()
 {
     foreach (LayoutControlItemBase allItem in this.LayoutControl.GetAllItems(true))
     {
         DataLayoutControlItem layoutControlItem = allItem as DataLayoutControlItem;
         if (layoutControlItem != null && layoutControlItem.AssociatedControl != null && (layoutControlItem.AssociatedControl.DataBindings.Count > 0 && layoutControlItem.AssociatedControl.DataBindings[0].DataSource == this.DataSource))
         {
             PropertyDescriptor property = (PropertyDescriptor)null;
             foreach (PropertyDescriptor itemProperty in layoutControlItem.AssociatedControl.DataBindings[0].BindingManagerBase.GetItemProperties())
             {
                 if (itemProperty.Name == layoutControlItem.AssociatedControl.DataBindings[0].BindingMemberInfo.BindingMember)
                 {
                     property = itemProperty;
                 }
             }
             if (property != null)
             {
                 this.DataLayoutElement.SubscribeControl(layoutControlItem, property);
             }
         }
     }
 }
예제 #8
0
        protected virtual void GenerateControlsRunTime(
            int currentColumn,
            KeyValuePair <string, Control> pair,
            Size propertyItemControlSize,
            Point propertyItemControlLocation)
        {
            DataLayoutControlItem layoutControlItem = new DataLayoutControlItem();

            layoutControlItem.Text = pair.Key;
            Control index = pair.Value;

            if (index is RadControl)
            {
                (index as RadControl).ThemeName = this.DataLayoutControl.ThemeName;
            }
            layoutControlItem.AssociatedControl = index;
            if (layoutControlItem.MinSize.Height != propertyItemControlSize.Height)
            {
                layoutControlItem.MinSize = new Size(layoutControlItem.MinSize.Width, propertyItemControlSize.Height);
            }
            if (layoutControlItem.MinSize.Width > propertyItemControlSize.Width)
            {
                layoutControlItem.MinSize = new Size(propertyItemControlSize.Width, layoutControlItem.MinSize.Height);
            }
            layoutControlItem.Bounds = new Rectangle(propertyItemControlLocation, propertyItemControlSize);
            DataLayoutItemInitializingEventArgs e = new DataLayoutItemInitializingEventArgs((LayoutControlItem)layoutControlItem);

            this.OnItemInitializing((object)this, e);
            if (e.Cancel)
            {
                return;
            }
            this.DataLayoutControl.LayoutControl.Items.Add((RadItem)layoutControlItem);
            this.OnItemInitialized((object)this, new DataLayoutItemInitializedEventArgs((LayoutControlItem)layoutControlItem));
            this.alreadyGeneratedProperties.Add(pair.Key, index);
            this.validationInfoForEachEditor[index].Item = layoutControlItem;
        }