package com.vci.client.uif.engine.client.mainDataArea; import java.util.Map; import com.vci.client.bof.ClientBusinessObject; import com.vci.client.bof.ClientLinkObject; import com.vci.client.uif.engine.client.AbstractDataModel; import com.vci.client.uif.engine.client.IDataModel; import com.vci.client.uif.engine.client.UIHelper; import com.vci.client.uif.engine.client.objopt.ObjectAddEditPanel; import com.vci.client.uif.engine.client.tableArea.TablePanelDataModel; import com.vci.client.uif.engine.client.tree.TreePanelModel; import com.vci.client.uif.engine.common.IDataNode; public class FormDataModel extends AbstractDataModel{ private MainDataFormPanel ownerFormPanel = null; private ObjectAddEditPanel oaep = null; public FormDataModel(MainDataFormPanel ownerFormPanel){ this.ownerFormPanel = ownerFormPanel; this.setRegionPanel(ownerFormPanel); } public void setContentPanel(ObjectAddEditPanel oaep) { this.oaep = oaep; } @Override public int[] getSelectObjectRowIndexs() { return new int[]{0}; } @Override public Object[] getSelectObjects() { // return new Object[]{ this.ownerFormPanel.getSourceData()}; Object[] objs = new Object[1]; objs[0] = getRootObject(true); if (objs[0] instanceof IDataNode) { if (((IDataNode)objs[0]).getMaterObject() == null) { return null; } } else { return null; } return objs; } @Override public void refresh(IDataModel fromDataModel) { if(fromDataModel instanceof FormDataModel){ Object[] objs = getSelectObjects(); if(objs == null) return; if(objs.length == 0) return; String oid = ""; String type = ""; if((objs[0] instanceof Map)){ @SuppressWarnings("unchecked") Map map = (Map) objs[0]; oid = map.get(UIHelper.OID); type = map.get(UIHelper.TYPE); } else if(objs[0] instanceof IDataNode){ IDataNode dataNode = (IDataNode)objs[0]; ClientBusinessObject cbo = null; if(dataNode.getMaterObject() instanceof ClientBusinessObject){ cbo = (ClientBusinessObject)dataNode.getMaterObject(); } else if(dataNode.getMaterObject() instanceof ClientLinkObject){ cbo = dataNode.getClientBusinessObject(); } oid = cbo.getBusinessObject().oid; type = cbo.getBusinessObject().btName; } if(oid != null && !"".equals(oid) && type != null && !"".equals(type)){ loadBOToUI(oid, type); getUILayoutModel().notify(fromDataModel); } } else if (fromDataModel instanceof TreePanelModel) { TreePanelModel treePanelModel = (TreePanelModel)fromDataModel; Object[] treeSelectObj = treePanelModel.getSelectObjects(); if (treeSelectObj == null || treeSelectObj.length < 1) { return; } String treeObjOid = ""; String treeObjType = ""; if (treeSelectObj[0] instanceof IDataNode) { IDataNode dataNode = (IDataNode) treeSelectObj[0]; treeObjOid = this.getOwnerFormPanel().getBusinessObjectOid(dataNode); treeObjType = this.getOwnerFormPanel().getBusinessObjectType(dataNode); } loadBOToUI(treeObjOid, treeObjType); } else if (fromDataModel instanceof TablePanelDataModel) { TablePanelDataModel tableModel = (TablePanelDataModel)fromDataModel; Object treeSelectObj = tableModel.getClickObject(); if (treeSelectObj == null) { return; } String treeObjOid = ""; String treeObjType = ""; if (treeSelectObj instanceof IDataNode) { IDataNode dataNode = (IDataNode) treeSelectObj; treeObjOid = this.getOwnerFormPanel().getBusinessObjectOid(dataNode); treeObjType = this.getOwnerFormPanel().getBusinessObjectType(dataNode); } loadBOToUI(treeObjOid, treeObjType); } } private void loadBOToUI(String oid, String type){ this.ownerFormPanel.loadDataToUIControl(oid, type); } @Override public Object getRootObject() { return ownerFormPanel.getSourceData(); } public MainDataFormPanel getOwnerFormPanel() { return ownerFormPanel; } public void setOwnerFormPanel(MainDataFormPanel ownerFormPanel) { this.ownerFormPanel = ownerFormPanel; } /** * 判断是否需要进行校验 * @param ischeck * @return */ public Object getRootObject(boolean isCheck){ return oaep.getDataNodeObject(isCheck); } /** * 处理UI组件的UI刷新(先刷新UI Module,通过UI Module刷新UI组件) add by zhonggy 2015-07 */ public void refreshUI(IDataModel fromDataModel){ this.sourceModel = fromDataModel; needRefreshUI = true; if (regionUIIsActive && regionPanel != null) { this.refreshUI(); } } @Override /** * 处理UI刷新 */ public void refreshUI() { this.setActive( true); if (needRefreshUI && regionPanel != null) { needRefreshUI = false; //regionPanel.refreshUI(); this.refresh(this.sourceModel); } } }