Exemple #1
0
 public UI_TechDimension_Save(UI_TechDimension dim) : base(dim)
 {
     nominal = dim.nominal;
     up      = dim.up;
     down    = dim.down;
     typ     = type.tech;
 }
Exemple #2
0
 public void ReNull()
 {
     UI_D = null;
     textBoxNominal.Text = "20";
     textBoxUp.Text      = "0";
     textBoxDown.Text    = "0";
 }
Exemple #3
0
 public void SetUI_TD(UI_TechDimension UI_TD)
 {
     UI_D = UI_TD;
     textBoxNominal.Text = UI_TD.nominal.ToString();
     textBoxUp.Text      = UI_TD.up.ToString();
     textBoxDown.Text    = UI_TD.down.ToString();
 }
Exemple #4
0
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Обработка события изменения технологического размера пользователем
        /// </summary>
        /// <param name="dim">UI-размер, который сгенерировал событие</param>
        void Controller_TechDimensionApdated(UI_TechDimension dim)
        {
            if (dicUI_Dim.ContainsKey(dim))     // размеры, которые находятся в процессе создания, но уже генерят событие не будут учитываться
            {
                Value val = new Value(dim.nominal, dim.up, dim.down);
                dicUI_Dim[dim].firstVertex.distanceTo[dicUI_Dim[dim].secondVertex] = null;
                dicUI_Dim[dim].secondVertex.distanceTo[dicUI_Dim[dim].firstVertex] = null;
                dicUI_Dim[dim].firstVertex.distanceTo[dicUI_Dim[dim].secondVertex] = val;
                dicUI_Dim[dim].secondVertex.distanceTo[dicUI_Dim[dim].firstVertex] = val.Inverse();
                ReBuildAll();
            }
        }
Exemple #5
0
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        /// <summary>
        /// Создание технологического размера
        /// </summary>
        public void NewTechDimension()
        {
            if (!isCreatingDimension)
            {
                foreach (UIElement UI in leftStackPanel.Children)
                {
                    UI.IsEnabled = false;
                }
                isCreatingDimension = true;
                UnPickIfChosed();
                UI_Dimension newDim = new UI_TechDimension(TUC);
                creatingDimAtThisMoment = newDim;
                (newDim as UI_TechDimension).TechDimensionApdatedEvent += new UI_TechDimension.TechDimensionApdatedEventHandler(Controller_TechDimensionApdated);     // подписываемся на событие изменения нового размера
            }
        }
Exemple #6
0
        void MainWindow_OpenSaved()
        {
            OpenFileDialog OFD = new OpenFileDialog();

            OFD.Filter = "*.dch|*.dch";
            OFD.ShowDialog();
            fileName = OFD.FileName;
            if (fileName == "")
            {
                MessageBox.Show("Файл не выбран!");
                return;
            }

            try
            {
                FileStream      fs   = new FileStream(fileName, FileMode.Open);
                BinaryFormatter bf   = new BinaryFormatter();
                Save            save = (Save)bf.Deserialize(fs);
                fs.Close();
                MainWindow_EscPressed();    // если вдруг в этот момент создаётся размер
                window.SetSaveEnable(true);
                window.Title = "Автоматический рассчёт размерных цепей - " + fileName;

                canv.Children.Clear();
                rightStackPanel.Children.Clear();

                this.graph = save.graph;
                listOfDimensions.Clear();                  // список всех размеров
                dicUI_Dim.Clear();                         // словарь: визуальный размер -> размер
                dicDim_UI.Clear();                         // словарь: размер -> визуальный размер

                isCreatingDimension     = false;
                chosedDimension         = null;
                creatingDimAtThisMoment = null;

                foreach (UI_Dimension_Save UIDSaved in save.dic_UISave_Dim.Keys)
                {
                    UI_Dimension newUIDim = null;
                    switch (UIDSaved.typ)
                    {
                    case type.tech:
                        newUIDim = new UI_TechDimension(UIDSaved);
                        (newUIDim as UI_TechDimension).TechDimensionApdatedEvent += new UI_TechDimension.TechDimensionApdatedEventHandler(Controller_TechDimensionApdated);
                        break;

                    case type.pripusk:
                        newUIDim = new UI_PripuskDimension(UIDSaved);
                        (newUIDim as UI_PripuskDimension).PripuskApdatedEvent += new UI_PripuskDimension.PripuskApdatedEventHandler(Controller_PripuskApdated);
                        break;

                    case type.konstr:
                        newUIDim = new UI_ConstrDimension(UIDSaved);
                        (newUIDim as UI_ConstrDimension).ConstrApdatedEvent += new UI_ConstrDimension.ConstrApdatedEventHandler(Controller_ConstrApdated);
                        break;
                    }
                    newUIDim.dimensionClicked += new UI_Dimension.dimensionClickedEventHandler(Controller_ClickOnDimension);
                    newUIDim.lblClickedOtherPodpiska();
                    listOfDimensions.Add(newUIDim);
                    dicUI_Dim.Add(newUIDim, save.dic_UISave_Dim[UIDSaved]);
                    dicDim_UI.Add(save.dic_UISave_Dim[UIDSaved], newUIDim);
                }
                ReBuildAll();
                if (graph.isCicle)
                {
                    window.lblStateCicle.Content = "Размерная цепь замкнута!";
                }
                else
                {
                    window.lblStateCicle.Content = "";
                }
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message); }
        }