Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Design / ListComponentEditorPage.cs / 1305376 / ListComponentEditorPage.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.Globalization; using System.Diagnostics; using System.Web.UI.MobileControls; using System.Windows.Forms; using System.Windows.Forms.Design; using System.Web.UI.Design.MobileControls.Util; [ 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 abstract class ListComponentEditorPage : MobileComponentEditorPage { protected bool CaseSensitive; protected EditableTreeList TreeList = null; protected ListTreeNode CurrentNode = null; protected String TreeViewTitle = String.Empty; protected String AddButtonTitle = String.Empty; protected String DefaultName = String.Empty; protected String MessageTitle = String.Empty; protected String EmptyNameMessage = String.Empty; // protected String DuplicateNameMessage = String.Empty; // AUI 2292 // protected String InvalidNameMessage = String.Empty; // AUI 4240 // private bool _newLabelSetDirty = true; // AUI 4452 protected int Y = 16; protected static readonly int X = 238; protected static readonly int ControlWidth = 152; protected static readonly int LabelHeight = 16; protected static readonly int CellSpace = 27; protected static readonly int Index = 200; protected static readonly int CmbHeight = 20; protected virtual bool FilterIllegalName() { return true; } protected virtual void InitForm() { TreeList = new EditableTreeList(true, CaseSensitive, Y); TreeList.TabIndex = 0; TreeList.LblTitle.Text = TreeViewTitle; TreeList.BtnAdd.Text = AddButtonTitle; TreeList.TvList.AfterLabelEdit += new NodeLabelEditEventHandler(OnAfterLabelEdit); TreeList.TvList.BeforeLabelEdit += new NodeLabelEditEventHandler(OnBeforeLabelEdit); TreeList.TvList.AfterSelect += new TreeViewEventHandler(OnNodeSelected); TreeList.BtnAdd.Click += new EventHandler(OnClickAddButton); TreeList.BtnRemove.Click += new EventHandler(OnClickRemoveButton); TreeList.BtnUp.Click += new EventHandler(OnClickUpButton); TreeList.BtnDown.Click += new EventHandler(OnClickDownButton); this.Controls.AddRange(new Control[] {TreeList /*, grplblProperties*/}); } protected virtual void InitPage() { TreeList.TvList.Nodes.Clear(); TreeList.TvList.SelectedNode = null; } private void InitTree() { LoadItems(); if (TreeList.TvList.Nodes.Count > 0) { CurrentNode = (ListTreeNode)TreeList.TvList.Nodes[0]; TreeList.TvList.SelectedNode = CurrentNode; LoadItemProperties(); } } ////// Loads the component into the page. /// ///protected override sealed void LoadComponent() { InitPage(); InitTree(); UpdateControlsEnabling(); } protected abstract void LoadItems(); protected abstract void LoadItemProperties(); protected override void SaveComponent() { foreach (ListTreeNode node in TreeList.TvList.Nodes) { if (node.IsEditing) { // commit changes if still in editing mode. node.EndEdit(false); } } } public override sealed void SetComponent(IComponent component) { base.SetComponent(component); Debug.Assert (component is ObjectList | component is List | component is SelectionList, "Invalid Component"); InitForm(); } protected virtual String GetNewName() { int i = 1; while (NameExists(DefaultName + i.ToString(CultureInfo.InvariantCulture))) { i++; } return DefaultName + i.ToString(CultureInfo.InvariantCulture); } protected bool NameExists(String name) { foreach (ListTreeNode node in TreeList.TvList.Nodes) { if (String.Compare(node.Name, name, ((!CaseSensitive) ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal)) == 0) { return true; } } return false; } protected virtual void OnAfterLabelEdit(Object source, NodeLabelEditEventArgs e) { Debug.Assert(null != e); Debug.Assert(e.CancelEdit == false); // this happens when the label is unchanged after entering and exiting // label editing mode - bizarre behavior. this may be a bug in treeview if (null == e.Label) { return; } if (FilterIllegalName()) { bool cancel = true; /* AUI 2292 if (String.Compare(e.Node.Text, e.Label, true) != 0 && NameExists(e.Label)) { MessageBox.Show( String.Format(DuplicateNameMessage, e.Label), MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } */ // can't accept an empty node name if (e.Label.Length == 0) { MessageBox.Show( EmptyNameMessage, MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } /* Removed for DCR 4240 // can't accept an illegal node name else if (!IsValidName(e.Label)) { MessageBox.Show( InvalidNameMessage, MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } */ else { cancel = false; } if (cancel) { e.CancelEdit = true; return; } } CurrentNode.Name = e.Label; CurrentNode.Dirty = true; SetDirty(); /* pulled out because of 4452 if (_newLabelSetDirty) { SetDirty(); } */ OnNodeRenamed(); } private void OnBeforeLabelEdit(Object source, NodeLabelEditEventArgs e) { SetDirty(); } private void OnClickDownButton(Object source, EventArgs e) { if (IsLoading()) { return; } SetDirty(); } private void OnClickUpButton(Object source, EventArgs e) { if (IsLoading()) { return; } SetDirty(); } protected virtual void OnNodeSelected(Object source, TreeViewEventArgs e) { if (IsLoading()) { return; } CurrentNode = (ListTreeNode) TreeList.TvList.SelectedNode; LoadItemProperties(); UpdateControlsEnabling(); } protected virtual void OnPropertyChanged(Object source, EventArgs e) { } protected virtual void OnClickAddButton(Object source, EventArgs e) { if (IsLoading()) { return; } SetDirty(); } protected virtual void OnClickRemoveButton(Object source, EventArgs e) { if (IsLoading()) { return; } if (TreeList.TvList.Nodes.Count == 0) { CurrentNode = null; LoadItemProperties(); } SetDirty(); UpdateControlsEnabling(); } protected virtual void UpdateControlsEnabling() { } protected virtual void OnNodeRenamed() { } [ System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode) ] protected class ListTreeNode : TreeNode { private bool _dirty; private String _name; internal ListTreeNode(String text) : base(text) { this._name = text; } internal bool Dirty { get { return _dirty; } set { _dirty = value; } } internal new String Name { get { return _name; } set { _name = value; } } } } } // 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
- MatrixAnimationBase.cs
- UdpDiscoveryEndpointProvider.cs
- LogManagementAsyncResult.cs
- SoapSchemaMember.cs
- PropertyGroupDescription.cs
- BrushMappingModeValidation.cs
- FileRegion.cs
- ProjectionPlan.cs
- PermissionSet.cs
- StorageFunctionMapping.cs
- WindowsClaimSet.cs
- SourceElementsCollection.cs
- RegexCaptureCollection.cs
- CuspData.cs
- FlowLayoutSettings.cs
- MarkupCompilePass2.cs
- Brush.cs
- DataControlButton.cs
- AssemblyName.cs
- Figure.cs
- TrailingSpaceComparer.cs
- SamlAuthorizationDecisionClaimResource.cs
- ControlFilterExpression.cs
- TemplateControlParser.cs
- StorageMappingItemLoader.cs
- TimersDescriptionAttribute.cs
- FillRuleValidation.cs
- XmlEncoding.cs
- CheckBoxRenderer.cs
- ReflectionPermission.cs
- SafeLocalMemHandle.cs
- Operator.cs
- Site.cs
- ConstrainedDataObject.cs
- RedirectionProxy.cs
- DirectoryInfo.cs
- HtmlInputButton.cs
- DataViewSetting.cs
- MSG.cs
- DBBindings.cs
- HostingPreferredMapPath.cs
- CoreSwitches.cs
- Button.cs
- PreservationFileWriter.cs
- RSAPKCS1SignatureFormatter.cs
- TabControlEvent.cs
- FillErrorEventArgs.cs
- HandledEventArgs.cs
- Model3DCollection.cs
- TextServicesDisplayAttributePropertyRanges.cs
- CustomExpressionEventArgs.cs
- IDQuery.cs
- ImportCatalogPart.cs
- AspCompat.cs
- ObsoleteAttribute.cs
- EventHandlersStore.cs
- SafeRightsManagementEnvironmentHandle.cs
- DataGridCellsPresenter.cs
- TextServicesLoader.cs
- TableLayout.cs
- LayoutEngine.cs
- RetrieveVirtualItemEventArgs.cs
- BasicViewGenerator.cs
- VirtualPathUtility.cs
- UrlMappingsSection.cs
- GridViewColumnCollection.cs
- CommandDevice.cs
- ProcessInputEventArgs.cs
- HandleCollector.cs
- EnumUnknown.cs
- IdleTimeoutMonitor.cs
- RoleManagerSection.cs
- ScalarRestriction.cs
- ServiceNameElement.cs
- FrameAutomationPeer.cs
- TreeNode.cs
- SimpleRecyclingCache.cs
- DataRowChangeEvent.cs
- CreateParams.cs
- GlyphRunDrawing.cs
- CheckBoxAutomationPeer.cs
- XmlAttributeOverrides.cs
- SqlProcedureAttribute.cs
- AtomServiceDocumentSerializer.cs
- Label.cs
- Property.cs
- XslAstAnalyzer.cs
- HwndHost.cs
- GPRECTF.cs
- RegexCaptureCollection.cs
- FileFormatException.cs
- ConstantCheck.cs
- ExtendedPropertyDescriptor.cs
- FilteredDataSetHelper.cs
- AsyncPostBackErrorEventArgs.cs
- ProjectionNode.cs
- ProcessModuleDesigner.cs
- AVElementHelper.cs
- DbConnectionFactory.cs
- PathNode.cs