如何在 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;}@Requiredpublic 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";@Overrideprotected 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/PICKPACKcanCancel=true;}}createButton(widget, component, "cancelWholeOrder","csFullOrderCancellationWidgetConfig","csFullOrderCancel-Popup", "csFullCancelPopup","popup.fullCancellationRequestCreate",!canCancel);

Hybris- how to disable cancle/refund button in cscokpit相关推荐

  1. Vue设置button的disable属性

    表单元素有一个disable属性,用来控制该元素是否可用. 1. 这个属性在HTML里只有1个值,用法就是 <button disable="disable">点击&l ...

  2. Vue下button与element-ui el-button禁用属性

    html button元素 html button元素禁止是使用属性disable <button disable="disable">点击</button> ...

  3. SpringMVC+SwfUpload进行多文件同时上传

    由于最近项目需要做一个多文件同时上传的功能,所以好好的看了一下各种上传工具,感觉uploadify和SwfUpload的功能都比较强大,并且使用起来也很方便.SWFUpload是一个flash和js相 ...

  4. jQueryUI Repeater 无刷新删除 新建 更新数据 - JQueryElement [7]

    接着给大家介绍 Repeater 的使用  ajax 更新删除和新建行的功能. 本次的示例是上个文章示例的延续, 其中 JQueryElement 更新到了 3.1.1, 使 repeater 自身包 ...

  5. XAF 官方问题笔记

    1.How to print report direct, and print preview via an simple action? 如何通过一个按钮直接打印报表或者打印预览报表 https:/ ...

  6. jbutton可以设置id吗_Java JButton.setHorizontalTextPosition方法代碼示例

    本文整理匯總了Java中javax.swing.JButton.setHorizontalTextPosition方法的典型用法代碼示例.如果您正苦於以下問題:Java JButton.setHori ...

  7. linux终端安装playonlinux,Ubuntu安装PlayOnlinux

    PlayOnLinux 是一款 wine HQ 的前端软件,意思就是我们可以通过 PlayOnLinux 在 Linux 和 Mac OS X 上更加方便运行 windows 软件,更加方便的安装.使 ...

  8. ipmitool 设置网关_IPMI (Intelligent Platform Management Interface)

    4.3. ipmitool - utility for controlling IPMI-enabled devices 4.3.1. ipmitool 4.3.1.1. ubuntu 确定硬件是否支 ...

  9. react与jQuery对比,有空的时候再翻译一下

    参考资料:http://reactfordesigners.com/labs/reactjs-introduction-for-people-who-know-just-enough-jquery-t ...

最新文章

  1. 数据录入工作,使用VBA
  2. apt update报错:Error in `appstreamcli‘: double free or corruption ... Aborted ...(libappstream3)
  3. Python:C语言扩展
  4. Think as developer, 从深入理解业务实现框架开始
  5. 【渝粤题库】国家开放大学2021春1050金融理论前沿课题题目
  6. ArcGIS Server SOE开发之奇怪异常:
  7. Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
  8. 纯粹数学:哈代的世外桃源
  9. 直入灵魂的Python教学:《看动漫学Python》让学习不再枯燥
  10. pymavlink 源码剖析(一)之XML文件的数据解析
  11. SpringBoot在前端发送url时,不能识别特殊字符的问题
  12. 【笔记】Protues仿真STM32的实现过程
  13. CentOS mysql配置主从复制
  14. 计算机连接小米usb驱动,win7系统安装小米usb驱动的操作方法
  15. 测测你的眼睛对色差的辨识度?抱歉我开挂了……【JavaScript脚本实现找色差小游戏自动刷关】
  16. 交换机putty怎么调试_【技术】如何登陆交换机进行命令配置?常用的交换机组网模拟器有哪些?...
  17. 实战 | 如何利用 Scrapy 编写一个完整的爬虫!
  18. YOLOv5读取摄像头实时检测目标并将裁剪后的部分保存
  19. 小米/红米手机如何通过USB数据线把手机网络共享给电脑
  20. Mellanox网卡FW刷新方法

热门文章

  1. 开口式霍尔电流传感器(安科瑞-卓宋兰)
  2. Linux中的账号管理,用户组管理
  3. 汇编语言复习题及详细答案1(老师给的题 自己写的答案)
  4. spss怎样将某一列的类型由字符串转变为数字?
  5. android手机太卡怎么办,安卓手机卡顿严重怎么解决
  6. B5G、6G以及未来无线通信技术发展调研
  7. 体育馆预约小程序 运动场地预约小程序 java运动场地预约系统 体育馆预约管理系统 基于微信小程序的体育馆预约系统 java毕业设计选题推荐
  8. 异步神器:CompletableFuture实现原理和使用场景
  9. a16z的6亿美元会投资怎样的Web3游戏团队?
  10. nexus启动报错:Missing platform binary:../bin/jsw/linux-intel(r)core(tm)i7-7700kcpu@4.20ghz-32/wrapper...