如何在 CSCokpit 中 disable掉 order cancle,order refund 等button?
这里有这样一个类:
/*** Eclipse Class Decompiler plugin, copyright (c) 2012 Chao Chen (cnfree2000@hotmail.com) ***/ package de.hybris.platform.cscockpit.widgets.renderers.impl; import de.hybris.platform.cockpit.session.UISession; import de.hybris.platform.cockpit.session.UISessionUtils; import de.hybris.platform.cockpit.util.UITools; import de.hybris.platform.cockpit.widgets.Widget; import de.hybris.platform.cockpit.widgets.models.impl.DefaultItemWidgetModel; import de.hybris.platform.cscockpit.utils.LabelUtils; import de.hybris.platform.cscockpit.widgets.controllers.OrderManagementActionsWidgetController; import de.hybris.platform.cscockpit.widgets.renderers.utils.PopupWidgetHelper; import org.springframework.beans.factory.annotation.Required; import org.zkoss.zk.ui.api.HtmlBasedComponent; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zul.Button; import org.zkoss.zul.Div; // extends 这个类 public class OrderManagementActionsWidgetRenderer extends AbstractCsWidgetRenderer<Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController>> { protected static final String CSS_ORDER_MANAGEMENT_ACTIONS_WIDGET = "orderManagementActionsWidget"; protected static final String CSS_FULL_CANCEL_POPUP = "csFullCancelPopup"; protected static final String CSS_PARTIAL_CANCEL_POPUP = "csPartialCancelPopup"; protected static final String CSS_RETURN_REQUEST_CREATE_WIDGET = "csReturnRequestCreateWidget"; protected static final String COCKPIT_ID_CANCEL_ORDER = "Order_Order_Management_Cancel_Order_button"; protected static final String COCKPIT_ID_PARTIAL_CANCEL_ORDER = "Order_Order_Management_Partial_Cancel_Order_button"; protected static final String COCKPIT_ID_REFUND_ORDER = "Order_Order_Management_Refund_Order_button"; protected static final String COCKPIT_ID_REPLACE_ORDER = "Order_Order_Management_Replace_Order_button"; private PopupWidgetHelper popupWidgetHelper; protected PopupWidgetHelper getPopupWidgetHelper() { return this.popupWidgetHelper; } @Required public void setPopupWidgetHelper(PopupWidgetHelper popupWidgetHelper) { this.popupWidgetHelper = popupWidgetHelper; } //override 这个方法,添加你的逻辑 protected HtmlBasedComponent createContentInternal(Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, HtmlBasedComponent rootContainer) { Div component = new Div(); component.setSclass("orderManagementActionsWidget"); createButton(widget, component, "cancelWholeOrder", "csFullOrderCancellationWidgetConfig", "csFullOrderCancel-Popup", "csFullCancelPopup", "popup.fullCancellationRequestCreate", !(((OrderManagementActionsWidgetController)widget.getWidgetController()).isFullCancelPossible())); createButton(widget, component, "cancelPartialOrder", "csPartialOrderCancellationWidgetConfig", "csPartialOrderCancellationWidgetConfig-Popup", "csPartialCancelPopup", "popup.partialCancellationRequestCreate", !(((OrderManagementActionsWidgetController)widget.getWidgetController()).isPartialCancelPossible())); createButton(widget, component, "refundOrder", "csRefundRequestCreateWidgetConfig", "csRefundRequestCreateWidget-Popup", "csReturnRequestCreateWidget", "popup.refundRequestCreate", !(((OrderManagementActionsWidgetController)widget.getWidgetController()).isRefundPossible())); createButton(widget, component, "replaceOrder", "csReplacementRequestCreateWidgetConfig", "csReplacementRequestCreateWidget-Popup", "csReturnRequestCreateWidget", "popup.replacementRequestCreate", !(((OrderManagementActionsWidgetController)widget .getWidgetController()).isReplacePossible())); return component; } protected void createButton(Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, Div container, String buttonLabelName, String springWidgetName, String popupCode, String cssClass, String popupTitleLabelName, boolean disabled) { EventListener eventListener = new EventListener(widget, container, springWidgetName, popupCode, cssClass, popupTitleLabelName) { public void onEvent(Event event) throws Exception { OrderManagementActionsWidgetRenderer.this.handleButtonClickEvent(this.val$widget, event, this.val$container, this.val$springWidgetName, this.val$popupCode, this.val$cssClass, this.val$popupTitleLabelName); } }; createButton(widget, container, buttonLabelName, eventListener, disabled); } protected void handleButtonClickEvent(Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, Event event, Div container, String springWidgetName, String popupCode, String cssClass, String popupTitleLabelName) { getPopupWidgetHelper().createPopupWidget(container, springWidgetName, popupCode, cssClass, LabelUtils.getLabel(widget, popupTitleLabelName, new Object[0]), 1000); } protected void createButton(Widget widget, Div container, String buttonLabelName, EventListener eventListener, boolean disabled) { Button button = new Button(); if (UISessionUtils.getCurrentSession().isUsingTestIDs()) { if ("cancelWholeOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Cancel_Order_button"); } else if ("cancelPartialOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Partial_Cancel_Order_button"); } else if ("refundOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Refund_Order_button"); } else if ("replaceOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Replace_Order_button"); } } button.setLabel(LabelUtils.getLabel(widget, buttonLabelName, new Object[0])); button.setParent(container); button.setDisabled(disabled); button.addEventListener("onClick", eventListener); } }
所以这里很简单 ,只要extends这个类 再override上面的方法,添加你的逻辑就OK了,如下
public class MyOrderManagementActionsWidgetRenderer extends OrderManagementActionsWidgetRenderer { private static final Logger LOG = Logger.getLogger(VirginOrderManagementActionsWidgetRenderer.class); private UserService userService; private static String CREDITCARD = "creditcard"; @Override protected HtmlBasedComponent createContentInternal( final Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, final HtmlBasedComponent rootContainer) { String paymentMode = getPaymentModeCode(widget); final Div component = new Div(); component.setSclass("orderManagementActionsWidget"); Boolean canCancel=false; for(ConsignmentStatus status:getConsignmentStatus(widget)){ if(ConsignmentStatus.PACKED.equals(status)||ConsignmentStatus.SHIPPED.equals(status)){// PACKED/SHIPPED/READY FOR COLLECTION/ COLLECTED. canCancel=false; break; }else if(ConsignmentStatus.READY.equals(status)||ConsignmentStatus.PICKPACK.equals(status)||ConsignmentStatus.NOT_COLLECTED.equals(status)){//READY/PICKPACK/PICKPACK/PICKPACK/PICKPACK canCancel=true; } } createButton(widget, component, "cancelWholeOrder", "csFullOrderCancellationWidgetConfig", "csFullOrderCancel-Popup", "csFullCancelPopup", "popup.fullCancellationRequestCreate", !canCancel);
相关推荐
将CXCOM200500P_0-70004955.ZIP移至hybris-b2b-spartacus/hybris-b2b CXCOM200500P_0-70004955.ZIP hybris-b2b-spartacus/hybris-b2b (如果要使用其他版本的SAP Commerce,请编辑hybris-b2b-spartacus/hybris-b2b/...
hybris wcms
hybris-base-image Hybris Commerce Suite 的基本映像,基于ubuntu:latest 。 可以开箱即用地用于基于 Hybris Commerce Suite >5.5 的项目。 请直接在阅读此文档。 否则链接可能不起作用。 上的是从 GitHub 源存储库...
rootfs模板一组用于构建hybris-mobian的rootfs的debos食谱
根据WIKI和自身项目上的理解整理的中文说明书,希望给未接触过的同学提供一点便利,也欢迎大神指出不足
Hybris-5.7-Project
hybris-snipets 我发现有趣的有用代码片段的集合,我喜欢分享它们
混合工具hybris 工具和实用程序
Hybris ACC TypeScript Typescript模块加载程序,可与Hybris ACC无缝集成。背景这个项目是出于对使用TypeScript使用ACC开发Hybris前端的好奇心而诞生的。即使简单地添加TypeScript并开发ACC模块即可使用默认方式(在...
hybris-docker(WIP) 此存储库是为了简化配置,部署和可维护性的目的而尝试对SAP Hbrise电子商务平台进行泊坞。 提供的dockerfile和关联的配置基于开发配置模板。 为了使该产品准备就绪,您将需要根据需要对其进行...
设置 npm install npm install serverless -g...redis db由一个lambda填充,该lambda导入由hybris导出到s3存储桶的json文件。 此无服务器功能是只读的。 如何调试? 如何部署? 最初,您可以生成一个程序包。 从长远
迷你杂种用于机械键盘的嵌入式蓝牙控制器
git clone :jirafe / hybris-extensions.git 先决条件 Java VM 1.6以上 安装 如果您已经安装了Hybris,请跳过步骤1和2。 解压缩Hybris Multichannel Suite( HYBRIS_HOME稍后将用作Hybris主目录/基本目录的占位符...
14.1 3.2 hybris-15.1 3.3 hybris-16.0 4个图形4.1口红段故障/无显示4.2 BOARD_USES_QCOM_HARDWARE不在供应商设备存储库中4.3使用Mali GPU的设备4.4图形性能提升4.5黑色画廊图片,没有浏览器内容/浏览器崩溃: 4.6以...
hybris Developer Training Part I - Core Platform - Module 08 - Programming with the ServiceLayer
hybris 中文介绍
此自述文件包含有关 hybris 层内容的信息。 有关详细信息,请参阅下面的相应部分。 依赖关系 该层取决于: URI:git://git.openembedded.org/bitbake 分支:master URI:git://git.openembedded.org/openembedded...
Talend组件可通过Hybris管理控制台读取数据并将数据写入SAP Hybris电子商务平台 Hybris项目需要实现自己的数据交换接口。 Hybris管理控制台(HAC)可以直接使用,可以交换数据。 HAC是Hybris的核心部分,并且始终...
hybris Developer Training Part I - Core Platform - Module 03 - Data Modeling
hybris Developer Training Part I - Core Platform - Module 02 - Development Environment Setup