业务场景:特定状态下数据不允许修改或删除,在序时簿界面和编辑界面需要重写修改、删除对应的功能。
以下代码片段用于序时簿界面,编辑界面对应的写法请参考对应的博客内容。
/**
* 已启用数据不允许修改
*/
@SuppressWarnings("unchecked")
public void actionEdit_actionPerformed(ActionEvent e) throws Exception {
List ids = getSelectedIdValues();
VerifyUtil.onlyone(this, ids);
IReport service = ReportFactory.getRemoteInstance();
String id = (String) ids.get(0);
ReportInfo report = service.getReportInfo(new ObjectStringPK(id));
if(report.getIsUsed().equals(YesOrNoEnum.YES)){
Utils.log(report, DataTypeEnum.REPORTING, false, "修改数据失败!", "已启用数据不允许修改!");
Utils.warning(this, "已启用数据不允许修改!");
}
super.actionEdit_actionPerformed(e);
}
/**
* 已启用数据不允许删除
*/
@SuppressWarnings("unchecked")
public void actionRemove_actionPerformed(ActionEvent e) throws Exception {
List ids = getSelectedIdValues();
VerifyUtil.onlyone(this, ids);
IReport service = ReportFactory.getRemoteInstance();
String id = (String) ids.get(0);
ReportInfo report = service.getReportInfo(new ObjectStringPK(id));
if(report.getIsUsed().equals(YesOrNoEnum.YES)){
Utils.log(report, DataTypeEnum.REPORTING, false, "删除数据失败!", "已启用数据不允许删除!");
Utils.warning(this, "已启用数据不允许删除!");
}
if(Utils.hasQuoted(report)){
Utils.log(report, DataTypeEnum.REPORTING, false, "删除数据失败!", "被引用数据不允许删除!");
Utils.warning(this, "被引用数据不允许删除!");
}
super.actionRemove_actionPerformed(e);
}
消息提示并中断程序,代码片段。
/**
* 警告并中断程序,用于前端
* @param comp 父控件
* @param msg 警告消息
*
*/
public static void warning(Component comp, String msg){
MsgBox.showWarning(comp, msg);
SysUtil.abort();
}