...
Akcje formularza to komponenty użytkownika, umożliwiające wykonywanie dowolnych akcji na formularzu zadania w reakcji na działania użytkownika, zmiany danych czy też inne zdarzenia formularza. Przykładowe akcje mogą np.
...
Stworzone akcje dostępne są w edytorze procesów i mogą być łatwo wykorzystane w procesie biznesowym umożliwiając tym samym realizacje logiki biznesowej. Ich zachowanie może być dodatkowo konfigurowane za pomocą parametrów.
Definiowanie akcji
Akcje tworzone są w oparciu o ich definicję stworzoną przez użytkownika. Definicja taka musi zawierać następujące elementy:
- Adnotację
(jeżeli akcja nie jest definiowana we wtyczce, musi ona pochodzić z pakietuJavadoc displayValue @Actions property javadoc.plusworkflow className com.suncode.pwfl.workflow.form.action.annotation.Actions com.suncode) - Adnotację
ze ścieżką do skryptu (z classpath) zawierającego implementację w języku JavaScriptJavadoc displayValue @ActionsScript property javadoc.plusworkflow className com.suncode.pwfl.workflow.form.action.annotation.ActionsScript - Publiczną metodę oznaczoną adnotacją
z jednym parametremJavadoc displayValue @Define property javadoc.plusworkflow className com.suncode.pwfl.component.annotation.Define
(w jednej klasieJavadoc property javadoc.plusworkflow className com.suncode.pwfl.workflow.form.action.ActionDefinitionBuilder @Actionsmoże być zdefiniowanych wiele różnych akcji)
...
Akcja musi być zdefiniowana po stronie serwera. W tym celu należy utworzyć klasę i oznaczyć ją adnotacją
| Javadoc | ||||||
|---|---|---|---|---|---|---|
|
| Javadoc | ||||||
|---|---|---|---|---|---|---|
|
| Javadoc | ||||||
|---|---|---|---|---|---|---|
|
| Javadoc | ||||
|---|---|---|---|---|
|
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ą | Akcje w których nie można wskazać głównego elementu np.
| |||||||
ActionDestination.variable() | Zmienna Akcja dodana do zmiennej formularza inicjowana jest metodą
| Akcje w których można jednoznacznie wskazać zmienną, której akcje dotyczy (w największym stopniu) np.
| variableset | ||||||
ActionDestination.variableSet() | Tabelka dynamiczna Akcja dodana do zmiennej formularza inicjowana jest metodą
| Akcje które dotyczą tabelki dynamicznej i potrzebują jej identyfikator np.
| |||||||
ActionDestination.button() | Przycisk Akcja dodana do przycisku formularza inicjowana jest metodą
| Akcje których źródłem jest przycisk np.
|
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) |
Implementacja akcji
Zdefiniowana na serwerze akcja formularza musi zostać zarejestrowana i zaimplementowana po stronie przeglądarki. Rejestrację umożliwia klasa
| Jsdoc | ||||
|---|---|---|---|---|
|
| Jsdoc | ||||||
|---|---|---|---|---|---|---|
|
| Code Block | ||
|---|---|---|
| ||
var variableService = ServiceFactory.getVariableService(),
messageService = ServiceFactory.getMessageService(),
Action = {
t: PW.I18N.createT('com.suncode-actions-plugin')
};
PW.FormActions.create('hiding-variables-action', {
init: function(){
var me = this,
variables = me.get("variables");
me.variables = [];
jQuery.each(variables, function(index, variable){
me.variables.push(variable.getId());
});
},
enable: function(){
this.hideVariables();
this.showMessage();
},
disable: function(){
this.showVariables();
},
hideVariables: function() {
this.setVariablesVisibility(false);
},
showMessage: function() {
var message = Action.t('action.hiding.variables.success', this.variables);
messageService.showSuccess(message);
},
showVariables: function() {
this.setVariablesVisibility(true);
},
setVariablesVisibility: function(visible) {
if(visible) {
variableService.show(this.variables);
}
else {
variableService.hide(this.variables);
}
}
}); |
W przykładzie akcji wykorzystany jest mechanizm tłumaczeń:
| Code Block |
|---|
Action = {
t: PW.I18N.createT('com.suncode-actions-plugin')
}; |
Akcje domyślne
W celu ułatwienia tworzenia akcji które reagują na domyślne zdarzenia elementów docelowych możliwe jest zdefiniowanie tzw. akcji domyślnych.
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
@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 | ||||
|---|---|---|---|---|
|
| Jsdoc | ||||||
|---|---|---|---|---|---|---|
|
...





