diff --git a/DICUI/Windows/DiscInformationWindow.xaml b/DICUI/Windows/DiscInformationWindow.xaml
index 7049e63a..223299ee 100644
--- a/DICUI/Windows/DiscInformationWindow.xaml
+++ b/DICUI/Windows/DiscInformationWindow.xaml
@@ -5,13 +5,14 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DICUI"
mc:Ignorable="d"
- Title="Disc Information" Height="705" Width="515.132" ResizeMode="NoResize"
+ Title="Disc Information" Height="733" Width="515.132" ResizeMode="NoResize"
Closed="OnClosed">
+
@@ -152,5 +153,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DICUI/Windows/DiscInformationWindow.xaml.cs b/DICUI/Windows/DiscInformationWindow.xaml.cs
index 0f8481cb..45f06b0a 100644
--- a/DICUI/Windows/DiscInformationWindow.xaml.cs
+++ b/DICUI/Windows/DiscInformationWindow.xaml.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Media;
-using DICUI.Data;
using DICUI.Web;
namespace DICUI.Windows
@@ -13,18 +12,30 @@ namespace DICUI.Windows
///
public partial class DiscInformationWindow : Window
{
- private readonly MainWindow _mainWindow;
- private readonly SubmissionInfo _submissionInfo;
+ ///
+ /// List of available disc categories
+ ///
+ public List Categories { get; private set; }
- private List _categories;
- private List _regions;
- private List _languages;
+ ///
+ /// SubmissionInfo object to fill and save
+ ///
+ public SubmissionInfo SubmissionInfo { get; set; }
- public DiscInformationWindow(MainWindow mainWindow, SubmissionInfo submissionInfo)
+ ///
+ /// List of available regions
+ ///
+ public List Regions { get; private set; }
+
+ ///
+ /// List of available languages
+ ///
+ public List Languages { get; private set; }
+
+ public DiscInformationWindow(SubmissionInfo submissionInfo)
{
InitializeComponent();
- _mainWindow = mainWindow;
- _submissionInfo = submissionInfo;
+ SubmissionInfo = submissionInfo;
PopulateCategories();
PopulateRegions();
@@ -32,102 +43,13 @@ namespace DICUI.Windows
DisableFieldsIfNeeded();
}
- public void Refresh()
- {
- TitleTextBox.Text = _submissionInfo.CommonDiscInfo.Title ?? "";
- ForeignTitleTextBox.Text = _submissionInfo.CommonDiscInfo.ForeignTitleNonLatin ?? "";
- DiscNumberLetterTextBox.Text = _submissionInfo.CommonDiscInfo.DiscNumberLetter ?? "";
- DiscTitleTextBox.Text = _submissionInfo.CommonDiscInfo.DiscTitle ?? "";
- CategoryComboBox.SelectedIndex = _categories.FindIndex(r => r == _submissionInfo.CommonDiscInfo.Category);
- RegionComboBox.SelectedIndex = _regions.FindIndex(r => r == _submissionInfo.CommonDiscInfo.Region);
- if (_submissionInfo.CommonDiscInfo.Languages != null)
- {
- foreach (var language in _submissionInfo.CommonDiscInfo.Languages)
- _languages.Find(l => l == language).IsChecked = true;
- }
- SerialTextBox.Text = _submissionInfo.CommonDiscInfo.Serial ?? "";
- L0MasteringRingTextBox.Text = _submissionInfo.CommonDiscInfo.MasteringRingFirstLayerDataSide ?? "";
- L0MasteringSIDTextBox.Text = _submissionInfo.CommonDiscInfo.MasteringSIDCodeFirstLayerDataSide ?? "";
- L0ToolstampTextBox.Text = _submissionInfo.CommonDiscInfo.ToolstampMasteringCodeFirstLayerDataSide ?? "";
- L0MouldSIDTextBox.Text = _submissionInfo.CommonDiscInfo.MouldSIDCodeFirstLayerDataSide ?? "";
- L0AdditionalMouldTextBox.Text = _submissionInfo.CommonDiscInfo.AdditionalMouldFirstLayerDataSide ?? "";
- L1MasteringRingTextBox.Text = _submissionInfo.CommonDiscInfo.MasteringRingSecondLayerLabelSide ?? "";
- L1MasteringSIDTextBox.Text = _submissionInfo.CommonDiscInfo.MasteringSIDCodeSecondLayerLabelSide ?? "";
- L1ToolstampTextBox.Text = _submissionInfo.CommonDiscInfo.ToolstampMasteringCodeSecondLayerLabelSide ?? "";
- L1MouldSIDTextBox.Text = _submissionInfo.CommonDiscInfo.MouldSIDCodeSecondLayerLabelSide ?? "";
- L1AdditionalMouldTextBox.Text = _submissionInfo.CommonDiscInfo.AdditionalMouldSecondLayerLabelSide ?? "";
- BarcodeTextBox.Text = _submissionInfo.CommonDiscInfo.Barcode ?? "";
- CommentsTextBox.Text = _submissionInfo.CommonDiscInfo.Comments ?? "";
- ContentsTextBox.Text = _submissionInfo.CommonDiscInfo.Contents ?? "";
-
- VersionTextBox.Text = _submissionInfo.VersionAndEditions.Version ?? "";
- EditionTextBox.Text = _submissionInfo.VersionAndEditions.OtherEditions ?? "";
- }
-
- ///
- /// Get a complete list of categories and fill the combo box
- ///
- private void PopulateCategories()
- {
- var categories = Enum.GetValues(typeof(DiscCategory)).OfType().ToList();
-
- ViewModels.LoggerViewModel.VerboseLogLn("Populating categories, {0} categories found.", categories.Count);
-
- _categories = new List();
- foreach (var category in categories)
- {
- _categories.Add(new CategoryComboBoxItem(category));
- }
-
- CategoryComboBox.ItemsSource = _categories;
- CategoryComboBox.SelectedIndex = 0;
- }
-
- ///
- /// Get a complete list of regions and fill the combo box
- ///
- private void PopulateRegions()
- {
- var regions = Enum.GetValues(typeof(Region)).OfType().ToList();
-
- ViewModels.LoggerViewModel.VerboseLogLn("Populating regions, {0} regions found.", regions.Count);
-
- _regions = new List();
- foreach (var region in regions)
- {
- _regions.Add(new RegionComboBoxItem(region));
- }
-
- RegionComboBox.ItemsSource = _regions;
- RegionComboBox.SelectedIndex = 0;
- }
-
- ///
- /// Get a complete list of languages and fill the combo box
- ///
- private void PopulateLanguages()
- {
- var languages = Enum.GetValues(typeof(Language)).OfType().ToList();
-
- ViewModels.LoggerViewModel.VerboseLogLn("Populating languages, {0} languages found.", languages.Count);
-
- _languages = new List();
- foreach (var language in languages)
- {
- _languages.Add(new LanguageComboBoxItem(language));
- }
-
- LanguagesComboBox.ItemsSource = _languages;
- LanguagesComboBox.SelectedIndex = 0;
- }
-
///
/// Disable fields that aren't applicable to the current disc
///
private void DisableFieldsIfNeeded()
{
// Only disable for single-layer discs
- if (_submissionInfo.SizeAndChecksums.Layerbreak == default(long))
+ if (SubmissionInfo.SizeAndChecksums.Layerbreak == default(long))
{
L1MasteringRingTextBox.IsEnabled = false;
L1MasteringRingTextBox.Background = Brushes.Gray;
@@ -146,43 +68,161 @@ namespace DICUI.Windows
}
}
- #region Event Handlers
-
- private void OnClosed(object sender, EventArgs e)
+ ///
+ /// Load the current contents of the base SubmissionInfo to the UI
+ ///
+ public void Load()
{
- _submissionInfo.CommonDiscInfo.Title = TitleTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.ForeignTitleNonLatin = ForeignTitleTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.DiscNumberLetter = DiscNumberLetterTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.DiscTitle = DiscTitleTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.Category = (CategoryComboBox.SelectedItem as CategoryComboBoxItem)?.Value ?? DiscCategory.Games;
- _submissionInfo.CommonDiscInfo.Region = (RegionComboBox.SelectedItem as RegionComboBoxItem)?.Value ?? Region.World;
+ TitleTextBox.Text = SubmissionInfo.CommonDiscInfo.Title ?? "";
+ ForeignTitleTextBox.Text = SubmissionInfo.CommonDiscInfo.ForeignTitleNonLatin ?? "";
+ DiscNumberLetterTextBox.Text = SubmissionInfo.CommonDiscInfo.DiscNumberLetter ?? "";
+ DiscTitleTextBox.Text = SubmissionInfo.CommonDiscInfo.DiscTitle ?? "";
+ CategoryComboBox.SelectedIndex = Categories.FindIndex(r => r == SubmissionInfo.CommonDiscInfo.Category);
+ RegionComboBox.SelectedIndex = Regions.FindIndex(r => r == SubmissionInfo.CommonDiscInfo.Region);
+ if (SubmissionInfo.CommonDiscInfo.Languages != null)
+ {
+ foreach (var language in SubmissionInfo.CommonDiscInfo.Languages)
+ Languages.Find(l => l == language).IsChecked = true;
+ }
+ SerialTextBox.Text = SubmissionInfo.CommonDiscInfo.Serial ?? "";
+ L0MasteringRingTextBox.Text = SubmissionInfo.CommonDiscInfo.MasteringRingFirstLayerDataSide ?? "";
+ L0MasteringSIDTextBox.Text = SubmissionInfo.CommonDiscInfo.MasteringSIDCodeFirstLayerDataSide ?? "";
+ L0ToolstampTextBox.Text = SubmissionInfo.CommonDiscInfo.ToolstampMasteringCodeFirstLayerDataSide ?? "";
+ L0MouldSIDTextBox.Text = SubmissionInfo.CommonDiscInfo.MouldSIDCodeFirstLayerDataSide ?? "";
+ L0AdditionalMouldTextBox.Text = SubmissionInfo.CommonDiscInfo.AdditionalMouldFirstLayerDataSide ?? "";
+ L1MasteringRingTextBox.Text = SubmissionInfo.CommonDiscInfo.MasteringRingSecondLayerLabelSide ?? "";
+ L1MasteringSIDTextBox.Text = SubmissionInfo.CommonDiscInfo.MasteringSIDCodeSecondLayerLabelSide ?? "";
+ L1ToolstampTextBox.Text = SubmissionInfo.CommonDiscInfo.ToolstampMasteringCodeSecondLayerLabelSide ?? "";
+ L1MouldSIDTextBox.Text = SubmissionInfo.CommonDiscInfo.MouldSIDCodeSecondLayerLabelSide ?? "";
+ L1AdditionalMouldTextBox.Text = SubmissionInfo.CommonDiscInfo.AdditionalMouldSecondLayerLabelSide ?? "";
+ BarcodeTextBox.Text = SubmissionInfo.CommonDiscInfo.Barcode ?? "";
+ CommentsTextBox.Text = SubmissionInfo.CommonDiscInfo.Comments ?? "";
+ ContentsTextBox.Text = SubmissionInfo.CommonDiscInfo.Contents ?? "";
+
+ VersionTextBox.Text = SubmissionInfo.VersionAndEditions.Version ?? "";
+ EditionTextBox.Text = SubmissionInfo.VersionAndEditions.OtherEditions ?? "";
+ }
+
+ ///
+ /// Get a complete list of categories and fill the combo box
+ ///
+ private void PopulateCategories()
+ {
+ var categories = Enum.GetValues(typeof(DiscCategory)).OfType().ToList();
+
+ ViewModels.LoggerViewModel.VerboseLogLn("Populating categories, {0} categories found.", categories.Count);
+
+ Categories = new List();
+ foreach (var category in categories)
+ {
+ Categories.Add(new CategoryComboBoxItem(category));
+ }
+
+ CategoryComboBox.ItemsSource = Categories;
+ CategoryComboBox.SelectedIndex = 0;
+ }
+
+ ///
+ /// Get a complete list of languages and fill the combo box
+ ///
+ private void PopulateLanguages()
+ {
+ var languages = Enum.GetValues(typeof(Language)).OfType().ToList();
+
+ ViewModels.LoggerViewModel.VerboseLogLn("Populating languages, {0} languages found.", languages.Count);
+
+ Languages = new List();
+ foreach (var language in languages)
+ {
+ Languages.Add(new LanguageComboBoxItem(language));
+ }
+
+ LanguagesComboBox.ItemsSource = Languages;
+ LanguagesComboBox.SelectedIndex = 0;
+ }
+
+ ///
+ /// Get a complete list of regions and fill the combo box
+ ///
+ private void PopulateRegions()
+ {
+ var regions = Enum.GetValues(typeof(Region)).OfType().ToList();
+
+ ViewModels.LoggerViewModel.VerboseLogLn("Populating regions, {0} regions found.", regions.Count);
+
+ Regions = new List();
+ foreach (var region in regions)
+ {
+ Regions.Add(new RegionComboBoxItem(region));
+ }
+
+ RegionComboBox.ItemsSource = Regions;
+ RegionComboBox.SelectedIndex = 0;
+ }
+
+ ///
+ /// Save the current contents of the UI to the base SubmissionInfo
+ ///
+ private void Save()
+ {
+ SubmissionInfo.CommonDiscInfo.Title = TitleTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.ForeignTitleNonLatin = ForeignTitleTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.DiscNumberLetter = DiscNumberLetterTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.DiscTitle = DiscTitleTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.Category = (CategoryComboBox.SelectedItem as CategoryComboBoxItem)?.Value ?? DiscCategory.Games;
+ SubmissionInfo.CommonDiscInfo.Region = (RegionComboBox.SelectedItem as RegionComboBoxItem)?.Value ?? Region.World;
var languages = new List();
- foreach (var language in _languages)
+ foreach (var language in Languages)
{
if (language.IsChecked)
languages.Add(language.Value);
}
if (languages.Count == 0)
languages.Add(null);
- _submissionInfo.CommonDiscInfo.Languages = languages.ToArray();
- _submissionInfo.CommonDiscInfo.Serial = SerialTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.MasteringRingFirstLayerDataSide = L0MasteringRingTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.MasteringSIDCodeFirstLayerDataSide = L0MasteringSIDTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.ToolstampMasteringCodeFirstLayerDataSide = L0ToolstampTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.MouldSIDCodeFirstLayerDataSide = L0MouldSIDTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.AdditionalMouldFirstLayerDataSide = L0AdditionalMouldTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.MasteringRingSecondLayerLabelSide = L1MasteringRingTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.MasteringSIDCodeSecondLayerLabelSide = L1MasteringSIDTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.ToolstampMasteringCodeSecondLayerLabelSide = L1ToolstampTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.MouldSIDCodeSecondLayerLabelSide = L1MouldSIDTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.AdditionalMouldSecondLayerLabelSide = L1AdditionalMouldTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.Barcode = BarcodeTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.Comments = CommentsTextBox.Text ?? "";
- _submissionInfo.CommonDiscInfo.Contents = ContentsTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.Languages = languages.ToArray();
+ SubmissionInfo.CommonDiscInfo.Serial = SerialTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.MasteringRingFirstLayerDataSide = L0MasteringRingTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.MasteringSIDCodeFirstLayerDataSide = L0MasteringSIDTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.ToolstampMasteringCodeFirstLayerDataSide = L0ToolstampTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.MouldSIDCodeFirstLayerDataSide = L0MouldSIDTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.AdditionalMouldFirstLayerDataSide = L0AdditionalMouldTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.MasteringRingSecondLayerLabelSide = L1MasteringRingTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.MasteringSIDCodeSecondLayerLabelSide = L1MasteringSIDTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.ToolstampMasteringCodeSecondLayerLabelSide = L1ToolstampTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.MouldSIDCodeSecondLayerLabelSide = L1MouldSIDTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.AdditionalMouldSecondLayerLabelSide = L1AdditionalMouldTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.Barcode = BarcodeTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.Comments = CommentsTextBox.Text ?? "";
+ SubmissionInfo.CommonDiscInfo.Contents = ContentsTextBox.Text ?? "";
- _submissionInfo.VersionAndEditions.Version = VersionTextBox.Text ?? "";
- _submissionInfo.VersionAndEditions.OtherEditions = EditionTextBox.Text ?? "";
+ SubmissionInfo.VersionAndEditions.Version = VersionTextBox.Text ?? "";
+ SubmissionInfo.VersionAndEditions.OtherEditions = EditionTextBox.Text ?? "";
+ }
+ #region Event Handlers
+
+ ///
+ /// Handler for AcceptButton Click event
+ ///
+ private void OnAcceptClick(object sender, RoutedEventArgs e)
+ {
+ Save();
+ Hide();
+ }
+
+ ///
+ /// Handler for CancelButton Click event
+ ///
+ private void OnCancelClick(object sender, RoutedEventArgs e)
+ {
+ Hide();
+ }
+
+ ///
+ /// Handler for DiscInformationWindow Closed event
+ ///
+ private void OnClosed(object sender, EventArgs e)
+ {
Hide();
}
diff --git a/DICUI/Windows/MainWindow.xaml.cs b/DICUI/Windows/MainWindow.xaml.cs
index d397ffe1..4c4516b6 100644
--- a/DICUI/Windows/MainWindow.xaml.cs
+++ b/DICUI/Windows/MainWindow.xaml.cs
@@ -530,7 +530,7 @@ namespace DICUI.Windows
// lazy initialization
if (_discInformationWindow == null)
{
- _discInformationWindow = new DiscInformationWindow(this, si);
+ _discInformationWindow = new DiscInformationWindow(si);
_discInformationWindow.Closed += delegate
{
_discInformationWindow = null;
@@ -539,7 +539,7 @@ namespace DICUI.Windows
_discInformationWindow.Owner = this;
_discInformationWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
- _discInformationWindow.Refresh();
+ _discInformationWindow.Load();
return _discInformationWindow.ShowDialog();
}
);