Я хотел бы иметь настраиваемое действие в приложении страниц, которое открывает диалог с одним полем для комментария и двумя действиями, а именно cancel
и commit
. Действие фиксации вызывает пользовательский класс ExportToGitCommand.
Я определил определение пользовательского действия и действие класса для приложения страниц в Магнолии:
public class ExportToGitCommandAction extends AbstractCommandAction<ExportToGitCommandActionDefinition>{
public ExportToGitCommandAction(ExportToGitCommandActionDefinition definition, JcrItemAdapter item,
CommandsManager commandsManager, UiContext uiContext, SimpleTranslator i18n) {
super(definition, item, commandsManager, uiContext, i18n);
// TODO Auto-generated constructor stub
}
public ExportToGitCommandAction(ExportToGitCommandActionDefinition definition, List<JcrItemAdapter> items,
CommandsManager commandsManager, UiContext uiContext, SimpleTranslator i18n) {
super(definition, items, commandsManager, uiContext, i18n);
// TODO Auto-generated constructor stub
}
}
В приложении Config я определил myAction:
MyAction
class ->ch.xxx.module.versioning.ExportToGitCommandActionDefinition
command -> /modules/xxx-module-versioning/commands/versioning/gitexport
dialogName -> /modules/xxx-module-versioning/dialogs/saveversion
Конструктор в ExportToGitCommandAction
вызывается, а диалог и команда из myAction
- нет. Какие методы мне нужно реализовать, чтобы myAction
:
- открывал диалоговое окно
- выполняет пользовательскую команду
Пользовательскую команду gitexport
код:
public class ExportToGitCommand extends BaseRepositoryCommand {
@Override
public boolean execute(Context context) throws Exception {
//custom code here
}
}
часть решения
В приложении страниц я создал действие, используя следующую конфигурацию:
MyAction
class ->i nfo.magnolia.ui.framework.action.OpenCreateDialogActionDefinition
dialogName -> xxx-module-versioning:gitexport
icon -> icon-i-beacon
label -> MyAction
Под приложением xxx-module-versioning я настроил диалог:
xxx-module-versioning
commands
dialogs
gitexport
form
actions