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 paramters; protected String url; protected IDataNode sourceDataNode; protected IDataNode selectDataNode; public UIBaseLayoutPanel(String url, Map parameters) { this.url = url; if (parameters == null) { parameters = new HashMap(); } this.paramters = parameters; } public UIBaseLayoutPanel(Map parameters) { if (parameters == null) { parameters = new HashMap(); } 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的数据 *

==================================== UILayoutPanel =====================================

*

u.inputdata. 选择的那条数据对象。(如图1中的产品型号列表中选择的产品)

*

*

sourcedata. 从选择的那条数据对象中取出oid,经合按钮参数中定义的type,将此oid对应数据重新加载出来,作为此UILayoutPanel的sourcedata *

*

*

*

==================================== 导航区 =====================================

*

u.n.sourcedata. 导航区的sourcedata(实际上与 u.sourcedata是同一个对象)

*

u.n.selectdata. 导航区中最后最后点击的数据对象(树上多选时,是第一个点击的对象)

*

u.n.selectdata[0-N]. 导航区中,多选时对应的数据对象(索引从0开始,小于等于 树节点选择数据的长度 – 1),如 u.n.selectdata0.xxx、 u.n.selectdata1.xxx

*

*

u.n.tabpagecode1. 导航区里编码为tabpagecode1的tabpage(导航区当前暂未实现加载多个面签)

*

u.n.tabpagecode1.sourcedata.

*

u.n.tabpagecode1. selectdata.

*

u.n.tabpagecode1. selectdata[0-N].

*

*

u.n.tabpagecodeN. 导航区里编码为tabpagecodeN的tabpage(导航区当前暂未实现加载多个面签)

*

u.n.tabpagecodeN.sourcedata.

*

u.n.tabpagecodeN. selectdata.

*

u.n.tabpagecodeN. selectdata[0-N].

*

*

u.n.tabpagecode1.1. 导航区里编码为tabpagecode1的tabpage里编号为1的defination(form\table\tree\treetable\custom)

*

u.n.tabpagecode1.1.sourcedata.

*

u.n.tabpagecode1.1.selectdata.

*

u.n.tabpagecode1.1.selectdata[0-N].

*

*

u.n.tabpagecode1.N.sourcedata. 导航区里编码为tabpagecode1的tabpage里编号为N的defination(form\table\tree\treetable\custom)

*

u.n.tabpagecode1.N.sourcedata.

*

u.n.tabpagecode1.N.selectdata.

*

u.n.tabpagecode1.N.selectdata[0-N].

*

*

*

*

==================================== 控制区 =====================================

*

u.c.

*

u.c.sourcedata. 导航区的sourcedata(实际上与 u.sourcedata是同一个对象)

*

u.c.selectdata. 导航区中最后最后点击的数据对象(树上多选时,是第一个点击的对象)

*

u.c.selectdata[0-N]. 导航区中,多选时对应的数据对象(索引从0开始,小于等于 树节点选择数据的长度 – 1),如 u.n.selectdata0.xxx、 u.n.selectdata1.xxx

*

*

u.c.tabpagecode1. 导航区里编码为tabpagecode1的tabpage(导航区当前暂未实现加载多个面签)

*

u.c.tabpagecode1.sourcedata.

*

u.c.tabpagecode1. selectdata.

*

u.c.tabpagecode1. selectdata[0-N].

*

*

u.c.tabpagecodeN. 导航区里编码为tabpagecodeN的tabpage(导航区当前暂未实现加载多个面签)

*

u.c.tabpagecodeN.sourcedata.

*

u.c.tabpagecodeN. selectdata.

*

u.c.tabpagecodeN. selectdata[0-N].

*

*

u.c.tabpagecode1.1. 导航区里编码为tabpagecode1的tabpage里编号为1的defination(form\table\tree\treetable\custom)

*

u.c.tabpagecode1.1.sourcedata.

*

u.c.tabpagecode1.1.selectdata.

*

u.c.tabpagecode1.1.selectdata[0-N].

*

*

u.c.tabpagecode1.N.sourcedata. 导航区里编码为tabpagecode1的tabpage里编号为N的defination(form\table\tree\treetable\custom)

*

u.c.tabpagecode1.N.sourcedata.

*

u.c.tabpagecode1.N.selectdata.

*

u.c.tabpagecode1.N.selectdata[0-N].

*

*

*

*

==================================== 操作区 =====================================

*

u.o. 操作区里第一个加载的tabpage对象

*

u.o.sourcedata. 操作区的sourcedata

*

u.o.selectdata. 操作区选择的数据对象(实际上与 u.o.sourcedata是同一个对象)

*

u.o.selectdata[0-N]. 操作区中,多选时对应的数据对象(索引从0开始,小于等于 树节点选择数据的长度 – 1),如 u.o.selectdata0.xxx、 u.o.selectdata1.xxx

*

*

u.o.tabpagecode1. 操作区里编码为tabpagecode1的tabpage

*

u.o.tabpagecode1.sourcedata.

*

u.o.tabpagecodd1.selectdata.

*

u.o.tabpagecode1.selectdata[0-N].

*

*

u.o.tabpagecodeN.sourcedata. 操作区里编码为tabpagecodeN的tabpage

*

u.o.tabpagecodeN.selectdata.

*

u.o.tabpagecoddN.selectdata[0-N].

*

*

u.o.tabpagecode1.1.sourcedata. 操作区里编码为tabpagecode1的tabpage里编号为1的defination(form\table\tree\treetable\custom)

*

u.o.tabpagecode1.1.selectdata.

*

u.o.tabpagecode1.1.selectdata[0- N]

*

*

u.o.tabpagecode1.N.sourcedata. 操作区里编码为tabpagecode1的tabpage里编号为N的defination(form\table\tree\treetable\custom)

*

u.o.tabpagecode1.N.selectdata.

*

u.o.tabpagecode1.N.selectdata[0-N].

*/ 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; } }