From: Bowon Ryu Date: Wed, 11 Aug 2021 07:08:08 +0000 (+0900) Subject: [NUI] Change the Regex member variables of InputFitler to string X-Git-Tag: accepted/tizen/unified/20231205.024657~1596 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b5c95b915f05a201a51808a71039e778ba851ba4;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Change the Regex member variables of InputFitler to string The properties of the NUI InputFilter require a regular expression. But internally DALi uses std::regex. When passing a regex from NUI to DALi, it is passed as a string. So the platform can not guarantee all the features of C# Regex (RegexOptions etc). Signed-off-by: Bowon Ryu --- diff --git a/src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs b/src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs index 1ff6b6c..6319123 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs @@ -1424,15 +1424,20 @@ namespace Tizen.NUI.BaseComponents /// filters input based on regular expressions.
/// Users can set the Accepted or Rejected regular expression set, or both.
/// If both are used, Rejected has higher priority.
+ /// The character set must follow the regular expression rules.
+ /// Behaviour can not be guaranteed for incorrect grammars.
+ /// Refer the link below for detailed rules.
+ /// The functions in std::regex library use the ECMAScript grammar:
+ /// http://cplusplus.com/reference/regex/ECMAScript/
/// InputFiltered signal is emitted when the input is filtered by InputFilter
/// See , and for a detailed description.
/// /// /// The following example demonstrates how to use the SetInputFilter method. /// - /// Tizen.NUI.Text.InputFilter inputFilter; - /// inputFilter.Accepted = new Regex(@"[\d]"); // accept whole digits - /// inputFilter.Rejected = new Regex("[0-3]"); // reject 0, 1, 2, 3 + /// var inputFilter = new Tizen.NUI.Text.InputFilter(); + /// inputFilter.Accepted = @"[\d]"; // accept whole digits + /// inputFilter.Rejected = "[0-3]"; // reject 0, 1, 2, 3 /// editor.SetInputFilter(inputFilter); // acceptable inputs are 4, 5, 6, 7, 8, 9 /// /// diff --git a/src/Tizen.NUI/src/public/BaseComponents/TextField.cs b/src/Tizen.NUI/src/public/BaseComponents/TextField.cs index b26fbce..65b24b5 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/TextField.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/TextField.cs @@ -1571,15 +1571,20 @@ namespace Tizen.NUI.BaseComponents /// filters input based on regular expressions.
/// Users can set the Accepted or Rejected regular expression set, or both.
/// If both are used, Rejected has higher priority.
+ /// The character set must follow the regular expression rules.
+ /// Behaviour can not be guaranteed for incorrect grammars.
+ /// Refer the link below for detailed rules.
+ /// The functions in std::regex library use the ECMAScript grammar:
+ /// http://cplusplus.com/reference/regex/ECMAScript/
/// InputFiltered signal is emitted when the input is filtered by InputFilter
/// See , and for a detailed description.
/// /// /// The following example demonstrates how to use the SetInputFilter method. /// - /// Tizen.NUI.Text.InputFilter inputFilter; - /// inputFilter.Accepted = new Regex(@"[\d]"); // accept whole digits - /// inputFilter.Rejected = new Regex("[0-3]"); // reject 0, 1, 2, 3 + /// var inputFilter = new Tizen.NUI.Text.InputFilter(); + /// inputFilter.Accepted = @"[\d]"; // accept whole digits + /// inputFilter.Rejected = "[0-3]"; // reject 0, 1, 2, 3 /// field.SetInputFilter(inputFilter); // acceptable inputs are 4, 5, 6, 7, 8, 9 /// /// diff --git a/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs b/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs index 507e6ce..c5d3582 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/TextUtils.cs @@ -19,7 +19,6 @@ extern alias TizenSystemSettings; using TizenSystemSettings.Tizen.System; using System; using System.ComponentModel; -using System.Text.RegularExpressions; using Tizen.NUI.Text; namespace Tizen.NUI.BaseComponents @@ -1330,8 +1329,8 @@ namespace Tizen.NUI.BaseComponents } /// - /// This method converts a InputFilter struct to a PropertyMap and returns it. - /// The returned map can be used for set InputFilter PropertyMap in the SetInputFilter method. + /// This method converts a InputFilter struct to a PropertyMap and returns it.
+ /// The returned map can be used for set InputFilter PropertyMap in the SetInputFilter method.
/// The InputFilter struct value. /// A PropertyMap for InputFilter property. ///
@@ -1339,8 +1338,8 @@ namespace Tizen.NUI.BaseComponents public static PropertyMap GetInputFilterMap(InputFilter inputFilter) { var map = new PropertyMap(); - var accepted = inputFilter.Accepted != null ? new PropertyValue(inputFilter.Accepted.ToString()) : new PropertyValue(""); - var rejected = inputFilter.Rejected != null ? new PropertyValue(inputFilter.Rejected.ToString()) : new PropertyValue(""); + var accepted = inputFilter.Accepted != null ? new PropertyValue(inputFilter.Accepted) : new PropertyValue(""); + var rejected = inputFilter.Rejected != null ? new PropertyValue(inputFilter.Rejected) : new PropertyValue(""); map.Add(0, accepted); map.Add(1, rejected); @@ -1348,8 +1347,8 @@ namespace Tizen.NUI.BaseComponents } /// - /// This method converts a InputFilter map to a struct and returns it. - /// The returned struct can be returned to the user as a InputFilter in the GetInputFilter method. + /// This method converts a InputFilter map to a struct and returns it.
+ /// The returned struct can be returned to the user as a InputFilter in the GetInputFilter method.
/// The InputFilter PropertyMap. /// A InputFilter struct. ///
@@ -1362,8 +1361,8 @@ namespace Tizen.NUI.BaseComponents map.Find(1)?.Get(out rejected); var inputFilter = new InputFilter(); - inputFilter.Accepted = new Regex(accepted); - inputFilter.Rejected = new Regex(rejected); + inputFilter.Accepted = accepted; + inputFilter.Rejected = rejected; return inputFilter; diff --git a/src/Tizen.NUI/src/public/Common/NUIConstants.cs b/src/Tizen.NUI/src/public/Common/NUIConstants.cs index 58dc9b4..c463bfa 100755 --- a/src/Tizen.NUI/src/public/Common/NUIConstants.cs +++ b/src/Tizen.NUI/src/public/Common/NUIConstants.cs @@ -15,7 +15,6 @@ using System; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; -using System.Text.RegularExpressions; namespace Tizen.NUI { @@ -2039,6 +2038,11 @@ namespace Tizen.NUI /// InputFilter filters input based on regular expressions.
/// Users can set the Accepted or Rejected regular expression set, or both.
/// If both are used, Rejected has higher priority.
+ /// The character set must follow the regular expression rules.
+ /// Behaviour can not be guaranteed for incorrect grammars.
+ /// Refer the link below for detailed rules.
+ /// The functions in std::regex library use the ECMAScript grammar:
+ /// http://cplusplus.com/reference/regex/ECMAScript/
/// The InputFilter struct is used as an argument to SetInputFilter and GetInputFilter methods.
/// See , , and .
/// @@ -2049,13 +2053,13 @@ namespace Tizen.NUI /// A regular expression in the set of characters to be accepted by the inputFilter. /// [EditorBrowsable(EditorBrowsableState.Never)] - public Regex Accepted { get; set; } + public string Accepted { get; set; } /// /// A regular expression in the set of characters to be rejected by the inputFilter. /// [EditorBrowsable(EditorBrowsableState.Never)] - public Regex Rejected { get; set; } + public string Rejected { get; set; } } ///