/********************************************************************
* FulcrumWeb RAD Framework - Fulcrum of your business *
* Copyright (c) 2002-2009 FulcrumWeb, ALL RIGHTS RESERVED *
* *
* THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED *
* FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE *
* COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE *
* AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT *
* AND PERMISSION FROM FULCRUMWEB. CONSULT THE END USER LICENSE *
* AGREEMENT FOR INFORMATION ON ADDITIONAL RESTRICTIONS. *
********************************************************************/
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
namespace Framework.Silverlight.Client
{
/// <summary>
/// Provides features for creating and initializing the Integer Edit Controls.
/// </summary>
public class CxSpinEdit : CxEditCreator
{
/// <summary>
/// Do something, if needed with edit control befor start editing.
/// </summary>
/// <param name="attribute">CxAttribute to Control initialization.</param>
/// <param name="editingElement">Control that has editing.</param>
/// <param name="editingEventArgs">RoutedEventArgs that occurs when editing has started.</param>
/// <returns>Editing value.</returns>
public override object PrepareControlForEdit(CxAttribute attribute, FrameworkElement editingElement, RoutedEventArgs editingEventArgs)
{
NumericUpDown num = editingElement as NumericUpDown;
if (num == null)
{
return 0;
}
KeyEventArgs args = editingEventArgs as KeyEventArgs;
if ((args != null) && (args.Key == Key.F2))
{
num.Focus();
}
return num.Value;
}
//----------------------------------------------------------------------------
/// <summary>
/// Should be overriden to create initialized by CxAttributeValue instance of Silverlight Control
/// that will be used for edit mode.
/// </summary>
/// <param name="attribute">CxAttributeMetadata to Control initialization.</param>
/// <param name="binding">Binding for created control.</param>
/// <returns>Initialized by CxAttribute instance of Silverlight Control.</returns>
protected override FrameworkElement CreateEditControl(CxAttribute attribute, Binding binding)
{
NumericUpDown num = new NumericUpDown();
num.DecimalPlaces = 0;
num.IsEnabled = !attribute.AttributeMetadata.ReadOnly;
num.Minimum = (double)attribute.AttributeMetadata.MinValue;
num.Maximum = (double)attribute.AttributeMetadata.MaxValue;
num.SetBinding(NumericUpDown.ValueProperty, binding);
return num;
}
//----------------------------------------------------------------------------
/// <summary>
/// Should be overriden to create initialized by CxAttributeValue instance of Silverlight Control
/// that will be used for view mode.
/// </summary>
/// <param name="attribute">CxAttributeMetadata to Control initialization.</param>
/// <param name="binding">Binding for created control.</param>
/// <returns>Initialized by CxAttribute instance of Silverlight Control.</returns>
protected override FrameworkElement CreateViewControl(CxAttribute attribute, Binding binding)
{
return CreateDefaultViewControl(attribute, binding);
}
//----------------------------------------------------------------------------
/// <summary>
/// Should be overriden to create initialized by CxAttributeValue instance of Silverlight Control
/// that will be used for grid in view mode.
/// </summary>
/// <param name="attribute">CxAttributeMetadata to Control initialization.</param>
/// <param name="binding">Binding for created control.</param>
/// <returns>Initialized by CxAttribute instance of Silverlight Control.</returns>
protected override FrameworkElement CreateGridViewControl(CxAttribute attribute, Binding binding)
{
return CreateDefaultGridViewControl(attribute, binding);
}
//----------------------------------------------------------------------------
/// <summary>
/// Should be overriden to create initialized by CxAttributeValue instance of Silverlight Control
/// that will be used for grid in edit mode.
/// </summary>
/// <param name="attribute">CxAttributeMetadata to Control initialization.</param>
/// <param name="binding">Binding for created control.</param>
/// <returns>Initialized by CxAttribute instance of Silverlight Control.</returns>
protected override FrameworkElement CreateGridEditControl(CxAttribute attribute, Binding binding)
{
return CreateEditControl(attribute, binding);
}
}
}