...
- Adnotację
Javadoc |
---|
displayValue | @Actions@Validator |
---|
property | javadoc.plusworkflow |
---|
className | com.suncode.pwfl.workflow.form.actionvalidator.annotation.ActionsValidator |
---|
|
(jeżeli akcja nie jest definiowana we wtyczce, musi ona pochodzić z pakietu com.suncode
) - Adnotację
Javadoc |
---|
displayValue | @ActionsScript |
---|
property | javadoc.plusworkflow |
---|
className | com.suncode.pwfl.workflow.form.action.annotation.ActionsScript |
---|
|
przekazującą ścieżkę do skryptu (z classpath) zawierającego implementację w języku JavaScript lub ścieżkę wraz z fragmentami, w których skrypt zostanie umieszczony (np. w przypadku umieszczenia akcji w historii procesów). W pierwszym przypadku podajemy tylko ścieżkę, w drugim ścieżka ląduje w parametrze value, zaś fragmenty w obiekcie fragments. Dostępne wartości dla fragmentów można znaleźć w klasie Javadoc |
---|
displayValue | ActionUIFragment |
---|
property | javadoc.plusworkflow |
---|
className | com.suncode.pwfl.workflow.form.action.ActionUIFragment |
---|
|
. - Publiczną metodę oznaczoną adnotacją
Javadoc |
---|
displayValue | @Define |
---|
property | javadoc.plusworkflow |
---|
className | com.suncode.pwfl.component.annotation.Define |
---|
|
z jednym parametrem Javadoc |
---|
property | javadoc.plusworkflow |
---|
className | com.suncode.pwfl.workflow.form.actionvalidator.ActionDefinitionBuilder |
---|
|
(w jednej klasie @Actions
może być zdefiniowanych wiele różnych akcji)
Akcja może również dostarczać skrypt, który buduje wygląd parametrów podczas jej definiowania w PWE. W tym celu należy dodać kolejną adnotację dla klasy
Javadoc |
---|
displayValue | @ActionsFormScript |
---|
property | javadoc.plusworkflow |
---|
className | com.suncode.pwfl.workflow.form.action.annotation.ActionsFormScript |
---|
|
z przekazaną ścieżką do skryptu (z classpath).ValidatorDefinitionBuilder |
|
Przykładowa definicja przedstawiona jest poniżej:
Code Block |
---|
language | java |
---|
linenumbers | true |
---|
|
@Actions
@ActionsScript( "actions/example.js" )
@ActionsFormScript( "actions/example-form.js" )
@Validator
public class ExampleActionsPeselValidator
{
@Define private publicfinal void action( ActionDefinitionBuilder action )String PESEL_REGEX = "^\\d{11}$";
{ action @Define
public void definition( ValidatorDefinitionBuilder .id( "hide-variables" builder )
{
.name( "action.hide-variables.name" ) builder
.descriptionid( "action.hide-variables.descpesel-validator" )
.iconname( SilkIconPack"validator.EYEpesel" )
.categorydescription( Categories.TEST"validator.pesel.desc" )
.destinationcategory( ActionDestinationCategories.button()TEST )
.parameter()
.id( "variablespesel_param" )
.name( "actionvalidator.hide-variablespesel.variablesparameter.name" )
.description( "actionvalidator.hide-variablespesel.variablesparameter.desc" )
.type( Types.VARIABLE_ARRAY )
.create();
} } |
Przykładowa definicja dla akcji umieszczonej zarówno na formularzu, jak i w historii:
Code Block |
---|
@Actions
@ActionsScript( }
//Metoda walidująca
public void validate( @Param( value = "actions/example.js", fragments = { ActionUIFragment.FORM, ActionUIFragment.HISTORY } )
public class ExampleActions |
Elementy docelowe (destination)
Elementy docelowe wskazywane są na etapie tworzenia definicji akcji w metodzie destination()
. Określają one, do jakich elementów formularza może być dodana akcja:
Element | Opis | Przykłady akcji | Wybór w PWE |
---|
ActionDestination.form() | Formularz Akcja dodana do formularza inicjowana jest metodą formInit . | Akcje w których nie można wskazać głównego elementu np. - ukrywanie wielu zmiennych jednocześnie
| Image Removed |
ActionDestination.variable() | Zmienna Akcja dodana do zmiennej formularza inicjowana jest metodą variableInit w parametrze otrzymując obiekt tej zmiennej ( Jsdoc |
---|
property | jsdoc.plusworkflow |
---|
className | PW.form.variable.Variable |
---|
| ). | Akcje w których można jednoznacznie wskazać zmienną, której akcje dotyczy (w największym stopniu) np. - ukrywanie zmiennej
- walidacja zmiennej na żywo (np. pokazanie komunikatu bez akceptacji)
| Image Removed |
ActionDestination.variableSet() | Tabelka dynamiczna Akcja dodana do zmiennej formularza inicjowana jest metodą variableSetInit w parametrze otrzymując obiekt tabelki dynamicznej ( Jsdoc |
---|
property | jsdoc.plusworkflow |
---|
className | PW.form.field.VariableSet |
---|
| ). | Akcje które dotyczą tabelki dynamicznej i potrzebują jej identyfikator np. - nadanie tytułu tabelce na podstawie obliczeń
- import danych do tabelki (akcja dodaje przycisk do tabelki)
| Image Removed |
ActionDestination.button() | Przycisk Akcja dodana do przycisku formularza inicjowana jest metodą buttonInit w parametrze otrzymując obiekt przycisku ( Jsdoc |
---|
property | jsdoc.plusworkflow |
---|
className | PW.form.button.Button |
---|
| ). | Akcje których źródłem jest przycisk np. - dodawanie komentarza przed akceptacją
- wyświetlanie komunikatów po kliknięciu przycisku
| Image Removed |
Przypisanie elementu docelowego do parametru (bindTo)
Wybrany element docelowy akcji może zostać przekazany do parametru akcji poprzez podanie w parametrze bindTo
identyfikatora parametru docelowego. Np.
Code Block |
---|
|
ActionDestination.variable( "text" ); // 'text' to identyfikator parametru akcji |
Z tak skonfigurowaną akcją, jeżeli dodamy ją do dowolnej zmiennej, zmienna to zostanie automatycznie ustawiona jako wartość parametru. W zależności od elementu docelowego w parametr wpisane zostaną:
Element docelowy | Przypisana wartość |
---|
Zmienna | Zmienna |
Tabelka dynamiczna | Identyfikator tabelki dynamicznej |
Przycisk | Identyfikator przycisku (nazwa akcji) |
pesel_param" ) Variable pesel, ValidationErrors errors,
Translator translator )
{
boolean isPesel = Pattern.matches( PESEL_REGEX, (String) pesel.getValue() );
if ( isPesel == false )
{
errors.add( translator.getMessage( "validator.pesel.invalid" ), pesel.getId() );
}
}
} |
Implementacja akcji
Zdefiniowana na serwerze akcja formularza musi zostać zarejestrowana i zaimplementowana po stronie przeglądarki. Rejestrację umożliwia klasa
Jsdoc |
---|
property | jsdoc.plusworkflow |
---|
className | PW.form.action.Actions |
---|
|
za pomocą metody
Jsdoc |
---|
displayValue | create |
---|
property | jsdoc.plusworkflow |
---|
className | PW.form.action.Actions.html#method_create |
---|
|
. Pierwszym parametrem metody jest
id akcji (id musi odpowiadać tej akcji, która została zdefiniowana na serwerze), drugim parametrem jest
obiekt implementacji akcji:...