- 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="SearchView.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.Shell.Views
{
#region Using Statements
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using GoalBook.Infrastructure.Interfaces;
using Microsoft.Practices.Composite;
#endregion
/// <summary>
/// Interaction logic for SearchView.xaml
/// </summary>
public partial class SearchView : UserControl, IView, IActiveAware
{
#region Constants and Enums
/// <summary>
/// Declaration for IPersistenceService.
/// </summary>
private readonly IPersistenceService persistenceService;
#endregion
#region Instance and Shared Fields
/// <summary>
/// Declaration for isActive.
/// </summary>
private bool isActive;
/// <summary>
/// Declaration for isFirstload.
/// </summary>
private bool isFirstload;
#endregion
#region Constructors
/// <summary>
/// Initializes a new instance of the SearchView class.
/// </summary>
/// <param name="persistenceService">persistenceService parameter</param>
public SearchView(IPersistenceService persistenceService)
{
InitializeComponent();
// Initialise service references.
this.persistenceService = persistenceService;
// Set FirstLoad.
this.isFirstload = true;
}
#endregion
#region Delegates and Events
/// <summary>
/// Declaration for IsActiveChanged.
/// </summary>
public event EventHandler IsActiveChanged;
/// <summary>
/// Declaration for Activated.
/// </summary>
public event EventHandler Activated;
#endregion
#region Properties
/// <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
#region Public and internal Methods
/// <summary>
/// Activate the module.
/// </summary>
public void Activate()
{
Mouse.SetCursor(Cursors.Wait);
try
{
this.OnActivated();
}
finally
{
Mouse.UpdateCursor();
}
}
/// <summary>
/// Determine if module CanClose.
/// </summary>
/// <returns>True if CanClose</returns>
public bool CanClose()
{
return true;
}
#endregion
#region Base Class Overrides
#endregion
#region Private and Protected Methods
/// <summary>
/// Raise the IsActiveChanged event.
/// </summary>
protected virtual 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);
}
}
#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)
{
if (this.isFirstload)
{
this.isFirstload = false;
}
}
/// <summary>
/// Handle SearchTextBox_KeyDown event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">KeyEventArgs parameter</param>
private void SearchTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter && this.searchTextBox.Text.Length > 0)
{
e.Handled = true;
this.searchButton.Command.Execute(this.searchTextBox.Text);
}
}
/// <summary>
/// Handle SearchTextBox_LostKeyboardFocus event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">KeyboardFocusChangedEventArgs parameter</param>
private void SearchTextBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (string.IsNullOrEmpty(this.searchTextBox.Text))
{
this.searchTextBox.Text = Properties.Resources.SearchWatermark;
}
}
/// <summary>
/// Handle SearchTextBox_GotKeyboardFocus event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">KeyboardFocusChangedEventArgs parameter</param>
private void SearchTextBox_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (this.searchTextBox.Text == Properties.Resources.SearchWatermark)
{
this.searchTextBox.Text = string.Empty;
}
}
/// <summary>
/// Handle SearchButton_PreviewMouseDown event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">MouseButtonEventArgs parameter</param>
private void SearchButton_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if (this.searchTextBox.Text == Properties.Resources.SearchWatermark
|| string.IsNullOrEmpty(this.searchTextBox.Text))
{
e.Handled = true;
}
}
/// <summary>
/// Handle SearchButton_PreviewKeyDown event.
/// </summary>
/// <param name="sender">sender parameter</param>
/// <param name="e">KeyEventArgs parameter</param>
private void SearchButton_PreviewKeyDown(object sender, KeyEventArgs e)
{
if ((this.searchTextBox.Text == Properties.Resources.SearchWatermark
|| string.IsNullOrEmpty(this.searchTextBox.Text))
&& e.Key == Key.Enter)
{
e.Handled = true;
}
}
/// <summary>
/// Handle ClearButton_PreviewKeyDown event.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClearButton_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
this.searchTextBox.Text = Properties.Resources.SearchWatermark;
}
}
/// <summary>
/// Handle ClearButton_PreviewMouseDown event.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClearButton_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
this.searchTextBox.Text = Properties.Resources.SearchWatermark;
}
#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.