Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在magnolia中使用自定义命令类和对话框的自定义操作_Magnolia - Fatal编程技术网

在magnolia中使用自定义命令类和对话框的自定义操作

在magnolia中使用自定义命令类和对话框的自定义操作,magnolia,Magnolia,我希望在pages应用程序上有一个自定义操作,该操作打开一个对话框,其中一个字段用于注释和两个操作,即cancel和commit。提交操作调用自定义ExportToGitCommand类 我在magnolia中为pages应用程序定义了自定义动作定义和集体动作: public class ExportToGitCommandAction extends AbstractCommandAction<ExportToGitCommandActionDefinition>{ pu

我希望在pages应用程序上有一个自定义操作,该操作打开一个对话框,其中一个字段用于注释和两个操作,即
cancel
commit
。提交操作调用自定义ExportToGitCommand类

我在magnolia中为pages应用程序定义了自定义动作定义和集体动作:

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
    }
}
调用了
ExportToGitCommandAction
中的构造函数,但未调用
myAction
中的对话框和命令。我需要实现哪些方法才能使
myAction

public class ExportToGitCommandActionDefinition extends CommandActionDefinition{

    public ExportToGitCommandActionDefinition() {
        this.setImplementationClass(ExportToGitCommandAction.class);    
    }
  • 打开一个对话框
  • 执行自定义命令
  • 自定义命令
    gitexport
    code为:

    public class ExportToGitCommand extends BaseRepositoryCommand {
    
      @Override
      public boolean execute(Context context) throws Exception {
      //custom code here
    }
    }
    
    解决方案的一部分

    在pages应用程序下,我使用以下配置创建了一个操作:

    MyAction
         class ->i nfo.magnolia.ui.framework.action.OpenCreateDialogActionDefinition
         dialogName -> xxx-module-versioning:gitexport
         icon -> icon-i-beacon
         label -> MyAction
    
    在xxx模块版本控制应用程序下,我配置了对话框:

    xxx-module-versioning
       commands
       dialogs
          gitexport 
             form
             actions
    

    我认为你对自己行为的定义有误。您需要在目录中指定命令的“名称”,而不是它的路径。如果目录名不同于“默认值”,则需要指定目录名

    试试这个:

    MyAction
      class ->ch.xxx.module.versioning.ExportToGitCommandActionDefinition
      command -> gitexport
      catalog -> versioning
      dialogName -> /modules/xxx-module-versioning/dialogs/saveversion
    

    这是一个可行的解决方案。 在magnolia配置中的magnolia pages应用程序中,配置自定义操作:

    在dialogName下定义的相应模块中,定义对话框:

    自定义类扩展了
    CommandActionDefinition

    public class ExportToGitCommandActionDefinition extends CommandActionDefinition{
    
        public ExportToGitCommandActionDefinition() {
            this.setImplementationClass(ExportToGitCommandAction.class);    
        }
    

    你好@Jan。谢谢你的回复,但不幸的是,这不起作用。我想实现的是,pages应用程序上的自定义操作打开一个对话框,其中一个字段用于评论,另一个字段用于两个操作,即取消和提交。提交操作调用自定义ExportToGitCommand类。推荐的实施方法是什么?