using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Tango.Scripting { public class Script { public String Name { get; set; } public String File { get; set; } public GlobalObject GlobalObject { get; set; } public List ReferenceAssemblies { get; private set; } public List Imports { get; private set; } public String Code { get; set; } public String WorkingFolder { get; set; } public String EntryPoint { get; set; } public ApartmentState ApartmentState { get; set; } public Script() { ReferenceAssemblies = new List(); Imports = new List(); GlobalObject = new GlobalObject(); File = "Script.cs"; Name = "Script.cs"; WorkingFolder = Environment.CurrentDirectory; ApartmentState = ApartmentState.MTA; } } }
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Imaging;
using Tango.Core;
using Tango.SharedUI.Helpers;

namespace Tango.Scripting.IDE
{
    public abstract class ProjectItem : ExtendedObject, IProjectItem
    {
        private static Dictionary<String, BitmapSource> _imageCache;

        static ProjectItem()
        {
            _imageCache = new Dictionary<string, BitmapSource>();
        }

        public string Name { get; set; }
        public ObservableCollection<IProjectItem> Items { get; set; }
        public ObservableCollection<ISolutionItemCommand> Commands { get ; set; }

        public ProjectItem():base()
        {
            Items = new ObservableCollection<IProjectItem>();
        }

        public abstract BitmapSource Image { get; }

        public abstract FrameworkElement OnGetView();

        private FrameworkElement GetView()
        {
            return OnGetView();
        }

        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 abstract bool CanOpen { get; }
        public FrameworkElement View => GetView();
    }
}