aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE')
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Controls/SolutionItemControl.cs52
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml12
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs28
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs (renamed from Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IScriptFile.cs)7
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProject.cs (renamed from Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IScriptProject.cs)13
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectItem.cs18
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs21
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ISolutionItem.cs18
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpProject.pngbin0 -> 200 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.pngbin0 -> 238 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/Reference.pngbin0 -> 141 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/StubProject.pngbin0 -> 392 bytes
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Project.cs56
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItem.cs57
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs30
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssembliesItem.cs27
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssemblyItem.cs24
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml13
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml.cs29
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs45
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs43
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/CSharpProject.cs14
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/StubProject.cs25
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/UnitTestProject.cs24
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Resources.xaml125
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml71
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs97
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Solution.cs19
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/StubsProject.cs17
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj53
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Generic.xaml20
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/app.config43
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/packages.config1
33 files changed, 959 insertions, 43 deletions
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Controls/SolutionItemControl.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Controls/SolutionItemControl.cs
new file mode 100644
index 000000000..ad6c65f22
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Controls/SolutionItemControl.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.Scripting.IDE.Controls
+{
+ public class SolutionItemControl : Control
+ {
+ public ISolutionItem SolutionItem
+ {
+ get { return (ISolutionItem)GetValue(SolutionItemProperty); }
+ set { SetValue(SolutionItemProperty, value); }
+ }
+ public static readonly DependencyProperty SolutionItemProperty =
+ DependencyProperty.Register("SolutionItem", typeof(ISolutionItem), typeof(SolutionItemControl), new PropertyMetadata(null));
+
+ public ICommand OpenCommand
+ {
+ get { return (ICommand)GetValue(OpenCommandProperty); }
+ set { SetValue(OpenCommandProperty, value); }
+ }
+ public static readonly DependencyProperty OpenCommandProperty =
+ DependencyProperty.Register("OpenCommand", typeof(ICommand), typeof(SolutionItemControl), new PropertyMetadata(null));
+
+ static SolutionItemControl()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(SolutionItemControl), new FrameworkPropertyMetadata(typeof(SolutionItemControl)));
+ }
+
+ public SolutionItemControl()
+ {
+ PreviewMouseDoubleClick += (_, __) =>
+ {
+ if (SolutionItem.CanOpen)
+ {
+ OpenCommand?.Execute(SolutionItem);
+ }
+ };
+ }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml
new file mode 100644
index 000000000..7942a7165
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml
@@ -0,0 +1,12 @@
+<UserControl x:Class="Tango.Scripting.IDE.Dialogs.NewProjectDialog"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.Scripting.IDE.Dialogs"
+ mc:Ignorable="d"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <Grid>
+
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs
new file mode 100644
index 000000000..376190e3a
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.Scripting.IDE.Dialogs
+{
+ /// <summary>
+ /// Interaction logic for NewProjectDialog.xaml
+ /// </summary>
+ public partial class NewProjectDialog : UserControl
+ {
+ public NewProjectDialog()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IScriptFile.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs
index f26a0064f..3c25e70f3 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IScriptFile.cs
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs
@@ -3,11 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.SharedUI;
-namespace Tango.Scripting.IDE
+namespace Tango.Scripting.IDE.Dialogs
{
- public interface IScriptFile
+ public class NewProjectDialogVM : ViewModel
{
- String Name { get; set; }
+
}
}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IScriptProject.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProject.cs
index f68114e8b..18d95a7d8 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IScriptProject.cs
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProject.cs
@@ -4,17 +4,20 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Windows.Media.Imaging;
namespace Tango.Scripting.IDE
{
- public interface IScriptProject
+ public interface IProject : ISolutionItem
{
- String Name { get; set; }
-
String FilePath { get; set; }
- ObservableCollection<ReferenceAssembly> References { get; set; }
+ String WorkingFolder { get; }
+
+ ObservableCollection<IProjectItem> Items { get; set; }
+
+ Task Build();
- ObservableCollection<IScriptFile> Items { get; set; }
+ Task Run();
}
}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectItem.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectItem.cs
new file mode 100644
index 000000000..0d34cf2e6
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectItem.cs
@@ -0,0 +1,18 @@
+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;
+
+namespace Tango.Scripting.IDE
+{
+ public interface IProjectItem : ISolutionItem
+ {
+ ObservableCollection<IProjectItem> Items { get; set; }
+
+ FrameworkElement View { get; }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs
new file mode 100644
index 000000000..ed9ff51a8
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProjectType.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+
+namespace Tango.Scripting.IDE
+{
+ public interface IProjectType
+ {
+ IProject NewProject(String projectPath);
+
+ String Name { get; }
+
+ String Description { get; }
+
+ BitmapSource Image { get; }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ISolutionItem.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ISolutionItem.cs
new file mode 100644
index 000000000..74bdab066
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ISolutionItem.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media.Imaging;
+
+namespace Tango.Scripting.IDE
+{
+ public interface ISolutionItem
+ {
+ String Name { get; }
+
+ BitmapSource Image { get; }
+
+ bool CanOpen { get; }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpProject.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpProject.png
new file mode 100644
index 000000000..5b0f29960
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpProject.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.png
new file mode 100644
index 000000000..37e4e1727
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/Reference.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/Reference.png
new file mode 100644
index 000000000..fa5430947
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/Reference.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/StubProject.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/StubProject.png
new file mode 100644
index 000000000..cd0ad20ad
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/StubProject.png
Binary files differ
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Project.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Project.cs
new file mode 100644
index 000000000..5a950d2c7
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Project.cs
@@ -0,0 +1,56 @@
+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<String, BitmapSource> _imageCache;
+
+ static Project()
+ {
+ _imageCache = new Dictionary<string, BitmapSource>();
+ }
+
+ 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 Project()
+ {
+ Items = new ObservableCollection<IProjectItem>();
+ }
+
+ 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;
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItem.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItem.cs
new file mode 100644
index 000000000..8adc26dc7
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItem.cs
@@ -0,0 +1,57 @@
+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 ProjectItem()
+ {
+ 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();
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs
new file mode 100644
index 000000000..cf4811047
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+using Tango.Scripting.IDE.ProjectItemsViews;
+
+namespace Tango.Scripting.IDE.ProjectItems
+{
+ public class CSharpScriptItem : ProjectItem
+ {
+ public override BitmapSource Image => GetImage("Images/CSharpScriptItem.png");
+
+ private String _code;
+ public String Code
+ {
+ get { return _code; }
+ set { _code = value; RaisePropertyChangedAuto(); }
+ }
+
+ public override bool CanOpen => true;
+
+ public override FrameworkElement OnGetView()
+ {
+ return new CSharpScriptItemView(this);
+ }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssembliesItem.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssembliesItem.cs
new file mode 100644
index 000000000..0e66fd241
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssembliesItem.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+
+namespace Tango.Scripting.IDE.ProjectItems
+{
+ public class ReferenceAssembliesItem : ProjectItem
+ {
+ public ReferenceAssembliesItem()
+ {
+ Name = "References";
+ }
+
+ public override BitmapSource Image => GetImage("Images/Reference.png");
+
+ public override FrameworkElement OnGetView()
+ {
+ return null;
+ }
+
+ public override bool CanOpen => false;
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssemblyItem.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssemblyItem.cs
new file mode 100644
index 000000000..e9cd1e8f2
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssemblyItem.cs
@@ -0,0 +1,24 @@
+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;
+
+namespace Tango.Scripting.IDE.ProjectItems
+{
+ public class ReferenceAssemblyItem : ProjectItem
+ {
+ public String Path { get; set; }
+ public override BitmapSource Image => GetImage("Images/Reference.png");
+
+ public override FrameworkElement OnGetView()
+ {
+ return null;
+ }
+
+ public override bool CanOpen => false;
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml
new file mode 100644
index 000000000..682956205
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml
@@ -0,0 +1,13 @@
+<UserControl x:Class="Tango.Scripting.IDE.ProjectItemsViews.CSharpScriptItemView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.Scripting.IDE.ProjectItemsViews"
+ xmlns:editors="clr-namespace:Tango.Scripting.Editors;assembly=Tango.Scripting.Editors"
+ mc:Ignorable="d"
+ d:DesignHeight="450" d:DesignWidth="800">
+ <Grid>
+ <editors:ScriptEditor />
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml.cs
new file mode 100644
index 000000000..34c604b83
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.Scripting.IDE.ProjectItems;
+
+namespace Tango.Scripting.IDE.ProjectItemsViews
+{
+ /// <summary>
+ /// Interaction logic for CSharpScriptItemView.xaml
+ /// </summary>
+ public partial class CSharpScriptItemView : UserControl
+ {
+ public CSharpScriptItemView(CSharpScriptItem scriptItem)
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs
new file mode 100644
index 000000000..e5947a38e
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+using Tango.Scripting.IDE.ProjectItems;
+using Tango.Scripting.IDE.Projects;
+
+namespace Tango.Scripting.IDE.ProjectTypes
+{
+ public class StubProjectType : IProjectType
+ {
+ public IProject NewProject(string projectPath)
+ {
+ StubProject project = new StubProject();
+
+ project.FilePath = projectPath;
+
+ var referenceAssembliesItem = new ReferenceAssembliesItem();
+
+ referenceAssembliesItem.Items.Add(new ReferenceAssemblyItem()
+ {
+ Path = "mscorelib.dll",
+ Name = "System.dll",
+ });
+ referenceAssembliesItem.Items.Add(new ReferenceAssemblyItem()
+ {
+ Path = "System.Core.dll",
+ Name = "System.Core.dll",
+ });
+
+ project.Items.Add(referenceAssembliesItem);
+
+ project.Items.Add(new CSharpScriptItem() { Name = "main.csx" });
+
+ return project;
+ }
+
+ public string Name => "Unit Test Project";
+ public string Description => "Create a unit test project template.";
+ public BitmapSource Image { get; }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs
new file mode 100644
index 000000000..4519e5aca
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+using Tango.Scripting.IDE.ProjectItems;
+using Tango.Scripting.IDE.Projects;
+
+namespace Tango.Scripting.IDE.ProjectTypes
+{
+ public class UnitTestProjectType : IProjectType
+ {
+ public IProject NewProject(string projectPath)
+ {
+ UnitTestProject project = new UnitTestProject();
+
+ project.FilePath = projectPath;
+
+ var referenceAssembliesItem = new ReferenceAssembliesItem();
+
+ referenceAssembliesItem.Items.Add(new ReferenceAssemblyItem()
+ {
+ Path = "mscorelib.dll",
+ Name = "System.dll",
+ });
+ referenceAssembliesItem.Items.Add(new ReferenceAssemblyItem()
+ {
+ Path = "System.Core.dll",
+ Name = "System.Core.dll",
+ });
+
+ project.Items.Add(referenceAssembliesItem);
+
+ return project;
+ }
+
+ public string Name => "Unit Test Project";
+ public string Description => "Create a unit test project template.";
+ public BitmapSource Image { get; }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/CSharpProject.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/CSharpProject.cs
new file mode 100644
index 000000000..62e830d06
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/CSharpProject.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.Scripting.IDE.Projects
+{
+ public abstract class CSharpProject : Project
+ {
+
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/StubProject.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/StubProject.cs
new file mode 100644
index 000000000..bc915fa77
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/StubProject.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media.Imaging;
+
+namespace Tango.Scripting.IDE.Projects
+{
+ public class StubProject : CSharpProject
+ {
+ public override BitmapSource Image => GetImage("Images/StubProject.png");
+
+ public override Task Build()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override Task Run()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/UnitTestProject.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/UnitTestProject.cs
new file mode 100644
index 000000000..e5510ad45
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Projects/UnitTestProject.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media.Imaging;
+
+namespace Tango.Scripting.IDE.Projects
+{
+ public class UnitTestProject : CSharpProject
+ {
+ public override BitmapSource Image { get; }
+
+ public override Task Build()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override Task Run()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Resources.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Resources.xaml
index 3393e6888..ef5d1b599 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Resources.xaml
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Resources.xaml
@@ -1,8 +1,127 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:options="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
+ xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:fa="http://schemas.fontawesome.io/icons/"
xmlns:local="clr-namespace:Tango.Scripting.IDE">
- <Color x:Key="IdeBackgroundColor">#202020</Color>
- <SolidColorBrush x:Key="IdeBackgroundBrush" Color="{StaticResource IdeBackgroundColor}"></SolidColorBrush>
+ <Color x:Key="IdeDarkBackgroundColor">#202020</Color>
+ <Color x:Key="IdeMidBackgroundColor">#252526</Color>
+ <Color x:Key="IdeLightBackgroundColor">#2D2D30</Color>
+ <Color x:Key="IdeBorderColor">#676767</Color>
+ <Color x:Key="IdeAccentColor">#007ACC</Color>
+ <Color x:Key="IdeLightForegroundColor">#007ACC</Color>
+ <SolidColorBrush x:Key="IdeDarkBackgroundBrush" Color="{StaticResource IdeDarkBackgroundColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="IdeLightBackgroundBrush" Color="{StaticResource IdeLightBackgroundColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="IdeMidBackgroundBrush" Color="{StaticResource IdeMidBackgroundColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="IdeBorderBrush" Color="{StaticResource IdeBorderColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="IdeAccentBrush" Color="{StaticResource IdeAccentColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="IdeLightForegroundBrush" Color="{StaticResource IdeLightForegroundColor}"></SolidColorBrush>
-</ResourceDictionary> \ No newline at end of file
+ <!-- Background -->
+ <SolidColorBrush x:Key="Background" Color="#1C1C1C" options:Freeze="True" />
+ <SolidColorBrush x:Key="LightBackground" Color="#2D2D30" options:Freeze="True" />
+
+ <Color x:Key="AccentColor">#2D2D30</Color>
+ <Color x:Key="BlackColor">#FFFFFFFF</Color>
+ <Color x:Key="WhiteColor">#2D2D30</Color>
+
+
+
+
+
+
+
+ <!--Override Mahapps Colors-->
+
+ <!-- re-set brushes too -->
+ <SolidColorBrush x:Key="HighlightBrush" Color="{StaticResource HighlightColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="AccentColorBrush" Color="{StaticResource AccentColor}" />
+ <SolidColorBrush x:Key="AccentColorBrush2" Color="{StaticResource IdeAccentColor}" />
+ <SolidColorBrush x:Key="AccentColorBrush3" Color="Transparent" />
+ <SolidColorBrush x:Key="AccentColorBrush4" Color="{StaticResource IdeAccentColor}" />
+
+ <SolidColorBrush x:Key="WindowTitleColorBrush" Color="{StaticResource AccentColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="NonActiveWindowTitleColorBrush" Color="#808080" options:Freeze="True" />
+ <SolidColorBrush x:Key="NonActiveBorderColorBrush" Color="#808080" options:Freeze="True" />
+
+ <SolidColorBrush x:Key="BlackBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="TextBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="LabelTextBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="BlackColorBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="TextBoxMouseOverInnerBorderBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="TextBoxFocusBorderBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="ButtonMouseOverBorderBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="ButtonMouseOverInnerBorderBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="ComboBoxMouseOverBorderBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="ComboBoxMouseOverInnerBorderBrush" Color="{StaticResource BlackColor}" options:Freeze="True" />
+
+ <SolidColorBrush x:Key="ControlBackgroundBrush" Color="{StaticResource WhiteColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="WhiteBrush" Color="{StaticResource WhiteColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="WhiteColorBrush" Color="{StaticResource WhiteColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="DisabledWhiteBrush" Color="{StaticResource WhiteColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="WindowBackgroundBrush" Color="{StaticResource WhiteColor}" options:Freeze="True" />
+
+ <SolidColorBrush x:Key="{x:Static SystemColors.WindowBrushKey}" Color="{StaticResource WhiteColor}" options:Freeze="True" />
+ <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="{StaticResource BlackColor}" options:Freeze="True" />
+
+ <LinearGradientBrush x:Key="CheckBoxBackgroundBrush" StartPoint="0.5,0" EndPoint="0.5,1" options:Freeze="True">
+ <GradientStop Offset="0" Color="{StaticResource Gray7}" />
+ <GradientStop Offset="1" Color="{StaticResource WhiteColor}" />
+ </LinearGradientBrush>
+
+ <!-- Foreground -->
+ <SolidColorBrush x:Key="Foreground" Color="#FFFFFF" options:Freeze="True" />
+ <SolidColorBrush x:Key="WindowTitleForeground" Color="#999988" options:Freeze="True" />
+
+ <!-- General -->
+ <SolidColorBrush x:Key="BackgroundHighlighted" Color="#54545C" options:Freeze="True" />
+ <SolidColorBrush x:Key="BorderBrushHighlighted" Color="#6A6A75" options:Freeze="True" />
+ <SolidColorBrush x:Key="BackgroundSelected" Color="#007ACC" options:Freeze="True" />
+ <SolidColorBrush x:Key="BorderBrushSelected" Color="#1C97EA" options:Freeze="True" />
+ <SolidColorBrush x:Key="BackgroundNormal" Color="#3F3F46" options:Freeze="True" />
+ <SolidColorBrush x:Key="BorderBrushNormal" Color="#54545C" options:Freeze="True" />
+ <SolidColorBrush x:Key="WindowGlowBrush" Color="#017ACC" options:Freeze="True" />
+
+ <!-- Text Box -->
+ <SolidColorBrush x:Key="TextBoxBackground" Color="#333337" options:Freeze="True" />
+ <SolidColorBrush x:Key="TextBoxBackgroundSelected" Color="#3F3F46" options:Freeze="True" />
+
+ <!-- Search Text Box -->
+ <SolidColorBrush x:Key="SearchTextForeground" Color="#999999" options:Freeze="True" />
+
+ <!-- Link Button -->
+ <SolidColorBrush x:Key="LinkButtonForeground" Color="#1297FB" options:Freeze="True" />
+ <SolidColorBrush x:Key="LinkButtonForegroundHighlighted" Color="#55AAFF" options:Freeze="True" />
+
+ <!-- Close Button -->
+ <SolidColorBrush x:Key="CloseButtonBackgroundHighlighted" Color="#39ADFB" options:Freeze="True" />
+ <SolidColorBrush x:Key="CloseButtonBackgroundPressed" Color="#084E7D" options:Freeze="True" />
+ <SolidColorBrush x:Key="CloseButtonStroke" Color="#AAFFFFFF" options:Freeze="True" />
+ <SolidColorBrush x:Key="CloseButtonStrokeHighlighted" Color="#FFFFFF" options:Freeze="True" />
+
+ <!-- Menu -->
+ <SolidColorBrush x:Key="MenuSeparatorBorderBrush" Color="#333337" options:Freeze="True" />
+ <SolidColorBrush x:Key="MenuItemHighlightedBackground" Color="#3E3E40" options:Freeze="True" />
+ <SolidColorBrush x:Key="SubmenuItemBackground" Color="#1B1B1C" options:Freeze="True" />
+ <SolidColorBrush x:Key="SubmenuItemBackgroundHighlighted" Color="#333334" options:Freeze="True" />
+ <SolidColorBrush x:Key="MenuDisabledForeground" Color="#656565" options:Freeze="True" />
+
+ <!-- Scroll Bar -->
+ <SolidColorBrush x:Key="ScrollBarPageButtonBackgroundHighlighted" Color="#05FFFFFF" options:Freeze="True" />
+
+ <!-- Notification Button -->
+ <SolidColorBrush x:Key="NotificationButtonForegroundBrush" Color="#000000" />
+ <SolidColorBrush x:Key="NotificationButtonBackgroundBrush" Color="#FFCC00" />
+ <SolidColorBrush x:Key="NotificationButtonBackgroundOverBrush" Color="#FFDF66" />
+ <SolidColorBrush x:Key="NotificationButtonBackgroundPressedBrush" Color="#C59E00" />
+
+ <!-- Quick Launch TextBox -->
+ <SolidColorBrush x:Key="QuickLaunchTextBoxBorderBrush" Color="#3F3F46" />
+ <SolidColorBrush x:Key="QuickLaunchTextBoxFocusedBorderBrush" Color="#007ACC" />
+
+ <SolidColorBrush x:Key="HoverBackgroundBrush" Color="Red" options:Freeze="True" />
+
+</ResourceDictionary>
+ \ No newline at end of file
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml
index 3636089da..7fc5bf930 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml
@@ -3,9 +3,13 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
+ xmlns:fa="http://schemas.fontawesome.io/icons/"
+ xmlns:controls="clr-namespace:Tango.Scripting.IDE.Controls"
xmlns:local="clr-namespace:Tango.Scripting.IDE"
mc:Ignorable="d"
- d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:ScriptIDEViewVM, IsDesignTimeCreatable=False}">
+ d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:ScriptIDEViewVM, IsDesignTimeCreatable=False}" x:Name="control">
<UserControl.Resources>
<ResourceDictionary>
@@ -17,6 +21,7 @@
<!-- Accent and AppTheme setting -->
+ <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/FlatButton.xaml" />
@@ -28,7 +33,7 @@
</ResourceDictionary>
</UserControl.Resources>
- <Grid Background="{StaticResource IdeBackgroundBrush}">
+ <Grid Background="{StaticResource IdeLightBackgroundBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
@@ -58,7 +63,7 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" MinWidth="100" />
<ColumnDefinition Width="5"/>
- <ColumnDefinition Width="200" MinWidth="20" />
+ <ColumnDefinition Width="300" MinWidth="20" />
</Grid.ColumnDefinitions>
<Grid>
@@ -69,20 +74,72 @@
</Grid.RowDefinitions>
<Grid>
+ <TabControl ItemsSource="{Binding OpenProjectItems}" SelectedItem="{Binding SelectedProjectItem}">
+ <TabControl.ItemContainerStyle>
+ <Style BasedOn="{StaticResource MetroTabItem}" TargetType="{x:Type TabItem}">
+ <Setter Property="Background" Value="{StaticResource IdeLightBackgroundBrush}"></Setter>
+ <Setter Property="mahapps:ControlsHelper.HeaderFontSize" Value="12"></Setter>
+ <Setter Property="HeaderTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <Border>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="{Binding Name}" Foreground="Gainsboro" VerticalAlignment="Center"></TextBlock>
+ <Button Command="{Binding ElementName=control,Path=DataContext.CloseProjectItemCommand}" CommandParameter="{Binding}" Margin="5 0 0 0" Cursor="Hand" Width="24" Height="24" VerticalAlignment="Center" Style="{DynamicResource MetroCircleButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0">
+ <StackPanel Orientation="Horizontal">
+ <fa:ImageAwesome Width="10" Height="10" Icon="WindowClose" Foreground="Gainsboro"></fa:ImageAwesome>
+ </StackPanel>
+ </Button>
+ </StackPanel>
+ </Border>
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=IsSelected}" Value="True">
+ <Setter Property="Background" Value="#007ACC"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TabControl.ItemContainerStyle>
+ <TabControl.ContentTemplate>
+ <DataTemplate>
+ <ContentPresenter Content="{Binding View}" />
+ </DataTemplate>
+ </TabControl.ContentTemplate>
+ </TabControl>
</Grid>
- <GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="1" Background="Red" />
+ <GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="1" Background="{StaticResource IdeLightBackgroundBrush}" />
- <Grid Grid.Row="2">
+ <Grid Grid.Row="2" Background="{StaticResource IdeMidBackgroundBrush}">
</Grid>
</Grid>
- <GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" Background="Red" />
+ <GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" Background="{StaticResource IdeLightBackgroundBrush}" />
<Grid Grid.Column="2">
-
+ <GroupBox Margin="0" Header="Solution Explorer" BorderThickness="1" BorderBrush="{StaticResource IdeBorderBrush}" mahapps:ControlsHelper.ContentCharacterCasing="Normal">
+ <TreeView ItemsSource="{Binding Solution.Projects}" Background="{StaticResource IdeMidBackgroundBrush}" >
+ <TreeView.ItemContainerStyle>
+ <Style TargetType="TreeViewItem" BasedOn="{StaticResource {x:Type TreeViewItem}}">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ <Style.Triggers>
+ <Trigger Property="IsMouseOver" Value="True">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </TreeView.ItemContainerStyle>
+ <TreeView.ItemTemplate>
+ <HierarchicalDataTemplate ItemsSource="{Binding Path=Items}" DataType="{x:Type local:IProject}">
+ <controls:SolutionItemControl SolutionItem="{Binding}" OpenCommand="{Binding ElementName=control,Path=DataContext.OpenProjectItemCommand}" />
+ </HierarchicalDataTemplate>
+ </TreeView.ItemTemplate>
+ </TreeView>
+ </GroupBox>
</Grid>
</Grid>
</Grid>
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
index 16644b6da..e52b58775 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
@@ -1,19 +1,108 @@
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.Core.Commands;
+using Tango.Scripting.IDE.Projects;
+using Tango.Scripting.IDE.ProjectTypes;
using Tango.SharedUI;
namespace Tango.Scripting.IDE
{
public class ScriptIDEViewVM : ViewModel
{
- private IScriptProject _project;
- public IScriptProject Project
+ private List<IProjectType> _projectTypes;
+
+ #region Properties
+
+ private Solution _solution;
+ public Solution Solution
+ {
+ get { return _solution; }
+ set { _solution = value; RaisePropertyChangedAuto(); }
+ }
+
+ private IProject _selectedProject;
+ public IProject SelectedProject
+ {
+ get { return _selectedProject; }
+ set { _selectedProject = value; RaisePropertyChangedAuto(); }
+ }
+
+ private IProjectItem _selectedProjectItem;
+ public IProjectItem SelectedProjectItem
+ {
+ get { return _selectedProjectItem; }
+ set { _selectedProjectItem = value; RaisePropertyChangedAuto(); }
+ }
+
+ private ObservableCollection<IProjectItem> _openProjectItems;
+ public ObservableCollection<IProjectItem> OpenProjectItems
+ {
+ get { return _openProjectItems; }
+ set { _openProjectItems = value; RaisePropertyChangedAuto(); }
+ }
+
+ #endregion
+
+ #region Commands
+
+ public RelayCommand<IProjectItem> OpenProjectItemCommand { get; set; }
+
+ public RelayCommand<IProjectItem> CloseProjectItemCommand { get; set; }
+
+ #endregion
+
+ #region Constructors
+
+ public ScriptIDEViewVM()
{
- get { return _project; }
- set { _project = value; RaisePropertyChangedAuto(); }
+ _projectTypes = new List<IProjectType>();
+ OpenProjectItems = new ObservableCollection<IProjectItem>();
+
+ RegisterProjectType(new StubProjectType());
+
+ Solution = new Solution();
+ Solution.Projects.Add(_projectTypes.First().NewProject("Test Project.stub"));
+
+ //Init Commands
+ OpenProjectItemCommand = new RelayCommand<IProjectItem>(OpenProjectItem);
+ CloseProjectItemCommand = new RelayCommand<IProjectItem>(CloseProjectItem);
+ }
+
+ #endregion
+
+ #region Public Methods
+
+ private void OpenProjectItem(IProjectItem projectItem)
+ {
+ if (!OpenProjectItems.Contains(projectItem))
+ {
+ OpenProjectItems.Add(projectItem);
+ }
+
+ SelectedProjectItem = projectItem;
+ }
+
+ private void CloseProjectItem(IProjectItem projectItem)
+ {
+ OpenProjectItems.Remove(projectItem);
+
+ SelectedProjectItem = OpenProjectItems.FirstOrDefault();
+ }
+
+ public void RegisterProjectType(IProjectType projectType)
+ {
+ _projectTypes.Add(projectType);
}
+
+ public void UnRegisterProjectItemHandler(IProjectType projectType)
+ {
+ _projectTypes.Remove(projectType);
+ }
+
+ #endregion
}
}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Solution.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Solution.cs
new file mode 100644
index 000000000..eded27413
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Solution.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.Scripting.IDE
+{
+ public class Solution
+ {
+ public ObservableCollection<IProject> Projects { get; set; }
+
+ public Solution()
+ {
+ Projects = new ObservableCollection<IProject>();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/StubsProject.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/StubsProject.cs
deleted file mode 100644
index 88f538e7c..000000000
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/StubsProject.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.Scripting.IDE
-{
- public class StubsProject : IScriptProject
- {
- public string Name { get; set; }
- public string FilePath { get; set; }
- public ObservableCollection<ReferenceAssembly> References { get; set; }
- public ObservableCollection<IScriptFile> Items { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj
index 7c3b47ea6..d3d81640a 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj
@@ -31,6 +31,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="FontAwesome.WPF, Version=4.7.0.37774, Culture=neutral, PublicKeyToken=0758b07a11a4f466, processorArchitecture=MSIL">
+ <HintPath>..\packages\FontAwesome.WPF.4.7.0.9\lib\net40\FontAwesome.WPF.dll</HintPath>
+ </Reference>
<Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
<HintPath>..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
</Reference>
@@ -60,13 +63,41 @@
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
- <Compile Include="IScriptFile.cs" />
- <Compile Include="IScriptProject.cs" />
+ <Compile Include="Controls\SolutionItemControl.cs" />
+ <Compile Include="Dialogs\NewProjectDialog.xaml.cs">
+ <DependentUpon>NewProjectDialog.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\NewProjectDialogVM.cs" />
+ <Compile Include="IProjectType.cs" />
+ <Compile Include="ISolutionItem.cs" />
+ <Compile Include="ProjectItem.cs" />
+ <Compile Include="ProjectItemsViews\CSharpScriptItemView.xaml.cs">
+ <DependentUpon>CSharpScriptItemView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="ProjectItems\CSharpScriptItem.cs" />
+ <Compile Include="ProjectItems\ReferenceAssembliesItem.cs" />
+ <Compile Include="ProjectItems\ReferenceAssemblyItem.cs" />
+ <Compile Include="Projects\CSharpProject.cs" />
+ <Compile Include="IProjectItem.cs" />
+ <Compile Include="IProject.cs" />
+ <Compile Include="Project.cs" />
+ <Compile Include="Projects\UnitTestProject.cs" />
+ <Compile Include="ProjectTypes\StubProjectType.cs" />
+ <Compile Include="ProjectTypes\UnitTestProjectType.cs" />
<Compile Include="ScriptIDEView.xaml.cs">
<DependentUpon>ScriptIDEView.xaml</DependentUpon>
</Compile>
<Compile Include="ScriptIDEViewVM.cs" />
- <Compile Include="StubsProject.cs" />
+ <Compile Include="Solution.cs" />
+ <Compile Include="Projects\StubProject.cs" />
+ <Page Include="Dialogs\NewProjectDialog.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="ProjectItemsViews\CSharpScriptItemView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Resources.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -98,6 +129,7 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
+ <None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
@@ -114,5 +146,20 @@
<Name>Tango.Scripting</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\CSharpScriptItem.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Reference.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\CSharpProject.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\StubProject.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Converters\" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Generic.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Generic.xaml
index d7cedf6c6..643fbf889 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Generic.xaml
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/Generic.xaml
@@ -1,8 +1,26 @@
-<ResourceDictionary
+<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:controls="clr-namespace:Tango.Scripting.IDE.Controls"
xmlns:local="clr-namespace:Tango.Scripting.IDE">
+
+ <Style TargetType="{x:Type controls:SolutionItemControl}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type controls:SolutionItemControl}">
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}">
+ <StackPanel Orientation="Horizontal" Background="Transparent">
+ <Image VerticalAlignment="Center" Width="16" Height="16" Source="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SolutionItem.Image}" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SolutionItem.Name}"></TextBlock>
+ </StackPanel>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
</ResourceDictionary>
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/app.config b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/app.config
new file mode 100644
index 000000000..a00da21b0
--- /dev/null
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/app.config
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/packages.config b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/packages.config
index 07b683c3f..893958c68 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/packages.config
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/packages.config
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
+ <package id="FontAwesome.WPF" version="4.7.0.9" targetFramework="net461" />
<package id="MahApps.Metro" version="1.5.0" targetFramework="net461" />
</packages> \ No newline at end of file