summaryrefslogtreecommitdiff
path: root/Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs')
-rw-r--r--Noddybox.WindowsPhone.Silverlight/DeleteDialog.xaml.cs182
1 files changed, 182 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+//
+// 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
+
+ /// <summary>
+ /// Construct a save dialog.
+ /// </summary>
+ 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)));
+
+ /// <summary>
+ /// Set the file mask.
+ /// </summary>
+ public string FileMask
+ {
+ get {return (string)GetValue(FileMaskProperty);}
+ set
+ {
+ SetValue(FileMaskProperty, value);
+
+ if (!DesignerProperties.IsInDesignTool)
+ {
+ model.Mask = value;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Set the start path
+ /// </summary>
+ public string StartPath
+ {
+ get {return (string)GetValue(StartPathProperty);}
+ set
+ {
+ SetValue(StartPathProperty, value);
+
+ if (!DesignerProperties.IsInDesignTool)
+ {
+ model.Path = value;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Set the contents of the Delete button.
+ /// </summary>
+ public string DeleteButtonText
+ {
+ get {return (string)GetValue(DeleteButtonTextProperty);}
+ set
+ {
+ SetValue(DeleteButtonTextProperty, value);
+ deleteButton.Content = value;
+ }
+ }
+
+ /// <summary>
+ /// Set the contents of the Title bar.
+ /// </summary>
+ 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
+ }
+}