aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.MachineDesigner.UI/Managers/DialogsManager.cs
blob: 4131f2a563887e0b9e6d80b61883ff310ff9b953 (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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Tango.DAL.Observables;
using Tango.MachineStudio.UI.ViewModels.DBViewModels;
using Tango.MachineStudio.UI.Views.DBViews;
using Tango.MachineStudio.UI.Windows;

namespace Tango.MachineStudio.UI.Managers
{
    public static class DialogsManager
    {
        public static bool ShowDialog<T>(String title, object context) where T : FrameworkElement
        {
            DialogWindow dialog = new DialogWindow(Activator.CreateInstance<T>());
            dialog.DataContext = context;
            dialog.InnerTitle = title;
            dialog.Owner = Application.Current.MainWindow;
            return dialog.ShowDialog().Value;
        }

        public static bool ShowDialog<T>(DialogOpenMode mode, DbTableViewModel<T> context) where T : IObservableEntity
        {
            Type viewType = typeof(DialogsManager).Assembly.GetType(typeof(OrganizationView).Namespace + "." + typeof(T).Name + "View");
            DialogWindow dialog = new DialogWindow(Activator.CreateInstance(viewType) as FrameworkElement);
            dialog.InnerTitle = (mode == DialogOpenMode.Editing ? "Edit " : "Add New ") + typeof(T).Name;
            dialog.DataContext = context;
            dialog.Owner = Application.Current.MainWindow;
            MainWindow.Instance.shadowGrid.Visibility = Visibility.Visible;
            bool result = dialog.ShowDialog().Value;
            MainWindow.Instance.shadowGrid.Visibility = Visibility.Hidden;
            return result;
        }
    }
}