public DocumentEventHandler(
     IDocumentLocator locator,
     IDocumentFormatter formatter)
 {
     this.locator   = locator;
     this.formatter = formatter;
 }
Beispiel #2
0
 public IDocumentContext CreateDefaultContext(IDocumentLocator documentLocator)
 {
     if (this.defaultProjectContext == null)
     {
         this.defaultProjectContext = (IProjectContext) new DefaultProjectContext(this.platform);
     }
     return((IDocumentContext) new DocumentContext(this.defaultProjectContext, documentLocator));
 }
Beispiel #3
0
 public IDocumentContext CreateSystemThemeContext(IDocumentLocator documentLocator)
 {
     if (this.systemThemeContext == null)
     {
         SystemThemeAssemblies.LoadAssemblies();
         this.systemThemeContext = (IProjectContext) new SystemThemeContext(this.platform, SystemThemeAssemblies.ThemeAssemblyReferences);
     }
     return((IDocumentContext) new DocumentContext(this.systemThemeContext, documentLocator));
 }
        private ThemeContentProvider.SystemThemeContentProvider GetCachedThemeContent(Dictionary <ThemeContentProvider.PlatformSpecificDocumentReference, ThemeContentProvider.SystemThemeContentProvider> themeCache, ThemeManager manager, IProjectContext projectContext, DocumentReference reference, IAssembly themeAssembly, string themeAssemblyPath, ITextBufferService textBufferService)
        {
            ThemeContentProvider.PlatformSpecificDocumentReference key = new ThemeContentProvider.PlatformSpecificDocumentReference(reference, projectContext != null ? projectContext.TargetFramework : (FrameworkName)null);
            ThemeContentProvider.SystemThemeContentProvider        themeContentProvider;
            if (!themeCache.TryGetValue(key, out themeContentProvider))
            {
                Encoding    encoding;
                ITextBuffer textBuffer = themeAssembly != null?ThemeManager.LoadResource(themeAssembly, themeAssemblyPath, textBufferService, out encoding) : ThemeContentProvider.LoadReference(reference, textBufferService, out encoding);

                IDocumentLocator documentLocator = DocumentReferenceLocator.GetDocumentLocator(reference);
                IDocumentContext userContext     = projectContext == null ? (IDocumentContext)null : (IDocumentContext) new DocumentContext(projectContext, documentLocator);
                XamlDocument     theme           = manager.GetTheme(documentLocator, themeAssembly != null, userContext, textBuffer, encoding);
                if (theme != null)
                {
                    bool flag1 = false;
                    try
                    {
                        if (projectContext != null)
                        {
                            if (!projectContext.IsCapabilitySet(PlatformCapability.IsWpf))
                            {
                                if (themeAssembly != null)
                                {
                                    bool flag2 = false;
                                    foreach (IAssembly assembly in (projectContext.Platform.Metadata as PlatformTypes).DefaultAssemblyReferences)
                                    {
                                        if (assembly == themeAssembly)
                                        {
                                            flag2 = true;
                                            break;
                                        }
                                    }
                                    if (flag2)
                                    {
                                        flag1 = true;
                                        AnimationEditor.ConvertFromToAnimations(theme.RootNode);
                                    }
                                }
                            }
                        }
                    }
                    catch
                    {
                        if (flag1)
                        {
                            theme = manager.GetTheme(documentLocator, themeAssembly != null, userContext, textBuffer, encoding);
                        }
                    }
                    themeContentProvider = new ThemeContentProvider.SystemThemeContentProvider(this.designerContext, theme);
                    themeCache[key]      = themeContentProvider;
                }
            }
            return(themeContentProvider);
        }
        public void OnBeforeSave_Calls_DocumentLocator(
            [Frozen] IDocumentLocator locator,
            DocumentEventHandler sut,
            uint docCookie)
        {
            sut.OnBeforeSave(docCookie);

            locator
            .Received(1)
            .FindDocument(docCookie);
        }
Beispiel #6
0
        public XamlDocument GetTheme(IDocumentLocator documentLocator, bool isFromAssemblyTheme, IDocumentContext userContext, ITextBuffer textBuffer, Encoding encoding)
        {
            XamlDocument xamlDocument = null;

            if (textBuffer != null && (isFromAssemblyTheme || File.Exists(documentLocator.Path)))
            {
                IDocumentContext documentContext = (userContext != null ? userContext : this.ProvideDocumentContext(documentLocator));
                XamlParserResults.Parse(documentContext, PlatformTypes.ResourceDictionary, textBuffer);
                xamlDocument = new XamlDocument(documentContext, PlatformTypes.Object, textBuffer, encoding, new DefaultXamlSerializerFilter());
            }
            return(xamlDocument);
        }
        public void OnBeforeSave_Calls_DocumentFormatter(
            [Frozen] IDocumentLocator locator,
            [Frozen] IDocumentFormatter formatter,
            DocumentEventHandler sut,
            uint docCookie,
            Document document)
        {
            locator
            .FindDocument(docCookie)
            .Returns(document);

            sut.OnBeforeSave(docCookie);

            formatter
            .Received(1)
            .Format(document);
        }
        public static DocumentReference GetDocumentReference(IDocumentLocator documentLocator)
        {
            if (documentLocator == null)
            {
                return((DocumentReference)null);
            }
            DocumentReferenceLocator referenceLocator = documentLocator as DocumentReferenceLocator;

            if (referenceLocator != null)
            {
                return(referenceLocator.DocumentReference);
            }
            IDocument document = documentLocator as IDocument;

            if (document != null)
            {
                return(document.DocumentReference);
            }
            return(DocumentReference.Create(documentLocator.Path));
        }
Beispiel #9
0
 public DocumentContext(IProjectContext projectContext, IDocumentLocator documentLocator, bool isLooseXaml)
 {
     this.documentLocator = documentLocator;
     this.isLooseXaml     = isLooseXaml;
     this.projectContext  = projectContext;
 }
 public IProjectDocument GetDocument(IDocumentLocator documentReference)
 {
     throw new NotImplementedException();
 }
Beispiel #11
0
 public abstract string MakeResourceReference(string resourceReference, IDocumentLocator referringDocument);
Beispiel #12
0
 public abstract IProjectDocument GetDocument(IDocumentLocator documentLocator);
 public static DocumentContext CreateDocumentContext(IProject project, IProjectContext projectContext, IDocumentLocator documentLocator)
 {
     return(DocumentContextHelper.CreateDocumentContext(project, projectContext, documentLocator, false));
 }
        public static DocumentContext CreateDocumentContext(IProject project, IProjectContext projectContext, IDocumentLocator documentLocator, bool isLooseXaml)
        {
            string path = documentLocator != null ? documentLocator.Path : (string)null;

            if (DocumentContextHelper.GetDesignDataMode(project, path) == DesignDataMode.Reflectable && !(projectContext is TypeReflectingProjectContext))
            {
                projectContext = (IProjectContext) new TypeReflectingProjectContext(projectContext);
            }
            return(new DocumentContext(projectContext, documentLocator, isLooseXaml));
        }
 public string MakeResourceReference(string resourceReference, IDocumentLocator referringDocument)
 {
     return(this.actualProjectContext.MakeResourceReference(resourceReference, referringDocument));
 }
 public string MakeResourceReference(string resourceReference, IDocumentLocator referringDocument)
 {
     throw new NotImplementedException();
 }
Beispiel #17
0
 public override IProjectDocument GetDocument(IDocumentLocator documentLocator)
 {
     return(this.sourceContext.GetDocument(documentLocator));
 }
 public IProjectDocument GetDocument(IDocumentLocator documentLocator)
 {
     return(this.actualProjectContext.GetDocument(documentLocator));
 }
Beispiel #19
0
        public string MakeResourceReference(string resourceReference, bool useProjectRelativeSyntax)
        {
            IDocumentLocator referringDocument = !useProjectRelativeSyntax ? this.DocumentLocator : (IDocumentLocator)null;

            return(this.projectContext.MakeResourceReference(resourceReference, referringDocument));
        }
Beispiel #20
0
 public override string MakeResourceReference(string resourceReference, IDocumentLocator referringDocument)
 {
     return((string)null);
 }
Beispiel #21
0
 public override IProjectDocument GetDocument(IDocumentLocator documentLocator)
 {
     return((IProjectDocument)null);
 }
 public IProjectDocument GetDocument(IDocumentLocator documentReference)
 {
     return(this.sourceContext.GetDocument(documentReference));
 }
Beispiel #23
0
 public override string MakeResourceReference(string resourceReference, IDocumentLocator referringDocument)
 {
     return(this.sourceContext.MakeResourceReference(resourceReference, referringDocument));
 }
Beispiel #24
0
 public DocumentContext(IProjectContext projectContext, IDocumentLocator documentLocator)
     : this(projectContext, documentLocator, false)
 {
 }
Beispiel #25
0
 protected virtual IDocumentContext ProvideDocumentContext(IDocumentLocator documentLocator)
 {
     return(this.Platform.PlatformHost.CreateDefaultContext(documentLocator));
 }