示例#1
0
        private void UpdateInformation()
        {
            ChartComboBox.Items.Clear();
            foreach (DamageChartImage t in _chartImages)
            {
                ChartComboBox.Items.Add(t);
            }

            if (_document == null)
            {
                return;
            }

            DamageChartImage dci = _chartImages.FirstOrDefault(ci => ci.ChartName == _document.DamageChart2DImageName);

            if (dci == null)
            {
                return;
            }

            ChartComboBox.SelectedItem = dci;

            foreach (DamageSector damageSector in _document.DamageSectors)
            {
                if (damageSector.DamageChartColumn < 0 || (damageSector.DamageChartColumn + 1) > ChartGrid.ColumnDefinitions.Count ||
                    damageSector.DamageChartRow < 0 || (damageSector.DamageChartRow + 1) > ChartGrid.RowDefinitions.Count)
                {
                    continue;
                }

                UIElement uiElement = null;
                foreach (UIElement child in ChartGrid.Children)
                {
                    if (Grid.GetColumn(child) == damageSector.DamageChartColumn &&
                        Grid.GetRow(child) == damageSector.DamageChartRow)
                    {
                        uiElement = child;
                    }
                }

                if (uiElement == null)
                {
                    continue;
                }

                ToggleButton button = uiElement as ToggleButton;
                if (button == null)
                {
                    continue;
                }
                button.IsChecked = true;
                button.Tag       = damageSector;
                button.ToolTip   = new ToolTip
                {
                    Content = string.IsNullOrEmpty(damageSector.Remarks) ? "No Information" : damageSector.Remarks
                };// damageSector.Remarks;
            }
        }
示例#2
0
        private void AddNewChartButtonOnClick(object sender, RoutedEventArgs e)
        {
            DamageDocument   newDoc = new DamageDocument(1, _currentDirctive.ItemId);
            DamageChartImage dci    =
                _chartImages.FirstOrDefault(ci => ci.ChartName == newDoc.DamageChart2DImageName) ?? _selectDamageChartImage;

            if (dci != null)
            {
                newDoc.DamageChart2DImageName = dci.ChartName;
                newDoc.DamageChartImage       = dci.Image;
            }

            DamageChartsListView.Items.Add(newDoc);
            DamageChartsListView.SelectedIndex = DamageChartsListView.Items.Count - 1;
        }
示例#3
0
        ///<summary>
        ///</summary>
        ///<returns></returns>
        public void SaveData()
        {
            DamageChartImage dci = ChartComboBox.SelectedItem as DamageChartImage;

            if (dci != null)
            {
                _document.DamageChart2DImageName = dci.ChartName;
            }
            else
            {
                _document.DamageChart2DImageName = "";
            }

            List <ToggleButton> checkedButtons =
                ChartGrid.Children.OfType <ToggleButton>().Where(tb => tb.IsChecked == true).ToList();

            List <DamageSector> sectorsToDelete = new List <DamageSector>(_document.DamageSectors);

            _document.DamageSectors.Clear();

            foreach (ToggleButton checkedButton in checkedButtons.Where(cb => cb.Tag as DamageSector != null))
            {
                sectorsToDelete.Remove((DamageSector)checkedButton.Tag);

                _document.DamageSectors.Add((DamageSector)checkedButton.Tag);
            }
            foreach (DamageSector sectorToDelete in sectorsToDelete)
            {
                if (sectorToDelete.ItemId > 0)
                {
                    sectorToDelete.IsDeleted = true;
                    _document.DamageSectors.Add(sectorToDelete);
                }
            }
            foreach (ToggleButton checkedButton in checkedButtons.Where(cb => cb.Tag as DamageSector == null))
            {
                DamageSector newDamageSector = new DamageSector()
                {
                    DamageChartColumn = Grid.GetColumn(checkedButton),
                    DamageChartRow    = Grid.GetRow(checkedButton),
                    DamageDocument    = _document,
                };

                checkedButton.Tag = newDamageSector;

                _document.DamageSectors.Add(newDamageSector);
            }
        }
示例#4
0
        private void DamageChartsListView_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            DamageDocument doc = DamageChartsListView.SelectedItem as DamageDocument;

            if (doc == null)
            {
                return;
            }

            DamageChartImage dci =
                _chartImages.FirstOrDefault(ci => ci.ChartName == doc.DamageChart2DImageName) ?? _selectDamageChartImage;

            if (dci == null)
            {
                return;
            }

            ChartComboBox.SelectedItem = dci;
        }
示例#5
0
        ///<summary>
        ///</summary>
        ///<returns></returns>
        public bool GetChangeStatus()
        {
            DamageChartImage dci = ChartComboBox.SelectedItem as DamageChartImage;

            if (dci != null && dci.ChartName != _document.DamageChart2DImageName)
            {
                return(true);
            }
            //Проверка на содержание объекта в коллекции
            List <ToggleButton> checkedButtons =
                ChartGrid.Children.OfType <ToggleButton>().Where(tb => tb.IsChecked == true).ToList();

            if (checkedButtons.Count != _document.DamageSectors.Count)
            {
                return(true);
            }
            if (checkedButtons.Any(cb => cb.Tag as DamageSector == null))
            {
                return(true);
            }
            return(false);
        }
示例#6
0
        ///<summary>
        ///</summary>
        private void UpdateInformation()
        {
            if (_currentDirctive == null || _currentDirctive.DamageDocs == null ||
                _currentAircraft == null)
            {
                return;
            }

            _chartImages.Clear();
            _chartImages.AddRange(new[]
            {
                _b737300400500Bs46Leftside,
                _b737300400500Bs46Rightside,
                _b737300400500WingLowerSurface,
                _b737300400500WingUpperSurface,
                _b737500RearLeft,
                _b737500Side,
                _b737500Top,
                _selectDamageChartImage
            });

            ChartComboBox.Items.Clear();
            foreach (DamageChartImage t in _chartImages)
            {
                ChartComboBox.Items.Add(t);
            }

            DamageChartsListView.Items.Clear();

            if (_currentDirctive.DamageDocs.Count == 0)
            {
                //если у родителя нет ни одного Damage Doc-а, то ему добавляется в коллекцию Damage Doc-ов
                //пустой Damage Doc, ради того, что бы при появлении формы она не была пустой
                //если пользователь не изменит объект пустого Damage Doc-а, то данный Damage Doc при
                //закрытии формы не сохранится и произоидет удаление всех пустых Damage Doc-ов из
                //коллекции Damage Doc-ов родителя

                DamageDocument damageDoc = new DamageDocument(1, _currentDirctive.ItemId);
                _currentDirctive.DamageDocs.Add(damageDoc);

                DamageDocument imageDoc = new DamageDocument(2, _currentDirctive.ItemId);
                _currentDirctive.DamageDocs.Add(imageDoc);
            }

            int countCharts = 0, countImages = 0;

            foreach (DamageDocument document in _currentDirctive.DamageDocs)
            {
                if (document.DocumentTypeId == 1)
                {
                    DamageChartImage dci = _chartImages.FirstOrDefault(ci => ci.ChartName == document.DamageChart2DImageName);

                    if (dci != null)
                    {
                        document.DamageChart2DImageName = dci.ChartName;
                        document.DamageChartImage       = dci.Image;
                    }

                    DamageChartsListView.Items.Add(document);
                }
                if (document.DocumentTypeId == 2)
                {
                    //DamageChartImageControl docControl = new DamageChartImageControl(doc);
                    //if (countImages == 0) docControl.Extended = true;
                    //else docControl.Extended = false;
                    //countImages++;

                    //_damageImagesFileControls.Add(docControl);
                    //docControl.Deleted += ImageDeleted;
                    //flowLayoutPanelImages.Controls.Remove(panelButtonsImages);
                    //flowLayoutPanelImages.Controls.Add(docControl);
                    //flowLayoutPanelImages.Controls.Add(panelButtonsImages);
                }
            }

            DamageChartsListView.SelectedIndex = 0;

            DamageDocument doc = DamageChartsListView.SelectedItem as DamageDocument;

            if (doc == null)
            {
                return;
            }

            foreach (DamageSector damageSector in doc.DamageSectors)
            {
                if (damageSector.DamageChartColumn < 0 || (damageSector.DamageChartColumn + 1) > ChartGrid.ColumnDefinitions.Count ||
                    damageSector.DamageChartRow < 0 || (damageSector.DamageChartRow + 1) > ChartGrid.RowDefinitions.Count)
                {
                    continue;
                }

                UIElement uiElement = null;
                foreach (UIElement child in ChartGrid.Children)
                {
                    if (Grid.GetColumn(child) == damageSector.DamageChartColumn &&
                        Grid.GetRow(child) == damageSector.DamageChartRow)
                    {
                        uiElement = child;
                    }
                }

                if (uiElement == null)
                {
                    continue;
                }

                ToggleButton button = uiElement as ToggleButton;
                if (button == null)
                {
                    continue;
                }
                button.IsChecked = true;
                button.Tag       = damageSector;

                System.Windows.Controls.RichTextBox rtb = new System.Windows.Controls.RichTextBox {
                    FontFamily = FontFamily, FontSize = FontSize
                };
                FlowDocumentScrollViewer flowDocument = new FlowDocumentScrollViewer();
                string tooltipTex = string.IsNullOrEmpty(damageSector.Remarks) ? "No Information" : damageSector.Remarks;
                try
                {
                    //TextRange tr = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
                    var documentBytes = Encoding.UTF8.GetBytes(tooltipTex);
                    using (var reader = new MemoryStream(documentBytes))
                    {
                        reader.Position = 0;
                        rtb.SelectAll();
                        rtb.Selection.Load(reader, System.Windows.DataFormats.Rtf);
                    }
                    flowDocument.Document = rtb.Document;
                }
                catch (Exception)
                {
                }
                button.ToolTip = flowDocument;
            }
        }
示例#7
0
        private void ChartComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ChartGrid.ColumnDefinitions.Clear();
            ChartGrid.RowDefinitions.Clear();
            foreach (UIElement uiElement in ChartGrid.Children)
            {
                if (uiElement is Button)
                {
                    ((Button)uiElement).Click -= DamageSectorButtonClick;
                }
            }
            ChartGrid.Children.Clear();

            DamageChartImage dci = ChartComboBox.SelectedItem as DamageChartImage ?? _selectDamageChartImage;

            if (dci == null || dci.Image == null)
            {
                return;
            }

            try
            {
                BitmapConverter converter   = new BitmapConverter();
                ImageSource     imageSource = (ImageSource)converter.Convert(dci.Image, null, null, null);

                ChartGrid.Width      = imageSource.Width;
                ChartGrid.Height     = imageSource.Height;
                ChartGrid.Background = new ImageBrush(imageSource);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            for (int i = 0; i < dci.CountColumns; i++)
            {
                ChartGrid.ColumnDefinitions.Add(new ColumnDefinition());
            }

            for (int i = 0; i < dci.CountRows; i++)
            {
                ChartGrid.RowDefinitions.Add(new RowDefinition());
            }

            for (int i = 0; i < ChartGrid.ColumnDefinitions.Count; i++)
            {
                for (int j = 0; j < ChartGrid.RowDefinitions.Count; j++)
                {
                    ToggleButton newButton = new ToggleButton
                    {
                        Content             = "X",
                        VerticalAlignment   = VerticalAlignment.Stretch,
                        HorizontalAlignment = HorizontalAlignment.Stretch,
                    };
                    newButton.Click += DamageSectorButtonClick;

                    Grid.SetColumn(newButton, i);
                    Grid.SetRow(newButton, j);
                    ChartGrid.Children.Add(newButton);
                }
            }

            DamageDocument doc = DamageChartsListView.SelectedItem as DamageDocument;

            if (doc == null)
            {
                return;
            }
            if (doc.DamageChart2DImageName == dci.ChartName)
            {
                foreach (DamageSector damageSector in doc.DamageSectors)
                {
                    if (damageSector.DamageChartColumn < 0 || (damageSector.DamageChartColumn + 1) > ChartGrid.ColumnDefinitions.Count ||
                        damageSector.DamageChartRow < 0 || (damageSector.DamageChartRow + 1) > ChartGrid.RowDefinitions.Count)
                    {
                        continue;
                    }

                    UIElement uiElement = null;
                    foreach (UIElement child in ChartGrid.Children)
                    {
                        if (Grid.GetColumn(child) == damageSector.DamageChartColumn &&
                            Grid.GetRow(child) == damageSector.DamageChartRow)
                        {
                            uiElement = child;
                        }
                    }

                    if (uiElement == null)
                    {
                        continue;
                    }

                    ToggleButton button = uiElement as ToggleButton;
                    if (button == null)
                    {
                        continue;
                    }
                    button.IsChecked = true;
                    button.Tag       = damageSector;

                    System.Windows.Controls.RichTextBox rtb = new System.Windows.Controls.RichTextBox()
                    {
                        FontFamily = FontFamily, FontSize = FontSize
                    };
                    FlowDocumentScrollViewer flowDocument = new FlowDocumentScrollViewer();
                    string tooltipTex = string.IsNullOrEmpty(damageSector.Remarks) ? "No Information" : damageSector.Remarks;
                    try
                    {
                        //TextRange tr = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
                        var documentBytes = Encoding.UTF8.GetBytes(tooltipTex);
                        using (var reader = new MemoryStream(documentBytes))
                        {
                            reader.Position = 0;
                            rtb.SelectAll();
                            rtb.Selection.Load(reader, System.Windows.DataFormats.Rtf);
                        }
                        flowDocument.Document = rtb.Document;
                    }
                    catch (Exception)
                    {
                    }
                    button.ToolTip = flowDocument;
                }
            }
            else
            {
                doc.DamageChartImage       = dci.Image;
                doc.DamageChart2DImageName = dci.ChartName;
            }
        }
示例#8
0
        private void ChartComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ChartGrid.ColumnDefinitions.Clear();
            ChartGrid.RowDefinitions.Clear();
            foreach (UIElement uiElement in ChartGrid.Children)
            {
                if (uiElement is Button)
                {
                    ((Button)uiElement).Click -= MainWindowClick;
                }
            }
            ChartGrid.Children.Clear();
            //MainCanvas.Children.Clear();

            DamageChartImage dci = ChartComboBox.SelectedItem as DamageChartImage;

            if (dci == null || dci.ImagePath == null || dci.CountColumns <= 0 || dci.CountRows <= 0)
            {
                return;
            }

            try
            {
                ImageSourceConverter converter = new ImageSourceConverter();
                string path =
                    $@"{(System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location))}\{dci.ImagePath}";
                ImageSource imageSource = (ImageSource)converter.ConvertFromString(path);

                this.Width           = imageSource.Width;
                this.Height          = imageSource.Height;
                ChartGrid.Background = new ImageBrush(imageSource);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            for (int i = 0; i < dci.CountColumns; i++)
            {
                ChartGrid.ColumnDefinitions.Add(new ColumnDefinition());
            }

            for (int i = 0; i < dci.CountRows; i++)
            {
                ChartGrid.RowDefinitions.Add(new RowDefinition());
            }

            //Grid.SetRowSpan(MainCanvas, ChartGrid.RowDefinitions.Count);
            //Grid.SetColumnSpan(MainCanvas, ChartGrid.ColumnDefinitions.Count);
            for (int i = 0; i < ChartGrid.ColumnDefinitions.Count; i++)
            {
                for (int j = 0; j < ChartGrid.RowDefinitions.Count; j++)
                {
                    ToggleButton newButton = new ToggleButton
                    {
                        Content             = "X",
                        VerticalAlignment   = VerticalAlignment.Stretch,
                        HorizontalAlignment = HorizontalAlignment.Stretch,
                    };
                    //newButton.Click += MainWindow_Click;

                    Grid.SetColumn(newButton, i);
                    Grid.SetRow(newButton, j);
                    ChartGrid.Children.Add(newButton);
                }
            }
        }