API Formatera
Uwaga!
W formaterach w Eximee Designer nie należy dodawać komentarzy - mogą one powodować błędy na wniosku!
Implementacja nowego formatera
Po utworzeniu nowego formatera w przestrzeni roboczej otworzy się edytor tekstowy z szablonem implementacyjnym formatera.
Formater reprezentowany jest jako funkcja JavaScript o podanej w szablonie inicjalnie sygnaturze:
function formatText(input) {
return {
formattedText: input.textToFormat,
cursorPosition: input.cursorPosition
};
}Opis sygnatury funkcji formatera:
input.textToFormat
wejściowy
String (JAVA)
Tekst do sformatowania. Należy przekonwertować typ JAVA zmiennej do typu JavaScript (new String(input.textToFormat); ) w celu wywołania metod dla typu String (np. replace())
input.locale
wejściowy
String (JAVA)
Łańcuch określający język, w jakim wyświetlany jest wniosek (np. "pl", "en"). Należy przekonwertować typ JAVA zmiennej do typu JavaScript (new String(input.locale); ) w celu wywołania metod dla typu String (np. replace())
input.cursorPosition
wejściowy
int
Pozycja kursora w polu tekstowym przed sformatowaniem
output.formattedText
wyjściowy
String
Tekst po sformatowaniu
output.cursorPosition
wyjściowy
String
Pozycja kursora w polu tekstowym po sformatowaniu - liczba całkowita z zakresu <0,output.formattedText.length> - w przypadku podania liczby znajdującej się poza zakresem aplikacja webforms nie zmieni pozycji kursora (zostanie zachowane domyślne działanie przeglądarki)
Implementacja formatera powinna odbywać się przez zmianę wyłącznie wnętrza funkcji.
W celu prawidłowego działania formater musi być poprawną funkcją języka JavaScript. W przeciwnym wypadku podczas próby zapisu formatera w bieżącej przestrzeni użytkownika, wygenerowany zostanie odpowiedni systemowy komunikat błędu.
Wersja z karetką ustawiającą się na naturalnej pozycji (uwzględniając separatory tysięcy). Poniższy formater nie zadziała dla Pola tekstowego (TextField) typu EMAIL z powodu ograniczeń JavaScriptowych (input type="email" nie ma zaimplementowanego pobierania pozycji karetki).
Obsługa formaterów według wcześniejszego szablonu
Dla formaterów utworzonych według wcześniejszego szablonu widocznego poniżej, kursor po sformatowaniu tekstu zostanie ustawiony na końcu, jeśli przed sformatowaniem tekstu był ustawiony na końcu. Jeśli kursor był ustawiony w treści tekstu to kursor w polu po sformatowaniu tekstu zostanie ustawiony w tym samym miejscu, w którym był ustawiony przed sformatowaniem.
function formatText(textToFormat, locale) {
return formattedText;
}Opis sygnatury funkcji wcześniejszego formatera:
textToFormat
wejściowy
String
Tekst do sformatowania
locale
wejściowy
String
Łańcuch określający język, w jakim wyświetlany jest wniosek (np. "pl", "en")
formattedText
wyjściowy
String
Tekst po sformatowaniu
Ograniczenia
W formaterach nie można korzystać z mechanizmów dziedziczenia prototypowego
W formaterach, które formatują wyjścia z usługi obiekty, przekazywane do formatera są obiektami javowymi, w celu wykonania operacji na ciągach znaków należy je zmienić na obiekty JavaScriptowe (np: const textToFormat = new String(input.textToFormat + ""))
Last updated
Was this helpful?
