System pozwala na rejestrowanie i wykorzystywanie predefiniowanych funkcji zarówno po stronie serwera jak i po stronie przeglądarki.
Rejestracja funkcji
Rejestracja na serwerze
Rejestracja funkcji dostępnych w systemie odbywa się podczas uruchomienia systemu oraz dynamicznie dla dynamicznych zasobów, takich jak wtyczki. Za rejestrację i przechowywanie funkcji odpowiada FunctionRegistry. Podczas rejestracji wyszukiwane są najpierw wszystkie klasy oznaczone adnotacją @Functions, następnie w tych klasach wyszukiwane są metody oznaczone adnotacją @Function i zostają one zarejestrowane jako funkcje.
Poniższy przykład przedstawia definicję prostej funkcji zwracającej wartość wyższej liczby.
@Functions public class BasicFunctions { @Function public Integer maxOf( Integer a, Integer b ) { return Math.max( a, b ); } }
Zarejestrowana funkcja posiada nazwę, zwracany typ oraz definicję parametrów -> Function.
Rejestracja po stronie przeglądarki
Po stronie przeglądarki musimy sami zarejestrować funkcję. W tym celu należy wywołać metodę `register` z PW.core.fn.Functions
Functions.register("maxOf", function(a,b){ return Math.max(a,b); });
W tym przypadku zarejestrowaliśmy funkcję podaną jako drugi parametr o nazwie maxOf.
Należy pamiętać, że każda funkcja zarejestrowana po stronie przeglądarki musi mieć swój odpowiednik po stronie serwera.
Wykorzystanie funkcji po stronie serwera
Obecnie nie ma jeszcze wsparcia na wykorzystanie funkcji po stronie serwera.
Funkcje będzie można wykorzystać w takich obszarach jak zadania automatyczne, zadania zaplanowane, walidatory formularza, itp.
Wykorzystanie funkcji po stronie przeglądarki
Obecnie funkcje mogą być wykorzystywane na formularzu zadania.
Pobranie funkcji odbywa się za pomocą obiektu PW.core.fn.Functions:
var function = Functions.getFunction(<function_name>,<function_call_parameters>);
jak rejestrować w systemie?
jak rejestrować we wtyczce?