public override ITreeViewItem Insert() { if (Items.Length == 0) { var newObject = new TechObject(Name, GetTechObjectLocalNum, 1, 1, "MASTER", -1, "MasterObj", "", baseTechObject); // Работа со списком в дереве и общим списком объектов. objects.Add(newObject); globalObjectsList.Add(newObject); // Обозначение начального номера объекта для ограничений. SetRestrictionOwner(); newObject.SetUpFromBaseTechObject(); newObject.AddParent(this); return(newObject); } else { ObjectsAdder.Reset(); return(null); } }
/// <summary> /// Выбор типа и подтипа объекта на форме. /// </summary> /// <param name="selectedType">Тип</param> /// <param name="selectedSubType">Подтип</param> private void ChooseObjectTypes(out string selectedType, out string selectedSubType) { var objectsAdderForm = new ObjectsAdder(); objectsAdderForm.ShowDialog(); selectedType = ObjectsAdder.LastSelectedType; selectedSubType = ObjectsAdder.LastSelectedSubType; }
override public ITreeViewItem InsertCopy(object obj) { var techObj = obj as TechObject; if (techObj == null) { return(null); } bool processCellNotAdd = objects.Count == 0; bool correctedBaseObject = techObj.BaseTechObject != null && techObj.BaseTechObject.Name == Name; if (correctedBaseObject && processCellNotAdd) { int newN = 1; if (objects.Count > 0) { newN = objects[objects.Count - 1].TechNumber + 1; } //Старый и новый номер объекта - для замены в ограничениях int oldObjNum = globalObjectsList .IndexOf(obj as TechObject) + 1; int newObjNum = globalObjectsList.Count + 1; var newObject = (obj as TechObject).Clone(GetTechObjectLocalNum, newN, oldObjNum, newObjNum); // Работа со списком в дереве и общим списком объектов. objects.Add(newObject); globalObjectsList.Add(newObject); // Для корректного копирования ограничений newObject.ChangeCrossRestriction(); newObject.Equipment.ModifyDevNames(); newObject.AddParent(this); return(newObject); } else { ObjectsAdder.Reset(); if (techObj.MarkToCut && processCellNotAdd) { return(InsertCuttedCopy(techObj)); } } return(null); }
override public ITreeViewItem InsertCopy(object obj) { var techObj = obj as TechObject; if (techObj == null) { return(null); } if (techObj.BaseTechObject != null && techObj.BaseTechObject.Name == baseTechObject.Name) { int newN = 1; if (localObjects.Count > 0) { newN = localObjects[localObjects.Count - 1].TechNumber + 1; } int oldObjN = globalObjectsList.IndexOf(techObj) + 1; int newObjN = globalObjectsList.Count + 1; var newObject = CloneObject(techObj, newN, oldObjN, newObjN); // Работа со списком в дереве и общим списком объектов. localObjects.Add(newObject); globalObjectsList.Add(newObject); newObject.ChangeCrossRestriction(); newObject.Equipment.ModifyDevNames(); newObject.AddParent(this); return(newObject); } else { ObjectsAdder.Reset(); if (techObj.MarkToCut) { return(InsertCuttedCopy(techObj)); } } return(null); }
public override ITreeViewItem Insert() { const int techTypeNum = 2; const int cooperParamNum = -1; ObjectsAdder.Reset(); var newObject = new TechObject(baseTechObject.Name, GetTechObjectLocalNum, localObjects.Count + 1, techTypeNum, "TANK", cooperParamNum, "TankObj", "", baseTechObject); // Работа со списком в дереве и общим списком объектов. localObjects.Add(newObject); globalObjectsList.Add(newObject); // Обозначение начального номера объекта для ограничений. SetRestrictionOwner(); return(newObject); }
/// <summary> /// Получить имя базового объекта (подтип S88) /// </summary> /// <returns></returns> private string GetSelectedSubType() { string selectedSubType = ObjectsAdder.LastSelectedSubType; if (selectedSubType == null) { var objectsAdderForm = new ObjectsAdder(name); objectsAdderForm.ShowDialog(); string subType = ObjectsAdder.LastSelectedSubType; if (subType != null) { return(subType); } } else { return(selectedSubType); } return(null); }