【问题标题】:How to update / refresh Editor Area from custom Editor hybris如何从自定义编辑器 hybris 更新/刷新编辑器区域
【发布时间】:2019-09-12 15:28:07
【问题描述】:

如何从 Hybris 中的自定义编辑器更新/刷新编辑器区域?

public class CustomEditor extends AbstractComponentWidgetAdapterAware implements CockpitEditorRenderer<Object> {

    @Override
    public void render(Component parent, EditorContext<Object> editorContext, EditorListener<Object> editorListener) {
        Button button = new Button("Click");
        button.addEventListener("onClick", (event) -> {
            //some logic
            //update the Editor Area after logic is done?
        });
        parent.appendChild(button);
    }
}

【问题讨论】:

    标签: java hybris backoffice


    【解决方案1】:

    您需要使用传递的侦听器来通知模型更改的值。例如:

    public class CustomEditor extends AbstractComponentWidgetAdapterAware implements CockpitEditorRenderer<Object> {
    
    @Override
    public void render(Component parent, EditorContext<Object> editorContext, EditorListener<Object> editorListener) {
        Button button = new Button("Click");
        button.addEventListener("onClick", (event) -> {
            //some logic
            editorListener.onValueChanged(result);
        });
        parent.appendChild(button);
    }
    

    }

    希望对你有帮助!

    【讨论】:

    • 感谢您提供的解决方案。就我而言,这是一个部分解决方案。我想要实现的类似于编辑器操作按钮(重新加载/刷新编辑器区域内容)在操作按钮中,可以通过设置状态标志“OBJECT_MODIFIED”
    • 为了刷新动作,您需要更新动作监听的对象。如果您确定编辑器将仅在编辑器区域中使用,您可以尝试使用模型属性“valueChanged”(布尔值)或“currentObject”并尝试从代码中设置它们。一般来说,这不是您应该如何实现编辑器的方式,因为它会扼杀在整个应用程序中使用它们的能力。提示未勾选,需要验证是否可以直接从编辑器访问模型。
    【解决方案2】:

    您可以为此使用小部件连接

        <widget-connection sourceWidgetId="myCustomWidget" targetWidgetId="editorArea"
                 outputId="myItemType" inputId="inputObject"/>
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多