Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / MS / Internal / documents / Application / DocumentApplicationJournalEntry.cs / 1 / DocumentApplicationJournalEntry.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Attached to custom journal entries created for changes in the DocumentApplication's // UI state. // // History: // 06/24/2005 - JeremyNS created // //--------------------------------------------------------------------------- using System; using System.Runtime.Serialization; using System.Security; using System.Security.Permissions; using System.Diagnostics; using System.Windows; using System.Windows.Documents; using System.Windows.Navigation; using System.Windows.Controls; namespace MS.Internal.Documents.Application { ////// DocumentApplicationJournalEntry is not a real journal entry, just the CustomContentState /// attached to one. It wraps a DocumentApplicationState object, which is the actual view state. /// The split is needed because PresentationUI cannot access internal Framework classes and methods. /// [Serializable] internal sealed class DocumentApplicationJournalEntry : System.Windows.Navigation.CustomContentState { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- ////// Constructs a DocumentApplicationJournalEntry /// /// State of the DocumentApplication to journal /// Name of the journal entry to display in the UI. /// If this is null it will default to the URI source. public DocumentApplicationJournalEntry(object state, string name) { Invariant.Assert(state is DocumentApplicationState, "state should be of type DocumentApplicationState"); // Store parameters locally. _state = state; _displayName = name; } public DocumentApplicationJournalEntry(object state): this(state, null) { } //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- ////// Used to reset the UI to state of this entry /// /// NavigationService currently running /// Navigation direction ////// Critical: set_StoredDocumentApplicationState is defined in a non-APTCA assembly. /// TreatAsSafe: call to set_StoredDocumentApplicationState does not entail any risk. /// [SecurityCritical, SecurityTreatAsSafe] public override void Replay(NavigationService navigationService, NavigationMode mode) { ContentControl navigator = (ContentControl)navigationService.INavigatorHost; // Find a reference to the DocumentViewer hosted in the NavigationWindow // On initial history navigation in the browser, the window's layout may not have been // done yet. ApplyTemplate() causes the viewer to be created. navigator.ApplyTemplate(); DocumentApplicationDocumentViewer docViewer = navigator.Template.FindName( "PUIDocumentApplicationDocumentViewer", navigator) as DocumentApplicationDocumentViewer; Debug.Assert(docViewer != null, "PUIDocumentApplicationDocumentViewer not found."); if (docViewer != null) { // Set the new state on the DocumentViewer if (_state is DocumentApplicationState) { docViewer.StoredDocumentApplicationState = (DocumentApplicationState)_state; } // Check that a Document exists. if (navigationService.Content != null) { IDocumentPaginatorSource document = navigationService.Content as IDocumentPaginatorSource; // If the document has already been paginated (could happen in the // case of a fragment navigation), then set the DocumentViewer to the // new state that was set. if ((document != null) && (document.DocumentPaginator.IsPageCountValid)) { docViewer.SetUIToStoredState(); } } } } public override string JournalEntryName { get { return _displayName; } } //------------------------------------------------------ // // Private Fields. // //------------------------------------------------------ // The DocumentApplicationState has been weakly-typed to avoid PresentationFramework // having a type dependency on PresentationUI. The perf impact of the weak // typed variables in this case was determined to be much less than forcing the load // of a new assembly when Assembly.GetTypes was called on PresentationFramework. private object _state; // DocumentApplicationState private string _displayName; } } // 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: Attached to custom journal entries created for changes in the DocumentApplication's // UI state. // // History: // 06/24/2005 - JeremyNS created // //--------------------------------------------------------------------------- using System; using System.Runtime.Serialization; using System.Security; using System.Security.Permissions; using System.Diagnostics; using System.Windows; using System.Windows.Documents; using System.Windows.Navigation; using System.Windows.Controls; namespace MS.Internal.Documents.Application { ////// DocumentApplicationJournalEntry is not a real journal entry, just the CustomContentState /// attached to one. It wraps a DocumentApplicationState object, which is the actual view state. /// The split is needed because PresentationUI cannot access internal Framework classes and methods. /// [Serializable] internal sealed class DocumentApplicationJournalEntry : System.Windows.Navigation.CustomContentState { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- ////// Constructs a DocumentApplicationJournalEntry /// /// State of the DocumentApplication to journal /// Name of the journal entry to display in the UI. /// If this is null it will default to the URI source. public DocumentApplicationJournalEntry(object state, string name) { Invariant.Assert(state is DocumentApplicationState, "state should be of type DocumentApplicationState"); // Store parameters locally. _state = state; _displayName = name; } public DocumentApplicationJournalEntry(object state): this(state, null) { } //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- ////// Used to reset the UI to state of this entry /// /// NavigationService currently running /// Navigation direction ////// Critical: set_StoredDocumentApplicationState is defined in a non-APTCA assembly. /// TreatAsSafe: call to set_StoredDocumentApplicationState does not entail any risk. /// [SecurityCritical, SecurityTreatAsSafe] public override void Replay(NavigationService navigationService, NavigationMode mode) { ContentControl navigator = (ContentControl)navigationService.INavigatorHost; // Find a reference to the DocumentViewer hosted in the NavigationWindow // On initial history navigation in the browser, the window's layout may not have been // done yet. ApplyTemplate() causes the viewer to be created. navigator.ApplyTemplate(); DocumentApplicationDocumentViewer docViewer = navigator.Template.FindName( "PUIDocumentApplicationDocumentViewer", navigator) as DocumentApplicationDocumentViewer; Debug.Assert(docViewer != null, "PUIDocumentApplicationDocumentViewer not found."); if (docViewer != null) { // Set the new state on the DocumentViewer if (_state is DocumentApplicationState) { docViewer.StoredDocumentApplicationState = (DocumentApplicationState)_state; } // Check that a Document exists. if (navigationService.Content != null) { IDocumentPaginatorSource document = navigationService.Content as IDocumentPaginatorSource; // If the document has already been paginated (could happen in the // case of a fragment navigation), then set the DocumentViewer to the // new state that was set. if ((document != null) && (document.DocumentPaginator.IsPageCountValid)) { docViewer.SetUIToStoredState(); } } } } public override string JournalEntryName { get { return _displayName; } } //------------------------------------------------------ // // Private Fields. // //------------------------------------------------------ // The DocumentApplicationState has been weakly-typed to avoid PresentationFramework // having a type dependency on PresentationUI. The perf impact of the weak // typed variables in this case was determined to be much less than forcing the load // of a new assembly when Assembly.GetTypes was called on PresentationFramework. private object _state; // DocumentApplicationState private string _displayName; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextTreeDeleteContentUndoUnit.cs
- ReferenceConverter.cs
- NativeActivityFaultContext.cs
- SchemaNames.cs
- CapabilitiesRule.cs
- ObjectDataSource.cs
- Interlocked.cs
- DropDownList.cs
- ListenerElementsCollection.cs
- RegionInfo.cs
- ProviderIncompatibleException.cs
- ThumbAutomationPeer.cs
- CapacityStreamGeometryContext.cs
- SHA1.cs
- TextEditorParagraphs.cs
- VariantWrapper.cs
- XmlSchemaParticle.cs
- DefaultWorkflowSchedulerService.cs
- SystemDiagnosticsSection.cs
- LambdaCompiler.Lambda.cs
- PrtCap_Public_Simple.cs
- DesignTableCollection.cs
- ConfigurationFileMap.cs
- DelegateTypeInfo.cs
- MSAAWinEventWrap.cs
- XmlSchema.cs
- ContentPlaceHolder.cs
- ExpandableObjectConverter.cs
- ActivityXamlServices.cs
- RadioButtonRenderer.cs
- UserPreferenceChangedEventArgs.cs
- AffineTransform3D.cs
- ScriptHandlerFactory.cs
- XmlSchemaObjectCollection.cs
- PeerCollaboration.cs
- KernelTypeValidation.cs
- CapabilitiesRule.cs
- GeometryModel3D.cs
- BitSet.cs
- UriTemplateClientFormatter.cs
- MinimizableAttributeTypeConverter.cs
- MSG.cs
- Error.cs
- CurrencyManager.cs
- HGlobalSafeHandle.cs
- GeometryValueSerializer.cs
- OutOfProcStateClientManager.cs
- SocketAddress.cs
- EntityDataSourceView.cs
- XmlNode.cs
- ThaiBuddhistCalendar.cs
- DateTimeParse.cs
- XmlHierarchicalDataSourceView.cs
- ServerValidateEventArgs.cs
- OleDbParameterCollection.cs
- SmiEventSink_Default.cs
- CreateRefExpr.cs
- ObjectDataSourceFilteringEventArgs.cs
- ProtocolViolationException.cs
- AlignmentXValidation.cs
- TableLayoutPanelResizeGlyph.cs
- TextDecorationCollectionConverter.cs
- SQLDateTime.cs
- DoubleKeyFrameCollection.cs
- ExtendedPropertyCollection.cs
- ConnectionStringsExpressionBuilder.cs
- DataGridViewRowCollection.cs
- SortDescription.cs
- SinglePhaseEnlistment.cs
- TextCharacters.cs
- UInt32Storage.cs
- StringPropertyBuilder.cs
- TypeListConverter.cs
- LicFileLicenseProvider.cs
- SeekStoryboard.cs
- TableLayoutColumnStyleCollection.cs
- InkSerializer.cs
- ExpandableObjectConverter.cs
- InboundActivityHelper.cs
- PathStreamGeometryContext.cs
- ErrorFormatterPage.cs
- Wizard.cs
- XNodeNavigator.cs
- QueryContinueDragEventArgs.cs
- PartialClassGenerationTaskInternal.cs
- DataPager.cs
- BuildResult.cs
- DbConnectionPoolIdentity.cs
- WebServiceFaultDesigner.cs
- XmlnsCache.cs
- CatalogZoneBase.cs
- VirtualDirectoryMappingCollection.cs
- DateTimeFormatInfo.cs
- PerspectiveCamera.cs
- DataException.cs
- _HTTPDateParse.cs
- SslStream.cs
- ConnectorSelectionGlyph.cs
- SqlUDTStorage.cs
- OleDbMetaDataFactory.cs