Exemplo n.º 1
0
        public override bool Validate(string stringValue)
        {
            CancelEventArgs e = new CancelEventArgs();

            this.Owner.CallValueChanging(e);
            if (e.Cancel)
            {
                return(false);
            }
            this.MaskFromFormat = MaskDateTimeProvider.GetSpecificFormat(this.Mask, this.Culture.DateTimeFormat);
            DateTime?date = this.Parser.ParseDate(stringValue, new DateTime?());

            if (date.HasValue)
            {
                this.TextBoxItem.Text = date.Value.ToString(this.MaskFromFormat, (IFormatProvider)this.Culture);
                this.Value            = (object)date.Value;
                this.List             = MaskDateTimeProvider.FillCollection(this.MaskFromFormat, this.Culture.DateTimeFormat);
                this.FillCollectionWithValues(this.List, this.value, this.Mask);
                this.SelectCurrentItemWithSelectedItem();
            }
            else
            {
                this.Owner.Value = (object)null;
            }
            return(false);
        }
Exemplo n.º 2
0
        private bool EnsureDateTimeMaskHandler()
        {
            RadDateTimePickerElement editorElement = this.EditorElement as RadDateTimePickerElement;

            if (editorElement == null)
            {
                return(false);
            }
            RadDateTimePickerCalendar dateTimeBehavior = editorElement.CurrentBehavior as RadDateTimePickerCalendar;

            if (dateTimeBehavior == null)
            {
                return(false);
            }
            RadMaskedEditBoxElement maskTextBox = editorElement.TextBoxElement as RadMaskedEditBoxElement;

            if (maskTextBox == null)
            {
                return(false);
            }
            if (maskTextBox.TextBoxItem.SelectionLength == maskTextBox.Text.Length)
            {
                return(false);
            }
            this.dateTimeMaskHandler = maskTextBox.Provider as MaskDateTimeProvider;
            if (this.dateTimeMaskHandler == null)
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 3
0
        public override void BeginEdit()
        {
            this.Value = this.initialValue;

            base.BeginEdit();

            //This is need to always make selected the first part ot date mask when the editor is opened
            RadDateTimePickerElement  editor           = (RadDateTimePickerElement)this.EditorElement;
            RadTextBoxElement         textBoxElement   = editor.TextBoxElement;
            RadDateTimePickerCalendar dateTimeBehavior = editor.CurrentBehavior as RadDateTimePickerCalendar;

            editor.TextBoxElement.TextBoxItem.HostedControl.Focus();
            editor.TextBoxElement.TextBoxItem.SelectionStart  = 0;
            editor.TextBoxElement.TextBoxItem.SelectionLength = 1;

            if (dateTimeBehavior != null)
            {
                dateTimeBehavior.DropDownMinSize = new Size(editor.Size.Width, 200);
                RadMaskedEditBoxElement maskTextBox = editor.TextBoxElement as RadMaskedEditBoxElement;
                MaskDateTimeProvider    maskHandler = (MaskDateTimeProvider)maskTextBox.Provider;
                maskHandler.SelectFirstEditableItem();
                this.selectedItemIndex = maskHandler.SelectedItemIndex;
                //int lastCaretPos = maskHandler.;
                //int lastSelectionPos = maskHandler.SelectionPosition;
                //while (maskHandler.SelectionPosition >= 0)
                //{
                //    lastSelectionPos = maskHandler.SelectionPosition;
                //    maskHandler.HandleLeftKey();
                //    if (lastSelectionPos == maskHandler.SelectionPosition)
                //        break;
                //}
                //this.selectedItemIndex = maskHandler.SelectedFormatInfoIndex;
                //maskTextBox.SelectionLength = maskHandler.SelectionLength;

                dateTimeBehavior.PopupControl.Opened += new EventHandler(PopupControl_Opened);
                dateTimeBehavior.PopupControl.Closed += new RadPopupClosedEventHandler(PopupControl_Closed);
                dateTimeBehavior.Calendar.CalendarElement.CalendarStatusElement.ClearButton.Click += new EventHandler(ClearButton_Click);
                dateTimeBehavior.Calendar.CalendarElement.CalendarStatusElement.TodayButton.Click += new EventHandler(TodayButton_Click);

                if (editor.Value == editor.NullDate)
                {
                    maskTextBox.Text = String.Empty;
                }
            }

            editor.NotifyParentOnMouseInput = false;
            editor.BackColor      = Color.White;
            editor.ValueChanging += new ValueChangingEventHandler(RadDateTimeEditor_ValueChanging);
            editor.ValueChanged  += new EventHandler(RadDateTimeEditor_ValueChanged);

            if (textBoxElement != null)
            {
                textBoxElement.KeyDown += new KeyEventHandler(TextBoxElement_KeyDown);
            }
        }
Exemplo n.º 4
0
        public override void BeginEdit()
        {
            this.Value = this.initialValue;
            base.BeginEdit();
            RadDateTimePickerElement  editorElement   = (RadDateTimePickerElement)this.EditorElement;
            RadTextBoxElement         textBoxElement1 = (RadTextBoxElement)editorElement.TextBoxElement;
            RadDateTimePickerCalendar currentBehavior = editorElement.CurrentBehavior as RadDateTimePickerCalendar;

            editorElement.TextBoxElement.TextBoxItem.SelectAll();
            editorElement.TextBoxElement.TextBoxItem.HostedControl.Focus();
            if (currentBehavior != null)
            {
                currentBehavior.DropDownMinSize = new Size(editorElement.Size.Width, 200);
                RadMaskedEditBoxElement textBoxElement2 = editorElement.TextBoxElement;
                MaskDateTimeProvider    provider        = (MaskDateTimeProvider)textBoxElement2.Provider;
                if (editorElement.TextBoxElement.MaskType != MaskType.FreeFormDateTime)
                {
                    provider.SelectFirstEditableItem();
                }
                this.selectedItemIndex = provider.SelectedItemIndex;
                currentBehavior.PopupControl.Opened += new EventHandler(this.PopupControl_Opened);
                currentBehavior.PopupControl.Closed += new RadPopupClosedEventHandler(this.PopupControl_Closed);
                currentBehavior.Calendar.CalendarElement.CalendarStatusElement.ClearButton.Click += new EventHandler(this.ClearButton_Click);
                currentBehavior.Calendar.CalendarElement.CalendarStatusElement.TodayButton.Click += new EventHandler(this.TodayButton_Click);
                DateTime?nullable = editorElement.Value;
                DateTime nullDate = editorElement.NullDate;
                if ((!nullable.HasValue ? 0 : (nullable.GetValueOrDefault() == nullDate ? 1 : 0)) != 0)
                {
                    textBoxElement2.Text = string.Empty;
                }
            }
            editorElement.NotifyParentOnMouseInput = false;
            if (!RadTextBoxEditor.IsDarkTheme(this.OwnerElement))
            {
                int num = (int)editorElement.SetDefaultValueOverride(VisualElement.BackColorProperty, (object)Color.White);
            }
            editorElement.ValueChanging += new ValueChangingEventHandler(this.RadDateTimeEditor_ValueChanging);
            editorElement.ValueChanged  += new EventHandler(this.RadDateTimeEditor_ValueChanged);
            if (textBoxElement1 != null)
            {
                textBoxElement1.KeyDown += new KeyEventHandler(this.TextBoxElement_KeyDown);
                textBoxElement1.KeyUp   += new KeyEventHandler(this.textBoxElement_KeyUp);
            }
            if (editorElement.ElementTree != null)
            {
                RadControl control = editorElement.ElementTree.Control as RadControl;
                if (control != null && control.ThemeName == "TelerikMetroTouch" || ThemeResolutionService.ApplicationThemeName == "TelerikMetroTouch")
                {
                    editorElement.CalendarSize = new Size(300, 300);
                }
            }
            this.isValidated = false;
        }
Exemplo n.º 5
0
 public MaskDateTimeProvider(string mask, CultureInfo culture, RadMaskedEditBoxElement owner)
 {
     this.owner              = owner;
     this.textBoxItem        = owner.TextBoxItem;
     this.mask               = mask;
     this.culture            = culture;
     this.textBoxItem        = owner.TextBoxItem;
     this.dateTimeFormatInfo = culture.DateTimeFormat;
     this.maskFromFormat     = MaskDateTimeProvider.GetSpecificFormat(mask, culture.DateTimeFormat);
     this.list               = MaskDateTimeProvider.FillCollection(this.maskFromFormat, culture.DateTimeFormat);
     this.FillCollectionWithValues(list, this.value, this.mask);
     this.selectedItemIndex = 0;
     this.SelectFirstEditableItem();
 }
Exemplo n.º 6
0
        private bool EnsureDateTimeMaskHandler()
        {
            RadDateTimePickerElement editorElement = this.EditorElement as RadDateTimePickerElement;

            if (editorElement == null || !(editorElement.CurrentBehavior is RadDateTimePickerCalendar))
            {
                return(false);
            }
            RadMaskedEditBoxElement textBoxElement = editorElement.TextBoxElement;

            if (textBoxElement == null || textBoxElement.TextBoxItem.SelectionLength == textBoxElement.Text.Length)
            {
                return(false);
            }
            this.dateTimeMaskHandler = textBoxElement.Provider as MaskDateTimeProvider;
            return(this.dateTimeMaskHandler != null);
        }
Exemplo n.º 7
0
        private void TextBoxItem_Validating(object sender, CancelEventArgs e)
        {
            FreeFormDateTimeProvider provider1 = this.Provider as FreeFormDateTimeProvider;

            if (provider1 != null)
            {
                provider1.TryParse();
            }
            else
            {
                MaskDateTimeProvider provider2 = this.Provider as MaskDateTimeProvider;
                if (provider2 == null || this.Value == null)
                {
                    return;
                }
                provider2.ValidateRange();
            }
        }
Exemplo n.º 8
0
        public override void BeginEdit()
        {
            base.BeginEdit();
            RadDateTimePickerElement  editorElement   = (RadDateTimePickerElement)this.EditorElement;
            RadTextBoxElement         textBoxElement1 = (RadTextBoxElement)editorElement.TextBoxElement;
            RadDateTimePickerCalendar currentBehavior = editorElement.CurrentBehavior as RadDateTimePickerCalendar;

            editorElement.TextBoxElement.TextBoxItem.HostedControl.Focus();
            editorElement.TextBoxElement.TextBoxItem.SelectionStart  = 0;
            editorElement.TextBoxElement.TextBoxItem.SelectionLength = 1;
            if (currentBehavior != null)
            {
                currentBehavior.DropDownMinSize = new Size(editorElement.Size.Width, 200);
                RadMaskedEditBoxElement textBoxElement2 = editorElement.TextBoxElement;
                MaskDateTimeProvider    provider        = (MaskDateTimeProvider)textBoxElement2.Provider;
                provider.SelectFirstEditableItem();
                this.selectedItemIndex = provider.SelectedItemIndex;
                currentBehavior.PopupControl.Opened += new EventHandler(this.PopupControl_Opened);
                currentBehavior.PopupControl.Closed += new RadPopupClosedEventHandler(this.PopupControl_Closed);
                currentBehavior.Calendar.CalendarElement.CalendarStatusElement.ClearButton.Click += new EventHandler(this.ClearButton_Click);
                currentBehavior.Calendar.CalendarElement.CalendarStatusElement.TodayButton.Click += new EventHandler(this.TodayButton_Click);
                DateTime?nullable = editorElement.Value;
                DateTime nullDate = editorElement.NullDate;
                if ((!nullable.HasValue ? 0 : (nullable.GetValueOrDefault() == nullDate ? 1 : 0)) != 0)
                {
                    textBoxElement2.Text = string.Empty;
                }
            }
            editorElement.NotifyParentOnMouseInput = false;
            if (!BaseTextBoxEditor.IsDarkTheme(this.OwnerElement))
            {
                int num = (int)editorElement.SetDefaultValueOverride(VisualElement.BackColorProperty, (object)Color.White);
            }
            editorElement.ValueChanging += new ValueChangingEventHandler(this.RadDateTimeEditor_ValueChanging);
            editorElement.ValueChanged  += new EventHandler(this.RadDateTimeEditor_ValueChanged);
            if (textBoxElement1 == null)
            {
                return;
            }
            textBoxElement1.KeyDown += new KeyEventHandler(this.TextBoxElement_KeyDown);
            textBoxElement1.TextBoxItem.HostedControl.LostFocus += new EventHandler(this.HostedControl_LostFocus);
        }
Exemplo n.º 9
0
        public void TryParse()
        {
            ParsingDateTimeEventArgs e = new ParsingDateTimeEventArgs(this.TextBoxItem.Text, this.Parser.ParseDate(this.TextBoxItem.Text, new DateTime?()));

            this.OnParsingDateTime(e);
            if (e.Cancel)
            {
                return;
            }
            DateTime?nullable1 = e.Result;
            DateTime?nullable2 = nullable1;
            DateTime minDate   = this.MinDate;

            if ((nullable2.HasValue ? (nullable2.GetValueOrDefault() < minDate ? 1 : 0) : 0) != 0)
            {
                nullable1 = new DateTime?(this.MinDate);
            }
            else
            {
                DateTime?nullable3 = nullable1;
                DateTime maxDate   = this.MaxDate;
                if ((nullable3.HasValue ? (nullable3.GetValueOrDefault() > maxDate ? 1 : 0) : 0) != 0)
                {
                    nullable1 = new DateTime?(this.MaxDate);
                }
            }
            if (nullable1.HasValue)
            {
                this.TextBoxItem.Text = nullable1.Value.ToString(this.MaskFromFormat, (IFormatProvider)this.Culture);
                this.value            = nullable1.Value;
                this.Owner.Value      = (object)nullable1.Value;
                this.List             = MaskDateTimeProvider.FillCollection(this.MaskFromFormat, this.Culture.DateTimeFormat);
                this.FillCollectionWithValues(this.List, this.value, this.Mask);
                this.SelectCurrentItemWithSelectedItem();
            }
            else
            {
                this.Owner.Value = (object)null;
            }
            this.OnParsedDateTime();
        }
        public override void BeginEdit()
        {
            base.BeginEdit();
            RadTimePickerElement editorElement = this.EditorElement as RadTimePickerElement;

            editorElement.RightToLeft = this.RightToLeft;
            editorElement.MaskedEditBox.TextBoxItem.KeyDown += new KeyEventHandler(this.OnTextBoxItemKeyDown);
            editorElement.MaskedEditBox.TextBoxItem.KeyUp   += new KeyEventHandler(this.OnTextBoxItemKeyUp);
            editorElement.ValueChanged    += new EventHandler(this.OnEditorElementValueChanged);
            editorElement.ValueChanging   += new CancelEventHandler(this.OnEditorElementValueChanging);
            editorElement.PopupClosed     += new RadPopupClosedEventHandler(this.OnEditorElementPopupClosed);
            editorElement.Validating      += new CancelEventHandler(this.OnEditorElementValidating);
            editorElement.Validated       += new EventHandler(this.OnEditorElementValidated);
            editorElement.ValidationError += new ValidationErrorEventHandler(this.OnEditorElementValidationError);
            MaskDateTimeProvider provider = editorElement.MaskedEditBox.Provider as MaskDateTimeProvider;

            provider.SelectFirstEditableItem();
            provider.SelectedItemChanged += new EventHandler(this.OnSelectedItemChanged);
            editorElement.MaskedEditBox.TextBoxItem.HostedControl.Focus();
            this.selectedItemChanged = false;
        }
Exemplo n.º 11
0
        public override void SetDateByValue(DateTime?date, DateTimePickerFormat formatType)
        {
            CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

            this.maskEditValueChanged           = false;
            Thread.CurrentThread.CurrentCulture = this.Calendar.Culture;
            this.textBoxElement.Culture         = this.Calendar.Culture;
            DateTime?nullable1 = date;
            DateTime nullDate  = this.DateTimePickerElement.NullDate;

            if ((!nullable1.HasValue ? 1 : (nullable1.GetValueOrDefault() != nullDate ? 1 : 0)) != 0)
            {
                DateTime?nullable2   = date;
                DateTime focusedDate = this.calendar.FocusedDate;
                if ((!nullable2.HasValue ? 1 : (nullable2.GetValueOrDefault() != focusedDate ? 1 : 0)) != 0 && date.HasValue)
                {
                    this.calendar.FocusedDate = date.Value;
                    if (this.showTimePicker && this.timePicker != null)
                    {
                        this.timePicker.Value = (object)date.Value;
                    }
                }
                bool flag = false;
                MaskDateTimeProvider provider1 = this.textBoxElement.Provider as MaskDateTimeProvider;
                if (provider1 != null)
                {
                    flag = provider1.AutoSelectNextPart;
                }
                switch (formatType)
                {
                case DateTimePickerFormat.Long:
                    this.textBoxElement.Mask = "D";
                    break;

                case DateTimePickerFormat.Short:
                    this.textBoxElement.Mask = "d";
                    break;

                case DateTimePickerFormat.Time:
                    if (this.dateTimePickerElement.ShowCurrentTime)
                    {
                        date = date.HasValue ? new DateTime?(new DateTime(date.Value.Year, date.Value.Month, date.Value.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Millisecond, date.Value.Kind)) : new DateTime?(DateTime.Now);
                    }
                    this.textBoxElement.Mask = "T";
                    break;

                case DateTimePickerFormat.Custom:
                    this.textBoxElement.Mask = this.dateTimePickerElement.CustomFormat;
                    break;
                }
                MaskDateTimeProvider provider2 = this.textBoxElement.Provider as MaskDateTimeProvider;
                if (provider2 != null)
                {
                    provider2.AutoSelectNextPart = flag;
                }
                if (this.textBoxElement.Value == null)
                {
                    this.textBoxElement.Value = (object)date;
                }
                if (!this.textBoxElement.IsKeyBoard)
                {
                    this.textBoxElement.Value = (object)date;
                }
            }
            else if (!this.textBoxElement.IsKeyBoard)
            {
                if (this.textBoxElement.Value != null && !this.textBoxElement.Value.Equals((object)date))
                {
                    this.textBoxElement.Value = (object)date;
                }
                this.textBoxElement.TextBoxItem.Text = "";
            }
            Thread.CurrentThread.CurrentCulture = currentCulture;
            this.maskEditValueChanged           = true;
        }
Exemplo n.º 12
0
        protected virtual void CreateMaskProvider()
        {
            if (this.culture == null)
            {
                this.culture = CultureInfo.CurrentCulture;
            }
            if (this.mask == "s")
            {
                this.mask = "";
            }
            this.UnwireEvents();
            switch (this.maskType)
            {
            case MaskType.None:
                this.provider = (IMaskProvider) new TextBoxProvider(this);
                base.Text     = "";
                break;

            case MaskType.DateTime:
                if (string.IsNullOrEmpty(this.Mask))
                {
                    this.mask = "g";
                }
                MaskDateTimeProvider provider          = this.provider as MaskDateTimeProvider;
                MaskDateTimeProvider dateTimeProvider1 = this.culture.Calendar is PersianCalendar || this.culture.Calendar is UmAlQuraCalendar || this.culture.Calendar is HijriCalendar ? (MaskDateTimeProvider) new ArabicMaskDateTimeProvider(this.mask, this.culture, this) : new MaskDateTimeProvider(this.mask, this.culture, this);
                dateTimeProvider1.MaxDate = this.maxDate;
                dateTimeProvider1.MinDate = this.minDate;
                if (provider != null)
                {
                    dateTimeProvider1.value              = provider.value;
                    dateTimeProvider1.AutoCompleteYear   = provider.AutoCompleteYear;
                    dateTimeProvider1.AutoSelectNextPart = provider.AutoSelectNextPart;
                }
                this.provider = (IMaskProvider)dateTimeProvider1;
                base.Text     = this.provider.ToString(true, true);
                break;

            case MaskType.Numeric:
                if (string.IsNullOrEmpty(this.Mask))
                {
                    this.mask = "n0";
                }
                this.provider = (IMaskProvider) new NumericMaskTextBoxProvider(this.mask, this.culture, this);
                base.Text     = this.provider.ToString(true, true);
                break;

            case MaskType.Standard:
                if (string.IsNullOrEmpty(this.Mask))
                {
                    this.mask = "############";
                }
                this.provider = (IMaskProvider) new StandartMaskTextBoxProvider(this.mask, this.culture, this, this.allowPromptAsInput, this.promptChar, this.passwordChar, this.restrictToAscii);
                this.Text     = this.provider.ToString(true, true);
                break;

            case MaskType.Regex:
                if (string.IsNullOrEmpty(this.Mask))
                {
                    this.mask = "[A-z]";
                }
                this.provider = (IMaskProvider) new RegexMaskTextBoxProvider(this.mask, this.culture, this);
                base.Text     = this.provider.ToString(true, true);
                break;

            case MaskType.IP:
                this.provider = (IMaskProvider) new IPMaskTextBoxProvider(CultureInfo.InvariantCulture, this, this.allowPromptAsInput, ' ', this.passwordChar, this.restrictToAscii);
                base.Text     = this.provider.ToString(true, true);
                break;

            case MaskType.EMail:
                this.mask     = string.Empty;
                this.provider = (IMaskProvider) new EMailMaskTextBoxProvider(this.culture, this);
                base.Text     = this.provider.ToString(true, true);
                break;

            case MaskType.FreeFormDateTime:
                if (string.IsNullOrEmpty(this.Mask))
                {
                    this.mask = "g";
                    if (this.Parent != null && this.Parent.Parent != null)
                    {
                        if (this.Parent.Parent is RadDateTimePickerElement)
                        {
                            this.mask = "g";
                        }
                        else if (this.Parent.Parent is RadTimePickerElement)
                        {
                            this.mask = "t";
                        }
                    }
                }
                FreeFormDateTimeProvider dateTimeProvider2 = new FreeFormDateTimeProvider(this.mask, this.culture, this);
                dateTimeProvider2.MaxDate = this.maxDate;
                dateTimeProvider2.MinDate = this.minDate;
                this.provider             = (IMaskProvider)dateTimeProvider2;
                break;
            }
            this.OnMaskProviderCreated();
        }