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 <bowon.ryu@samsung.com>
/// <see cref="Tizen.NUI.Text.InputFilter"/> filters input based on regular expressions. <br />
/// Users can set the Accepted or Rejected regular expression set, or both. <br />
/// If both are used, Rejected has higher priority. <br />
+ /// The character set must follow the regular expression rules. <br />
+ /// Behaviour can not be guaranteed for incorrect grammars. <br />
+ /// Refer the link below for detailed rules. <br />
+ /// The functions in std::regex library use the ECMAScript grammar: <br />
+ /// http://cplusplus.com/reference/regex/ECMAScript/ <br />
/// InputFiltered signal is emitted when the input is filtered by InputFilter <br />
/// See <see cref="InputFiltered"/>, <see cref="InputFilterType"/> and <see cref="InputFilteredEventArgs"/> for a detailed description. <br />
/// </remarks>
/// <example>
/// The following example demonstrates how to use the SetInputFilter method.
/// <code>
- /// 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
/// </code>
/// </example>
/// <see cref="Tizen.NUI.Text.InputFilter"/> filters input based on regular expressions. <br />
/// Users can set the Accepted or Rejected regular expression set, or both. <br />
/// If both are used, Rejected has higher priority. <br />
+ /// The character set must follow the regular expression rules. <br />
+ /// Behaviour can not be guaranteed for incorrect grammars. <br />
+ /// Refer the link below for detailed rules. <br />
+ /// The functions in std::regex library use the ECMAScript grammar: <br />
+ /// http://cplusplus.com/reference/regex/ECMAScript/ <br />
/// InputFiltered signal is emitted when the input is filtered by InputFilter <br />
/// See <see cref="InputFiltered"/>, <see cref="InputFilterType"/> and <see cref="InputFilteredEventArgs"/> for a detailed description. <br />
/// </remarks>
/// <example>
/// The following example demonstrates how to use the SetInputFilter method.
/// <code>
- /// 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
/// </code>
/// </example>
using TizenSystemSettings.Tizen.System;
using System;
using System.ComponentModel;
-using System.Text.RegularExpressions;
using Tizen.NUI.Text;
namespace Tizen.NUI.BaseComponents
}
/// <summary>
- /// 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. <br />
+ /// The returned map can be used for set InputFilter PropertyMap in the SetInputFilter method. <br />
/// <param name="inputFilter">The InputFilter struct value.</param>
/// <returns> A PropertyMap for InputFilter property. </returns>
/// </summary>
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);
}
/// <summary>
- /// 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. <br />
+ /// The returned struct can be returned to the user as a InputFilter in the GetInputFilter method. <br />
/// <param name="map">The InputFilter PropertyMap.</param>
/// <returns> A InputFilter struct. </returns>
/// </summary>
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;
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
-using System.Text.RegularExpressions;
namespace Tizen.NUI
{
/// InputFilter filters input based on regular expressions. <br />
/// Users can set the Accepted or Rejected regular expression set, or both. <br />
/// If both are used, Rejected has higher priority. <br />
+ /// The character set must follow the regular expression rules. <br />
+ /// Behaviour can not be guaranteed for incorrect grammars. <br />
+ /// Refer the link below for detailed rules. <br />
+ /// The functions in std::regex library use the ECMAScript grammar: <br />
+ /// http://cplusplus.com/reference/regex/ECMAScript/ <br />
/// The InputFilter struct is used as an argument to SetInputFilter and GetInputFilter methods. <br />
/// See <see cref="Tizen.NUI.BaseComponents.TextField.SetInputFilter"/>, <see cref="Tizen.NUI.BaseComponents.TextField.GetInputFilter"/>, <see cref="Tizen.NUI.BaseComponents.TextEditor.SetInputFilter"/> and <see cref="Tizen.NUI.BaseComponents.TextEditor.GetInputFilter"/>. <br />
/// </remarks>
/// A regular expression in the set of characters to be accepted by the inputFilter.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public Regex Accepted { get; set; }
+ public string Accepted { get; set; }
/// <summary>
/// A regular expression in the set of characters to be rejected by the inputFilter.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public Regex Rejected { get; set; }
+ public string Rejected { get; set; }
}
/// <summary>