Feature TextValidateField (#1230)

* Feature TextValidateField

* Fix Mouse Click

* Fix Mouse click on TextRegexProvider

* UiCatalog fields with text alginment centered

* Fix Mouse click on TextRegexProvider when right aligned

* added newline to text.cs catalog

* NetMaskedTextProvider - changing the mask, try to use current input.
NetMaskedTextProvider - Left and Right Cursor dosen't wrap around.

* Add Some TextValidateField Tests.

* Add TextRegexProvider Tests

* Remove unnecessary using

* Tests namespace to Terminal.Gui.Views

* Regex Parse exception handling

* remove textmaskprovider in favor of .net maskedtextprovider

* refactoring and cleaning
This commit is contained in:
José Miguel Perricone
2021-04-25 16:13:55 -03:00
committed by GitHub
parent b29240f362
commit 819dc291bc
3 changed files with 1206 additions and 2 deletions

View File

@@ -1,6 +1,9 @@
using System;
using System.Text;
using Terminal.Gui;
using Terminal.Gui.TextValidateProviders;
namespace UICatalog {
[ScenarioMetadata (Name: "Text Input Controls", Description: "Tests all text input controls")]
@@ -101,6 +104,38 @@ namespace UICatalog {
_timeField.TimeChanged += TimeChanged;
// MaskedTextProvider
var netProvider = new Label (".Net MaskedTextProvider [ 999 000 LLL >LLL| AAA aaa ]") {
X = Pos.Left (dateField),
Y = Pos.Bottom (dateField) + 1
};
Win.Add (netProvider);
var netProviderField = new TextValidateField<NetMaskedTextProvider> ("999 000 LLL >LLL| AAA aaa") {
X = Pos.Right (netProvider) + 1,
Y = Pos.Y (netProvider),
Width = 40,
TextAlignment = TextAlignment.Centered
};
Win.Add (netProviderField);
// TextRegexProvider
var regexProvider = new Label ("Gui.cs TextRegexProvider [ ^([0-9]?[0-9]?[0-9]|1000)$ ]") {
X = Pos.Left (netProvider),
Y = Pos.Bottom (netProvider) + 1
};
Win.Add (regexProvider);
var regexProviderField = new TextValidateField<TextRegexProvider> ("^([0-9]?[0-9]?[0-9]|1000)$") {
X = Pos.Right (regexProvider) + 1,
Y = Pos.Y (regexProvider),
Width = 40,
TextAlignment = TextAlignment.Centered
};
// Access the inner Provider to configure.
regexProviderField.Provider.ValidateOnInput = false;
Win.Add (regexProviderField);
}
TimeField _timeField;
@@ -109,7 +144,6 @@ namespace UICatalog {
private void TimeChanged (DateTimeEventArgs<TimeSpan> e)
{
_labelMirroringTimeField.Text = _timeField.Text;
}
}
}
}