diff options
| author | Ian C <ianc@noddybox.co.uk> | 2012-06-24 22:37:32 +0000 | 
|---|---|---|
| committer | Ian C <ianc@noddybox.co.uk> | 2012-06-24 22:37:32 +0000 | 
| commit | aba818f3b66751842f457169ff1cfa58fc43dd84 (patch) | |
| tree | 77d5bf95366501651c6ca088eb7e1bf08fb1f79c /Noddybox.WindowsPhone.Silverlight/ViewModels | |
| parent | 5ba217a4a60685b49346e5446f46ec2cad0499ca (diff) | |
Development check in
Diffstat (limited to 'Noddybox.WindowsPhone.Silverlight/ViewModels')
3 files changed, 222 insertions, 0 deletions
| diff --git a/Noddybox.WindowsPhone.Silverlight/ViewModels/BaseViewModel.cs b/Noddybox.WindowsPhone.Silverlight/ViewModels/BaseViewModel.cs new file mode 100644 index 0000000..c20e122 --- /dev/null +++ b/Noddybox.WindowsPhone.Silverlight/ViewModels/BaseViewModel.cs @@ -0,0 +1,83 @@ +// 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.Net;
 +using System.Windows;
 +using System.Windows.Controls;
 +using System.Windows.Documents;
 +using System.Windows.Ink;
 +using System.Windows.Input;
 +using System.Windows.Media;
 +using System.Windows.Media.Animation;
 +using System.Windows.Shapes;
 +using System.ComponentModel;
 +
 +namespace Noddybox.WindowsPhone.Silverlight.ViewModels
 +{
 +    /// <summary>
 +    /// Provides a base for view models.
 +    /// </summary>
 +    public class BaseViewModel : INotifyPropertyChanged
 +    {
 +        #region SetValue
 +
 +        /// <summary>
 +        /// Sets a value in the model.
 +        /// </summary>
 +        /// <typeparam name="T">The type of the value.</typeparam>
 +        /// <param name="member">A reference to the member variable.</param>
 +        /// <param name="value">The new value.</param>
 +        /// <param name="names">The propertys to change if the value has changed.</param>
 +        protected void SetValue<T>(ref T member, T value, params string[] names)
 +        {
 +            if (!value.Equals(member))
 +            {
 +                member = value;
 +
 +                foreach (string name in names)
 +                {
 +                    NotifyPropertyChanged(name);
 +                }
 +            }
 +        }
 +
 +        #endregion
 +
 +        #region Notify
 +
 +        /// <summary>
 +        /// Notifies handlers of a property change.
 +        /// </summary>
 +        /// <param name="propertyName">The property's name.</param>
 +        protected void NotifyPropertyChanged(string propertyName)
 +        {
 +            if (PropertyChanged != null)
 +            {
 +                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
 +            }
 +        }  
 +        
 +        #endregion
 +
 +        #region INotifyPropertyChanged Members
 +
 +        public event PropertyChangedEventHandler PropertyChanged;
 +
 +        #endregion
 +    }
 +}
 diff --git a/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs b/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs new file mode 100644 index 0000000..3c680c7 --- /dev/null +++ b/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs @@ -0,0 +1,100 @@ +// 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.Net;
 +using System.Windows;
 +using System.Windows.Controls;
 +using System.Windows.Documents;
 +using System.Windows.Ink;
 +using System.Windows.Input;
 +using System.Windows.Media;
 +using System.Windows.Media.Animation;
 +using System.Windows.Shapes;
 +using System.IO.IsolatedStorage;
 +using System.Collections.Generic;
 +
 +namespace Noddybox.WindowsPhone.Silverlight.ViewModels
 +{
 +    /// <summary>
 +    /// Provides information on a file in Isolated Storage
 +    /// </summary>
 +    public class FileInfo
 +    {
 +        /// <summary>
 +        /// True if the file is a folder.
 +        /// </summary>
 +        public bool IsFolder {get; private set;}
 +
 +        /// <summary>
 +        /// The name of the file.
 +        /// </summary>
 +        public string Name {get; private set;}
 +
 +        /// <summary>
 +        /// Constructor.
 +        /// </summary>
 +        /// <param name="isFolder">Whether the file is a folder.</param>
 +        /// <param name="name">The file name.</param>
 +        public FileInfo (bool isFolder, string name)
 +        {
 +            IsFolder = isFolder;
 +            Name = name;
 +        }
 +
 +        /// <summary>
 +        /// Gets the file list for a specified folder.
 +        /// </summary>
 +        /// <param name="folder">The folder to search, which must end with a "/".  Uses root folder is empty or null.</param>
 +        /// <returns>A list of the files and directories.  A ".." directory is added if not the root folder.</returns>
 +        public static List<FileInfo> GetFiles(string folder)
 +        {
 +            bool root = false;
 +            List<FileInfo> flist = new List<FileInfo>();
 +
 +            if (String.IsNullOrEmpty(folder) || folder == "/")
 +            {
 +                root = true;
 +                folder = "/";
 +            }
 +
 +            if (!folder.EndsWith("/"))
 +            {
 +                throw new ArgumentException("Folder must end with a slash");
 +            }
 +
 +            if (!root)
 +            {
 +                flist.Add(new FileInfo(true, ".."));
 +            }
 +
 +            IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();
 +
 +            foreach (string s in iso.GetDirectoryNames(folder + "*"))
 +            {
 +                flist.Add(new FileInfo(true, s));
 +            }
 +
 +            foreach (string s in iso.GetFileNames(folder + "*"))
 +            {
 +                flist.Add(new FileInfo(false, s));
 +            }
 +
 +            return flist;
 +        }
 +    }
 +}
 diff --git a/Noddybox.WindowsPhone.Silverlight/ViewModels/SaveViewModel.cs b/Noddybox.WindowsPhone.Silverlight/ViewModels/SaveViewModel.cs new file mode 100644 index 0000000..39be33e --- /dev/null +++ b/Noddybox.WindowsPhone.Silverlight/ViewModels/SaveViewModel.cs @@ -0,0 +1,39 @@ +// 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.Net;
 +using System.Windows;
 +using System.Windows.Controls;
 +using System.Windows.Documents;
 +using System.Windows.Ink;
 +using System.Windows.Input;
 +using System.Windows.Media;
 +using System.Windows.Media.Animation;
 +using System.Windows.Shapes;
 +
 +namespace Noddybox.WindowsPhone.Silverlight.ViewModels
 +{
 +    public class SaveViewModel : BaseViewModel
 +    {
 +        #region Bindable properties
 +
 +        public 
 +
 +        #endregion
 +    }
 +}
 | 
