Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Documents / DocumentPaginator.cs / 1 / DocumentPaginator.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: DocumentPaginator.cs // // Description: This is the abstract base class for all paginating layouts. // It provides default implementations for the asynchronous // versions of GetPage and ComputePageCount. // // History: // 08/29/2005 : grzegorz - created. // //--------------------------------------------------------------------------- using System.ComponentModel; // AsyncCompletedEventArgs using System.Windows.Media; // Visual using MS.Internal.PresentationCore; // SR, SRID namespace System.Windows.Documents { ////// This is the abstract base class for all paginating layouts. It /// provides default implementations for the asynchronous versions of /// GetPage and ComputePageCount. /// public abstract class DocumentPaginator { //------------------------------------------------------------------- // // Public Methods // //------------------------------------------------------------------- #region Public Methods ////// Retrieves the DocumentPage for the given page number. PageNumber /// is zero-based. /// /// Page number. ////// Returns DocumentPage.Missing if the given page does not exist. /// ////// Multiple requests for the same page number may return the same /// object (this is implementation specific). /// ////// Throws ArgumentOutOfRangeException if PageNumber is negative. /// public abstract DocumentPage GetPage(int pageNumber); ////// Async version of /// Page number. ////// /// Throws ArgumentOutOfRangeException if PageNumber is negative. /// public virtual void GetPageAsync(int pageNumber) { GetPageAsync(pageNumber, null); } ////// Async version of /// Page number. /// Unique identifier for the asynchronous task. ////// /// Throws ArgumentOutOfRangeException if PageNumber is negative. /// public virtual void GetPageAsync(int pageNumber, object userState) { DocumentPage page; // Page number cannot be negative. if (pageNumber < 0) { throw new ArgumentOutOfRangeException("pageNumber", SR.Get(SRID.PaginatorNegativePageNumber)); } page = GetPage(pageNumber); OnGetPageCompleted(new GetPageCompletedEventArgs(page, pageNumber, null, false, userState)); } ////// Computes the number of pages of content. IsPageCountValid will be /// True immediately after this is called. /// ////// If content is modified or PageSize is changed (or any other change /// that causes a repagination) after this method is called, /// IsPageCountValid will likely revert to False. /// public virtual void ComputePageCount() { // Force pagination of entire content. GetPage(int.MaxValue); } ////// Async version of public virtual void ComputePageCountAsync() { ComputePageCountAsync(null); } ////// /// Async version of /// Unique identifier for the asynchronous task. public virtual void ComputePageCountAsync(object userState) { ComputePageCount(); OnComputePageCountCompleted(new AsyncCompletedEventArgs(null, false, userState)); } ////// /// Cancels all asynchronous calls made with the given userState. /// If userState is NULL, all asynchronous calls are cancelled. /// /// Unique identifier for the asynchronous task. public virtual void CancelAsync(object userState) { } #endregion Public Methods //-------------------------------------------------------------------- // // Public Properties // //------------------------------------------------------------------- #region Public Properties ////// Whether PageCount is currently valid. If False, then the value of /// PageCount is the number of pages that have currently been formatted. /// ////// This value may revert to False after being True, in cases where /// PageSize or content changes, forcing a repagination. /// public abstract bool IsPageCountValid { get; } ////// If IsPageCountValid is True, this value is the number of pages /// of content. If False, this is the number of pages that have /// currently been formatted. /// ////// Value may change depending upon changes in PageSize or content changes. /// public abstract int PageCount { get; } ////// The suggested size for formatting pages. /// ////// Note that the paginator may override the specified page size. Users /// should check DocumentPage.Size. /// public abstract Size PageSize { get; set; } ////// A pointer back to the element being paginated. /// public abstract IDocumentPaginatorSource Source { get; } #endregion Public Properties //-------------------------------------------------------------------- // // Public Events // //-------------------------------------------------------------------- #region Public Events ////// Fired when a GetPageAsync call has completed. /// public event GetPageCompletedEventHandler GetPageCompleted; ////// Fired when a ComputePageCountAsync call has completed. /// public event AsyncCompletedEventHandler ComputePageCountCompleted; ////// Fired when one of the properties of a DocumentPage changes. /// Affected pages must be re-fetched if currently used. /// ////// Existing DocumentPage objects may be destroyed when this /// event is fired. /// public event PagesChangedEventHandler PagesChanged; #endregion Public Events //------------------------------------------------------------------- // // Protected Methods // //-------------------------------------------------------------------- #region Protected Methods ////// Override for subclasses that wish to add logic when this event is fired. /// /// Event arguments for the GetPageCompleted event. protected virtual void OnGetPageCompleted(GetPageCompletedEventArgs e) { if (this.GetPageCompleted != null) { this.GetPageCompleted(this, e); } } ////// Override for subclasses that wish to add logic when this event is fired. /// /// Event arguments for the ComputePageCountCompleted event. protected virtual void OnComputePageCountCompleted(AsyncCompletedEventArgs e) { if (this.ComputePageCountCompleted != null) { this.ComputePageCountCompleted(this, e); } } ////// Override for subclasses that wish to add logic when this event is fired. /// /// Event arguments for the PagesChanged event. protected virtual void OnPagesChanged(PagesChangedEventArgs e) { if (this.PagesChanged != null) { this.PagesChanged(this, e); } } #endregion Protected Methods } } // 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. // // File: DocumentPaginator.cs // // Description: This is the abstract base class for all paginating layouts. // It provides default implementations for the asynchronous // versions of GetPage and ComputePageCount. // // History: // 08/29/2005 : grzegorz - created. // //--------------------------------------------------------------------------- using System.ComponentModel; // AsyncCompletedEventArgs using System.Windows.Media; // Visual using MS.Internal.PresentationCore; // SR, SRID namespace System.Windows.Documents { ////// This is the abstract base class for all paginating layouts. It /// provides default implementations for the asynchronous versions of /// GetPage and ComputePageCount. /// public abstract class DocumentPaginator { //------------------------------------------------------------------- // // Public Methods // //------------------------------------------------------------------- #region Public Methods ////// Retrieves the DocumentPage for the given page number. PageNumber /// is zero-based. /// /// Page number. ////// Returns DocumentPage.Missing if the given page does not exist. /// ////// Multiple requests for the same page number may return the same /// object (this is implementation specific). /// ////// Throws ArgumentOutOfRangeException if PageNumber is negative. /// public abstract DocumentPage GetPage(int pageNumber); ////// Async version of /// Page number. ////// /// Throws ArgumentOutOfRangeException if PageNumber is negative. /// public virtual void GetPageAsync(int pageNumber) { GetPageAsync(pageNumber, null); } ////// Async version of /// Page number. /// Unique identifier for the asynchronous task. ////// /// Throws ArgumentOutOfRangeException if PageNumber is negative. /// public virtual void GetPageAsync(int pageNumber, object userState) { DocumentPage page; // Page number cannot be negative. if (pageNumber < 0) { throw new ArgumentOutOfRangeException("pageNumber", SR.Get(SRID.PaginatorNegativePageNumber)); } page = GetPage(pageNumber); OnGetPageCompleted(new GetPageCompletedEventArgs(page, pageNumber, null, false, userState)); } ////// Computes the number of pages of content. IsPageCountValid will be /// True immediately after this is called. /// ////// If content is modified or PageSize is changed (or any other change /// that causes a repagination) after this method is called, /// IsPageCountValid will likely revert to False. /// public virtual void ComputePageCount() { // Force pagination of entire content. GetPage(int.MaxValue); } ////// Async version of public virtual void ComputePageCountAsync() { ComputePageCountAsync(null); } ////// /// Async version of /// Unique identifier for the asynchronous task. public virtual void ComputePageCountAsync(object userState) { ComputePageCount(); OnComputePageCountCompleted(new AsyncCompletedEventArgs(null, false, userState)); } ////// /// Cancels all asynchronous calls made with the given userState. /// If userState is NULL, all asynchronous calls are cancelled. /// /// Unique identifier for the asynchronous task. public virtual void CancelAsync(object userState) { } #endregion Public Methods //-------------------------------------------------------------------- // // Public Properties // //------------------------------------------------------------------- #region Public Properties ////// Whether PageCount is currently valid. If False, then the value of /// PageCount is the number of pages that have currently been formatted. /// ////// This value may revert to False after being True, in cases where /// PageSize or content changes, forcing a repagination. /// public abstract bool IsPageCountValid { get; } ////// If IsPageCountValid is True, this value is the number of pages /// of content. If False, this is the number of pages that have /// currently been formatted. /// ////// Value may change depending upon changes in PageSize or content changes. /// public abstract int PageCount { get; } ////// The suggested size for formatting pages. /// ////// Note that the paginator may override the specified page size. Users /// should check DocumentPage.Size. /// public abstract Size PageSize { get; set; } ////// A pointer back to the element being paginated. /// public abstract IDocumentPaginatorSource Source { get; } #endregion Public Properties //-------------------------------------------------------------------- // // Public Events // //-------------------------------------------------------------------- #region Public Events ////// Fired when a GetPageAsync call has completed. /// public event GetPageCompletedEventHandler GetPageCompleted; ////// Fired when a ComputePageCountAsync call has completed. /// public event AsyncCompletedEventHandler ComputePageCountCompleted; ////// Fired when one of the properties of a DocumentPage changes. /// Affected pages must be re-fetched if currently used. /// ////// Existing DocumentPage objects may be destroyed when this /// event is fired. /// public event PagesChangedEventHandler PagesChanged; #endregion Public Events //------------------------------------------------------------------- // // Protected Methods // //-------------------------------------------------------------------- #region Protected Methods ////// Override for subclasses that wish to add logic when this event is fired. /// /// Event arguments for the GetPageCompleted event. protected virtual void OnGetPageCompleted(GetPageCompletedEventArgs e) { if (this.GetPageCompleted != null) { this.GetPageCompleted(this, e); } } ////// Override for subclasses that wish to add logic when this event is fired. /// /// Event arguments for the ComputePageCountCompleted event. protected virtual void OnComputePageCountCompleted(AsyncCompletedEventArgs e) { if (this.ComputePageCountCompleted != null) { this.ComputePageCountCompleted(this, e); } } ////// Override for subclasses that wish to add logic when this event is fired. /// /// Event arguments for the PagesChanged event. protected virtual void OnPagesChanged(PagesChangedEventArgs e) { if (this.PagesChanged != null) { this.PagesChanged(this, e); } } #endregion Protected Methods } } // 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
- StringExpressionSet.cs
- WsatExtendedInformation.cs
- HttpApplication.cs
- DetailsViewUpdateEventArgs.cs
- NamedPipeAppDomainProtocolHandler.cs
- RequestCachePolicy.cs
- AuthenticationService.cs
- DbProviderManifest.cs
- VisualStyleElement.cs
- TrackingProfileCache.cs
- FontInfo.cs
- DesignerForm.cs
- DrawingGroupDrawingContext.cs
- ConstraintStruct.cs
- DesignerAdapterUtil.cs
- TextBoxBase.cs
- WebControlAdapter.cs
- Vector3DCollectionValueSerializer.cs
- ProfilePropertySettings.cs
- SqlErrorCollection.cs
- MessagePropertyVariants.cs
- NamespaceEmitter.cs
- RemoteCryptoTokenProvider.cs
- BaseParser.cs
- ControllableStoryboardAction.cs
- Preprocessor.cs
- ExpressionPrinter.cs
- ServiceThrottlingBehavior.cs
- ComboBoxItem.cs
- GeneralTransform.cs
- SessionSwitchEventArgs.cs
- FileUtil.cs
- CodeSnippetTypeMember.cs
- SmiEventStream.cs
- ToolStripLocationCancelEventArgs.cs
- Rss20ItemFormatter.cs
- EdmItemCollection.cs
- ListControlDataBindingHandler.cs
- XmlComment.cs
- PerformanceCounterCategory.cs
- ProfileParameter.cs
- PenCursorManager.cs
- ObjectAnimationBase.cs
- SqlStatistics.cs
- AutomationPatternInfo.cs
- GeneralTransform2DTo3D.cs
- X509InitiatorCertificateClientElement.cs
- LocalizationCodeDomSerializer.cs
- DispatcherExceptionFilterEventArgs.cs
- PropertyIdentifier.cs
- Win32PrintDialog.cs
- StorageRoot.cs
- ContainerParaClient.cs
- RenamedEventArgs.cs
- DataColumnChangeEvent.cs
- followingsibling.cs
- MessageRpc.cs
- TitleStyle.cs
- BatchServiceHost.cs
- FontFamily.cs
- Control.cs
- FormViewUpdatedEventArgs.cs
- DbConnectionInternal.cs
- __Error.cs
- XmlQueryRuntime.cs
- CreateUserWizard.cs
- ObjectDataSourceEventArgs.cs
- BatchServiceHost.cs
- GeometryConverter.cs
- MobileRedirect.cs
- DiscoveryInnerClientAdhocCD1.cs
- ItemList.cs
- IdentityValidationException.cs
- SqlExpander.cs
- XmlMapping.cs
- SrgsGrammar.cs
- XslException.cs
- _NtlmClient.cs
- RouteValueDictionary.cs
- TerminateSequence.cs
- OleDbPermission.cs
- TreePrinter.cs
- SerializerProvider.cs
- StandardCommands.cs
- XmlSchemaProviderAttribute.cs
- Geometry.cs
- ContentElement.cs
- QilPatternFactory.cs
- LockCookie.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- XmlSchemaChoice.cs
- ProxyDataContractResolver.cs
- TTSEngineTypes.cs
- DataGridColumnFloatingHeader.cs
- ellipse.cs
- _AuthenticationState.cs
- RowsCopiedEventArgs.cs
- CatalogPart.cs
- DocumentXmlWriter.cs
- ApplicationManager.cs