- goalbook.zip
- GoalBook
- Dependencies
- CAG WPF 2
- Microsoft.Practices.Composite.dll
- Microsoft.Practices.Composite.Presentation.dll
- Microsoft.Practices.Composite.UnityExtensions.dll
- Microsoft.Practices.ObjectBuilder2.dll
- Microsoft.Practices.ServiceLocation.dll
- Microsoft.Practices.Unity.dll
- vssver2.scc
- CSLA
- Csla.dll
- Csla.XmlSerializers.dll
- vssver2.scc
- Infragistics
- Infragistics3.Wpf.DataPresenter.v9.1.Express.dll
- Infragistics3.Wpf.Editors.v9.1.Express.dll
- Infragistics3.Wpf.v9.1.Express.dll
- vssver2.scc
- WPFToolkit
- vssver2.scc
- WPFToolkit.dll
- GoalBook.Controls
- GoalBook.Goals
- GoalBook.Infrastructure
- GoalBook.Notes
- GoalBook.Public
- GoalBook.Shell
- App.ico
- App.xaml
- App.xaml.cs
- Bootstrapper.cs
- Commands
- GoalBook.Shell.csproj
- GoalBook.Shell.csproj.user
- Journal.ico
- Journal48.ico
- Misc
- Modules
- Properties
- Resources
- arrow_refresh.png
- arrow_undo.png
- checked.gif
- cross.png
- disk.png
- email.png
- erase.png
- error.png
- exclamation.png
- flag_red.png
- group.png
- help.png
- information.png
- magnifier.png
- page_red.png
- pencil.png
- printer.png
- user.png
- vssver2.scc
- Wave.jpg
- world.png
- world_link.png
- Services
- Splash.png
- Views
- vssver2.scc
- Windows
- GoalBook.sln
- GoalBook.snk
- GoalBook.Synchronisation
- GoalBook.Tasks
- License.txt
- ReadMe.txt
- SolutionInfo.cs
- vssver2.scc
|
// <copyright file="NotesActionView.xaml.cs" company="GoalBook">
// Copyright � 2009 Mark Brownsword. All rights reserved.
// This source code and supporting files are licensed under The Code Project
// Open License (CPOL) as detailed at http://www.codeproject.com/info/cpol10.aspx.
// </copyright>
namespace GoalBook.Notes.Views
{
#region Using Statements
using System;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using GoalBook.Infrastructure;
using GoalBook.Infrastructure.Interfaces;
using Microsoft.Practices.Composite;
#endregion
/// <summary>
/// Interaction logic for NotesActionView.xaml
/// </summary>
public partial class NotesActionView : UserControl, IView, IActiveAware
{
#region Constants and Enums
#endregion
#region Inner Classes and Structures
#endregion
#region Instance and Shared Fields
/// <summary>
/// Declaration for isActive.
/// </summary>
private bool isActive;
#endregion
#region Constructors
/// <summary>
/// Initializes a new instance of the NotesActionView class.
/// </summary>
public NotesActionView()
{
InitializeComponent();
this.FolderFilter = null;
}
#endregion
#region Delegates and Events
/// <summary>
/// IsActiveChanged EventHandler.
/// </summary>
public event EventHandler IsActiveChanged;
/// <summary>
/// Activated EventHandler
/// </summary>
public event EventHandler Activated;
/// <summary>
/// FilterChanged EventHandler.
/// </summary>
public event EventHandler FilterChanged;
#endregion
#region Properties
/// <summary>
/// Gets or sets FolderFilter.
/// </summary>
public string FolderFilter { get; set; }
/// <summary>
/// Gets or sets a value indicating whether to ListenForListChangedEvents.
/// </summary>
public bool ListenForListChangedEvents
{
get { return this.checkedListControl.RaiseCheckedItemsChangedEvent; }
set { this.checkedListControl.RaiseCheckedItemsChangedEvent = value; }
}
#region IActiveAware Members
/// <summary>
/// Gets or sets a value indicating whether IsActive. Note that Global Commands get
/// their IsActive property set here.
/// </summary>
public bool IsActive
{
get
{
return this.isActive;
}
set
{
if (this.isActive != value)
{
this.isActive = value;
this.OnIsActiveChanged();
}
}
}
#endregion
#endregion
#region Public and internal Methods
#region IView Members
/// <summary>
/// Activate the view.
/// </summary>
public void Activate()
{
Mouse.SetCursor(Cursors.Wait);
try
{
this.OnActivated();
}
finally
{
Mouse.UpdateCursor();
}
}
#endregion
#endregion
#region Private and Protected Methods
/// <summary>
/// Raise the IsActiveChanged event.
/// </summary>
private void OnIsActiveChanged()
{
EventHandler isActiveChangedHandler = this.IsActiveChanged;
if (isActiveChangedHandler != null)
{
isActiveChangedHandler(this, EventArgs.Empty);
}
}
/// <summary>
/// Raise the Activated event.
/// </summary>
private void OnActivated()
{
EventHandler activatedHandler = this.Activated;
if (activatedHandler != null)
{
activatedHandler(this, EventArgs.Empty);
}
}
/// <summary>
/// Raise the FilterChanged event.
/// </summary>
private void OnFilterChanged()
{
EventHandler filterChangedHandler = this.FilterChanged;
if (filterChangedHandler != null)
{
filterChangedHandler(this, EventArgs.Empty);
}
}
/// <summary>
/// Get Checked Items From Filter.
/// </summary>
/// <returns>List of checked items</returns>
private KeyValueItemList GetCheckedItemsFromFilter()
{
KeyValueItemList items = new KeyValueItemList();
foreach (KeyValueItem listItem in (this.DataContext as NotesViewPresentationModel).FolderList)
{
if (string.IsNullOrEmpty(this.FolderFilter) || this.FolderFilter.Contains(listItem.Key))
{
items.Add(new KeyValueItem(listItem.Key, listItem.Value, listItem.Order));
}
}
return items;
}
/// <summary>
/// Build Folder Filter.
/// </summary>
private void BuildFolderFilter()
{
const char Separator = ',';
StringBuilder builder = new StringBuilder();
foreach (KeyValueItem content in this.checkedListControl.CheckedItems)
{
builder.Append(content.Key);
builder.Append(Separator);
}
this.FolderFilter = builder.ToString().TrimEnd(Separator);
}
#endregion
#region Event Handlers
/// <summary>
/// Handle UserControl_Loaded event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">RoutedEventArgs parameter</param>
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
this.checkedListControl.CheckedItems = this.GetCheckedItemsFromFilter();
this.BuildFolderFilter();
}
/// <summary>
/// Handle CheckedListControl_CheckedItemsChanged event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">RoutedEventArgs parameter</param>
private void CheckedListControl_CheckedItemsChanged(object sender, RoutedEventArgs e)
{
this.BuildFolderFilter();
this.OnFilterChanged();
}
/// <summary>
/// Handle CheckedListControl_StatusChanged event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">RoutedEventArgs parameter</param>
private void CheckedListControl_StatusChanged(object sender, RoutedEventArgs e)
{
// When new items are added to the FolderList the filter is updated (in NotesViewPresenter.Folders_ListChanged)
// so this event gives us a chance to update the items we want to appear as checked.
this.checkedListControl.CheckedItems = this.GetCheckedItemsFromFilter();
}
#endregion
#region Base Class Overrides
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I've been working as a software developer since 2000 and hold a Bachelor of Business degree from The Open Polytechnic of New Zealand. Computers are for people and I aim to build applications for people that they would want to use.