public AssetBrowserViewModel(string rootPath, Framework framework) { var rootFolder = new AssetFolder(rootPath, framework, this.thumbnailMgr); AssetFolders = new List<AssetFolder>(1) { rootFolder }; ShownAssets = new ObservableCollection<Asset>(); AssetFolders.ForEach((f) => AddToShownAssets(f)); // Type filters AssetTypeFilters = framework.AssetManager.AllAssetTypes .Select((type) => new AssetTypeFilter() { Type = type, Name = type.Name, IsChecked = false }).ToList(); AssetTypeFilters.Insert(0, new AssetTypeFilter() { Name = "All", IsChecked = true }); AssetTypeFilters.ForEach((f) => f.PropertyChanged += (o, e) => { if (e.PropertyName == "IsChecked") { AssetTypeFilter filter = o as AssetTypeFilter; if (filter.Name == "All" && filter.IsChecked == true) { AssetTypeFilters.Where((f2) => f2.Name != "All").ToList() .ForEach((f3) => f3.IsChecked = false); } else if (filter.Name != "All" && filter.IsChecked == true) { AssetTypeFilters.Find((f2) => f2.Name == "All").IsChecked = false; } UpdateShownAssetsView(); } }); // Register all assets to service (for global access) AssetService.SetAssetFolders(AssetFolders); }
private static void CategorizeAssets(AssetFolder assetFolder) { assetFolder.Assets.ForEach((asset) => { if (asset as TextureAsset != null) TextureAssets.Add(asset as TextureAsset); else if (asset as ShaderAsset != null) ShaderAssets.Add(asset as ShaderAsset); else if (asset as FontAsset != null) FontAssets.Add(asset as FontAsset); }); assetFolder.ChildFolders.ForEach((af) => CategorizeAssets(af)); }
public void AssetFolder_Constructor_Test() { var folder = new AssetFolder(Path.Combine(RenderSettings.MediaPath, @"Test"), Framework, new ThumbnailManagerMock()); Assert.IsTrue(folder.FullPath.EndsWith(@"Test")); Assert.AreEqual("Test", folder.Name); Assert.AreEqual(1, folder.ChildFolders.Count); Assert.IsTrue(folder.Assets.Count > 0); Assert.AreEqual(0, folder.Assets.Count((a) => a.Name == @"Test\Dummy.xxx")); Assert.AreEqual(1, folder.Assets.Count((a) => a.Name == @"Test\explosion_30_128.tga")); var subFolder = folder.ChildFolders[0]; Assert.AreEqual("SubFolder", subFolder.Name); Assert.AreEqual(0, subFolder.ChildFolders.Count); Assert.AreEqual(1, subFolder.Assets.Count); Assert.AreEqual(@"Test\SubFolder\mountains_back.jpg", subFolder.Assets[0].Name); }
public void SelectFolder(AssetFolder folder, bool clear) { if (clear) { this.selectedFolders.ForEach((f) => f.IsSelected = false); this.selectedFolders.Clear(); } folder.IsSelected = true; this.selectedFolders.Add(folder); ShownAssets.Clear(); this.selectedFolders.ForEach((f) => AddToShownAssets(f)); }
private void AddToShownAssets(AssetFolder folder) { folder.Assets.ForEach((asset) => { if (ShownAssets.Contains(asset) == false) ShownAssets.Add(asset); }); folder.ChildFolders.ForEach((f) => AddToShownAssets(f)); }