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<String, String> map = (Map<String, String>) 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);
|
}
|
}
|
}
|