aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/ExtensionMethods/TangoIOCExtensions.cs
blob: 827650f591b6bc8f2a95b663aa73e230a244b398 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core.DI;
using Tango.MachineStudio.Common;

public static class TangoIOCExtensions
{
    /// <summary>
    /// Gets the specified module <see cref="IStudioViewModel"/> view models.
    /// </summary>
    /// <param name="tangoIOC">The Tango IOC.</param>
    /// <param name="module">The module.</param>
    /// <returns></returns>
    public static IEnumerable<IStudioViewModel> GetModuleViewModels(this TangoIOC tangoIOC, IStudioModule module)
    {
        var viewModels = tangoIOC.GetAllInstancesByBase<IStudioViewModel>().Where(x => x != null && x.GetType().BaseType.GetGenericArguments().Length > 0 && x.GetType().BaseType.GetGenericArguments()[0] == module.GetType());
        return viewModels;
    }
}
pan class="k">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(); } } private String _projectLocation; public String ProjectLocation { get { return _projectLocation; } set { _projectLocation = value; RaisePropertyChangedAuto(); } } #endregion #region constructor public BaseProjectDialogVM() : base() { ProjectTypes = new ObservableCollection<IProjectType>(); RegisterProjectType(new StubProjectType()); RegisterProjectType(new UnitTestProjectType()); _selectedProjectType = ProjectTypes.FirstOrDefault(); string workingDirectory = Environment.CurrentDirectory; ProjectLocation = Directory.GetParent(workingDirectory).Parent.Parent.FullName; CanClose = true; CloseCommand = new RelayCommand(Cancel, (x) => CanClose); OKCommand = new RelayCommand(Accept, (x) => CanClose); } #endregion #region commands #endregion #region register_project_types public void RegisterProjectType(IProjectType projectType) { ProjectTypes.Add(projectType); } public void UnRegisterProjectItemHandler(IProjectType projectType) { ProjectTypes.Remove(projectType); } #endregion } }