package com.vci.client.uif.actions.client;
import java.awt.Component;
import java.util.Map;
import com.vci.client.portal.utility.PLDefination;
import com.vci.client.ui.swing.components.VCIJDialog;
import com.vci.client.uif.engine.client.IDataModel;
import com.vci.client.uif.engine.client.IRegionPanel;
import com.vci.corba.portal.data.PLAction;
import com.vci.corba.portal.data.PLTabButton;
/**
* 这个 BussinessOperationAction
接口定义了Action操作的一般操作接口。
*
*
*/
public interface BusinessOperationAction {
/**
* query 是系统关键字,不要使用它作为key
*/
public static final String ADD = "add";
public static final String ADD_SAVE = "addSave";
public static final String EDIT = "edit";
public static final String EDIT_SAVE = "editSave";
public static final String DEL = "del";
public static final String COPY = "copy";
public static final String COPY_DOC = "cpdoc";
public static final String PASTE = "paste";
public static final String PASTE_DOC = "pastedoc";
public static final String CHOOSE_DOC = "choosedoc";
public static final String CHOOSE = "choose";
public static final String REMOVE = "remove";
public static final String CUT = "cut";
public static final String EXP = "exp";
public static final String IMP = "imp";
public static final String DOWNLOAD = "download";
public static final String REVISION = "rev";
public static final String TRANSFER = "transfer";
public static final String ANALYZE = "analyze";
public static final String BROWSER = "browse";
public static final String STUFF="stuff";
public static final String GROUP="group";
public static final String EDIT_IN_TABLE = "editInTable";
public static final String ENABLE = "enable";
public static final String DISABLE = "disable";
public static final String CLOSE_ADD_OR_EDIT_DIALOG = "CloseAddOrEditDialog";
/**
* 升级版次事件
*/
public static final String VERSION = "version";
/**
* 浏览link对象
*/
public static final String BROWSERLINK = "browserlink";
/**
* 创建link
*/
public static final String CREATELINK = "createlink";
/**
* 修改link
*/
public static final String EDITLINK = "editlink";
/**
* 刷新按钮
*/
public static final String REFRESH = "refresh";
/**
* 浏览按钮
*/
public static final String VIEW = "view";
/**
* 导入业务对象
*/
public static final String IMPORTBO = "importbo";
/**
* 导入链接对象
*/
public static final String IMPORTLO = "importlo";
/**
* 设置 Action 所在 Button 的参数信息
*/
public void setButtonParams(Map paramsMap);
/**
* 返回 Action 所在 Button 的参数信息
* @return
*/
public Map getButtonParams();
/**
* 设置Button 对应的 Action 所在的Defination
* @param defination
*/
public void setDefination(PLDefination defination);
/**
* 返回 Button 对应的 Action 所在的Defination
* @return
*/
public PLDefination getDefination();
/**
* 设置 Button
* @param button
*/
public void setButton(PLTabButton button);
/**
* 返回 与此Action关联对应的Button
* @return
*/
public PLTabButton getButton();
/**
* 设置 Action 所在区域的DataModel
* @param dataModel
*/
public void setDataModel(IDataModel dataModel);
/**
* 返回 Action 所在区域的DataModel
* @return
*/
public IDataModel getDataModel();
/**
* 返回Aaction所属的父对象
* @return
*/
public Component getParentComponent();
/**
* 设置Action所属的父对象
* @param parentComponent
*/
public void setParentComponent(Component parentComponent);
/**
* 用于权限判断的 KEY
* @return
*/
public String getKey();
/**
* 是否有权限执行此Action
* @return 返回 true 表示有权限,返回 false 表示没有权限此操作
*/
public boolean checkHasRight();
/**
* 通用的执行 --建议屏蔽,只在Action框架基类中特殊解释用(如抛出来会破坏Action框架)
* @return 此Action执行的结果
*/
/*public boolean doAction();*/
/**
* doPost 执行前需要执行的业务逻辑
* @see doPost
* @return 返回 true 可以进一步执行 doPost,返回 false 则不执行 doPost
*/
public boolean beforePost();
/**
* 具体要执行的业务逻辑
* @return 执行成功返回 true,执行失败返回 false
*/
public boolean doPost();
/**
* doPost 执行成功后需要执行的业务逻辑
* @see doPost
* @return 执行成功返回 true,执行失败返回 false
*/
public boolean afterPost();
/**
* afterPost事件处理时可处理的数据补充(afterPost还可以处理PostActionEvent) -- Add By ZhongGY
* @Title :getAfterPostData
* @Description :
* @return
*//*
public Object getAfterPostDataExt();*/
/**
* 数据来源
* @author xiongchao
*
*/
public enum ValueType{
/**
* Action 所在Button的定义的数据
*/
ButtonConfig,
/**
* 运行时的数据(行、Form数据)
*/
RuntimeData,
}
/**
* 获取参数
* @param vt 参数值的来源
* @param key 参数的 key
* @param dataIndex 参数数据索引(第xx条数据的 x)
* @return
*/
public String getParameterValue(ValueType valueType, String key, int dataIndex);
/**
* 设置Action所在的Dialog
* @param ownerDialog
*/
public void setOwnerDialog(VCIJDialog ownerDialog);
/**
* 返回 Action 所在的Dialog
* @return VCIJDialog
*/
public VCIJDialog getOwnerDialog();
/**
* 设置Button&Action所在的RegionPanel
* @param regionPanel
*/
public void setRegionPanel(IRegionPanel regionPanel);
/**
* Button&Action所在的RegionPanel
* @return
*/
public IRegionPanel getRegionPanel();
/**
* 设置此action所在的button(jbutton)实例
*/
public void setButtonComponent(Component buttonComponent);
/**
* 返回此action所在的button(jbutton)实例
* @return
*/
public Component getButtonComponent();
/**
* 设置Action配置信息
* @param action
*/
public void setAction(PLAction action);
/**
* 获得Action配置信息
* @return
*/
public PLAction getAction();
/**
* 设置 action 需要使用的数据权限检查类型
* @param dataRightCheckType 数据权限检查类型
*/
public void setDataRightCheckType(String dataRightCheckType);
/**
* 返回 action 使用的数据权限检查类型
* @return
*/
public String getDataRightCheckType();
}