public UI_TechDimension_Save(UI_TechDimension dim) : base(dim) { nominal = dim.nominal; up = dim.up; down = dim.down; typ = type.tech; }
public void ReNull() { UI_D = null; textBoxNominal.Text = "20"; textBoxUp.Text = "0"; textBoxDown.Text = "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(); }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------- /// <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(); } }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ /// <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); // подписываемся на событие изменения нового размера } }
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); } }