Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Documents / TableRowGroup.cs / 1 / TableRowGroup.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Table row group implementation // // See spec at http://avalon/layout/Tables/WPP%20TableOM.doc // // History: // 05/19/2003 : olego - Created // //--------------------------------------------------------------------------- //In order to avoid generating warnings about unknown message numbers and //unknown pragmas when compiling your C# source code with the actual C# compiler, //you need to disable warnings 1634 and 1691. (Presharp Documentation) #pragma warning disable 1634, 1691 using MS.Internal.PtsHost; using MS.Internal.PtsTable; using MS.Utility; using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics; using System.Windows.Threading; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Media; using System.Windows.Markup; using MS.Internal; using MS.Internal.Data; using MS.Internal.PtsHost.UnsafeNativeMethods; namespace System.Windows.Documents { ////// Table row group implementation /// [ContentProperty("Rows")] public class TableRowGroup : TextElement, IAddChild { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Creates an instance of a RowGroup /// public TableRowGroup() : base() { Initialize(); } // common initialization for all constructors private void Initialize() { _rows = new TableRowCollection(this); _rowInsertionIndex = -1; _parentIndex = -1; } #endregion //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// void IAddChild.AddChild(object value) { if (value == null) { throw new ArgumentNullException("value"); } TableRow row = value as TableRow; if (row != null) { Rows.Add(row); return; } throw (new ArgumentException(SR.Get(SRID.UnexpectedParameterType, value.GetType(), typeof(TableRow)), "value")); } ////// /// void IAddChild.AddText(string text) { XamlSerializerUtil.ThrowIfNonWhiteSpaceInAddText(text, this); } #endregion Public Methods //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ #region Public Properties ////// /// Returns the row group's row collection /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public TableRowCollection Rows { get { return (_rows); } } ////// This method is used by TypeDescriptor to determine if this property should /// be serialized. /// [EditorBrowsable(EditorBrowsableState.Never)] public bool ShouldSerializeRows() { return Rows.Count > 0; } #endregion Public Properties //----------------------------------------------------- // // Protected Methods // //------------------------------------------------------ #region Protected Methods #endregion Protected Methods //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// Callback used to notify the RowGroup about entering model tree. /// internal void OnEnterParentTree() { if(Table != null) { Table.OnStructureChanged(); } } ////// Callback used to notify the RowGroup about exitting model tree. /// internal void OnExitParentTree() { } ////// Callback used to notify the RowGroup about exitting model tree. /// internal void OnAfterExitParentTree(Table table) { table.OnStructureChanged(); } ////// ValidateStructure /// internal void ValidateStructure() { RowSpanVector rowSpanVector = new RowSpanVector(); _columnCount = 0; for (int i = 0; i < Rows.Count; ++i) { Rows[i].ValidateStructure(rowSpanVector); _columnCount = Math.Max(_columnCount, Rows[i].ColumnCount); } Table.EnsureColumnCount(_columnCount); } #endregion Internal Methods //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Table owner accessor /// internal Table Table { get { return Parent as Table; } } ////// RowGroup's index in the parents row group collection. /// internal int Index { get { return (_parentIndex); } set { Debug.Assert(value >= -1 && _parentIndex != value); _parentIndex = value; } } ////// Stores temporary data for where to insert a new row /// internal int InsertionIndex { get { return _rowInsertionIndex; } set { _rowInsertionIndex = value; } } ////// Marks this element's left edge as visible to IMEs. /// This means element boundaries will act as word breaks. /// internal override bool IsIMEStructuralElement { get { return true; } } #endregion Internal Properties //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods ////// Called when body receives a new parent (via OM or text tree) /// /// /// New parent of body /// internal override void OnNewParent(DependencyObject newParent) { DependencyObject oldParent = this.Parent; if (newParent != null && !(newParent is Table)) { throw new InvalidOperationException(SR.Get(SRID.TableInvalidParentNodeType, newParent.GetType().ToString())); } if (oldParent != null) { OnExitParentTree(); ((Table)oldParent).RowGroups.InternalRemove(this); OnAfterExitParentTree(oldParent as Table); } base.OnNewParent(newParent); if (newParent != null) { ((Table)newParent).RowGroups.InternalAdd(this); OnEnterParentTree(); } } #endregion Private Methods //------------------------------------------------------ // // Private Fields // //----------------------------------------------------- #region Private Fields private TableRowCollection _rows; // children rows store private int _parentIndex; // row group's index in parent's children collection private int _rowInsertionIndex; // Insertion index for row private int _columnCount; // Column count. #endregion Private Fields //------------------------------------------------------ // // Private Structures / Classes // //----------------------------------------------------- } } #pragma warning restore 1634, 1691 // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Table row group implementation // // See spec at http://avalon/layout/Tables/WPP%20TableOM.doc // // History: // 05/19/2003 : olego - Created // //--------------------------------------------------------------------------- //In order to avoid generating warnings about unknown message numbers and //unknown pragmas when compiling your C# source code with the actual C# compiler, //you need to disable warnings 1634 and 1691. (Presharp Documentation) #pragma warning disable 1634, 1691 using MS.Internal.PtsHost; using MS.Internal.PtsTable; using MS.Utility; using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics; using System.Windows.Threading; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Media; using System.Windows.Markup; using MS.Internal; using MS.Internal.Data; using MS.Internal.PtsHost.UnsafeNativeMethods; namespace System.Windows.Documents { ////// Table row group implementation /// [ContentProperty("Rows")] public class TableRowGroup : TextElement, IAddChild { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Creates an instance of a RowGroup /// public TableRowGroup() : base() { Initialize(); } // common initialization for all constructors private void Initialize() { _rows = new TableRowCollection(this); _rowInsertionIndex = -1; _parentIndex = -1; } #endregion //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// void IAddChild.AddChild(object value) { if (value == null) { throw new ArgumentNullException("value"); } TableRow row = value as TableRow; if (row != null) { Rows.Add(row); return; } throw (new ArgumentException(SR.Get(SRID.UnexpectedParameterType, value.GetType(), typeof(TableRow)), "value")); } ////// /// void IAddChild.AddText(string text) { XamlSerializerUtil.ThrowIfNonWhiteSpaceInAddText(text, this); } #endregion Public Methods //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ #region Public Properties ////// /// Returns the row group's row collection /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public TableRowCollection Rows { get { return (_rows); } } ////// This method is used by TypeDescriptor to determine if this property should /// be serialized. /// [EditorBrowsable(EditorBrowsableState.Never)] public bool ShouldSerializeRows() { return Rows.Count > 0; } #endregion Public Properties //----------------------------------------------------- // // Protected Methods // //------------------------------------------------------ #region Protected Methods #endregion Protected Methods //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// Callback used to notify the RowGroup about entering model tree. /// internal void OnEnterParentTree() { if(Table != null) { Table.OnStructureChanged(); } } ////// Callback used to notify the RowGroup about exitting model tree. /// internal void OnExitParentTree() { } ////// Callback used to notify the RowGroup about exitting model tree. /// internal void OnAfterExitParentTree(Table table) { table.OnStructureChanged(); } ////// ValidateStructure /// internal void ValidateStructure() { RowSpanVector rowSpanVector = new RowSpanVector(); _columnCount = 0; for (int i = 0; i < Rows.Count; ++i) { Rows[i].ValidateStructure(rowSpanVector); _columnCount = Math.Max(_columnCount, Rows[i].ColumnCount); } Table.EnsureColumnCount(_columnCount); } #endregion Internal Methods //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Table owner accessor /// internal Table Table { get { return Parent as Table; } } ////// RowGroup's index in the parents row group collection. /// internal int Index { get { return (_parentIndex); } set { Debug.Assert(value >= -1 && _parentIndex != value); _parentIndex = value; } } ////// Stores temporary data for where to insert a new row /// internal int InsertionIndex { get { return _rowInsertionIndex; } set { _rowInsertionIndex = value; } } ////// Marks this element's left edge as visible to IMEs. /// This means element boundaries will act as word breaks. /// internal override bool IsIMEStructuralElement { get { return true; } } #endregion Internal Properties //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods ////// Called when body receives a new parent (via OM or text tree) /// /// /// New parent of body /// internal override void OnNewParent(DependencyObject newParent) { DependencyObject oldParent = this.Parent; if (newParent != null && !(newParent is Table)) { throw new InvalidOperationException(SR.Get(SRID.TableInvalidParentNodeType, newParent.GetType().ToString())); } if (oldParent != null) { OnExitParentTree(); ((Table)oldParent).RowGroups.InternalRemove(this); OnAfterExitParentTree(oldParent as Table); } base.OnNewParent(newParent); if (newParent != null) { ((Table)newParent).RowGroups.InternalAdd(this); OnEnterParentTree(); } } #endregion Private Methods //------------------------------------------------------ // // Private Fields // //----------------------------------------------------- #region Private Fields private TableRowCollection _rows; // children rows store private int _parentIndex; // row group's index in parent's children collection private int _rowInsertionIndex; // Insertion index for row private int _columnCount; // Column count. #endregion Private Fields //------------------------------------------------------ // // Private Structures / Classes // //----------------------------------------------------- } } #pragma warning restore 1634, 1691 // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CallbackTimeoutsElement.cs
- Roles.cs
- TaiwanLunisolarCalendar.cs
- WebConfigurationHost.cs
- XmlEncoding.cs
- TriggerAction.cs
- ToolStripMenuItemDesigner.cs
- GridErrorDlg.cs
- ServicePointManagerElement.cs
- PermissionSetTriple.cs
- PaintValueEventArgs.cs
- AlignmentYValidation.cs
- Zone.cs
- FilteredDataSetHelper.cs
- InputGestureCollection.cs
- SqlNodeAnnotations.cs
- TreeNodeStyle.cs
- XmlC14NWriter.cs
- Columns.cs
- OrthographicCamera.cs
- Axis.cs
- DesignerOptionService.cs
- SqlProvider.cs
- SpanIndex.cs
- RectangleConverter.cs
- GlyphInfoList.cs
- TextBoxRenderer.cs
- SamlConstants.cs
- StorageAssociationTypeMapping.cs
- GifBitmapEncoder.cs
- SingleStorage.cs
- ImpersonateTokenRef.cs
- WebBrowserHelper.cs
- StateMachineTimers.cs
- PackWebResponse.cs
- ListCollectionView.cs
- BitHelper.cs
- ACE.cs
- GuidTagList.cs
- Speller.cs
- SqlCacheDependencySection.cs
- ProfessionalColors.cs
- VisualBrush.cs
- WorkflowService.cs
- ScrollChangedEventArgs.cs
- GeometryCombineModeValidation.cs
- ProxyManager.cs
- SafeNativeMethods.cs
- Char.cs
- ViewStateModeByIdAttribute.cs
- XmlnsPrefixAttribute.cs
- InternalBufferManager.cs
- StatusBarItemAutomationPeer.cs
- BitArray.cs
- RawStylusSystemGestureInputReport.cs
- FileIOPermission.cs
- ComplusTypeValidator.cs
- FormView.cs
- CircleHotSpot.cs
- ProtocolsConfigurationEntry.cs
- InternalTypeHelper.cs
- EditorZoneDesigner.cs
- UnsafeNativeMethods.cs
- PageSettings.cs
- SqlConnectionPoolProviderInfo.cs
- HtmlInputHidden.cs
- _ShellExpression.cs
- SqlWorkflowInstanceStore.cs
- StorageTypeMapping.cs
- WebPartCancelEventArgs.cs
- CapabilitiesPattern.cs
- SkewTransform.cs
- TargetInvocationException.cs
- FixedPageStructure.cs
- FindCriteriaCD1.cs
- DBSchemaTable.cs
- PresentationTraceSources.cs
- TypeDescriptionProvider.cs
- GatewayIPAddressInformationCollection.cs
- ObjectCloneHelper.cs
- DataGridCaption.cs
- WorkerRequest.cs
- ExpandableObjectConverter.cs
- MissingSatelliteAssemblyException.cs
- CacheSection.cs
- HttpWrapper.cs
- WindowsTab.cs
- Single.cs
- TemplateBindingExpression.cs
- DataSvcMapFile.cs
- FormsAuthenticationUser.cs
- Tuple.cs
- PreloadedPackages.cs
- ApplyImportsAction.cs
- ProcessThreadCollection.cs
- XmlWhitespace.cs
- AllowedAudienceUriElement.cs
- DesignerRegionCollection.cs
- Item.cs
- CalloutQueueItem.cs