Exemplo n.º 1
0
        /// <summary>
        /// Close menu item on click event
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="e">event args</param>
        private void CloseItem_Click(object sender, ExecutedRoutedEventArgs e)
        {
            if (UnsavedChanges)
            {
                if (MessageBox.Show("There are unsaved changes, are you sure you want to close the current file?",
                                    "Unsaved Changes",
                                    MessageBoxButton.YesNo,
                                    MessageBoxImage.Question) == MessageBoxResult.No)
                {
                    return;
                }
            }

            BlangStringsDataGrid.ItemsSource = null;
            BlangStringsView         = null;
            CurrentBlangFile         = null;
            CurrentFilePath          = string.Empty;
            SaveMenuItem.IsEnabled   = false;
            SaveToMenuItem.IsEnabled = false;
            CloseMenuItem.IsEnabled  = false;
            Title = WindowTitle;
        }
Exemplo n.º 2
0
 /// <summary>
 /// Blang file entry constructor
 /// </summary>
 /// <param name="blangFile">deserialized .blang file</param>
 /// <param name="chunk">resource chunk</param>
 public BlangFileEntry(BlangFile blangFile, ResourceChunk chunk)
 {
     BlangFile = blangFile;
     Chunk     = chunk;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Open menu item on click event
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="e">event args</param>
        private void OpenItem_Click(object sender, ExecutedRoutedEventArgs e)
        {
            var openFileDialog = new OpenFileDialog()
            {
                Filter      = "All Files (.*)|*.*",
                FilterIndex = 1,
                Multiselect = false,
                Title       = "Open a Blang file for viewing or editing"
            };

            if (openFileDialog.ShowDialog() == true)
            {
                if (CurrentBlangFile != null)
                {
                    if (MessageBox.Show("Are you sure you want to close the current file to open a new one?",
                                        "Make sure you save your changes",
                                        MessageBoxButton.YesNo,
                                        MessageBoxImage.Question) == MessageBoxResult.No)
                    {
                        return;
                    }
                }

                try
                {
                    CurrentBlangFile = BlangFile.Parse(openFileDialog.FileName);
                }
                catch (Exception)
                {
                    MessageBox.Show("Unsupported file format.",
                                    "Error while opening file",
                                    MessageBoxButton.OK,
                                    MessageBoxImage.Error);

                    return;
                }

                // Create a backup of this file first
                try
                {
                    File.Copy(openFileDialog.FileName, openFileDialog.FileName + ".bak", true);
                }
                catch (Exception)
                {
                    MessageBox.Show("IO Error.",
                                    "An error occured while creating the backup file.",
                                    MessageBoxButton.OK,
                                    MessageBoxImage.Error);
                }

                var blangStringsViewSource = new CollectionViewSource()
                {
                    Source = CurrentBlangFile.Strings
                };

                BlangStringsView = blangStringsViewSource.View;

                BlangStringsView.Filter += (obj) =>
                {
                    if (obj == null)
                    {
                        return(false);
                    }

                    if (string.IsNullOrEmpty(FilterText.Text) || string.IsNullOrWhiteSpace(FilterText.Text))
                    {
                        return(true);
                    }

                    if (((BlangString)obj).Identifier.ToLowerInvariant().Contains(FilterText.Text.ToLowerInvariant()) ||
                        ((BlangString)obj).Text.ToLowerInvariant().Contains(FilterText.Text.ToLowerInvariant()))
                    {
                        return(true);
                    }

                    return(false);
                };

                BlangStringsDataGrid.ItemsSource     = BlangStringsView;
                BlangStringsDataGrid.CellEditEnding += CellEditEnding;
                Title                    = $"{WindowTitle} - {openFileDialog.FileName}";
                CurrentFilePath          = openFileDialog.FileName;
                SaveMenuItem.IsEnabled   = true;
                SaveToMenuItem.IsEnabled = true;
                CloseMenuItem.IsEnabled  = true;
            }
        }