...
| 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.| Code Block |
|---|
|
var variableService = ServiceFactory.getVariableService(),
messageService = ServiceFactory.getMessageService(),
Action = {
t: PW.I18N.createT('com.suncode-actions-plugin')
};
PW.form.action.Actions.create('hiding-variables-action', {
init: function(){
var me = this,
variables = me.value("array");
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')
}; |
Szczegółowe informacje na temat tego mechanizmu można znaleźć w I18N.