From 2c39a1ef8c13bd8d0321f79b0ce2850d0a590b45 Mon Sep 17 00:00:00 2001 From: Ian C Date: Wed, 27 Jun 2012 22:49:23 +0000 Subject: Done Save, Load and Delete dialogs. --- .../DeleteDialog.xaml.cs | 182 +++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs (limited to 'Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs') diff --git a/Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs b/Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs new file mode 100644 index 0000000..77fe1b4 --- /dev/null +++ b/Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs @@ -0,0 +1,182 @@ +// This file is part of the Noddybox.WindowsPhone C# suite. +// +// Noddybox.Emulation is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Noddybox.Emulation is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Noddybox.Emulation. If not, see . +// +// Copyright (c) 2012 Ian Cowburn +// +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using Noddybox.WindowsPhone.Silverlight.ViewModels; +using System.ComponentModel; +using System.IO.IsolatedStorage; + +namespace Noddybox.WindowsPhone.Silverlight +{ + public partial class DeleteDialog : UserControl + { + #region Private data + + private FileDialogViewModel model; + + #endregion + + #region Constructors + + /// + /// Construct a save dialog. + /// + public DeleteDialog() + { + InitializeComponent(); + + if (!DesignerProperties.IsInDesignTool) + { + model = new FileDialogViewModel("/"); + DataContext = model; + } + } + + #endregion + + #region Properties + + private static void OnDummyDependency(DependencyObject d, DependencyPropertyChangedEventArgs e) {} + + public static readonly DependencyProperty StartPathProperty = + DependencyProperty.Register("StartPath", typeof(string), typeof(DeleteDialog), + new PropertyMetadata("StartPath", new PropertyChangedCallback(DeleteDialog.OnDummyDependency))); + + public static readonly DependencyProperty DeleteButtonTextProperty = + DependencyProperty.Register("OkButtonText", typeof(string), typeof(DeleteDialog), + new PropertyMetadata("DeleteButtonText", new PropertyChangedCallback(DeleteDialog.OnDummyDependency))); + + public static readonly DependencyProperty TitleTextProperty = + DependencyProperty.Register("TitleText", typeof(string), typeof(DeleteDialog), + new PropertyMetadata("TitleText", new PropertyChangedCallback(DeleteDialog.OnDummyDependency))); + + public static readonly DependencyProperty FileMaskProperty = + DependencyProperty.Register("FileMask", typeof(string), typeof(DeleteDialog), + new PropertyMetadata("FileMask", new PropertyChangedCallback(DeleteDialog.OnDummyDependency))); + + /// + /// Set the file mask. + /// + public string FileMask + { + get {return (string)GetValue(FileMaskProperty);} + set + { + SetValue(FileMaskProperty, value); + + if (!DesignerProperties.IsInDesignTool) + { + model.Mask = value; + } + } + } + + /// + /// Set the start path + /// + public string StartPath + { + get {return (string)GetValue(StartPathProperty);} + set + { + SetValue(StartPathProperty, value); + + if (!DesignerProperties.IsInDesignTool) + { + model.Path = value; + } + } + } + + /// + /// Set the contents of the Delete button. + /// + public string DeleteButtonText + { + get {return (string)GetValue(DeleteButtonTextProperty);} + set + { + SetValue(DeleteButtonTextProperty, value); + deleteButton.Content = value; + } + } + + /// + /// Set the contents of the Title bar. + /// + public string TitleText + { + get {return (string)GetValue(TitleTextProperty);} + set + { + SetValue(TitleTextProperty, value); + titleText.Text = value; + } + } + + #endregion + + #region Event handlers + + private void OnDeleteButton(object sender, RoutedEventArgs e) + { + IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication(); + + foreach (FileInfo info in fileList.SelectedItems) + { + iso.DeleteFile(info.Path); + } + + model.RefreshFileList(); + deleteButton.IsEnabled = false; + } + + private void OnFileListSelection(object sender, SelectionChangedEventArgs e) + { + if (e.AddedItems.Count > 0) + { + foreach (FileInfo info in e.AddedItems) + { + if (info.IsFolder) + { + model.FileSelected(info); + deleteButton.IsEnabled = false; + return; + } + } + + deleteButton.IsEnabled = true; + } + else + { + deleteButton.IsEnabled = false; + } + } + + #endregion + } +} -- cgit v1.2.3