Пример #1
0
        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);
            }
        }
Пример #2
0
        /// <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;
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        /// <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);
        }