409 lines
16 KiB
C#
409 lines
16 KiB
C#
|
//------------------------------------------------------------------------------
|
||
|
// <copyright file="ListGeneralPage.cs" company="Microsoft">
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
// </copyright>
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
namespace System.Web.UI.Design.MobileControls
|
||
|
{
|
||
|
using System;
|
||
|
using System.Globalization;
|
||
|
using System.CodeDom;
|
||
|
using System.Collections;
|
||
|
using System.ComponentModel;
|
||
|
using System.ComponentModel.Design;
|
||
|
using System.Data;
|
||
|
using System.Diagnostics;
|
||
|
using System.Drawing;
|
||
|
using System.Web.UI;
|
||
|
using System.Web.UI.MobileControls;
|
||
|
using System.Web.UI.WebControls;
|
||
|
using System.Windows.Forms;
|
||
|
using System.Windows.Forms.Design;
|
||
|
|
||
|
using System.Web.UI.Design.MobileControls.Util;
|
||
|
|
||
|
using DataBinding = System.Web.UI.DataBinding;
|
||
|
using DataList = System.Web.UI.WebControls.DataList;
|
||
|
|
||
|
using TextBox = System.Windows.Forms.TextBox;
|
||
|
using CheckBox = System.Windows.Forms.CheckBox;
|
||
|
using ComboBox = System.Windows.Forms.ComboBox;
|
||
|
using Control = System.Windows.Forms.Control;
|
||
|
using Label = System.Windows.Forms.Label;
|
||
|
using PropertyDescriptor = System.ComponentModel.PropertyDescriptor;
|
||
|
|
||
|
/// <summary>
|
||
|
/// The General page for the DataList control.
|
||
|
/// </summary>
|
||
|
/// <internalonly/>
|
||
|
[
|
||
|
System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand,
|
||
|
Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)
|
||
|
]
|
||
|
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
|
||
|
internal class ListGeneralPage : MobileComponentEditorPage
|
||
|
{
|
||
|
private const int IDX_DECORATION_NONE = 0;
|
||
|
private const int IDX_DECORATION_BULLETED = 1;
|
||
|
private const int IDX_DECORATION_NUMBERED = 2;
|
||
|
|
||
|
private const int IDX_SELECTTYPE_DROPDOWN = 0;
|
||
|
private const int IDX_SELECTTYPE_LISTBOX = 1;
|
||
|
private const int IDX_SELECTTYPE_RADIO = 2;
|
||
|
private const int IDX_SELECTTYPE_MULTISELECTLISTBOX = 3;
|
||
|
private const int IDX_SELECTTYPE_CHECKBOX = 4;
|
||
|
|
||
|
private ComboBox _decorationCombo;
|
||
|
private ComboBox _selectTypeCombo;
|
||
|
private TextBox _itemCountTextBox;
|
||
|
private TextBox _itemsPerPageTextBox;
|
||
|
private TextBox _rowsTextBox;
|
||
|
|
||
|
private bool _isBaseControlList;
|
||
|
|
||
|
protected override String HelpKeyword
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (_isBaseControlList)
|
||
|
{
|
||
|
return "net.Mobile.ListProperties.General";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return "net.Mobile.SelectionListProperties.General";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Initializes the UI of the form.
|
||
|
/// </summary>
|
||
|
private void InitForm()
|
||
|
{
|
||
|
Debug.Assert(GetBaseControl() != null);
|
||
|
_isBaseControlList = (GetBaseControl() is List); // SelectionList otherwise.
|
||
|
|
||
|
GroupLabel appearanceGroup = new GroupLabel();
|
||
|
GroupLabel pagingGroup = null;
|
||
|
Label itemCountLabel = null;
|
||
|
Label itemsPerPageLabel = null;
|
||
|
Label rowsLabel = null;
|
||
|
Label decorationLabel = null;
|
||
|
Label selectTypeLabel = null;
|
||
|
|
||
|
if (_isBaseControlList)
|
||
|
{
|
||
|
pagingGroup = new GroupLabel();
|
||
|
itemCountLabel = new Label();
|
||
|
_itemCountTextBox = new TextBox();
|
||
|
itemsPerPageLabel = new Label();
|
||
|
_itemsPerPageTextBox = new TextBox();
|
||
|
decorationLabel = new Label();
|
||
|
_decorationCombo = new ComboBox();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
rowsLabel = new Label();
|
||
|
_rowsTextBox = new TextBox();
|
||
|
selectTypeLabel = new Label();
|
||
|
_selectTypeCombo = new ComboBox();
|
||
|
}
|
||
|
|
||
|
appearanceGroup.SetBounds(4, 4, 372, 16);
|
||
|
appearanceGroup.Text = SR.GetString(SR.ListGeneralPage_AppearanceGroupLabel);
|
||
|
appearanceGroup.TabIndex = 0;
|
||
|
appearanceGroup.TabStop = false;
|
||
|
|
||
|
if (_isBaseControlList)
|
||
|
{
|
||
|
decorationLabel.SetBounds(8, 24, 200, 16);
|
||
|
decorationLabel.Text = SR.GetString(SR.ListGeneralPage_DecorationCaption);
|
||
|
decorationLabel.TabStop = false;
|
||
|
decorationLabel.TabIndex = 1;
|
||
|
|
||
|
_decorationCombo.SetBounds(8, 40, 161, 21);
|
||
|
_decorationCombo.DropDownStyle = ComboBoxStyle.DropDownList;
|
||
|
_decorationCombo.SelectedIndexChanged += new EventHandler(this.OnSetPageDirty);
|
||
|
_decorationCombo.Items.AddRange(new object[] {
|
||
|
SR.GetString(SR.ListGeneralPage_DecorationNone),
|
||
|
SR.GetString(SR.ListGeneralPage_DecorationBulleted),
|
||
|
SR.GetString(SR.ListGeneralPage_DecorationNumbered)
|
||
|
});
|
||
|
_decorationCombo.TabIndex = 2;
|
||
|
|
||
|
pagingGroup.SetBounds(4, 77, 372, 16);
|
||
|
pagingGroup.Text = SR.GetString(SR.ListGeneralPage_PagingGroupLabel);
|
||
|
pagingGroup.TabIndex = 3;
|
||
|
pagingGroup.TabStop = false;
|
||
|
|
||
|
itemCountLabel.SetBounds(8, 97, 161, 16);
|
||
|
itemCountLabel.Text = SR.GetString(SR.ListGeneralPage_ItemCountCaption);
|
||
|
itemCountLabel.TabStop = false;
|
||
|
itemCountLabel.TabIndex = 4;
|
||
|
|
||
|
_itemCountTextBox.SetBounds(8, 113, 161, 20);
|
||
|
_itemCountTextBox.TextChanged += new EventHandler(this.OnSetPageDirty);
|
||
|
_itemCountTextBox.KeyPress += new KeyPressEventHandler(this.OnKeyPressNumberTextBox);
|
||
|
_itemCountTextBox.TabIndex = 5;
|
||
|
|
||
|
itemsPerPageLabel.SetBounds(211, 97, 161, 16);
|
||
|
itemsPerPageLabel.Text = SR.GetString(SR.ListGeneralPage_ItemsPerPageCaption);
|
||
|
itemsPerPageLabel.TabStop = false;
|
||
|
itemsPerPageLabel.TabIndex = 6;
|
||
|
|
||
|
_itemsPerPageTextBox.SetBounds(211, 113, 161, 20);
|
||
|
_itemsPerPageTextBox.TextChanged += new EventHandler(this.OnSetPageDirty);
|
||
|
_itemsPerPageTextBox.KeyPress += new KeyPressEventHandler(this.OnKeyPressNumberTextBox);
|
||
|
_itemsPerPageTextBox.TabIndex = 7;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
selectTypeLabel.SetBounds(8, 24, 161, 16);
|
||
|
selectTypeLabel.Text = SR.GetString(SR.ListGeneralPage_SelectTypeCaption);
|
||
|
selectTypeLabel.TabStop = false;
|
||
|
selectTypeLabel.TabIndex = 1;
|
||
|
|
||
|
_selectTypeCombo.SetBounds(8, 40, 161, 21);
|
||
|
_selectTypeCombo.DropDownStyle = ComboBoxStyle.DropDownList;
|
||
|
_selectTypeCombo.SelectedIndexChanged += new EventHandler(this.OnSetPageDirty);
|
||
|
_selectTypeCombo.Items.AddRange(new object[] {
|
||
|
SR.GetString(SR.ListGeneralPage_SelectTypeDropDown),
|
||
|
SR.GetString(SR.ListGeneralPage_SelectTypeListBox),
|
||
|
SR.GetString(SR.ListGeneralPage_SelectTypeRadio),
|
||
|
SR.GetString(SR.ListGeneralPage_SelectTypeMultiSelectListBox),
|
||
|
SR.GetString(SR.ListGeneralPage_SelectTypeCheckBox)
|
||
|
});
|
||
|
_selectTypeCombo.TabIndex = 2;
|
||
|
|
||
|
rowsLabel.SetBounds(211, 24, 161, 16);
|
||
|
rowsLabel.Text = SR.GetString(SR.ListGeneralPage_RowsCaption);
|
||
|
rowsLabel.TabStop = false;
|
||
|
rowsLabel.TabIndex = 3;
|
||
|
|
||
|
_rowsTextBox.SetBounds(211, 40, 161, 20);
|
||
|
_rowsTextBox.TextChanged += new EventHandler(this.OnSetPageDirty);
|
||
|
_rowsTextBox.KeyPress += new KeyPressEventHandler(this.OnKeyPressNumberTextBox);
|
||
|
_rowsTextBox.TabIndex = 4;
|
||
|
}
|
||
|
|
||
|
this.Text = SR.GetString(SR.ListGeneralPage_Title);
|
||
|
this.Size = new Size(382, 270);
|
||
|
this.CommitOnDeactivate = true;
|
||
|
this.Icon = new Icon(
|
||
|
typeof(System.Web.UI.Design.MobileControls.MobileControlDesigner),
|
||
|
"General.ico"
|
||
|
);
|
||
|
|
||
|
this.Controls.AddRange(new Control[]
|
||
|
{
|
||
|
appearanceGroup
|
||
|
});
|
||
|
|
||
|
if (_isBaseControlList)
|
||
|
{
|
||
|
this.Controls.AddRange(new Control[]
|
||
|
{
|
||
|
_itemsPerPageTextBox,
|
||
|
itemsPerPageLabel,
|
||
|
_itemCountTextBox,
|
||
|
itemCountLabel,
|
||
|
pagingGroup,
|
||
|
decorationLabel,
|
||
|
_decorationCombo
|
||
|
});
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
this.Controls.AddRange(new Control[]
|
||
|
{
|
||
|
_rowsTextBox,
|
||
|
rowsLabel,
|
||
|
selectTypeLabel,
|
||
|
_selectTypeCombo
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected override void LoadComponent()
|
||
|
{
|
||
|
IListDesigner listDesigner = (IListDesigner)GetBaseDesigner();
|
||
|
|
||
|
if (_isBaseControlList)
|
||
|
{
|
||
|
List list = (List)GetBaseControl();
|
||
|
_itemCountTextBox.Text = list.ItemCount.ToString(CultureInfo.InvariantCulture);
|
||
|
_itemsPerPageTextBox.Text = list.ItemsPerPage.ToString(CultureInfo.InvariantCulture);
|
||
|
|
||
|
switch (list.Decoration)
|
||
|
{
|
||
|
case ListDecoration.None:
|
||
|
_decorationCombo.SelectedIndex = IDX_DECORATION_NONE;
|
||
|
break;
|
||
|
case ListDecoration.Bulleted:
|
||
|
_decorationCombo.SelectedIndex = IDX_DECORATION_BULLETED;
|
||
|
break;
|
||
|
case ListDecoration.Numbered:
|
||
|
_decorationCombo.SelectedIndex = IDX_DECORATION_NUMBERED;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SelectionList selectionList = (SelectionList)GetBaseControl();
|
||
|
|
||
|
switch (selectionList.SelectType)
|
||
|
{
|
||
|
case ListSelectType.DropDown:
|
||
|
_selectTypeCombo.SelectedIndex = IDX_SELECTTYPE_DROPDOWN;
|
||
|
break;
|
||
|
case ListSelectType.ListBox:
|
||
|
_selectTypeCombo.SelectedIndex = IDX_SELECTTYPE_LISTBOX;
|
||
|
break;
|
||
|
case ListSelectType.Radio:
|
||
|
_selectTypeCombo.SelectedIndex = IDX_SELECTTYPE_RADIO;
|
||
|
break;
|
||
|
case ListSelectType.MultiSelectListBox:
|
||
|
_selectTypeCombo.SelectedIndex = IDX_SELECTTYPE_MULTISELECTLISTBOX;
|
||
|
break;
|
||
|
case ListSelectType.CheckBox:
|
||
|
_selectTypeCombo.SelectedIndex = IDX_SELECTTYPE_CHECKBOX;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
_rowsTextBox.Text = selectionList.Rows.ToString(CultureInfo.InvariantCulture);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void OnSetPageDirty(Object source, EventArgs e)
|
||
|
{
|
||
|
if (IsLoading())
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
SetDirty();
|
||
|
}
|
||
|
|
||
|
private void OnKeyPressNumberTextBox(Object source, KeyPressEventArgs e)
|
||
|
{
|
||
|
if (!((e.KeyChar >='0' && e.KeyChar <= '9') ||
|
||
|
e.KeyChar == 8))
|
||
|
{
|
||
|
e.Handled = true;
|
||
|
SafeNativeMethods.MessageBeep(unchecked((int)0xFFFFFFFF));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Saves the component loaded into the page.
|
||
|
/// </summary>
|
||
|
/// <seealso cref="System.Windows.Forms.Design.ComponentEditorPage"/>
|
||
|
protected override void SaveComponent()
|
||
|
{
|
||
|
IListDesigner listDesigner = (IListDesigner)GetBaseDesigner();
|
||
|
|
||
|
if (_isBaseControlList)
|
||
|
{
|
||
|
List list = (List)GetBaseControl();
|
||
|
|
||
|
switch (_decorationCombo.SelectedIndex)
|
||
|
{
|
||
|
case IDX_DECORATION_NONE:
|
||
|
list.Decoration = ListDecoration.None;
|
||
|
break;
|
||
|
case IDX_DECORATION_BULLETED:
|
||
|
list.Decoration = ListDecoration.Bulleted;
|
||
|
break;
|
||
|
case IDX_DECORATION_NUMBERED:
|
||
|
list.Decoration = ListDecoration.Numbered;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
int itemCount = 0;
|
||
|
|
||
|
if (_itemCountTextBox.Text.Length != 0)
|
||
|
{
|
||
|
itemCount = Int32.Parse(_itemCountTextBox.Text, CultureInfo.InvariantCulture);
|
||
|
}
|
||
|
list.ItemCount = itemCount;
|
||
|
}
|
||
|
catch (Exception)
|
||
|
{
|
||
|
_itemCountTextBox.Text = list.ItemCount.ToString(CultureInfo.InvariantCulture);
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
int itemsPerPage = 0;
|
||
|
|
||
|
if (_itemsPerPageTextBox.Text.Length != 0)
|
||
|
{
|
||
|
itemsPerPage = Int32.Parse(_itemsPerPageTextBox.Text, CultureInfo.InvariantCulture);
|
||
|
}
|
||
|
list.ItemsPerPage = itemsPerPage;
|
||
|
}
|
||
|
catch (Exception)
|
||
|
{
|
||
|
_itemsPerPageTextBox.Text = list.ItemsPerPage.ToString(CultureInfo.InvariantCulture);
|
||
|
}
|
||
|
|
||
|
TypeDescriptor.Refresh(list);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
//
|
||
|
SelectionList selectionList = (SelectionList)GetBaseControl();
|
||
|
|
||
|
switch (_selectTypeCombo.SelectedIndex)
|
||
|
{
|
||
|
case IDX_SELECTTYPE_DROPDOWN:
|
||
|
selectionList.SelectType = ListSelectType.DropDown;
|
||
|
break;
|
||
|
case IDX_SELECTTYPE_LISTBOX:
|
||
|
selectionList.SelectType = ListSelectType.ListBox;
|
||
|
break;
|
||
|
case IDX_SELECTTYPE_RADIO:
|
||
|
selectionList.SelectType = ListSelectType.Radio;
|
||
|
break;
|
||
|
case IDX_SELECTTYPE_MULTISELECTLISTBOX:
|
||
|
selectionList.SelectType = ListSelectType.MultiSelectListBox;
|
||
|
break;
|
||
|
case IDX_SELECTTYPE_CHECKBOX:
|
||
|
selectionList.SelectType = ListSelectType.CheckBox;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
int rows = 4;
|
||
|
|
||
|
if (_rowsTextBox.Text.Length != 0)
|
||
|
{
|
||
|
rows = Int32.Parse(_rowsTextBox.Text, CultureInfo.InvariantCulture);
|
||
|
}
|
||
|
selectionList.Rows = rows;
|
||
|
}
|
||
|
catch (Exception)
|
||
|
{
|
||
|
_rowsTextBox.Text = selectionList.Rows.ToString(CultureInfo.InvariantCulture);
|
||
|
}
|
||
|
|
||
|
TypeDescriptor.Refresh(selectionList);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Sets the component that is to be edited in the page.
|
||
|
/// </summary>
|
||
|
/// <seealso cref="System.Windows.Forms.Design.ComponentEditorPage"/>
|
||
|
public override void SetComponent(IComponent component)
|
||
|
{
|
||
|
base.SetComponent(component);
|
||
|
InitForm();
|
||
|
}
|
||
|
}
|
||
|
}
|