aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/Properties/AssemblyInfo.cs
blob: 462c7e2849a791b92dad8926be17be1c1f97fbab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;

[assembly: AssemblyTitle("Tango - Scripting IDE Application")]
[assembly: ComVisible(false)]
[assembly: AssemblyVersion("2.0.36.1608")]


[assembly: ThemeInfo(
    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
                                     //(used if a resource is not found in the page,
                                     // or application resource dictionaries)
    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
                                              //(used if a resource is not found in the page,
                                              // app, or any theme specific resource dictionaries)
)]
f0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
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
    {
        #region properties
        private static Dictionary<String, BitmapSource> _imageCache;
        public string FilePath { get; set; }

        public string WorkingFolder => Path.GetDirectoryName(FilePath);

        public string Name => Path.GetFileNameWithoutExtension(FilePath);

        public abstract BitmapSource Image { get; }

        public ObservableCollection<IProjectItem> Items { get; set; }
        public ObservableCollection<ISolutionItemCommand> Commands { get; set; }
        #endregion

        #region constructors
        static Project()
        {
            _imageCache = new Dictionary<string, BitmapSource>();
        }
        
        public Project()
        {
            Items = new ObservableCollection<IProjectItem>();
            Commands = new ObservableCollection<ISolutionItemCommand>
            {
                new SolutionItemCommand(BuildProject) { Name = "Build", Image= GetImage(@"Images/BuildSolution_16x.png") },
                new SolutionItemCommand(SetStartUpProject) { Name = "Set as StartUp Project" , Image= GetImage(@"Images/Settings_Inverse_16x.png")},
                new SolutionItemCommand(Remove) { Name = "Remove" , Image= GetImage(@"Images/deletered_16.png")},
                new SolutionItemCommand(Rename) { Name = "Rename", Image= GetImage(@"Images/Rename_16x.png") },
                new SolutionItemCommand(OpenFolderInFileExplorer) { Name = "Open Folder In File Explorer", Image= GetImage(@"Images/Open_16x.png") },
                new SolutionItemCommand()
                {
                    Name = "Add...",
                    Commands = new ObservableCollection<ISolutionItemCommand>
                    {
                        new SolutionItemCommand(AddNewScript) { Name = "Add New Script" },
                        new SolutionItemCommand(AddExistingScript) { Name = "Add Existing Script" },
                    }
                }
            };
        }
        #endregion

       

        #region Commands
        private void BuildProject()
        {

        }
        private void SetStartUpProject()
        {

        }
        private void Remove()
        {

        }
        private void Rename()
        {

        }
        private void OpenFolderInFileExplorer()
        {

        }
        /// <summary>
        /// Adds a new script file of type IProjectItem to the current project.
        /// </summary>
        private void AddNewScript()
        {

        }
        /// <summary>
        /// Adds the existing script file to the current project.
        /// </summary>
        private void AddExistingScript()
        {

        }
        #endregion

        #region Build_Run
        public abstract Task Build();
        public abstract Task Run();
        #endregion

        #region generic_functions 
        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;
        #endregion
    }
}