...
Właściwości
- id - unikalny w obrębie całego systemu identyfikator akcji,
- name - nazwa akcji (obsługuje tłumaczenia I18N),
- description - opis akcji (obsługuje tłumaczenia I18N),
- icon - ikona akcji,
- category - kategoria, do której należy akcja (może być wiele),
- destination - element formularza, dla którego dostępna jest akcja (może być wiele)
- parameters - parametry akcji.
Kategorie
Kategorie ułatwiają podział oraz wyszukiwanie akcji. Opisywane są one za pomocą interfejsu
| Javadoc |
|---|
| property | javadoc.plusworkflow |
|---|
| className | com.suncode.pwfl.workflow.form.action.ActionCategory |
|---|
|
. Dostępna jest podstawowa implementacja tego interfejsu
| Javadoc |
|---|
| property | javadoc.plusworkflow |
|---|
| className | com.suncode.pwfl.workflow.form.action.ActionCategories |
|---|
|
, która udostępnia podstawowe kategorie. Tworząc akcję można skorzystać z tych kategorii. W przypadku braku jakiejś kategorii można ją dodać do tej implementacji bądź stworzyć własną.
Elementy formularza (destination)
Akcja może być zdefiniowana dla konkretnych elementów formularza. Definicji dokonujemy za pomocą klasy . Dostępne są następujące elementy:
...
Dla wszystkich elementów formularza poza FORM podczas definicji należy podać id parametru akcji (jeżeli akcja posiada parametry). Umożliwia to automatyczne podpięcie danego elementu do tego parametru podczas wyboru akcji w PlusWorkflowEditor.
Parametry akcji
Akcje mogą posiadać parametry.
...
Jeżeli przekazana zostanie do parametru wartość innego typu niż w definicji, to zostanie ona skonwertowana do tego typu.
Definiowanie akcji
Akcja musi być zdefiniowana po stronie serwera. W tym celu należy utworzyć klasę i oznaczyć ją adnotacją
| Javadoc |
|---|
| displayValue | @Action |
|---|
| property | javadoc.plusworkflow |
|---|
| className | com.suncode.pwfl.workflow.form.action.annotation.Action |
|---|
|
. Adnotacja ta sprawia, że system będzie szukał definicji akcji w tej klasie. Dodatkowo należy dodać adnotację
| Javadoc |
|---|
| displayValue | @ActionScript |
|---|
| property | javadoc.plusworkflow |
|---|
| className | com.suncode.pwfl.workflow.form.action.annotation.ActionScript |
|---|
|
i jako jej wartość podać relatywną ścieżkę do skryptu z implementacją akcji. W tak przygotowanej klasie należy teraz dodać definicję akcji. W tym celu trzeba dodać metodę i oznaczyć ją adnotacją
| Javadoc |
|---|
| displayValue | @DefineAction |
|---|
| property | javadoc.plusworkflow |
|---|
| className | com.suncode.pwfl.workflow.form.action.annotation.DefineAction |
|---|
|
. Metoda musi przyjmować jeden parametr typu
| Javadoc |
|---|
| property | javadoc.plusworkflow |
|---|
| className | com.suncode.pwfl.workflow.form.action.ActionDefinitionBuilder |
|---|
|
. W implementacji metody należy za pomocą przekazanego builder'a zdefiniować wszystkie własności akcji.
| Code Block |
|---|
| language | java |
|---|
| title | Przykład definicji akcji |
|---|
|
@Action
@ActionScript( "resources/actions/test/hiding-variables-action.js" )
public class HidingVariablesAction
{
@DefineAction
public void action( ActionDefinitionBuilder action )
{
action
.id( "hiding-variables-action" )
.name( "action.hiding.variables.name" )
.description( "action.hiding.variables.desc" )
.icon( SilkIconPack.APPLICATION_FORM )
.category( Categories.TEST )
.destination( ActionDestination.form() )
.parameter().id( "variables" ).name( "action.hiding.variables.parameter.name" )
.description( "action.hiding.variables.parameter.desc" ).type( Type.VARIABLE )
.array().create();
}
} |
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 konfiguracyjny akcji.
...
Szczegółowe informacje na temat tego mechanizmu można znaleźć w I18N.
Rejestracja we wtyczce
Jeżeli akcja jest definiowana we wtyczce to należy dodatkowo zaznaczyć, że wtyczka ta udostępnia akcje. W tym celu należy w pliku suncode-plugin.xml dodać wpis:
...