业务场景:类似于启用、禁用相关操作,只是改变数据状态,无其他复杂的业务逻辑。
以下代码示例展示了如何在列表界面ListUI实现启用、禁用操作。复杂的业务逻辑,建议再后台实现。
/**
* 启用
*/
@SuppressWarnings("unchecked")
@Override
public void actionCancelCancel_actionPerformed(ActionEvent e) throws Exception {
List ids = getSelectedIdValues();
if(ids == null || ids.isEmpty()){
MsgBox.showInfo("请选择要操作的数据。");
abort();
}
int success = 0; //记录操作成功记录
IAccountMapping iAccountMapping = AccountMappingFactory.getRemoteInstance();
for(Object id : ids){
IObjectPK pk = new ObjectStringPK(id.toString());
AccountMappingInfo accountMap = iAccountMapping.getAccountMappingInfo(pk); //映射数据
if(accountMap.getDataState().equals(DataStateEnum.FORBIDDEN)){
accountMap.setDataState(DataStateEnum.USING); //启用
iAccountMapping.update(pk, accountMap);
success++;
}
}
String msg = "本次操作成功" + success + "条,失败" + (ids.size() - success) + "条。";
String info = "启用操作时,要求所选择记录的数据状态为禁用。本次操作所选取的数据中包含" + (ids.size() - success) + "条已启用的数据。";
MsgBox.showDetailAndOK(this, msg, info, 1);
refreshList(); //刷新
}
/**
* 禁用
*/
@SuppressWarnings("unchecked")
@Override
public void actionCancel_actionPerformed(ActionEvent e) throws Exception {
List ids = getSelectedIdValues();
if(ids == null || ids.isEmpty()){
MsgBox.showInfo("请选择要操作的数据。");
abort();
}
int success = 0; //记录操作成功记录
IAccountMapping iAccountMapping = AccountMappingFactory.getRemoteInstance();
for(Object id : ids){
IObjectPK pk = new ObjectStringPK(id.toString());
AccountMappingInfo accountMap = iAccountMapping.getAccountMappingInfo(pk); //映射数据
if(accountMap.getDataState().equals(DataStateEnum.USING)){
accountMap.setDataState(DataStateEnum.FORBIDDEN); //禁用
iAccountMapping.update(pk, accountMap);
success++;
}
}
String msg = "本次操作成功" + success + "条,失败" + (ids.size() - success) + "条。";
String info = "禁用操作时,要求所选择记录的数据状态为启用。本次操作所选取的数据中包含" + (ids.size() - success) + "条已禁用的数据。";
MsgBox.showDetailAndOK(this, msg, info, 1);
refreshList(); //刷新
}