From 64aeeb1d2784569e4ebf7c72c660458cf4432eee Mon Sep 17 00:00:00 2001 From: Victoria Plitt Date: Thu, 11 Apr 2019 11:24:39 +0300 Subject: Add menu to tree solution --- .../Scripting/Tango.Scripting.IDE/Project.cs | 76 ++++++++++++++++++++-- 1 file changed, 70 insertions(+), 6 deletions(-) (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs') diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs index 5a950d2c7..9ba1ed902 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs @@ -12,13 +12,8 @@ namespace Tango.Scripting.IDE { public abstract class Project : IProject { + #region properties private static Dictionary _imageCache; - - static Project() - { - _imageCache = new Dictionary(); - } - public string FilePath { get; set; } public string WorkingFolder => Path.GetDirectoryName(FilePath); @@ -28,15 +23,83 @@ namespace Tango.Scripting.IDE public abstract BitmapSource Image { get; } public ObservableCollection Items { get; set; } + public ObservableCollection Commands { get; set; } + #endregion + #region constructors + static Project() + { + _imageCache = new Dictionary(); + } + public Project() { Items = new ObservableCollection(); + Commands = new ObservableCollection + { + new SolutionItemCommand(BuildProject) { Name = "Build", Image= GetImage(@"Images/BuildSolution_16x.png") }, + new SolutionItemCommand(SetStartUpProject) { Name = "Set as StartUp Project" }, + new SolutionItemCommand(Remove) { Name = "Remove" }, + new SolutionItemCommand(Rename) { Name = "Rename" }, + new SolutionItemCommand(OpenFolderInFileExplorer) { Name = "Open Folder In File Explorer" }, + new SolutionItemCommand() + { + Name = "Add...", + Commands = new ObservableCollection + { + new SolutionItemCommand(AddNewScript) { Name = "Add New Script" }, + new SolutionItemCommand(AddExistingScript) { Name = "Add Existing Script" }, + } + } + }; + } + #endregion + + + + #region Commands + private void BuildProject() + { + + } + private void SetStartUpProject() + { + + } + private void Remove() + { + + } + private void Rename() + { + + } + private void OpenFolderInFileExplorer() + { + + } + /// + /// Adds a new script file of type IProjectItem to the current project. + /// + private void AddNewScript() + { + + } + /// + /// Adds the existing script file to the current project. + /// + private void AddExistingScript() + { + } + #endregion + #region Build_Run public abstract Task Build(); public abstract Task Run(); + #endregion + #region generic_functions protected static BitmapSource GetImage(String name) { if (_imageCache.ContainsKey(name)) @@ -52,5 +115,6 @@ namespace Tango.Scripting.IDE } public bool CanOpen => false; + #endregion } } -- cgit v1.3.1 From b41347f1528e5e34d8c8c8ef2c5b6b63876098f1 Mon Sep 17 00:00:00 2001 From: Victoria Plitt Date: Thu, 11 Apr 2019 16:07:21 +0300 Subject: added icons to menu, solution for setting icons dynamically to context menu --- .../Scripting/Tango.Scripting.IDE.UI/App.config | 44 --------------------- .../Tango.Scripting.IDE.UI.csproj | 2 +- .../Converters/BitmapSourceToImageConverter.cs | 31 +++++++++++++++ .../Tango.Scripting.IDE/Images/Open_16x.png | Bin 0 -> 452 bytes .../Tango.Scripting.IDE/Images/Rename_16x.png | Bin 0 -> 210 bytes .../Images/Settings_Inverse_16x.png | Bin 0 -> 405 bytes .../Tango.Scripting.IDE/Images/copy_16x.png | Bin 0 -> 245 bytes .../Tango.Scripting.IDE/Images/deletered_16.png | Bin 0 -> 621 bytes .../Tango.Scripting.IDE/Images/hashtag.png | Bin 0 -> 386 bytes .../Scripting/Tango.Scripting.IDE/Project.cs | 8 ++-- .../ProjectItems/CSharpScriptItem.cs | 10 ++--- .../Tango.Scripting.IDE/ScriptIDEView2.xaml | 9 ++--- .../Tango.Scripting.IDE/SolutionItemCommand.cs | 12 +++++- .../Tango.Scripting.IDE/Tango.Scripting.IDE.csproj | 19 +++++++++ .../Tango.Scripting.IDE/Images/deletered_16.png | Bin 0 -> 575 bytes 15 files changed, 75 insertions(+), 60 deletions(-) create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/BitmapSourceToImageConverter.cs create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Open_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Rename_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Settings_Inverse_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/copy_16x.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/deletered_16.png create mode 100644 Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/hashtag.png create mode 100644 Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/deletered_16.png (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs') diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/App.config b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/App.config index de2319b52..aa58e3cac 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/App.config +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/App.config @@ -6,50 +6,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj index e4702273a..deda62b7c 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj @@ -12,7 +12,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + false AnyCPU diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/BitmapSourceToImageConverter.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/BitmapSourceToImageConverter.cs new file mode 100644 index 000000000..c7cd1e573 --- /dev/null +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Converters/BitmapSourceToImageConverter.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Media; +using System.Windows.Media.Imaging; + +namespace Tango.Scripting.IDE.Converters +{ + public class BitmapSourceToImageConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return new Image() + { + Source = value as BitmapSource, + Width = 16, + Height = 16, + }; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Open_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Open_16x.png new file mode 100644 index 000000000..88cfc578a Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Open_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Rename_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Rename_16x.png new file mode 100644 index 000000000..eb85c52a8 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Rename_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Settings_Inverse_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Settings_Inverse_16x.png new file mode 100644 index 000000000..464a9f751 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/Settings_Inverse_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/copy_16x.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/copy_16x.png new file mode 100644 index 000000000..7f3de9d64 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/copy_16x.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/deletered_16.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/deletered_16.png new file mode 100644 index 000000000..35b767569 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/deletered_16.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/hashtag.png b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/hashtag.png new file mode 100644 index 000000000..74c6d1801 Binary files /dev/null and b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Images/hashtag.png differ diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs index 9ba1ed902..6392ddcb7 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Project.cs @@ -38,10 +38,10 @@ namespace Tango.Scripting.IDE Commands = new ObservableCollection { new SolutionItemCommand(BuildProject) { Name = "Build", Image= GetImage(@"Images/BuildSolution_16x.png") }, - new SolutionItemCommand(SetStartUpProject) { Name = "Set as StartUp Project" }, - new SolutionItemCommand(Remove) { Name = "Remove" }, - new SolutionItemCommand(Rename) { Name = "Rename" }, - new SolutionItemCommand(OpenFolderInFileExplorer) { Name = "Open Folder In File Explorer" }, + new SolutionItemCommand(SetStartUpProject) { Name = "Set as StartUp Project" , Image= GetImage(@"Images/Settings_Inverse_16x.png")}, + new SolutionItemCommand(Remove) { Name = "Remove" , Image= GetImage(@"Images/deletered_16.png")}, + new SolutionItemCommand(Rename) { Name = "Rename", Image= GetImage(@"Images/Rename_16x.png") }, + new SolutionItemCommand(OpenFolderInFileExplorer) { Name = "Open Folder In File Explorer", Image= GetImage(@"Images/Open_16x.png") }, new SolutionItemCommand() { Name = "Add...", diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs index e53f90ef3..0fe375a1f 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ProjectItems/CSharpScriptItem.cs @@ -11,7 +11,7 @@ namespace Tango.Scripting.IDE.ProjectItems { public class CSharpScriptItem : ProjectItem { - public override BitmapSource Image => GetImage("Images/CSharpScriptItem.png"); + public override BitmapSource Image => GetImage("Images/hashtag.png"); private String _code; public String Code @@ -31,11 +31,11 @@ namespace Tango.Scripting.IDE.ProjectItems { Commands = new System.Collections.ObjectModel.ObservableCollection() { - new SolutionItemCommand(Open) { Name = "Open" }, + new SolutionItemCommand(Open) { Name = "Open" , Image = GetImage(@"Images/Open_16x.png")}, new SolutionItemCommand(CutItem) { Name = "Cut" , Image = GetImage(@"Images/Cut_16xSM.png")}, - new SolutionItemCommand(CopyItem) { Name = "Copy" }, - new SolutionItemCommand(CopyItem) { Name = "Delete" }, - new SolutionItemCommand(RenameItem) { Name = "Rename" } + new SolutionItemCommand(CopyItem) { Name = "Copy" , Image = GetImage(@"Images/copy_16x.png")}, + new SolutionItemCommand(CopyItem) { Name = "Delete" , Image = GetImage(@"Images/deletered_16.png")}, + new SolutionItemCommand(RenameItem) { Name = "Rename", Image = GetImage(@"Images/Rename_16x.png") } }; } diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml index 6f3914ec8..e79734b3a 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml @@ -6,6 +6,7 @@ xmlns:local="clr-namespace:Tango.Scripting.IDE" xmlns:fa="http://schemas.fontawesome.io/icons/" xmlns:controls="clr-namespace:Tango.Scripting.IDE.Controls" + xmlns:converters="clr-namespace:Tango.Scripting.IDE.Converters" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:ScriptIDEViewVM, IsDesignTimeCreatable=False}" x:Name="control"> @@ -15,15 +16,13 @@ + + diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/SolutionItemCommand.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/SolutionItemCommand.cs index c6627d354..9fbac01c2 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/SolutionItemCommand.cs +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/SolutionItemCommand.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.ComponentModel; +using System.IO; using System.Linq; using System.Text; @@ -10,7 +12,7 @@ using Tango.Core.Commands; namespace Tango.Scripting.IDE { - public class SolutionItemCommand : RelayCommand, ISolutionItemCommand + public class SolutionItemCommand : RelayCommand, ISolutionItemCommand, INotifyPropertyChanged { public SolutionItemCommand() : base(()=> { }) { @@ -53,6 +55,9 @@ namespace Tango.Scripting.IDE public String Name { get; set; } BitmapSource _bImage; + + public event PropertyChangedEventHandler PropertyChanged; + public BitmapSource Image { get { @@ -61,9 +66,14 @@ namespace Tango.Scripting.IDE set { _bImage = value; + RaisePropertyChanged(nameof(Image)); } } public ObservableCollection Commands { get; set; } + protected virtual void RaisePropertyChanged(String propName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); + } } } 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 index 194f49ea8..4f47db2bc 100644 --- a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj +++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj @@ -75,6 +75,7 @@ + NewProjectView.xaml @@ -315,5 +316,23 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/deletered_16.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/deletered_16.png new file mode 100644 index 000000000..869ae3797 Binary files /dev/null and b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/deletered_16.png differ -- cgit v1.3.1