Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Design / ListItemsPage.cs / 1305376 / ListItemsPage.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.MobileControls { using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Diagnostics; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; // using System.Web.UI.Design.Util; using System.Web.UI.MobileControls; using System.Web.UI.Design.MobileControls.Util; using Button = System.Windows.Forms.Button; using Label = System.Windows.Forms.Label; using TextBox = System.Windows.Forms.TextBox; using CheckBox = System.Windows.Forms.CheckBox; using TreeView = System.Windows.Forms.TreeView; ////// The Items page for the List control. /// ///[ 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 sealed class ListItemsPage : ListComponentEditorPage { private IListDesigner _listDesigner; private CheckBox _itemsAsLinksCheckBox; private TextBox _txtValue; private CheckBox _ckbSelected; private bool _isBaseControlList; public ListItemsPage() { TreeViewTitle = SR.GetString(SR.ListItemsPage_ItemCaption); AddButtonTitle = SR.GetString(SR.ListItemsPage_NewItemCaption); DefaultName = SR.GetString(SR.ListItemsPage_DefaultItemText); } protected override String HelpKeyword { get { if (_isBaseControlList) { return "net.Mobile.ListProperties.Items"; } else { return "net.Mobile.SelectionListProperties.Items"; } } } protected override bool FilterIllegalName() { return false; } protected override String GetNewName() { return SR.GetString(SR.ListItemsPage_DefaultItemText); } protected override void InitForm() { Debug.Assert(GetBaseControl() != null); _isBaseControlList = (GetBaseControl() is List); this._listDesigner = (IListDesigner)GetBaseDesigner(); Y = (_isBaseControlList ? 52 : 24); base.InitForm(); this.Text = SR.GetString(SR.ListItemsPage_Title); this.CommitOnDeactivate = true; this.Icon = new Icon( typeof(System.Web.UI.Design.MobileControls.MobileControlDesigner), "Items.ico" ); this.Size = new Size(382, 220); if (_isBaseControlList) { _itemsAsLinksCheckBox = new CheckBox(); _itemsAsLinksCheckBox.SetBounds(4, 4, 370, 16); _itemsAsLinksCheckBox.Text = SR.GetString(SR.ListItemsPage_ItemsAsLinksCaption); _itemsAsLinksCheckBox.FlatStyle = FlatStyle.System; _itemsAsLinksCheckBox.CheckedChanged += new EventHandler(this.OnSetPageDirty); _itemsAsLinksCheckBox.TabIndex = 0; } GroupLabel grplblItemList = new GroupLabel(); grplblItemList.SetBounds(4, _isBaseControlList ? 32 : 4, 372, LabelHeight); grplblItemList.Text = SR.GetString(SR.ListItemsPage_ItemListGroupLabel); grplblItemList.TabIndex = 1; grplblItemList.TabStop = false; TreeList.TabIndex = 2; Label lblValue = new Label(); lblValue.SetBounds(X, Y, 134, LabelHeight); lblValue.Text = SR.GetString(SR.ListItemsPage_ItemValueCaption); lblValue.TabStop = false; lblValue.TabIndex = Index; Y += LabelHeight; _txtValue = new TextBox(); _txtValue.SetBounds(X, Y, 134, CmbHeight); _txtValue.TextChanged += new EventHandler(this.OnPropertyChanged); _txtValue.TabIndex = Index + 1; this.Controls.AddRange(new Control[] { grplblItemList, lblValue, _txtValue }); if (_isBaseControlList) { this.Controls.Add(_itemsAsLinksCheckBox); } else { Y += CellSpace; _ckbSelected = new CheckBox(); _ckbSelected.SetBounds(X, Y, 134, LabelHeight); _ckbSelected.FlatStyle = System.Windows.Forms.FlatStyle.System; _ckbSelected.Text = SR.GetString(SR.ListItemsPage_ItemSelectedCaption); _ckbSelected.CheckedChanged += new EventHandler(this.OnPropertyChanged); _ckbSelected.TabIndex = Index + 2; this.Controls.Add(_ckbSelected); } } protected override void InitPage() { base.InitPage(); if (_isBaseControlList) { List list = (List)GetBaseControl(); _itemsAsLinksCheckBox.Checked = list.ItemsAsLinks; } else { _ckbSelected.Checked = false; } _txtValue.Text = String.Empty; } protected override void LoadItems() { using (new LoadingModeResource(this)) { foreach (MobileListItem item in _listDesigner.Items) { ItemTreeNode newNode = new ItemTreeNode(item); TreeList.TvList.Nodes.Add(newNode); } } } protected override void LoadItemProperties() { using (new LoadingModeResource(this)) { if (CurrentNode != null) { ItemTreeNode currentItemNode = (ItemTreeNode)CurrentNode; _txtValue.Text = currentItemNode.Value; if (!_isBaseControlList) { _ckbSelected.Checked = currentItemNode.Selected; } } else { _txtValue.Text = String.Empty; if (!_isBaseControlList) { _ckbSelected.Checked = false; } } } } protected override void OnAfterLabelEdit(Object source, NodeLabelEditEventArgs e) { base.OnAfterLabelEdit(source, e); if (!((ItemTreeNode)CurrentNode).ValueSet) { _txtValue.Text = ((ItemTreeNode)CurrentNode).Value = CurrentNode.Name; } } protected override void OnClickAddButton(Object source, EventArgs e) { if (IsLoading()) { return; } ItemTreeNode newNode = new ItemTreeNode(GetNewName()); TreeList.TvList.Nodes.Add(newNode); TreeList.TvList.SelectedNode = newNode; CurrentNode = newNode; newNode.Dirty = true; newNode.BeginEdit(); LoadItemProperties(); SetDirty(); } private void OnSetPageDirty(Object source, EventArgs e) { if (IsLoading()) { return; } SetDirty(); } protected override void OnPropertyChanged(Object source, EventArgs e) { // This means there are no fields yet. Do nothing if (CurrentNode == null || IsLoading()) { return; } if (source is TextBox) { ((ItemTreeNode)CurrentNode).Value = _txtValue.Text; } else { Debug.Assert(!_isBaseControlList); ((ItemTreeNode)CurrentNode).Selected = _ckbSelected.Checked; } SetDirty(); CurrentNode.Dirty = true; } protected override void SaveComponent() { // Delegate to base implementation first! // This will properly close ListTreeNode editing mode. base.SaveComponent(); _listDesigner.Items.Clear(); foreach (ItemTreeNode itemNode in TreeList.TvList.Nodes) { if (itemNode.Dirty) { itemNode.RuntimeItem.Text = itemNode.Text; itemNode.RuntimeItem.Value = itemNode.Value; if (!_isBaseControlList) { itemNode.RuntimeItem.Selected = itemNode.Selected; } } _listDesigner.Items.Add(itemNode.RuntimeItem); } if (_isBaseControlList) { List list = (List)GetBaseControl(); list.ItemsAsLinks = _itemsAsLinksCheckBox.Checked; TypeDescriptor.Refresh(list); } else { SelectionList selectionList = (SelectionList)GetBaseControl(); TypeDescriptor.Refresh(selectionList); } } protected override void UpdateControlsEnabling() { if (TreeList.TvList.SelectedNode == null) { TreeList.TvList.Enabled = _txtValue.Enabled = false; _txtValue.Text = String.Empty; } else { TreeList.TvList.Enabled = _txtValue.Enabled = true; } if (!_isBaseControlList) { SelectionList selectionListControl = (SelectionList) GetBaseControl(); if (TreeList.TvList.SelectedNode == null) { _ckbSelected.Enabled = false; _ckbSelected.Checked = false; } else { _ckbSelected.Enabled = true; } } } /// /// Internal object used to store all items properties /// [ System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode) ] private class ItemTreeNode : ListTreeNode { private MobileListItem _runtimeItem; private String _value; private bool _selected; private bool _valueSet = false; ////// internal ItemTreeNode(String itemText) : base(itemText) { this._runtimeItem = new MobileListItem(); this._value = null; this._selected = false; } ////// internal ItemTreeNode(MobileListItem runtimeItem) : base(runtimeItem.Text) { Debug.Assert(runtimeItem != null, "runtimeItem is null"); _valueSet = true; this._runtimeItem = runtimeItem; this._value = _runtimeItem.Value; this._selected = _runtimeItem.Selected; } internal MobileListItem RuntimeItem { get { return _runtimeItem; } } internal String Value { get { return _value; } set { _value = value; _valueSet = true; } } internal bool Selected { get { return _selected; } set { _selected = value; } } internal bool ValueSet { get { return _valueSet; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartEditorOkVerb.cs
- DataGridState.cs
- GridLength.cs
- DecoderNLS.cs
- CatalogPart.cs
- SendOperation.cs
- AnnotationMap.cs
- AddDataControlFieldDialog.cs
- ProgressBar.cs
- StrongNameUtility.cs
- FormatConvertedBitmap.cs
- ReliableOutputSessionChannel.cs
- PrintDocument.cs
- OciLobLocator.cs
- FileLogRecordHeader.cs
- InternalSafeNativeMethods.cs
- PresentationAppDomainManager.cs
- FullTextLine.cs
- DataServiceKeyAttribute.cs
- WizardPanelChangingEventArgs.cs
- SettingsPropertyIsReadOnlyException.cs
- Activator.cs
- ObjectDataSourceFilteringEventArgs.cs
- Common.cs
- ResolveNextArgumentWorkItem.cs
- DrawingVisual.cs
- WorkflowInlining.cs
- TextDecorationLocationValidation.cs
- RegularExpressionValidator.cs
- ConstraintConverter.cs
- SendMessageChannelCache.cs
- ResourceProviderFactory.cs
- WSDualHttpBinding.cs
- RawMouseInputReport.cs
- Color.cs
- NumericUpDownAccelerationCollection.cs
- SqlGenerator.cs
- UnmanagedMemoryStreamWrapper.cs
- CacheChildrenQuery.cs
- AdapterDictionary.cs
- ValidationRuleCollection.cs
- DataPager.cs
- Constants.cs
- DependencyObjectProvider.cs
- COM2IDispatchConverter.cs
- CharEntityEncoderFallback.cs
- StringFormat.cs
- NullableConverter.cs
- CommonGetThemePartSize.cs
- SR.cs
- ScopelessEnumAttribute.cs
- XhtmlBasicLabelAdapter.cs
- UserControlParser.cs
- TagPrefixAttribute.cs
- OdbcErrorCollection.cs
- TimeSpanConverter.cs
- PageClientProxyGenerator.cs
- EntityContainer.cs
- CodeExporter.cs
- ForEachAction.cs
- MatcherBuilder.cs
- MarkupWriter.cs
- PerformanceCounter.cs
- _UncName.cs
- LiteralControl.cs
- SpellerHighlightLayer.cs
- AspNetSynchronizationContext.cs
- BulletChrome.cs
- ClientUrlResolverWrapper.cs
- ParentQuery.cs
- HttpsHostedTransportConfiguration.cs
- StructuredType.cs
- DataSourceSelectArguments.cs
- FaultReason.cs
- Permission.cs
- CallbackValidator.cs
- User.cs
- RemotingSurrogateSelector.cs
- StaticResourceExtension.cs
- SpecularMaterial.cs
- CoreSwitches.cs
- WindowsComboBox.cs
- GroupItem.cs
- DetailsViewCommandEventArgs.cs
- ComUdtElement.cs
- SqlOuterApplyReducer.cs
- StrokeNodeOperations.cs
- Graph.cs
- PropertyGeneratedEventArgs.cs
- MeshGeometry3D.cs
- ZoneLinkButton.cs
- XPathSelfQuery.cs
- FamilyMapCollection.cs
- CssClassPropertyAttribute.cs
- NavigationProperty.cs
- ISAPIRuntime.cs
- CreationContext.cs
- ScriptResourceInfo.cs
- SecurityStandardsManager.cs
- HwndStylusInputProvider.cs