...
Code Block |
---|
language | java |
---|
linenumbers | true |
---|
|
@Define
public void logger( ActionDefinitionBuilder action )
{
action
.id( "logger" )
.name( "actions.logger.name" )
.description( "actions.logger.desc" )
.category( Categories.DEBUG )
.destination( ActionDestination.form() )
.icon( SilkIconPack.APPLICATION_OSX_TERMINAL )
.parameter()
.id( "msg" )
.name( "actions.logger.param.msg.name" )
.description( "actions.logger.param.msg.desc" )
.type( Types.STRING )
.create()
.parameter()
.id( "error" )
.name( "actions.logger.param.level.name" )
.description( "actions.logger.param.level.name" )
.type( Types.BOOLEAN )
.create();
} |
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.Elementy docelowe (destination)
...
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 |
---|
language | js |
---|
linenumbers | true |
---|
|
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);
}
}
}); |
...