public PropertyValueManager(InstanceElement parentT) { parentInstance = parentT; propertiesManager = ((InstancesManager)parentInstance.parent).parent.propertiesManager; }
//合并 public void combine(InstancesManager srcInstancesManager) { if (srcInstancesManager == null) { return; } for (int i = 0; i < srcInstancesManager.getElementCount(); i++) { InstanceElement srcInstanceElement = (InstanceElement)srcInstancesManager.getElement(i); bool findSame = false; //寻找相同 for (int j = 0; j < getElementCount(); j++) { InstanceElement tempInstanceElement = (InstanceElement)getElement(j); if (tempInstanceElement.equalsInstanceElement(srcInstanceElement)) { findSame = true; break; } } if (findSame)//保留原实例 { continue; } else//添加新的实例 { InstanceElement newInstanceElement = new InstanceElement(this); newInstanceElement.propertyValueManager.refreshProperty(); newInstanceElement.setName(srcInstanceElement.name); addElement(newInstanceElement); } } }
public override ObjectElement clone() { InstanceElement newInstance = new InstanceElement((InstancesManager)parent); baseCloneTo(newInstance); propertyValueManager.cloneTo(newInstance.propertyValueManager); return newInstance; }
//判断相同 public bool equalsInstanceElement(InstanceElement destInstanceElement) { if (destInstanceElement == null) { return false; } if (!destInstanceElement.name.Equals(name)) { return false; } return true; }
public void readObjectInit(System.IO.Stream s) { short len = 0; len = IOUtil.readShort(s); for (int i = 0; i < len; i++) { InstanceElement element = new InstanceElement(this); addElement(element); } }
//增加单元 private void addElement_ObjDefine() { if (listBox_Obj_Define.Focused)//增加对象类型单元 { PropertyTypeElement element = new PropertyTypeElement(propertyTypesManager); element.setName(SmallDialog_WordEdit.getNewName("新对象类型单元", element.name)); propertyTypesManager.insertElement(element, listBox_Obj_Define.SelectedIndex + 1); } else if (currentObjTypeElement != null) { if (listBox_ObjProperties.Focused)//增加属性单元 { PropertyElement element = SmallDialog_PropertyDefine.createElement(currentObjTypeElement.propertiesManager); if (element != null) { int index = listBox_ObjProperties.SelectedIndex+1; currentObjTypeElement.propertiesManager.insertElement(element, index); currentObjTypeElement.instancesManager.inseartProperty(element, index); } } else if (listBox_ObjInstances.Focused)//增加对象实例单元 { InstanceElement element = new InstanceElement(currentObjTypeElement.instancesManager); element.propertyValueManager.refreshProperty(); element.setName(SmallDialog_WordEdit.getNewName("新对象实例单元", element.name)); currentObjTypeElement.instancesManager.insertElement(element, listBox_ObjInstances.SelectedIndex + 1); element.propertyValueManager.refreshUI(listBox_InstanceProperty); } } }
//重新设置焦点实例单元 private void resetCurrentInstanceElement() { if (currentObjTypeElement == null) { listBox_ObjInstances.Items.Clear(); listBox_InstanceProperty.Items.Clear(); return; } if (listBox_ObjInstances.SelectedIndex < 0) { currentInstanceElement = null; } else { currentInstanceElement = (InstanceElement)currentObjTypeElement.instancesManager.getElement(listBox_ObjInstances.SelectedIndex); } //显示属性信息 if (currentInstanceElement != null) { currentInstanceElement.propertyValueManager.refreshUI(listBox_InstanceProperty); } else { listBox_InstanceProperty.Items.Clear(); } }