aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs
blob: 3cac8b67339797670e1b7d8d893c89ede94f5c35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core;

namespace Tango.MachineStudio.Common.Modules
{
    /// <summary>
    /// Represents a Machine Studio <see cref="IStudioModule"/> modules loading engine.
    /// </summary>
    public interface IStudioModuleLoader
    {
        /// <summary>
        /// Occurs when all modules are initialized.
        /// </summary>
        event EventHandler ModulesLoaded;

        /// <summary>
        /// Gets all loaded modules.
        /// </summary>
        SynchronizedObservableCollection<IStudioModule> AllModules { get; }

        /// <summary>
        /// Gets all the user permitted modules.
        /// </summary>
        SynchronizedObservableCollection<IStudioModule> UserModules { get; }

        /// <summary>
        /// Gets the studio module of type T if loaded.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        T GetStudioModule<T>() where T : IStudioModule;

        /// <summary>
        /// Loads all available Machine Studio modules.
        /// </summary>
        void LoadModules();
    }
}
>#region Commands public RelayCommand BrowseFileCommand { get; set; } #endregion public NewProjectViewVM(List<IProjectType> projectTypes) : base(projectTypes) { Title = "New Project"; BrowseFileCommand = new RelayCommand(BrowseFile); } public NewProjectViewVM(IEnumerable<String> lastSolutionFolders, List<IProjectType> projectTypes) : this(projectTypes) { LastSolutionPaths = new ObservableCollection<string>(lastSolutionFolders); ProjectLocation = LastSolutionPaths.FirstOrDefault(); } private void BrowseFile() { CommonOpenFileDialog dialog = new CommonOpenFileDialog(); dialog.InitialDirectory = LastSolutionPaths.LastOrDefault<string>(); 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); } } }