package com.vci.client.uif.engine.client;
|
|
import java.awt.Component;
|
import java.util.HashMap;
|
import java.util.Map;
|
import javax.swing.JPanel;
|
|
import com.vci.client.bof.ClientBusinessObject;
|
import com.vci.client.bof.ClientLinkObject;
|
import com.vci.client.ui.exception.VCIException;
|
import com.vci.client.ui.locale.LocaleDisplay;
|
import com.vci.client.ui.swing.components.VCIJOptionPane;
|
import com.vci.client.uif.engine.common.IDataNode;
|
|
public abstract class UIBaseLayoutPanel extends JPanel{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -889811444944434818L;
|
|
protected String type;
|
protected String context;
|
protected Map<String, String> paramters;
|
protected String url;
|
protected IDataNode sourceDataNode;
|
protected IDataNode selectDataNode;
|
|
public UIBaseLayoutPanel(String url, Map<String, String> parameters) {
|
this.url = url;
|
if (parameters == null) {
|
parameters = new HashMap<String, String>();
|
}
|
this.paramters = parameters;
|
}
|
|
public UIBaseLayoutPanel(Map<String, String> parameters) {
|
if (parameters == null) {
|
parameters = new HashMap<String, String>();
|
}
|
this.paramters = parameters;
|
}
|
|
public abstract void reinitRightPanel(IDataNode bo);
|
public abstract void reinitRightPanel(IDataNode bo, String context);
|
public abstract void reinitRightPanel(IDataNode bo, String type, String context);
|
|
public abstract boolean prep();
|
|
public abstract void initMainPanel();
|
|
public IDataNode getSourceDataNode() {
|
return sourceDataNode;
|
}
|
|
public void setSourceDataNode(IDataNode sourceDataNode) {
|
this.sourceDataNode = sourceDataNode;
|
}
|
|
public IDataNode getSelectDataNode() {
|
return selectDataNode;
|
}
|
|
public void setSelectDataNode(IDataNode selectDataNode) {
|
this.selectDataNode = selectDataNode;
|
}
|
|
/**
|
* 根据传入的DataNode获取其上bo对象的type
|
* @return
|
*/
|
public String getBusinessObjectType(IDataNode dataNode) {
|
String boType = "";
|
if (dataNode.getMaterObject() instanceof ClientBusinessObject) {
|
boType = ((ClientBusinessObject)dataNode.getMaterObject()).getBtmName();
|
} else if (dataNode.getMaterObject() instanceof ClientLinkObject) {
|
if (dataNode.isForward()) {
|
boType = ((ClientLinkObject)dataNode.getMaterObject()).getToBTMName();
|
} else {
|
boType = ((ClientLinkObject)dataNode.getMaterObject()).getFromBTMName();
|
}
|
}
|
|
return boType;
|
}
|
|
public void showMessage(Component parent, VCIException exp) {
|
String message = LocaleDisplay.getI18nString(exp, "UIFModelAction", this.getLocale());
|
VCIJOptionPane.showMessage(parent, message);
|
}
|
|
private IDataNode inputData = null;
|
/**
|
* 返回 打开此UILayout时,传入到此UILayout的IDataNode
|
* @return 打开此UILayout时,传入到此UILayout的IDataNode
|
*/
|
public IDataNode getInputData(){
|
return this.inputData;
|
}
|
/**
|
* 设置 打开此UILayout时,传入到此UILayout的IDataNode
|
* @param inputData 设置 打开此UILayout时,传入到此UILayout的IDataNode
|
*/
|
public void setInputData(IDataNode inputData){
|
this.inputData = inputData;
|
}
|
|
public abstract Object getObject(String key);
|
/**
|
* 根据指定的key,从UILayoutPanel及其三大区域中获取sourcedata、selectdata的数据
|
* <p>==================================== UILayoutPanel =====================================</p>
|
* <p>u.inputdata. 选择的那条数据对象。(如图1中的产品型号列表中选择的产品)</p>
|
* <p></p>
|
* <p>sourcedata. 从选择的那条数据对象中取出oid,经合按钮参数中定义的type,将此oid对应数据重新加载出来,作为此UILayoutPanel的sourcedata
|
* <p></p>
|
* <p></p>
|
* <p></p>
|
* <p>==================================== 导航区 =====================================</p>
|
* <p>u.n.sourcedata. 导航区的sourcedata(实际上与 u.sourcedata是同一个对象)</p>
|
* <p>u.n.selectdata. 导航区中最后最后点击的数据对象(树上多选时,是第一个点击的对象)</p>
|
* <p>u.n.selectdata[0-N]. 导航区中,多选时对应的数据对象(索引从0开始,小于等于 树节点选择数据的长度 – 1),如 u.n.selectdata0.xxx、 u.n.selectdata1.xxx</p>
|
* <p></p>
|
* <p>u.n.tabpagecode1. 导航区里编码为tabpagecode1的tabpage(导航区当前暂未实现加载多个面签)</p>
|
* <p>u.n.tabpagecode1.sourcedata. </p>
|
* <p>u.n.tabpagecode1. selectdata. </p>
|
* <p>u.n.tabpagecode1. selectdata[0-N]. </p>
|
* <p>…</p>
|
* <p>u.n.tabpagecodeN. 导航区里编码为tabpagecodeN的tabpage(导航区当前暂未实现加载多个面签)</p>
|
* <p>u.n.tabpagecodeN.sourcedata. </p>
|
* <p>u.n.tabpagecodeN. selectdata. </p>
|
* <p>u.n.tabpagecodeN. selectdata[0-N]. </p>
|
* <p></p>
|
* <p>u.n.tabpagecode1.1. 导航区里编码为tabpagecode1的tabpage里编号为1的defination(form\table\tree\treetable\custom)</p>
|
* <p>u.n.tabpagecode1.1.sourcedata. </p>
|
* <p>u.n.tabpagecode1.1.selectdata. </p>
|
* <p>u.n.tabpagecode1.1.selectdata[0-N]. </p>
|
* <p>…</p>
|
* <p>u.n.tabpagecode1.N.sourcedata. 导航区里编码为tabpagecode1的tabpage里编号为N的defination(form\table\tree\treetable\custom)</p>
|
* <p>u.n.tabpagecode1.N.sourcedata. </p>
|
* <p>u.n.tabpagecode1.N.selectdata. </p>
|
* <p>u.n.tabpagecode1.N.selectdata[0-N]. </p>
|
* <p></p>
|
* <p></p>
|
* <p></p>
|
* <p>==================================== 控制区 =====================================</p>
|
* <p>u.c.</p>
|
* <p>u.c.sourcedata. 导航区的sourcedata(实际上与 u.sourcedata是同一个对象)</p>
|
* <p>u.c.selectdata. 导航区中最后最后点击的数据对象(树上多选时,是第一个点击的对象)</p>
|
* <p>u.c.selectdata[0-N]. 导航区中,多选时对应的数据对象(索引从0开始,小于等于 树节点选择数据的长度 – 1),如 u.n.selectdata0.xxx、 u.n.selectdata1.xxx</p>
|
* <p></p>
|
* <p>u.c.tabpagecode1. 导航区里编码为tabpagecode1的tabpage(导航区当前暂未实现加载多个面签)</p>
|
* <p>u.c.tabpagecode1.sourcedata. </p>
|
* <p>u.c.tabpagecode1. selectdata. </p>
|
* <p>u.c.tabpagecode1. selectdata[0-N]. </p>
|
* <p>…</p>
|
* <p>u.c.tabpagecodeN. 导航区里编码为tabpagecodeN的tabpage(导航区当前暂未实现加载多个面签)</p>
|
* <p>u.c.tabpagecodeN.sourcedata. </p>
|
* <p>u.c.tabpagecodeN. selectdata. </p>
|
* <p>u.c.tabpagecodeN. selectdata[0-N]. </p>
|
* <p></p>
|
* <p>u.c.tabpagecode1.1. 导航区里编码为tabpagecode1的tabpage里编号为1的defination(form\table\tree\treetable\custom)</p>
|
* <p>u.c.tabpagecode1.1.sourcedata. </p>
|
* <p>u.c.tabpagecode1.1.selectdata. </p>
|
* <p>u.c.tabpagecode1.1.selectdata[0-N]. </p>
|
* <p>…</p>
|
* <p>u.c.tabpagecode1.N.sourcedata. 导航区里编码为tabpagecode1的tabpage里编号为N的defination(form\table\tree\treetable\custom)</p>
|
* <p>u.c.tabpagecode1.N.sourcedata. </p>
|
* <p>u.c.tabpagecode1.N.selectdata. </p>
|
* <p>u.c.tabpagecode1.N.selectdata[0-N]. </p>
|
* <p></p>
|
* <p></p>
|
* <p></p>
|
* <p>==================================== 操作区 =====================================</p>
|
* <p>u.o. 操作区里第一个加载的tabpage对象</p>
|
* <p>u.o.sourcedata. 操作区的sourcedata</p>
|
* <p>u.o.selectdata. 操作区选择的数据对象(实际上与 u.o.sourcedata是同一个对象)</p>
|
* <p>u.o.selectdata[0-N]. 操作区中,多选时对应的数据对象(索引从0开始,小于等于 树节点选择数据的长度 – 1),如 u.o.selectdata0.xxx、 u.o.selectdata1.xxx</p>
|
* <p></p>
|
* <p>u.o.tabpagecode1. 操作区里编码为tabpagecode1的tabpage</p>
|
* <p>u.o.tabpagecode1.sourcedata. </p>
|
* <p>u.o.tabpagecodd1.selectdata. </p>
|
* <p>u.o.tabpagecode1.selectdata[0-N]. </p>
|
* <p>…</p>
|
* <p>u.o.tabpagecodeN.sourcedata. 操作区里编码为tabpagecodeN的tabpage</p>
|
* <p>u.o.tabpagecodeN.selectdata. </p>
|
* <p>u.o.tabpagecoddN.selectdata[0-N]. </p>
|
* <p></p>
|
* <p>u.o.tabpagecode1.1.sourcedata. 操作区里编码为tabpagecode1的tabpage里编号为1的defination(form\table\tree\treetable\custom)</p>
|
* <p>u.o.tabpagecode1.1.selectdata. </p>
|
* <p>u.o.tabpagecode1.1.selectdata[0- N] </p>
|
* <p>…</p>
|
* <p>u.o.tabpagecode1.N.sourcedata. 操作区里编码为tabpagecode1的tabpage里编号为N的defination(form\table\tree\treetable\custom)</p>
|
* <p>u.o.tabpagecode1.N.selectdata. </p>
|
* <p>u.o.tabpagecode1.N.selectdata[0-N]. </p>
|
*/
|
public abstract String getValue(String key);
|
|
public String getType() {
|
return type;
|
}
|
|
public void setType(String type) {
|
this.type = type;
|
}
|
|
public String getContext() {
|
return context;
|
}
|
|
public void setContext(String context) {
|
this.context = context;
|
}
|
|
public String getUrl() {
|
return url;
|
}
|
|
public void setUrl(String url) {
|
this.url = url;
|
}
|
}
|