From fc8a05358a92cc3c77c5f1e30d536807ef0614fd Mon Sep 17 00:00:00 2001 From: Victoria Plitt Date: Mon, 8 Apr 2019 13:49:55 +0300 Subject: were added scripting projects --- .../Tango.Scripting.IDE/Controls/ErrorData.cs | 54 ++++ .../Controls/SharedResourceDictionary.cs | 55 ++++ .../Controls/SolutionItemControl.cs | 52 +++ .../Tango.Scripting.IDE/Controls/TabConrolClose.cs | 26 ++ .../Converters/LeftMarginMultiplierConverter.cs | 54 ++++ .../Dialogs/AddProjectView.xaml | 130 ++++++++ .../Dialogs/AddProjectView.xaml.cs | 28 ++ .../Dialogs/AddProjectViewVM.cs | 18 ++ .../Dialogs/BaseProjectDialogVM.cs | 107 +++++++ .../Dialogs/NewProjectView.xaml | 139 ++++++++ .../Dialogs/NewProjectView.xaml.cs | 29 ++ .../Dialogs/NewProjectViewVM.cs | 70 ++++ .../Tango.Scripting.IDE/IDEDialogViewModel.cs | 14 + .../Scripting/Tango.Scripting.IDE/IDESettings.cs | 19 ++ .../Scripting/Tango.Scripting.IDE/IDEViewModel.cs | 25 ++ .../Scripting/Tango.Scripting.IDE/IProject.cs | 23 ++ .../Scripting/Tango.Scripting.IDE/IProjectItem.cs | 18 ++ .../Scripting/Tango.Scripting.IDE/IProjectType.cs | 22 ++ .../Scripting/Tango.Scripting.IDE/ISolutionItem.cs | 18 ++ .../Tango.Scripting.IDE/Images/CSharpProject.png | Bin 0 -> 200 bytes .../Images/CSharpScriptItem.png | Bin 0 -> 238 bytes .../Images/CloseDocument_16x.png | Bin 0 -> 273 bytes .../Images/CloseSolution_16x.png | Bin 0 -> 279 bytes .../Tango.Scripting.IDE/Images/FindinFiles_16x.png | Bin 0 -> 420 bytes .../Images/NewFileCollection_16x.png | Bin 0 -> 267 bytes .../Images/NewRelationship_16x.png | Bin 0 -> 248 bytes .../Tango.Scripting.IDE/Images/NewWindow_16x.png | Bin 0 -> 217 bytes .../Tango.Scripting.IDE/Images/OpenFolder_16x.png | Bin 0 -> 336 bytes .../Tango.Scripting.IDE/Images/Pause_16x.png | Bin 0 -> 218 bytes .../Tango.Scripting.IDE/Images/Redo_16x.png | Bin 0 -> 229 bytes .../Tango.Scripting.IDE/Images/Reference.png | Bin 0 -> 141 bytes .../Tango.Scripting.IDE/Images/SaveAll_16x.png | Bin 0 -> 268 bytes .../Tango.Scripting.IDE/Images/SaveClose_16x.png | Bin 0 -> 343 bytes .../Images/SaveStatusBar9_16x.png | Bin 0 -> 239 bytes .../Tango.Scripting.IDE/Images/Save_16x.png | Bin 0 -> 225 bytes .../Tango.Scripting.IDE/Images/StubProject.png | Bin 0 -> 392 bytes .../Tango.Scripting.IDE/Images/Undo_16x.png | Bin 0 -> 237 bytes .../Tango.Scripting.IDE/Images/algorithm.png | Bin 0 -> 1664 bytes .../Images/checklist_white_32.png | Bin 0 -> 1294 bytes .../Tango.Scripting.IDE/Images/clipboard.png | Bin 0 -> 1028 bytes .../Tango.Scripting.IDE/Images/pp_project.png | Bin 0 -> 757 bytes .../Images/redo-arrow-symbol.png | Bin 0 -> 525 bytes .../Images/redo-arrow-symbol1.png | Bin 0 -> 491 bytes .../Scripting/Tango.Scripting.IDE/Images/stop.png | Bin 0 -> 183 bytes .../Images/stub_project_126.png | Bin 0 -> 4406 bytes .../Tango.Scripting.IDE/Images/stub_project_32.png | Bin 0 -> 1793 bytes .../Images/stub_project_whit_32.png | Bin 0 -> 1269 bytes .../Scripting/Tango.Scripting.IDE/Images/test.png | Bin 0 -> 1060 bytes .../Tango.Scripting.IDE/Images/unitTest.png | Bin 0 -> 1965 bytes .../Tango.Scripting.IDE/Images/unitTest_126.png | Bin 0 -> 4060 bytes .../Notifications/DefaultNotificationManager.cs | 94 ++++++ .../Notifications/INotificationManager.cs | 95 ++++++ .../Notifications/ProgressNotificationHandler.cs | 23 ++ .../Scripting/Tango.Scripting.IDE/Project.cs | 56 ++++ .../Scripting/Tango.Scripting.IDE/ProjectItem.cs | 57 ++++ .../ProjectItems/CSharpScriptItem.cs | 30 ++ .../ProjectItems/ReferenceAssembliesItem.cs | 27 ++ .../ProjectItems/ReferenceAssemblyItem.cs | 24 ++ .../ProjectItemsViews/CSharpScriptItemView.xaml | 13 + .../ProjectItemsViews/CSharpScriptItemView.xaml.cs | 29 ++ .../Scripting/Tango.Scripting.IDE/ProjectType.cs | 42 +++ .../ProjectTypes/StubProjectType.cs | 48 +++ .../ProjectTypes/UnitTestProjectType.cs | 46 +++ .../Tango.Scripting.IDE/Projects/CSharpProject.cs | 14 + .../Tango.Scripting.IDE/Projects/StubProject.cs | 25 ++ .../Projects/UnitTestProject.cs | 24 ++ .../Tango.Scripting.IDE/Properties/AssemblyInfo.cs | 19 ++ .../Properties/Resources.Designer.cs | 62 ++++ .../Tango.Scripting.IDE/Properties/Resources.resx | 117 +++++++ .../Properties/Settings.Designer.cs | 30 ++ .../Properties/Settings.settings | 7 + .../Scripting/Tango.Scripting.IDE/Resources.xaml | 127 ++++++++ .../Tango.Scripting.IDE/ScriptIDEView.xaml | 148 +++++++++ .../Tango.Scripting.IDE/ScriptIDEView.xaml.cs | 28 ++ .../Tango.Scripting.IDE/ScriptIDEView2.xaml | 271 ++++++++++++++++ .../Tango.Scripting.IDE/ScriptIDEView2.xaml.cs | 93 ++++++ .../Tango.Scripting.IDE/ScriptIDEViewVM.cs | 191 +++++++++++ .../Scripting/Tango.Scripting.IDE/Solution.cs | 21 ++ .../Tango.Scripting.IDE/Tango.Scripting.IDE.csproj | 308 ++++++++++++++++++ .../Tango.Scripting.IDE/Themes/ButtonStyle.xaml | 81 +++++ .../Tango.Scripting.IDE/Themes/ComboboxStyle.xaml | 200 ++++++++++++ .../Themes/DarkThemesColors.xaml | 100 ++++++ .../Tango.Scripting.IDE/Themes/DataGridStyle.xaml | 248 +++++++++++++++ .../Tango.Scripting.IDE/Themes/Generic.xaml | 36 +++ .../Themes/LightThemesColors.xaml | 15 + .../Tango.Scripting.IDE/Themes/MenuDict.xaml | 229 +++++++++++++ .../Themes/ScrollViewerStyle.xaml | 258 +++++++++++++++ .../Tango.Scripting.IDE/Themes/Shared.xaml | 14 + .../Tango.Scripting.IDE/Themes/TabConrolStyle.xaml | 354 +++++++++++++++++++++ .../Tango.Scripting.IDE/Themes/ToolbarStyle.xaml | 236 ++++++++++++++ .../Tango.Scripting.IDE/Themes/TreeViewItem.xaml | 177 +++++++++++ .../Tango.Scripting.IDE/ViewModelLocator.cs | 26 ++ .../Tango.Scripting.IDE/Windows/DialogWindow.xaml | 28 ++ .../Windows/DialogWindow.xaml.cs | 28 ++ .../Scripting/Tango.Scripting.IDE/app.config | 51 +++ .../Scripting/Tango.Scripting.IDE/packages.config | 7 + 96 files changed, 5058 insertions(+) create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/ErrorData.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/SharedResourceDictionary.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/SolutionItemControl.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/TabConrolClose.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectViewVM.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEDialogViewModel.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDESettings.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEViewModel.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProject.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProjectItem.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProjectType.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ISolutionItem.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CSharpProject.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseDocument_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseSolution_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/FindinFiles_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewFileCollection_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewRelationship_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewWindow_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/OpenFolder_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Pause_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Redo_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Reference.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveAll_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveClose_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveStatusBar9_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Save_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/StubProject.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Undo_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/algorithm.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/checklist_white_32.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/clipboard.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/pp_project.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol1.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stop.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_126.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_32.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_whit_32.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/test.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest_126.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/ProgressNotificationHandler.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItem.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssembliesItem.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssemblyItem.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectType.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Projects/CSharpProject.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Projects/StubProject.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Projects/UnitTestProject.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/AssemblyInfo.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.Designer.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.resx create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.Designer.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.settings create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Resources.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Solution.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ComboboxStyle.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DataGridStyle.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Generic.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/LightThemesColors.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ScrollViewerStyle.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Shared.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TabConrolStyle.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ViewModelLocator.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/app.config create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/packages.config (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.IDE') diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/ErrorData.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/ErrorData.cs new file mode 100644 index 000000000..2dc07ba3f --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/ErrorData.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.Scripting.IDE.Controls +{ + public class ErrorData: ExtendedObject + { + private string _severity; + private string _error; + private string _project; + private string _code; + + public string Description + { + get { return _error; } + set + { + _error = value; + RaisePropertyChangedAuto(); + } + } + public string Severity + { + get { return _severity; } + set + { + _severity = value; + RaisePropertyChangedAuto(); + } + } + public string Project + { + get { return _project; } + set + { + _project = value; + RaisePropertyChangedAuto(); + } + } + public string Code + { + get { return _code; } + set { _code = value; } + } + + public string File { get; set; } + public string Line { get; set; } + public string SuppressionState { get; set; } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/SharedResourceDictionary.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/SharedResourceDictionary.cs new file mode 100644 index 000000000..a163355c4 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/SharedResourceDictionary.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; + +namespace Tango.Scripting.IDE.Controls +{ + + /// + /// The shared resource dictionary is a specialized resource dictionary + /// that loads it content only once. If a second instance with the same source + /// is created, it only merges the resources from the cache. + /// + public class SharedResourceDictionary : ResourceDictionary + { + /// + /// Internal cache of loaded dictionaries + /// + public static Dictionary _sharedDictionaries = + new Dictionary(); + + /// + /// Local member of the source uri + /// + private Uri _sourceUri; + + /// + /// Gets or sets the uniform resource identifier (URI) to load resources from. + /// + public new Uri Source + { + get { return _sourceUri; } + set + { + _sourceUri = value; + + if (!_sharedDictionaries.ContainsKey(value)) + { + // If the dictionary is not yet loaded, load it by setting + // the source of the base class + base.Source = value; + + // add it to the cache + _sharedDictionaries.Add(value, this); + } + else + { + // If the dictionary is already loaded, get it from the cache + MergedDictionaries.Add(_sharedDictionaries[value]); + } + } + } + } +} \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/SolutionItemControl.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/SolutionItemControl.cs new file mode 100644 index 000000000..ad6c65f22 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/Controls/TabConrolClose.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/TabConrolClose.cs new file mode 100644 index 000000000..7130733e5 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Controls/TabConrolClose.cs @@ -0,0 +1,26 @@ +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 TabConrolClose : TabControl + { + static TabConrolClose() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(TabConrolClose), new FrameworkPropertyMetadata(typeof(TabConrolClose))); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs new file mode 100644 index 000000000..2acefc09c --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Globalization; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Media; + +namespace Tango.Scripting.IDE.Converters +{ + public static class TreeViewItemExtensions + { + public static int GetDepth(this TreeViewItem item) + { + TreeViewItem parent; + while ((parent = GetParent(item)) != null) + { + return GetDepth(parent) + 1; + } + return 0; + } + + private static TreeViewItem GetParent(TreeViewItem item) + { + var parent = VisualTreeHelper.GetParent(item); + while (!(parent is TreeViewItem || parent is TreeView)) + { + parent = VisualTreeHelper.GetParent(parent); + } + return parent as TreeViewItem; + } + } + public class LeftMarginMultiplierConverter : IValueConverter + { + public double Length { get; set; } + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var item = value as TreeViewItem; + if (item == null) + return new Thickness(0); + + return new Thickness(Length * item.GetDepth(), 0, 0, 0); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new System.NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml new file mode 100644 index 000000000..1df26b2e6 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name: + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml.cs new file mode 100644 index 000000000..83856f4e7 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.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 +{ + /// + /// Interaction logic for AddProjectControl.xaml + /// + public partial class AddProjectView : UserControl + { + public AddProjectView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectViewVM.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectViewVM.cs new file mode 100644 index 000000000..2d636a6d5 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/AddProjectViewVM.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Dialogs +{ + public class AddProjectViewVM : BaseProjectDialogVM + { + public AddProjectViewVM() : base() + { + Title = "Add Project"; + //ProjectName + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs new file mode 100644 index 000000000..7742a3434 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs @@ -0,0 +1,107 @@ +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.Core.Commands; +using Tango.Scripting.IDE.ProjectTypes; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Dialogs +{ + public class BaseProjectDialogVM : IDEDialogViewModel + { + #region properties + + public ObservableCollection ProjectTypes { get; set; } + + private IProjectType _selectedProjectType = null; + public IProjectType SelectedProjectType + { + get { return _selectedProjectType; } + set + { + _selectedProjectType = value; + RaisePropertyChangedAuto(); + RaisePropertyChanged("LargeImage"); + RaisePropertyChanged("SelectedDescription"); + } + } + private BitmapSource _defaultLargeImage = ProjectType.GetImage("Images/test.png"); + public BitmapSource LargeImage + { + get + { + if (SelectedProjectType != null) + return SelectedProjectType.LargeImage; + else return _defaultLargeImage; + } + } + public string SelectedDescription + { + get + { + if (SelectedProjectType != null) + return SelectedProjectType.Description; + return ""; + } + } + private String _projectName = "App1"; + public String ProjectName + { + get { return _projectName; } + set { _projectName = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + private String _projectLocation; + public String ProjectLocation + { + get { return _projectLocation; } + set { _projectLocation = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + #endregion + + #region constructor + + public BaseProjectDialogVM() : base() + { + ProjectTypes = new ObservableCollection(); + RegisterProjectType(new StubProjectType()); + RegisterProjectType(new UnitTestProjectType()); + + _selectedProjectType = ProjectTypes.FirstOrDefault(); + + string workingDirectory = Environment.CurrentDirectory; + ProjectLocation = Directory.GetParent(workingDirectory).Parent.Parent.FullName; + } + + #endregion + + #region register_project_types + + public void RegisterProjectType(IProjectType projectType) + { + ProjectTypes.Add(projectType); + } + + public void UnRegisterProjectItemHandler(IProjectType projectType) + { + ProjectTypes.Remove(projectType); + } + + #endregion + + #region Override Methods + + protected override bool CanOK() + { + return !String.IsNullOrWhiteSpace(ProjectLocation) && !String.IsNullOrWhiteSpace(ProjectName); + } + + #endregion + + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml new file mode 100644 index 000000000..2a6842745 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name: + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml.cs new file mode 100644 index 000000000..5221146d8 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.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; + +namespace Tango.Scripting.IDE.Dialogs +{ + /// + /// Interaction logic for AddNewControl.xaml + /// + public partial class NewProjectView : UserControl + { + public NewProjectView() + { + InitializeComponent(); + } + + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs new file mode 100644 index 000000000..69cf8034e --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs @@ -0,0 +1,70 @@ +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.Core.Commands; +using Tango.Scripting.IDE.ProjectTypes; +using Tango.SharedUI; +using Microsoft.WindowsAPICodePack.Dialogs; +using Microsoft.Win32; + +namespace Tango.Scripting.IDE.Dialogs +{ + public class NewProjectViewVM : BaseProjectDialogVM + { + /// + /// Gets or sets the last solution locations. + /// + public ObservableCollection LastSolutionPaths { get; set; } + + private String _solutionName = "App1"; + public String SolutionName + { + get { return _solutionName; } + set { _solutionName = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + #region Commands + public RelayCommand BrowseFileCommand { get; set; } + #endregion + + public NewProjectViewVM() : base() + { + Title = "New Project"; + BrowseFileCommand = new RelayCommand(BrowseFile); + } + + public NewProjectViewVM(IEnumerable lastSolutionFolders) : this() + { + LastSolutionPaths = new ObservableCollection(lastSolutionFolders); + ProjectLocation = LastSolutionPaths.FirstOrDefault(); + } + + private void BrowseFile() + { + CommonOpenFileDialog dialog = new CommonOpenFileDialog(); + dialog.InitialDirectory = LastSolutionPaths.LastOrDefault(); + dialog.IsFolderPicker = true; + if (dialog.ShowDialog() == CommonFileDialogResult.Ok) + { + if (Directory.Exists(dialog.FileName) == true) + { + if (false == LastSolutionPaths.Contains(dialog.FileName)) + { + LastSolutionPaths.Add(dialog.FileName); + } + ProjectLocation = dialog.FileName; + } + } + } + + protected override bool CanOK() + { + return base.CanOK() && !String.IsNullOrWhiteSpace(SolutionName); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEDialogViewModel.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEDialogViewModel.cs new file mode 100644 index 000000000..7532581b1 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEDialogViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE +{ + public class IDEDialogViewModel : DialogViewVM + { + public String Title { get; set; } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDESettings.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDESettings.cs new file mode 100644 index 000000000..347b06468 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDESettings.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Settings; + +namespace Tango.Scripting.IDE +{ + public class IDESettings : SettingsBase + { + public List LastSolutionLocations { get; set; } + + public IDESettings() + { + LastSolutionLocations = new List(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEViewModel.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEViewModel.cs new file mode 100644 index 000000000..b2d0b85b5 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDEViewModel.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.Scripting.IDE.Notifications; +using Tango.Settings; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE +{ + public class IDEViewModel : ViewModel + { + public INotificationManager NotificationManager { get; set; } + + public IDESettings Settings { get; set; } + + public IDEViewModel() + { + TangoIOC.Default.Inject(this); + Settings = SettingsManager.Default.GetOrCreate(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProject.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProject.cs new file mode 100644 index 000000000..18d95a7d8 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProject.cs @@ -0,0 +1,23 @@ +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 +{ + public interface IProject : ISolutionItem + { + String FilePath { get; set; } + + String WorkingFolder { get; } + + ObservableCollection Items { get; set; } + + Task Build(); + + Task Run(); + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProjectItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProjectItem.cs new file mode 100644 index 000000000..0d34cf2e6 --- /dev/null +++ b/Software/Visual_Studio/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 Items { get; set; } + + FrameworkElement View { get; } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProjectType.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProjectType.cs new file mode 100644 index 000000000..19a234db3 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IProjectType.cs @@ -0,0 +1,22 @@ +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 SmallImage { get; } + BitmapSource LargeImage { get; } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ISolutionItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ISolutionItem.cs new file mode 100644 index 000000000..74bdab066 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/Images/CSharpProject.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CSharpProject.png new file mode 100644 index 000000000..5b0f29960 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CSharpProject.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.png new file mode 100644 index 000000000..37e4e1727 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CSharpScriptItem.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseDocument_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseDocument_16x.png new file mode 100644 index 000000000..5c5691574 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseDocument_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseSolution_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseSolution_16x.png new file mode 100644 index 000000000..41ff45a94 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/CloseSolution_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/FindinFiles_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/FindinFiles_16x.png new file mode 100644 index 000000000..5b47a34ce Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/FindinFiles_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewFileCollection_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewFileCollection_16x.png new file mode 100644 index 000000000..bc5cef828 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewFileCollection_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewRelationship_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewRelationship_16x.png new file mode 100644 index 000000000..0be7b4fbf Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewRelationship_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewWindow_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewWindow_16x.png new file mode 100644 index 000000000..d4d0c0329 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/NewWindow_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/OpenFolder_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/OpenFolder_16x.png new file mode 100644 index 000000000..9ba3e52d2 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/OpenFolder_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Pause_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Pause_16x.png new file mode 100644 index 000000000..10cdfb53c Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Pause_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Redo_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Redo_16x.png new file mode 100644 index 000000000..331e15706 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Redo_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Reference.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Reference.png new file mode 100644 index 000000000..fa5430947 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Reference.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveAll_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveAll_16x.png new file mode 100644 index 000000000..aaffd1174 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveAll_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveClose_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveClose_16x.png new file mode 100644 index 000000000..09941041f Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveClose_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveStatusBar9_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveStatusBar9_16x.png new file mode 100644 index 000000000..ea9c23f2a Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/SaveStatusBar9_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Save_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Save_16x.png new file mode 100644 index 000000000..cbc55c22e Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Save_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/StubProject.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/StubProject.png new file mode 100644 index 000000000..cd0ad20ad Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/StubProject.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Undo_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Undo_16x.png new file mode 100644 index 000000000..3c563e72f Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Undo_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/algorithm.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/algorithm.png new file mode 100644 index 000000000..ab6b4c30f Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/algorithm.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/checklist_white_32.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/checklist_white_32.png new file mode 100644 index 000000000..e904220a7 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/checklist_white_32.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/clipboard.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/clipboard.png new file mode 100644 index 000000000..22a9c8ee4 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/clipboard.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/pp_project.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/pp_project.png new file mode 100644 index 000000000..e5eb56670 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/pp_project.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol.png new file mode 100644 index 000000000..16c9b0194 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol1.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol1.png new file mode 100644 index 000000000..ba64d6a89 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/redo-arrow-symbol1.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stop.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stop.png new file mode 100644 index 000000000..33e74f508 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stop.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_126.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_126.png new file mode 100644 index 000000000..a06e8e1c8 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_126.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_32.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_32.png new file mode 100644 index 000000000..4dc3d53e5 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_32.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_whit_32.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_whit_32.png new file mode 100644 index 000000000..875611302 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/stub_project_whit_32.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/test.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/test.png new file mode 100644 index 000000000..1d60a840f Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/test.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest.png new file mode 100644 index 000000000..fcc6a4fb7 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest_126.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest_126.png new file mode 100644 index 000000000..a49c21379 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/unitTest_126.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs new file mode 100644 index 000000000..7121e6ce0 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs @@ -0,0 +1,94 @@ +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.Windows; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Notifications +{ + public class DefaultNotificationManager : INotificationManager + { + public Task ShowDialog(TViewModel viewModel, TView view) + where TViewModel : IDEDialogViewModel + where TView : FrameworkElement + { + TaskCompletionSource source = new TaskCompletionSource(); + + Application.Current.Dispatcher.BeginInvoke(new Action(() => + { + DialogWindow window = new DialogWindow(); + window.Title = viewModel.Title; + window.Content = view; + view.DataContext = viewModel; + window.WindowStartupLocation = WindowStartupLocation.CenterOwner; + window.Owner = Application.Current.MainWindow; + viewModel.Accepted += () => + { + window.Close(); + source.SetResult(viewModel); + }; + viewModel.Canceled += () => + { + window.Close(); + source.SetResult(viewModel); + }; + window.ShowDialog(); + })); + + return source.Task; + } + + public Task ShowDialog(TViewModel viewModel) where TViewModel : IDEDialogViewModel + { + var modelName = typeof(TViewModel).Name; + var viewName = modelName.Replace("VM", ""); + var viewType = typeof(TViewModel).Assembly.GetType(typeof(TViewModel).Namespace + "." + viewName); + var view = Activator.CreateInstance(viewType) as FrameworkElement; + return ShowDialog(viewModel, view); + } + + public Task ShowDialog() where TViewModel : IDEDialogViewModel + { + return ShowDialog(Activator.CreateInstance()); + } + + public Task ShowError(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowInfo(string title, string message) + { + throw new NotImplementedException(); + } + + public ProgressNotificationHandler ShowProgress(string title, string message, bool canCancel = false) + { + throw new NotImplementedException(); + } + + public Task ShowQuestion(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowSuccess(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowWarning(string title, string message) + { + throw new NotImplementedException(); + } + + private Task ShowMessageBox(String title, String message, bool hasCancel, BitmapSource icon) + { + return null; + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs new file mode 100644 index 000000000..1ed516b28 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Notifications +{ + /// + /// Represents the IDE notification manager. + /// + public interface INotificationManager + { + /// + /// Displays the specified TView as a dialog and TViewModel as it's data context. + /// + /// The type of the view model. + /// The type of the view. + /// The view model. + /// The view. + /// + Task ShowDialog(TViewModel viewModel, TView view) where TViewModel : IDEDialogViewModel where TView : FrameworkElement; + + /// + /// Finds (by convention )the appropriate view by the specified TViewModel name. + /// The search pattern is ViewVM - VM + View. + /// + /// The type of the view model. + /// The view model. + /// + Task ShowDialog(TViewModel viewModel) where TViewModel : IDEDialogViewModel; + + /// + /// Finds (by convention )the appropriate view by the specified TViewModel name. + /// The search pattern is ViewVM - VM + View. + /// The view model instance will be created automatically and must contain a parameterless constructor. + /// + /// The type of the view model. + /// The view model. + /// + Task ShowDialog() where TViewModel : IDEDialogViewModel; + + /// + /// Displays an error message. + /// + /// The title. + /// The message. + /// + Task ShowError(String title, String message); + + /// + /// Displays an error message. + /// + /// The title. + /// The message. + /// + Task ShowInfo(String title, String message); + + /// + /// Displays a warning message. + /// + /// The title. + /// The message. + /// + Task ShowWarning(String title, String message); + + /// + /// Displays a positive message. + /// + /// The title. + /// The message. + /// + Task ShowSuccess(String title, String message); + + /// + /// Displays a question and returns the result. + /// + /// The title. + /// The message. + /// + Task ShowQuestion(String title, String message); + + /// + /// Displays an intermediate progress dialog and returns an instance of . + /// Once the progress notification handler will be disposed the dialog will close. + /// + /// The title. + /// The message. + /// if set to true the dialog will contain a cancel button. + /// + ProgressNotificationHandler ShowProgress(String title, String message, bool canCancel = false); + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/ProgressNotificationHandler.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/ProgressNotificationHandler.cs new file mode 100644 index 000000000..b36419400 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/ProgressNotificationHandler.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.Scripting.IDE.Notifications +{ + public class ProgressNotificationHandler : IDisposable + { + private Action _disposeAction; + + public ProgressNotificationHandler(Action disposeAction) + { + _disposeAction = disposeAction; + } + + public void Dispose() + { + _disposeAction?.Invoke(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs new file mode 100644 index 000000000..5a950d2c7 --- /dev/null +++ b/Software/Visual_Studio/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 _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; + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItem.cs new file mode 100644 index 000000000..8adc26dc7 --- /dev/null +++ b/Software/Visual_Studio/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 _imageCache; + + static ProjectItem() + { + _imageCache = new Dictionary(); + } + + public string Name { get; set; } + public ObservableCollection Items { get; set; } + + public ProjectItem() + { + Items = new ObservableCollection(); + } + + 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/Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs new file mode 100644 index 000000000..cf4811047 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssembliesItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssembliesItem.cs new file mode 100644 index 000000000..0e66fd241 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssemblyItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/ReferenceAssemblyItem.cs new file mode 100644 index 000000000..e9cd1e8f2 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml new file mode 100644 index 000000000..682956205 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml @@ -0,0 +1,13 @@ + + + + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItemsViews/CSharpScriptItemView.xaml.cs new file mode 100644 index 000000000..34c604b83 --- /dev/null +++ b/Software/Visual_Studio/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 +{ + /// + /// Interaction logic for CSharpScriptItemView.xaml + /// + public partial class CSharpScriptItemView : UserControl + { + public CSharpScriptItemView(CSharpScriptItem scriptItem) + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectType.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectType.cs new file mode 100644 index 000000000..86efc4330 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectType.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +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 ProjectType : IProjectType + { + private static Dictionary _imageCache; + + static ProjectType() + { + _imageCache = new Dictionary(); + } + + public abstract string Name { get; } + public abstract string Description { get; } + public abstract string Extention { get; } + public abstract BitmapSource SmallImage { get; } + public abstract BitmapSource LargeImage { get; } + + public 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 IProject NewProject(string projectPath); + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs new file mode 100644 index 000000000..6fe1316f4 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/StubProjectType.cs @@ -0,0 +1,48 @@ +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 : ProjectType + { + public override IProject NewProject(string projectPath) + { + StubProject project = new StubProject(); + + project.FilePath = projectPath + Extention; ; + + 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" }); + project.Items.Add(new CSharpScriptItem() { Name = "next.csx" }); + + return project; + } + + public override string Name => "Stub Project"; + public override string Description => "Create a stub project template."; + public override string Extention => ".stub"; + public override BitmapSource SmallImage => GetImage("Images/stub_project_32.png"); + public override BitmapSource LargeImage => GetImage("Images/stub_project_126.png"); + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs new file mode 100644 index 000000000..42bab7059 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectTypes/UnitTestProjectType.cs @@ -0,0 +1,46 @@ +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 : ProjectType + { + public override IProject NewProject(string projectPath) + { + UnitTestProject project = new UnitTestProject(); + + project.FilePath = projectPath + Extention; ; + + 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 override string Name => "Unit Test Project"; + public override string Description => "Create a unit test project template."; + public override string Extention => ".unit"; + public override BitmapSource SmallImage => GetImage("Images/unitTest.png"); + public override BitmapSource LargeImage => GetImage("Images/unitTest_126.png"); + + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Projects/CSharpProject.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Projects/CSharpProject.cs new file mode 100644 index 000000000..62e830d06 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/Projects/StubProject.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Projects/StubProject.cs new file mode 100644 index 000000000..bc915fa77 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/Projects/UnitTestProject.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Projects/UnitTestProject.cs new file mode 100644 index 000000000..e5510ad45 --- /dev/null +++ b/Software/Visual_Studio/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/Scripting/Tango.Scripting.IDE/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..073634992 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/AssemblyInfo.cs @@ -0,0 +1,19 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +[assembly: AssemblyTitle("Tango - Scripting IDE Library")] +[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) +)] diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.Designer.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.Designer.cs new file mode 100644 index 000000000..ec92331cb --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.Designer.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.Scripting.IDE.Properties { + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.Scripting.IDE.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.resx b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.Designer.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.Designer.cs new file mode 100644 index 000000000..2a0fdc6a9 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.Scripting.IDE.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.settings b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Resources.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Resources.xaml new file mode 100644 index 000000000..ef5d1b599 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Resources.xaml @@ -0,0 +1,127 @@ + + + #202020 + #252526 + #2D2D30 + #676767 + #007ACC + #007ACC + + + + + + + + + + + + #2D2D30 + #FFFFFFFF + #2D2D30 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml new file mode 100644 index 000000000..587997450 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.xaml.cs new file mode 100644 index 000000000..3c816be05 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView.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 +{ + /// + /// Interaction logic for ScriptIDEControl.xaml + /// + public partial class ScriptIDEView : UserControl + { + public ScriptIDEView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml new file mode 100644 index 000000000..67a673d3b --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Debug + Release + Configuration Manager... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs new file mode 100644 index 000000000..5e4509beb --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs @@ -0,0 +1,93 @@ +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 +{ + + /// + /// Interaction logic for ScriptIDEView2.xaml + /// + public partial class ScriptIDEView2 : UserControl + { + public enum eSkin { Dark, Light } + public static eSkin Skin { get; set; } + public ScriptIDEView2() + { + InitializeComponent(); + } + public void ChangeSkin(eSkin newSkin) + { + Skin = newSkin; + Resources.Clear(); + Resources.MergedDictionaries.Clear(); + if (Skin == eSkin.Dark) + ApplyResources("Themes/DarkThemesColors.xaml"); + else if (Skin == eSkin.Light) + ApplyResources("Themes/LightThemesColors.xaml"); + ApplyResources("Themes/Shared.xaml"); + } + + private void ApplyResources(string src) + { + var dict = new ResourceDictionary() { Source = new Uri(src, UriKind.Relative) }; + foreach (var mergeDict in dict.MergedDictionaries) + { + Resources.MergedDictionaries.Add(mergeDict); + } + + foreach (var key in dict.Keys) + { + Resources[key] = dict[key]; + } + } + + private void Button_Click(object sender, RoutedEventArgs e) + { + MessageBox.Show("I am here"); + } + private void TreeViewControl_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + { + + IProject SelectedItem = SolutionTree.SelectedItem as IProject; + if(SelectedItem != null && DataContext is ScriptIDEViewVM && ((ScriptIDEViewVM)DataContext).IsSolutionProject(SelectedItem)) + { + SolutionTree.ContextMenu = SolutionTree.Resources["SolutionContext"] as System.Windows.Controls.ContextMenu; + } + else + { + SolutionTree.ContextMenu = SolutionTree.Resources["FolderContext"] as System.Windows.Controls.ContextMenu; + } + } + + private void SolutionTree_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) + { + TreeViewItem treeViewItem = VisualUpwardSearch(e.OriginalSource as DependencyObject); + + if (treeViewItem != null) + { + //treeViewItem.Focus(); + treeViewItem.IsSelected = true; + e.Handled = true; + } + } + static TreeViewItem VisualUpwardSearch(DependencyObject source) + { + while (source != null && !(source is TreeViewItem)) + source = VisualTreeHelper.GetParent(source); + + return source as TreeViewItem; + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs new file mode 100644 index 000000000..facebe061 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs @@ -0,0 +1,191 @@ +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; +using System.Windows.Controls; +using System.Windows.Media.Imaging; +using Tango.Core.Commands; +using Tango.Scripting.IDE.Controls; +using Tango.Scripting.IDE.Dialogs; +using Tango.Scripting.IDE.Notifications; +using Tango.Scripting.IDE.Projects; +using Tango.Scripting.IDE.ProjectTypes; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE +{ + public class ScriptIDEViewVM : IDEViewModel + { + private List _projectTypes; + public ObservableCollection ErrorList { get; set; } + + #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 _openProjectItems; + public ObservableCollection OpenProjectItems + { + get { return _openProjectItems; } + set { _openProjectItems = value; RaisePropertyChangedAuto(); } + } + private bool _isRunProject = false; + public bool IsRunProject + { + get { return _isRunProject; } + set + { + if (_isRunProject != value) + { + _isRunProject = value; RaisePropertyChangedAuto(); + } + } + } + #endregion + + #region Commands + public RelayCommand NewProjectCommand { get; set; } + public RelayCommand AddProjectCommand { get; set; } + public RelayCommand OpenProjectItemCommand { get; set; } + + public RelayCommand CloseProjectItemCommand { get; set; } + public RelayCommand RunProject { get; set; } + public RelayCommand StopProject { get; set; } + + #endregion + + #region Constructors + + public ScriptIDEViewVM() : base() + { + _projectTypes = new List(); + OpenProjectItems = new ObservableCollection(); + ErrorList = new ObservableCollection(); + + RegisterProjectType(new StubProjectType()); + RegisterProjectType(new UnitTestProjectType()); + + Solution = new Solution(); + Solution.SolutionLocation = @"C:\Test"; + Solution.Projects.Add(_projectTypes.First().NewProject("Test Project.stub")); + + //Init Commands + NewProjectCommand = new RelayCommand(AddNewProject); + AddProjectCommand = new RelayCommand(AddProject); + OpenProjectItemCommand = new RelayCommand(OpenProjectItem); + CloseProjectItemCommand = new RelayCommand(CloseProjectItem); + RunProject = new RelayCommand(RunProjectCommand); + StopProject = new RelayCommand(StopRunProjectCommand); + + NotificationManager = new DefaultNotificationManager(); + } + + private void RunProjectCommand(object obj) + { + // MessageBox.Show("You said: RunProjectCommand"); + } + private void StopRunProjectCommand(object obj) + { + IsRunProject = false; + } + + #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); + } + /// + /// Open a dialog to create a new project + /// + private async void AddNewProject() + { + var vm = await NotificationManager.ShowDialog(new NewProjectViewVM(Settings.LastSolutionLocations)); + + if (vm.DialogResult) + { + Solution newSolution = new Solution(); + newSolution.Name = vm.SolutionName; + newSolution.SolutionLocation = vm.ProjectLocation; + Solution = newSolution; + StringBuilder builder = new StringBuilder(vm.ProjectLocation); + builder.AppendFormat(@"\{0}", vm.ProjectName); + Solution.Projects.Add(vm.SelectedProjectType.NewProject(builder.ToString())); + + Settings.LastSolutionLocations.Insert(0, vm.ProjectLocation); + Settings.Save(); + } + } + private async void AddProject() + { + var vm = await NotificationManager.ShowDialog(new AddProjectViewVM() + { + ProjectLocation = Solution.SolutionLocation + //ProjectLocation = Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + //ProjectLocation = "Current Solution folder..." + }); + + if (vm.DialogResult) + { + StringBuilder builder = new StringBuilder(vm.ProjectLocation); + builder.AppendFormat(@"\{0}", vm.ProjectName); + Solution.Projects.Add(vm.SelectedProjectType.NewProject(builder.ToString())); + } + } + public bool IsSolutionProject(IProject SelectedItem) + { + if (SelectedItem is StubProject) + return true; + return false; + + } + #endregion + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Solution.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Solution.cs new file mode 100644 index 000000000..cd7806698 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Solution.cs @@ -0,0 +1,21 @@ +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 Projects { get; set; } + public string Name{get; set;} + public string SolutionLocation { get; set; } + + public Solution() + { + Projects = new ObservableCollection(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj new file mode 100644 index 000000000..9fac7041d --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj @@ -0,0 +1,308 @@ + + + + + Debug + AnyCPU + {C9F60285-91FB-4293-BCF5-164D76755CDD} + library + Tango.Scripting.IDE + Tango.Scripting.IDE + v4.6.1 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + true + full + false + ..\..\Build\Scripting\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\Build\Scripting\Release\ + TRACE + prompt + 4 + + + + ..\..\packages\FontAwesome.WPF.4.7.0.9\lib\net40\FontAwesome.WPF.dll + + + ..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll + + + ..\..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.0\lib\Microsoft.WindowsAPICodePack.dll + + + ..\..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll + + + ..\..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll + + + + + + + + ..\..\packages\MahApps.Metro.1.5.0\lib\net45\System.Windows.Interactivity.dll + + + + + + + + + 4.0 + + + + + + + + GlobalVersionInfo.cs + + + + + + + + NewProjectView.xaml + + + AddProjectView.xaml + + + + + + + + + + + + + + + CSharpScriptItemView.xaml + + + + + + + + + + + + + + ScriptIDEView.xaml + + + ScriptIDEView2.xaml + + + + + + + DialogWindow.xaml + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + {a34ee0f0-649d-41c8-8489-b6f1cc6924ee} + Tango.Core + + + {d8f1ad85-526a-4f50-b6dc-d437af63d8d8} + Tango.Settings + + + {8491d07b-c1f6-4b62-a412-41b9fd2d6538} + Tango.SharedUI + + + {da62fa39-668b-47a6-b0f2-d2c1daf777b0} + Tango.Scripting.Editors + + + {1e938fd2-c669-4738-98c9-77f96ce4d451} + Tango.Scripting + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml new file mode 100644 index 000000000..f30adc85d --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml @@ -0,0 +1,81 @@ + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ComboboxStyle.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ComboboxStyle.xaml new file mode 100644 index 000000000..503f8c20c --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ComboboxStyle.xaml @@ -0,0 +1,200 @@ + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml new file mode 100644 index 000000000..caab88ef1 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DataGridStyle.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DataGridStyle.xaml new file mode 100644 index 000000000..5ec4c7ff4 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/DataGridStyle.xaml @@ -0,0 +1,248 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Generic.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Generic.xaml new file mode 100644 index 000000000..6c016ae84 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Generic.xaml @@ -0,0 +1,36 @@ + + + + + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/LightThemesColors.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/LightThemesColors.xaml new file mode 100644 index 000000000..da65cc9b7 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/LightThemesColors.xaml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml new file mode 100644 index 000000000..f51a50b50 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml @@ -0,0 +1,229 @@ + + + + + + + + M 0,5.1 L 1.7,5.2 L 3.4,7.1 L 8,0.4 L 9.2,0 L 3.3,10.8 Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ScrollViewerStyle.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ScrollViewerStyle.xaml new file mode 100644 index 000000000..56c047424 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ScrollViewerStyle.xaml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Shared.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Shared.xaml new file mode 100644 index 000000000..9b196411b --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/Shared.xaml @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TabConrolStyle.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TabConrolStyle.xaml new file mode 100644 index 000000000..81b4463f6 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TabConrolStyle.xaml @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml new file mode 100644 index 000000000..6223934b5 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml @@ -0,0 +1,236 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml new file mode 100644 index 000000000..f76c133d6 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml @@ -0,0 +1,177 @@ + + + + M0,0L0,6 6,0z + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ViewModelLocator.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ViewModelLocator.cs new file mode 100644 index 000000000..ffe78f49d --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ViewModelLocator.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.Scripting.IDE.Dialogs; +using Tango.Scripting.IDE.Notifications; + +namespace Tango.Scripting.IDE +{ + /// + /// This class contains static references to all the view models in the + /// application and provides an entry point for the bindings. + /// + public static class ViewModelLocator + { + /// + /// Initializes a new instance of the ViewModelLocator class. + /// + static ViewModelLocator() + { + TangoIOC.Default.Register(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml new file mode 100644 index 000000000..683391afd --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml.cs new file mode 100644 index 000000000..cfddd09e3 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml.cs @@ -0,0 +1,28 @@ +using MahApps.Metro.Controls; +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.Shapes; + +namespace Tango.Scripting.IDE.Windows +{ + /// + /// Interaction logic for DialogWindow.xaml + /// + public partial class DialogWindow : MetroWindow + { + public DialogWindow() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/app.config b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/app.config new file mode 100644 index 000000000..877a49c00 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/app.config @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/packages.config b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/packages.config new file mode 100644 index 000000000..224f74b3a --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file -- cgit v1.3.1