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); }
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); }
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); } }
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; }
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(); }
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); }
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(); } }
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); }
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; }
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; }
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(); }