private void RebuildCategories() { this.RootCategory = AssetCategory.CreateRootCategory(); IXamlProject xamlProject = this.ActiveProject as IXamlProject; if (xamlProject != null && xamlProject.ProjectContext != null) { AssetTypeHelper typeHelper = new AssetTypeHelper(xamlProject.ProjectContext, this.Library.DesignerContext.PrototypingService); foreach (PresetAssetCategory category in Enum.GetValues(typeof(PresetAssetCategory))) { AssetCategoryPath path = (AssetCategoryPath)PresetAssetCategoryPath.FromPreset(category); if (this.FilterCategory(path, typeHelper)) { this.RootCategory.CreateCategory(path); } } } this.TreeFlattener.RebuildList(false); if (this.Categories.Count == 1) { this.Categories[0].IsExpanded = true; } this.OnPropertyChanged("Categories"); this.OnPropertyChanged("RootItem"); this.assetLibraryDamages &= ~AssetLibraryDamages.Categories; this.assetLibraryDamages |= AssetLibraryDamages.Assets; this.assetLibraryDamages |= AssetLibraryDamages.AssetCategories; this.assetLibraryDamages |= AssetLibraryDamages.CategoryCounts; }
public string MakeSourceReference(string fullPath) { DocumentReference reference = DocumentReference.Create(fullPath); if (this.sceneViewModel != null) { string str = this.sceneViewModel.Document.DocumentReference.GetRelativePath(reference); if (str != null && this.sceneViewModel.ProjectContext.IsCapabilitySet(PlatformCapability.ShouldSanitizeResourceReferences)) { str = str.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); } return(str); } string str1 = this.ActiveProject.DocumentReference.GetRelativePath(reference); if (str1 == null) { return((string)null); } IXamlProject xamlProject = this.ActiveProject as IXamlProject; if (xamlProject != null) { ITypeResolver typeResolver = (ITypeResolver)ProjectContext.GetProjectContext(xamlProject.ProjectContext); if (typeResolver != null && typeResolver.IsCapabilitySet(PlatformCapability.ShouldSanitizeResourceReferences)) { str1 = str1.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); } } return(str1); }
private void OnProjectClosed(object sender, ProjectEventArgs e) { IXamlProject xamlProject = e.Project as IXamlProject; if (xamlProject == null || xamlProject.ProjectContext == null || this.activeProject != xamlProject.ProjectContext) { return; } this.OnProjectDeactivating(); this.cachedProjectProviders.Remove(xamlProject.ProjectContext); }
private IFontResolver GetFontResolverForComponent(string component) { IProjectManager projectManager = (IProjectManager)this.serviceProvider.GetService(typeof(IProjectManager)); if (projectManager != null && projectManager.CurrentSolution != null) { foreach (IProject project in projectManager.CurrentSolution.Projects) { IXamlProject xamlProject = project as IXamlProject; if (xamlProject != null && project.TargetAssembly != null && string.Equals(project.TargetAssembly.Name, component, StringComparison.OrdinalIgnoreCase)) { return(xamlProject.ProjectContext.FontResolver); } } } return((IFontResolver)null); }
public StyleAsset FindActiveUserThemeAsset(ITypeId type) { if (this.DesignerContext.ActiveProject != null && this.ActiveUserThemeProvider != null && this.ActiveUserThemeProvider.CanInsert(this.DesignerContext.ActiveProject)) { IXamlProject xamlProject = this.DesignerContext.ActiveProject as IXamlProject; if (xamlProject == null || xamlProject.ProjectContext == null) { return((StyleAsset)null); } IType type1 = xamlProject.ProjectContext.ResolveType(type); if (type1 != null) { return(StyleAsset.Find((IEnumerable)this.ActiveUserThemeProvider.ThemeAssets, (ITypeId)type1)); } } return((StyleAsset)null); }
protected override sealed void Work() { IProjectDocument projectDocument = this.ProjectDocuments[this.currentViewIndex]; if (projectDocument == null) { return; } bool flag = false; if (projectDocument.Document == null) { IXamlProject xamlProject = this.designerContext.ProjectManager.CurrentSolution.FindProjectContainingItem(DocumentReference.Create(projectDocument.Path)) as IXamlProject; if (xamlProject == null) { return; } try { projectDocument = xamlProject.ProjectContext.OpenDocument(projectDocument.Path); } catch (NotSupportedException ex) { return; } flag = true; if (projectDocument == null) { return; } } SceneDocument document = projectDocument.Document as SceneDocument; if (document == null || !document.IsEditable) { return; } this.ProcessDocument(document); if (!flag) { return; } this.CloseDocument(document); }
private DocumentReference DetermineOutOfBrowserPrivateLocation(IProject sourceProject, Uri outOfBrowserQueryUri, out string applicationIdentifier) { DocumentReference documentReference = (DocumentReference)null; applicationIdentifier = (string)null; IXamlProject xamlProject = sourceProject as IXamlProject; IProjectContext projectContext = xamlProject != null ? xamlProject.ProjectContext : (IProjectContext)null; if (projectContext != null && projectContext.Platform != null) { string deploymentLocation; applicationIdentifier = projectContext.Platform.GetDeploymentInformation(outOfBrowserQueryUri, out deploymentLocation); if (deploymentLocation != null) { documentReference = DocumentReference.Create(deploymentLocation); } } return(documentReference); }
private void RebuildAssets() { this.assets.Clear(); IXamlProject xamlProject = this.ActiveProject as IXamlProject; if (xamlProject != null) { AssetTypeHelper typeHelper = new AssetTypeHelper(xamlProject.ProjectContext, this.Library.DesignerContext.PrototypingService); foreach (Asset asset in this.Library.Assets) { if (this.PrefilterAsset(asset, typeHelper)) { if (asset.Categories == null || this.NeedRebuildAssetCategories) { asset.UpdateOnProject(this.ActiveProject, typeHelper); } if (this.FilterAsset(asset, typeHelper)) { bool flag = false; foreach (AssetCategoryPath path in (IEnumerable <AssetCategoryPath>)asset.Categories) { if (this.FilterCategory(path, typeHelper)) { flag = true; this.RootCategory.CreateCategory(path); } } if (flag) { this.assets.Add(asset); } } } } } this.assetLibraryDamages &= ~AssetLibraryDamages.Assets; this.assetLibraryDamages &= ~AssetLibraryDamages.AssetCategories; this.assetLibraryDamages |= AssetLibraryDamages.CategoryCounts; }
bool IUserThemeProvider.CanInsert(IProject project) { IXamlProject xamlProject = project as IXamlProject; if (xamlProject != null) { if (this.NeedsUpdate) { this.Update(); } Asset asset = Enumerable.FirstOrDefault <Asset>((IEnumerable <Asset>) this.Assets); if (asset != null) { AssetTypeHelper assetTypeHelper = new AssetTypeHelper(xamlProject.ProjectContext, (IPrototypingService)null); if (asset.TargetType == null || assetTypeHelper.IsTypeSupported(asset.TargetType, true)) { return(true); } } } return(false); }
private void UpdateProviders(IProject project) { IXamlProject xamlProject = project as IXamlProject; IProjectContext projectContext = xamlProject == null ? (IProjectContext)null : xamlProject.ProjectContext; IPlatform platform = projectContext == null ? (IPlatform)null : projectContext.Platform; if (platform == null) { return; } IEnumerable <AssetProvider> items = (IEnumerable <AssetProvider>)platform.Metadata.GetPlatformCache(DesignSurfacePlatformCaches.UserThemeAssetAggregatorProviderCache); this.ClearProviders(); if (items != null) { EnumerableExtensions.ForEach <AssetProvider>(items, (Action <AssetProvider>)(provider => this.AddProvider(provider))); } else { this.CreateProviders(platform); platform.Metadata.SetPlatformCache(DesignSurfacePlatformCaches.UserThemeAssetAggregatorProviderCache, (object)Enumerable.ToArray <AssetProvider>((IEnumerable <AssetProvider>) this.AssetProviders)); } }