コード例 #1
0
ファイル: AssetView.cs プロジェクト: radtek/Shopdrawing
        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;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 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);
 }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: AssetView.cs プロジェクト: radtek/Shopdrawing
        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;
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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));
            }
        }