using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media.Imaging; using Tango.SharedUI.Helpers; namespace Tango.Scripting.IDE { public abstract class Project : IProject { private static Dictionary _imageCache; static Project() { _imageCache = new Dictionary(); } public string FilePath { get; set; } public string WorkingFolder => Path.GetDirectoryName(FilePath); public string Name => Path.GetFileNameWithoutExtension(FilePath); public abstract BitmapSource Image { get; } public ObservableCollection Items { get; set; } public Project() { Items = new ObservableCollection(); } public abstract Task Build(); public abstract Task Run(); protected static BitmapSource GetImage(String name) { if (_imageCache.ContainsKey(name)) { return _imageCache[name]; } else { var image = ResourceHelper.GetImageFromResources(name); _imageCache.Add(name, image); return image; } } public bool CanOpen => false; } }