Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / documents / Application / DocumentApplicationJournalEntry.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolBarTray.cs
- SqlCacheDependencySection.cs
- itemelement.cs
- CodeAssignStatement.cs
- SHA256Managed.cs
- MaterialGroup.cs
- AbandonedMutexException.cs
- SQLDecimalStorage.cs
- ThreadInterruptedException.cs
- GeneralTransform3DTo2DTo3D.cs
- StateMachineWorkflowDesigner.cs
- TransportConfigurationTypeElement.cs
- GeneratedCodeAttribute.cs
- _NegoStream.cs
- MetaTableHelper.cs
- ServicePoint.cs
- BitmapEffectInputData.cs
- FieldReference.cs
- _PooledStream.cs
- TextRunCacheImp.cs
- OleAutBinder.cs
- XdrBuilder.cs
- RemoteWebConfigurationHost.cs
- HtmlImage.cs
- IgnoreSectionHandler.cs
- CodeGotoStatement.cs
- LinqDataSourceView.cs
- PrimitiveXmlSerializers.cs
- SqlUtils.cs
- DataGridViewCellParsingEventArgs.cs
- UnaryNode.cs
- DecimalFormatter.cs
- SoapIncludeAttribute.cs
- DecoderFallback.cs
- wgx_commands.cs
- ArgumentDirectionHelper.cs
- TemplateControlParser.cs
- DataGridViewAccessibleObject.cs
- TextTreeUndoUnit.cs
- SqlConnection.cs
- COAUTHINFO.cs
- WizardStepBase.cs
- SafeCryptHandles.cs
- util.cs
- PublishLicense.cs
- RequestTimeoutManager.cs
- TransactionFlowBindingElement.cs
- CapabilitiesSection.cs
- Effect.cs
- PostBackOptions.cs
- HotSpot.cs
- JsonCollectionDataContract.cs
- SqlDataSourceFilteringEventArgs.cs
- SpotLight.cs
- HtmlUtf8RawTextWriter.cs
- ISCIIEncoding.cs
- ScriptingWebServicesSectionGroup.cs
- NumberFunctions.cs
- Menu.cs
- QueryContinueDragEventArgs.cs
- ToolStripItemImageRenderEventArgs.cs
- XmlUTF8TextReader.cs
- NeedSkipTokenVisitor.cs
- SecurityTokenSerializer.cs
- BuilderPropertyEntry.cs
- BamlLocalizabilityResolver.cs
- ConfigurationValues.cs
- TextModifier.cs
- MetadataCacheItem.cs
- QueuePathEditor.cs
- EventToken.cs
- AssociationSet.cs
- Stylus.cs
- TypeElement.cs
- ButtonBase.cs
- EntityDataSourceDataSelectionPanel.cs
- ToolStripSystemRenderer.cs
- NativeCppClassAttribute.cs
- DataListItemEventArgs.cs
- ColumnMapCopier.cs
- SafeProcessHandle.cs
- COMException.cs
- FormViewRow.cs
- HttpCapabilitiesSectionHandler.cs
- UpdatePanel.cs
- AnnotationResourceCollection.cs
- CapabilitiesAssignment.cs
- CompilerWrapper.cs
- PrePostDescendentsWalker.cs
- BuildProviderCollection.cs
- ImageMapEventArgs.cs
- ComUdtElement.cs
- PrintDialogException.cs
- CalendarItem.cs
- SslStream.cs
- HostProtectionPermission.cs
- CodeGeneratorOptions.cs
- TableAdapterManagerMethodGenerator.cs
- SecurityRuntime.cs
- DataGridViewCellMouseEventArgs.cs