├── .idea
└── .idea.app
│ └── .idea
│ ├── .name
│ └── workspace.xml
├── GUI
├── Images
│ ├── Auto.png
│ ├── Banksy.jpg
│ ├── Global.png
│ ├── Home.png
│ ├── Lucas.jpg
│ ├── Manual.png
│ ├── logo.png
│ ├── hourglass.png
│ ├── house-icon.png
│ ├── Construction.png
│ ├── Designs
│ │ ├── Anton.jpg
│ │ ├── Karel.jpg
│ │ ├── Pablo.jpg
│ │ ├── Piet.jpg
│ │ ├── George.jpg
│ │ ├── Herman.jpg
│ │ ├── Johannes.jpg
│ │ ├── Leonardo.jpg
│ │ ├── Vincent.jpg
│ │ └── Rembrandt.jpg
│ ├── Handles
│ │ ├── Horn.jpg
│ │ ├── Koma.jpg
│ │ ├── Ror_R.jpg
│ │ ├── Hondla.jpg
│ │ ├── Ror_DS.jpg
│ │ ├── Sleeve_R.jpg
│ │ └── Sleeve_DS.jpg
│ ├── ManualDrawing.png
│ ├── TopViewWalls.png
│ ├── AutomaticDrawing.png
│ ├── GlobalSettings.png
│ └── ConstructionOpening.png
├── Helpers
│ ├── CurrentGuiInfo.cs
│ ├── GuiDisplayValidation.cs
│ └── GeneralHelp.cs
├── App.config
├── ViewModels
│ ├── HomeViewModel.cs
│ ├── DesignViewModel.cs
│ ├── MainViewModel.cs
│ ├── ViewModelBase.cs
│ ├── GeneralProductViewModel.cs
│ ├── HandleViewModel.cs
│ └── ProductViewModels
│ │ └── PivotDoorViewModel.cs
├── Views
│ ├── DoorSettingsView.xaml.cs
│ ├── HingeDoorProductView.xaml.cs
│ ├── ManualDrawingView.xaml.cs
│ ├── FinishView.xaml.cs
│ ├── DesignView.xaml.cs
│ ├── DesignView.cs.xaml.cs
│ ├── HandleView.xaml.cs
│ ├── ProductViews
│ │ ├── HingeView.xaml.cs
│ │ └── PivotView.xaml.cs
│ ├── ProductSelectionView.xaml.cs
│ ├── ConstructionView.xaml.cs
│ ├── HomeView.xaml.cs
│ ├── HandleView.cs.xaml.cs
│ ├── PivotDoorSettings.xaml.cs
│ ├── ProductSelectionView.xaml
│ ├── DesignView.xaml
│ ├── ManualDrawingView.xaml
│ ├── HomeView.xaml
│ ├── DesignView.cs.xaml
│ ├── GeneralProductView.xaml.cs
│ ├── HandleView.xaml
│ ├── FinishView.xaml
│ ├── HandleView.cs.xaml
│ └── HingeDoorProductView.xaml
├── App.xaml.cs
├── Commands
│ ├── CommandBase.cs
│ ├── InstantiateProductCommand.cs
│ └── DrawCommands
│ │ ├── DrawProductCommand.cs
│ │ └── DrawConstructionOpeningCommand.cs
├── Stores
│ └── NavigationStore.cs
├── MainWindow.xaml.cs
├── AutoCAD.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── MainWindow.xaml
├── App.xaml
└── Styles
│ └── ApplicationStyle.xaml
├── BusinessLogic
├── Classes
│ ├── ExtraParts.cs
│ ├── Handle.cs
│ ├── HandleTopView.cs
│ ├── ConstructionOpening.cs
│ ├── Handles
│ │ ├── DefaultHandle.cs
│ │ ├── Ror_R.cs
│ │ ├── Sleeve_R.cs
│ │ ├── Ror_DS.cs
│ │ ├── Hondla.cs
│ │ ├── Horn.cs
│ │ └── Sleeve_DS.cs
│ ├── Design.cs
│ ├── Designs
│ │ ├── Lucas.cs
│ │ ├── Pablo.cs
│ │ ├── Vincent.cs
│ │ ├── Leonardo.cs
│ │ ├── Karel.cs
│ │ ├── Rembrandt.cs
│ │ ├── Piet.cs
│ │ ├── Claude.cs
│ │ ├── Albert.cs
│ │ ├── George.cs
│ │ ├── Herman.cs
│ │ ├── Anton.cs
│ │ ├── Govert.cs
│ │ └── Johannes.cs
│ ├── Datas
│ │ ├── PivotData.cs
│ │ └── HingeData.cs
│ └── Data.cs
├── Point.cs
├── packages.config
├── Properties
│ └── AssemblyInfo.cs
├── Settings
│ ├── GlobalSettings.cs
│ └── CurrentDrawInfo.cs
└── BusinessLogic.csproj
├── app.sln
└── .gitignore
/.idea/.idea.app/.idea/.name:
--------------------------------------------------------------------------------
1 | app
--------------------------------------------------------------------------------
/GUI/Images/Auto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Auto.png
--------------------------------------------------------------------------------
/GUI/Images/Banksy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Banksy.jpg
--------------------------------------------------------------------------------
/GUI/Images/Global.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Global.png
--------------------------------------------------------------------------------
/GUI/Images/Home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Home.png
--------------------------------------------------------------------------------
/GUI/Images/Lucas.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Lucas.jpg
--------------------------------------------------------------------------------
/GUI/Images/Manual.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Manual.png
--------------------------------------------------------------------------------
/GUI/Images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/logo.png
--------------------------------------------------------------------------------
/GUI/Images/hourglass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/hourglass.png
--------------------------------------------------------------------------------
/GUI/Images/house-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/house-icon.png
--------------------------------------------------------------------------------
/GUI/Images/Construction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Construction.png
--------------------------------------------------------------------------------
/GUI/Images/Designs/Anton.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Anton.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Karel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Karel.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Pablo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Pablo.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Piet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Piet.jpg
--------------------------------------------------------------------------------
/GUI/Images/Handles/Horn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Handles/Horn.jpg
--------------------------------------------------------------------------------
/GUI/Images/Handles/Koma.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Handles/Koma.jpg
--------------------------------------------------------------------------------
/GUI/Images/Handles/Ror_R.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Handles/Ror_R.jpg
--------------------------------------------------------------------------------
/GUI/Images/ManualDrawing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/ManualDrawing.png
--------------------------------------------------------------------------------
/GUI/Images/TopViewWalls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/TopViewWalls.png
--------------------------------------------------------------------------------
/GUI/Images/AutomaticDrawing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/AutomaticDrawing.png
--------------------------------------------------------------------------------
/GUI/Images/Designs/George.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/George.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Herman.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Herman.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Johannes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Johannes.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Leonardo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Leonardo.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Vincent.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Vincent.jpg
--------------------------------------------------------------------------------
/GUI/Images/GlobalSettings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/GlobalSettings.png
--------------------------------------------------------------------------------
/GUI/Images/Handles/Hondla.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Handles/Hondla.jpg
--------------------------------------------------------------------------------
/GUI/Images/Handles/Ror_DS.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Handles/Ror_DS.jpg
--------------------------------------------------------------------------------
/GUI/Images/Handles/Sleeve_R.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Handles/Sleeve_R.jpg
--------------------------------------------------------------------------------
/GUI/Images/Designs/Rembrandt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Designs/Rembrandt.jpg
--------------------------------------------------------------------------------
/GUI/Images/Handles/Sleeve_DS.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/Handles/Sleeve_DS.jpg
--------------------------------------------------------------------------------
/BusinessLogic/Classes/ExtraParts.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic.Classes
2 | {
3 | public class ExtraParts
4 | {
5 | }
6 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handle.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic.Classes.Handles
2 | {
3 | public class Handle
4 | {
5 | }
6 | }
--------------------------------------------------------------------------------
/GUI/Images/ConstructionOpening.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Blue-BigTech/AutoDesk-WPF/HEAD/GUI/Images/ConstructionOpening.png
--------------------------------------------------------------------------------
/GUI/Helpers/CurrentGuiInfo.cs:
--------------------------------------------------------------------------------
1 | namespace GUI.Helpers
2 | {
3 | public static class CurrentGuiInfo
4 | {
5 | public static string CurrentProduct { get; set; } = "Hinge";
6 | }
7 | }
--------------------------------------------------------------------------------
/GUI/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/BusinessLogic/Classes/HandleTopView.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic.Classes
2 | {
3 | public class HandleTopView
4 | {
5 | public HandleTopView()
6 | {
7 |
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/GUI/ViewModels/HomeViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Input;
2 |
3 | namespace GUI.ViewModels
4 | {
5 | public class HomeViewModel : ViewModelBase
6 | {
7 |
8 | public HomeViewModel()
9 | {
10 |
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/BusinessLogic/Point.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic
2 | {
3 | public class Point
4 | {
5 | public double X { get; set; }
6 | public double Y { get; set; }
7 |
8 | public Point(double x, double y)
9 | {
10 | X = x;
11 | Y = y;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/GUI/Views/DoorSettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 | using DoorPROGUI.Helpers;
4 |
5 | namespace DoorPROGUI.Views
6 | {
7 | public partial class DoorSettingsView
8 | {
9 |
10 | public DoorSettingsView()
11 | {
12 |
13 | }
14 |
15 | public MainWindow MainWindow { get; set; }
16 | }
17 | }
--------------------------------------------------------------------------------
/GUI/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | namespace GUI
4 | {
5 | ///
6 | /// Interaction logic for App.xaml
7 | ///
8 | public partial class App : Application
9 | {
10 | protected override void OnStartup(StartupEventArgs e)
11 | {
12 | MainWindow = new MainWindow();
13 |
14 | MainWindow.Show();
15 |
16 | base.OnStartup(e);
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/GUI/Helpers/GuiDisplayValidation.cs:
--------------------------------------------------------------------------------
1 | namespace GUI.Helpers
2 | {
3 | public static class GuiDisplayValidation
4 | {
5 | public static bool IsLeftSlant { get; set; }
6 | public static bool IsRightSlant { get; set; }
7 | public static bool IsSlantLeftTop { get; set; }
8 | public static bool IsSlantRightTop { get; set; }
9 | public static double LeftSlantAmount { get; set; }
10 | public static double RightSlantAmount { get; set; }
11 |
12 | }
13 | }
--------------------------------------------------------------------------------
/BusinessLogic/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/GUI/Commands/CommandBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Input;
3 |
4 | namespace GUI.Commands
5 | {
6 | public abstract class CommandBase : ICommand
7 | {
8 | public event EventHandler CanExecuteChanged;
9 |
10 | public virtual bool CanExecute(object parameter)
11 | {
12 | return true;
13 | }
14 |
15 | public abstract void Execute(object parameter);
16 |
17 | protected void OnCanExecuteChanged()
18 | {
19 | CanExecuteChanged?.Invoke(this, EventArgs.Empty);
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/GUI/Stores/NavigationStore.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using GUI.Views;
3 |
4 | namespace GUI.Stores
5 | {
6 | public class NavigationStore
7 | {
8 | public MainWindow MainWindow { get; set; }
9 | public HomeView HomeView { get; set; }
10 | public ProductSelectionView ProductSelectionView { get; set; }
11 | public ConstructionView ConstructView { get; set; }
12 | public GeneralProductView GeneralProductView { get; set; }
13 | public UserControl SpecificProductView { get; set; }
14 | public DesignView DesignView { get; set; }
15 | public HandleView HandleView { get; set; }
16 | public FinishView FinishView { get; set; }
17 | }
18 | }
--------------------------------------------------------------------------------
/GUI/Helpers/GeneralHelp.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Reflection;
5 |
6 | namespace GUI.Helpers
7 | {
8 | public static class GeneralHelp
9 | {
10 | public static List ReturnListOfClassNames(Type classType)
11 | {
12 | List list = new List();
13 |
14 | var ChildClasses = Assembly.GetAssembly(classType).GetTypes().Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(classType));
15 |
16 | foreach (var instance in ChildClasses)
17 | {
18 | list.Add(instance.Name);
19 | }
20 |
21 | return list;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/GUI/ViewModels/DesignViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using GUI.Helpers;
3 |
4 | namespace GUI.ViewModels
5 | {
6 | public class DesignViewModel : ViewModelBase
7 | {
8 | private string _selectedDesign;
9 | public List Designs { get; }
10 | public string SelectedDesign
11 | {
12 | get => _selectedDesign;
13 | set
14 | {
15 | _selectedDesign = value;
16 | OnPropertyChanged(nameof(SelectedDesign));
17 | }
18 | }
19 |
20 | public DesignViewModel()
21 | {
22 | Designs = GeneralHelp.ReturnListOfClassNames(typeof(BusinessLogic.Classes.Design));
23 | SelectedDesign = Designs[0];
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/ConstructionOpening.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using BusinessLogic.Settings;
4 |
5 | namespace BusinessLogic.Classes
6 | {
7 | public class ConstructionOpening
8 | {
9 |
10 | public ConstructionOpening()
11 | {
12 | }
13 |
14 | private void CalculateOpeningPoints()
15 | {
16 | }
17 |
18 | private void CalculateHelpPoints()
19 | {
20 |
21 | }
22 |
23 | private void CalculateHelpLines()
24 | {
25 | }
26 |
27 | private void CalculateWalls()
28 | {
29 | }
30 |
31 | private void CalculateDimensions()
32 | {
33 | }
34 |
35 | public void Draw()
36 | {
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/GUI/Views/HingeDoorProductView.xaml.cs:
--------------------------------------------------------------------------------
1 | // using System.Windows;
2 | // using System.Windows.Controls;
3 | // using DoorPROGUI.Helpers;
4 | //
5 | // namespace DoorPROGUI.Views
6 | // {
7 | // public partial class HingeDoorProductView : DoorSettingsView
8 | // {
9 | // public ProductSelectionView Psv { get; }
10 | //
11 | // public HingeDoorProductView(ProductSelectionView productSelectionView) : base(productSelectionView)
12 | // {
13 | // Psv = productSelectionView;
14 | // MainWindow = Psv.Cv.Mv;
15 | // InitializeComponent();
16 | // }
17 | //
18 | // private void BackButton_OnClick(object sender, RoutedEventArgs e)
19 | // {
20 | // MainWindow.MainContent.Children.Clear();
21 | // MainWindow.MainContent.Children.Add(Psv);
22 | // }
23 | // }
24 | // }
--------------------------------------------------------------------------------
/GUI/Commands/InstantiateProductCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | using GUI.Helpers;
4 | using GUI.ViewModels;
5 |
6 | namespace GUI.Commands
7 | {
8 | public class InstantiateProductCommand : CommandBase
9 | {
10 | private MainViewModel Mvm { get; set; }
11 |
12 | public InstantiateProductCommand(MainViewModel mvm)
13 | {
14 | Mvm = mvm;
15 | }
16 |
17 | public override void Execute(object parameter)
18 | {
19 | try
20 | {
21 | Mvm.ProductViewModel = Activator.CreateInstance(Type.GetType($"GUI.ViewModels.ProductViewModels.{CurrentGuiInfo.CurrentProduct}DoorViewModel")) as ViewModelBase;
22 | }
23 | catch (Exception exception)
24 | {
25 | MessageBox.Show(exception.Message);
26 | }
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/GUI/Views/ManualDrawingView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 | using GUI.Views;
4 | using GUI.Stores;
5 |
6 | namespace GUI.Views
7 | {
8 | public partial class ManualDrawingView : UserControl
9 | {
10 | private NavigationStore Nav { get; set; }
11 | public ManualDrawingView(NavigationStore navigationStore)
12 | {
13 | Nav = navigationStore;
14 |
15 | InitializeComponent();
16 | DataContext = Nav.MainWindow.DataContext;
17 | }
18 |
19 | private void Home_OnClicked(object sender, RoutedEventArgs e)
20 | {
21 | Nav.MainWindow.ContentDisplay.Children.Clear();
22 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
23 | }
24 |
25 | private void SL_Prod_BottomDims_OnClick(object sender, RoutedEventArgs e)
26 | {
27 | MessageBox.Show("Triggered");
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/GUI/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Input;
3 | using GUI.ViewModels;
4 | using GUI.Views;
5 |
6 | namespace GUI
7 | {
8 | ///
9 | /// Interaction logic for MainWindow.xaml
10 | ///
11 | public partial class MainWindow
12 | {
13 | public MainWindow()
14 | {
15 | InitializeComponent();
16 | DataContext = new MainViewModel();
17 | ContentDisplay.Children.Add(new HomeView(this));
18 | }
19 |
20 | //WINDOW COMMANDS
21 | private void ExitApp_Clicked(object sender, RoutedEventArgs e)
22 | {
23 | Close();
24 | }
25 |
26 | private void MinimizeWindow_Clicked(object sender, RoutedEventArgs e)
27 | {
28 | WindowState = WindowState.Minimized;
29 | }
30 |
31 | private void DragWindow_OnMouseDown(object sender, MouseButtonEventArgs e)
32 | {
33 | DragMove();
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/GUI/Views/FinishView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 | using GUI.Stores;
4 |
5 | namespace GUI.Views
6 | {
7 | public partial class FinishView : UserControl
8 | {
9 | public NavigationStore Nav { get; set; }
10 | public FinishView(NavigationStore navigationStore)
11 | {
12 | Nav = navigationStore;
13 |
14 | InitializeComponent();
15 | DataContext = Nav.MainWindow.DataContext;
16 | }
17 |
18 | private void Back_HandleView(object sender, RoutedEventArgs e)
19 | {
20 | Nav.MainWindow.ContentDisplay.Children.Clear();
21 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.HandleView);
22 | }
23 |
24 | private void Back_HomeView(object sender, RoutedEventArgs e)
25 | {
26 | Nav.MainWindow.ContentDisplay.Children.Clear();
27 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/GUI/AutoCAD.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using Autodesk.AutoCAD.ApplicationServices;
3 | using Autodesk.AutoCAD.DatabaseServices;
4 | using Autodesk.AutoCAD.EditorInput;
5 | using Autodesk.AutoCAD.Runtime;
6 | using GUI;
7 | using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;
8 | using Application = Autodesk.AutoCAD.ApplicationServices.Core.Application;
9 | using Exception = Autodesk.AutoCAD.Runtime.Exception;
10 |
11 | [assembly: CommandClass(typeof(AutoCAD))]
12 |
13 | namespace GUI
14 | {
15 | public static class AutoCAD
16 | {
17 | private static MainWindow Window { get; set; }
18 |
19 | [CommandMethod("doorpro")]
20 | public static void CreateDoorPROGUI()
21 | {
22 | Window = new MainWindow();
23 |
24 | Application.ShowModelessWindow(Window);
25 | }
26 |
27 | public static void HideDoorPROGUI()
28 | {
29 | Window.Hide();
30 | }
31 |
32 | public static void ShowDoorPROGUI()
33 | {
34 | Window.Show();
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handles/DefaultHandle.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic.Classes.Handles
2 | {
3 | public class DefaultHandle : Handle
4 | {
5 | public string Name { get; set; } = "Default Handle";
6 | public int NumberOfAdapters { get; set; }
7 | public bool HasRoundHandle { get; set; }
8 | public bool NeedsHandlePlate { get; set; }
9 | public bool IsAdapterFulGripHeight { get; set; }
10 | public double WallThickness { get; set; }
11 | public double GripWidth { get; set; }
12 | public double GripThickness { get; set; }
13 | public double GripExtension { get; set; }
14 |
15 | public double HandleOffsetFromAdapter { get; set; }
16 | public double AdapterWidth { get; set; }
17 | public double AdapterHeight { get; set; }
18 | public double AdapterThickness { get; set; }
19 |
20 |
21 | public DefaultHandle()
22 | {
23 |
24 | }
25 |
26 | public HandleTopView CalculateTopView(Element element)
27 | {
28 | return new HandleTopView();
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/GUI/Commands/DrawCommands/DrawProductCommand.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using BusinessLogic.Classes;
3 | using BusinessLogic.Classes.Datas;
4 | using BusinessLogic.Settings;
5 | using GUI.ViewModels;
6 |
7 | namespace GUI.Commands.DrawCommands
8 | {
9 | public class DrawProductCommand : CommandBase
10 | {
11 | private MainViewModel Mvm { get; set; }
12 |
13 | public DrawProductCommand(MainViewModel mvm)
14 | {
15 | Mvm = mvm;
16 | }
17 | public override void Execute(object parameter)
18 | {
19 | // AutoCAD.CreateLoading();
20 |
21 | CurrentDrawInfo.ResetCurrentDrawInfo();
22 |
23 | Data data = Mvm.ProductViewModel.ParseData();
24 | HingeData hingeData = (HingeData) data;
25 |
26 | System.Windows.Forms.MessageBox.Show("Is Closing strip: " + hingeData.IsClosingStripOnlyTop.ToString());
27 |
28 | // Get the factory method and draw the product
29 | MessageBox.Show("Product is drawn.");
30 | // AutoCAD.CloseLoading();
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/GUI/ViewModels/MainViewModel.cs:
--------------------------------------------------------------------------------
1 | using GUI.Commands;
2 | using GUI.Commands.DrawCommands;
3 |
4 | namespace GUI.ViewModels
5 | {
6 | public class MainViewModel : ViewModelBase
7 | {
8 | public ConstructionViewModel ConstructionViewModel { get; set; }
9 | public GeneralProductViewModel GeneralProductViewModel { get; set; }
10 | public DesignViewModel DesignViewModel { get; set; }
11 | public HandleViewModel HandleViewModel { get; set; }
12 | public ViewModelBase ProductViewModel { get; set; }
13 | public DrawProductCommand DrawCommand { get; set; }
14 | public InstantiateProductCommand InstantiateProduct { get; set; }
15 |
16 | public MainViewModel()
17 | {
18 | ConstructionViewModel = new ConstructionViewModel();
19 | GeneralProductViewModel = new GeneralProductViewModel();
20 | DesignViewModel = new DesignViewModel();
21 | HandleViewModel = new HandleViewModel();
22 |
23 | DrawCommand = new DrawProductCommand(this);
24 | InstantiateProduct = new InstantiateProductCommand(this);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/GUI/Views/DesignView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Input;
3 |
4 | namespace DoorPROGUI.Views
5 | {
6 | public partial class DesignView
7 | {
8 | // private DoorSettingsBase DoorSettings { get; set; }
9 | public MainWindow MainWindow { get; }
10 | public DesignView()
11 | {
12 | // MainWindow = doorSettings.MainWindow;
13 | // DoorSettings = doorSettings;
14 |
15 | InitializeComponent();
16 | }
17 |
18 | private void GoHome(object sender, MouseButtonEventArgs e)
19 | {
20 | MainWindow.MainContent.Children.Clear();
21 | MainWindow.MainContent.Children.Add(new HomeView());
22 | }
23 |
24 | private void Back_OnClicked(object sender, RoutedEventArgs e)
25 | {
26 | MainWindow.MainContent.Children.Clear();
27 | // MainWindow.MainContent.Children.Add();
28 | }
29 |
30 | private void HandlesButton_OnClick(object sender, RoutedEventArgs e)
31 | {
32 | MainWindow.MainContent.Children.Clear();
33 | MainWindow.MainContent.Children.Add(new HandleView(this));
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Design.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes
4 | {
5 | public abstract class Design
6 | {
7 | public abstract string Name { get; set; }
8 | public abstract double NumberOfHorizontalProfileGroups { get; set; }
9 | public abstract double NumberOfVerticalProfileGroups { get; set; }
10 | public abstract double NumberOfGlassPanels { get; set; }
11 | public abstract double NumberOfSteelPlates { get; set; }
12 | public abstract bool CanBeMirrored { get; set; }
13 | public abstract bool IsBottomGlassCustom { get; set; }
14 |
15 |
16 | // V PRODUCTU KJER SE REFLECTIONIRA SE UPORAB CONSTRUCTOR: (Data data, ConstructionOpening co, double doorHeight)
17 | // Prazen construktor se rabi za reflection v gui da se prebere št vert profilov in če je mirrored
18 |
19 |
20 |
21 | public abstract void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles);
22 | public abstract void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles);
23 | }
24 |
25 | public class Element
26 | {
27 | }
28 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Lucas.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Lucas : Design
7 | {
8 | public override string Name { get; set; } = "Lucas";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 2;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 0;
11 | public override double NumberOfGlassPanels { get; set; } = 3;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; } = true;
15 |
16 | public Lucas()
17 | {
18 |
19 | }
20 |
21 | public Lucas(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 | }
24 |
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 | }
29 |
30 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
31 | {
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Pablo.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Pablo : Design
7 | {
8 | public override string Name { get; set; } = "Pablo";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 3;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 0;
11 | public override double NumberOfGlassPanels { get; set; } = 4;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public Pablo()
17 | {
18 |
19 | }
20 |
21 | public Pablo(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 | }
24 |
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 | }
29 |
30 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
31 | {
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Vincent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Vincent : Design
7 | {
8 | public override string Name { get; set; } = "Vincent";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 1;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 1;
11 | public override double NumberOfGlassPanels { get; set; } = 2;
12 | public override double NumberOfSteelPlates { get; set; } = 1;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; } = true;
15 |
16 | public Vincent()
17 | {
18 |
19 | }
20 |
21 | public Vincent(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 | }
24 |
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 | }
29 |
30 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
31 | {
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Leonardo.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Leonardo : Design
7 | {
8 | public override string Name { get; set; } = "Leonardo";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 2;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 0;
11 | public override double NumberOfGlassPanels { get; set; } = 3;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public Leonardo()
17 | {
18 |
19 | }
20 |
21 | public Leonardo(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 | }
24 |
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 | }
29 |
30 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
31 | {
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Karel.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Karel : Design
7 | {
8 | public override string Name { get; set; } = "Karel";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 2;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 1;
11 | public override double NumberOfGlassPanels { get; set; } = 6;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; } = true;
14 | public override bool IsBottomGlassCustom { get; set; } = true;
15 |
16 | public Karel()
17 | {
18 |
19 | }
20 |
21 | public Karel(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 | }
24 |
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 |
29 | }
30 |
31 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
32 | {
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Rembrandt.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Rembrandt : Design
7 | {
8 | public override string Name { get; set; } = "Rembrandt";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 1;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 1;
11 | public override double NumberOfGlassPanels { get; set; } = 4;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; } = true;
14 | public override bool IsBottomGlassCustom { get; set; } = true;
15 |
16 | public Rembrandt()
17 | {
18 |
19 | }
20 |
21 | public Rembrandt(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 | }
24 |
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 | }
29 |
30 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
31 | {
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Piet.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using BusinessLogic.Settings;
3 |
4 | namespace BusinessLogic.Classes.Designs
5 |
6 | {
7 | public class Piet : Design
8 | {
9 | public override string Name { get; set; } = "Piet";
10 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 2;
11 | public override double NumberOfVerticalProfileGroups { get; set; } = 1;
12 | public override double NumberOfGlassPanels { get; set; } = 5;
13 | public override double NumberOfSteelPlates { get; set; } = 1;
14 | public override bool CanBeMirrored { get; set; } = true;
15 | public override bool IsBottomGlassCustom { get; set; } = true;
16 |
17 | public Piet()
18 | {
19 |
20 | }
21 |
22 | public Piet(Data data, ConstructionOpening co, double doorHeight)
23 | {
24 | }
25 |
26 |
27 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
28 | {
29 | }
30 |
31 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
32 | {
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Claude.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Claude : Design
7 | {
8 | public override string Name { get; set; } = "Claude";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 1;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 1;
11 | public override double NumberOfGlassPanels { get; set; } = 4;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public Claude()
17 | {
18 |
19 | }
20 | public Claude(Data data, ConstructionOpening co, double doorHeight)
21 | {
22 |
23 | }
24 |
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 |
29 | }
30 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
31 | {
32 |
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Albert.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Albert : Design
7 | {
8 | public override string Name { get; set; } = "Albert";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 2;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 1;
11 | public override double NumberOfGlassPanels { get; set; } = 6;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public Albert()
17 | {
18 |
19 | }
20 |
21 | public Albert(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 |
24 | }
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 |
29 | }
30 |
31 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
32 | {
33 |
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/George.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class George : Design
7 | {
8 | public override string Name { get; set; } = "George";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 0;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 0;
11 | public override double NumberOfGlassPanels { get; set; } = 1;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public George()
17 | {
18 |
19 | }
20 |
21 | public George(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 |
24 | }
25 |
26 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
27 | {
28 |
29 | }
30 |
31 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
32 | {
33 |
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Herman.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Herman : Design
7 | {
8 | public override string Name { get; set; } = "Herman";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 2;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 0;
11 | public override double NumberOfGlassPanels { get; set; } = 3;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public Herman()
17 | {
18 |
19 | }
20 |
21 | public Herman(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 |
24 | }
25 |
26 |
27 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
28 | {
29 |
30 | }
31 |
32 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
33 | {
34 |
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Anton.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Anton : Design
7 | {
8 | public override string Name { get; set; } = "Anton";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 4;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 0;
11 | public override double NumberOfGlassPanels { get; set; } = 5;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public Anton()
17 | {
18 |
19 | }
20 |
21 | public Anton(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 |
24 | }
25 |
26 |
27 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
28 | {
29 |
30 | }
31 |
32 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
33 | {
34 |
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Govert.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Govert : Design
7 | {
8 | public override string Name { get; set; } = "Govert";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 1;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 0;
11 | public override double NumberOfGlassPanels { get; set; } = 2;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; } = true;
15 |
16 | public Govert()
17 | {
18 |
19 | }
20 |
21 | public Govert(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 |
24 | }
25 |
26 |
27 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
28 | {
29 |
30 | }
31 |
32 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
33 | {
34 |
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Designs/Johannes.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace BusinessLogic.Classes.Designs
4 |
5 | {
6 | public class Johannes : Design
7 | {
8 | public override string Name { get; set; } = "Johannes";
9 | public sealed override double NumberOfHorizontalProfileGroups { get; set; } = 3;
10 | public override double NumberOfVerticalProfileGroups { get; set; } = 1;
11 | public override double NumberOfGlassPanels { get; set; } = 8;
12 | public override double NumberOfSteelPlates { get; set; } = 0;
13 | public override bool CanBeMirrored { get; set; }
14 | public override bool IsBottomGlassCustom { get; set; }
15 |
16 | public Johannes()
17 | {
18 |
19 | }
20 |
21 | public Johannes(Data data, ConstructionOpening co, double doorHeight)
22 | {
23 |
24 | }
25 |
26 |
27 | public override void CalculateSidelightDesign(Element element, Data data, Dictionary clientElementProfiles)
28 | {
29 |
30 | }
31 |
32 | public override void CalculateDoorDesign(Element element, Data data, Dictionary clientElementProfiles)
33 | {
34 |
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/GUI/Views/DesignView.cs.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using GUI.Views;
3 | using GUI.Stores;
4 |
5 | namespace GUI.Views
6 | {
7 | public partial class DesignView
8 | {
9 | private NavigationStore Nav { get; set; }
10 | public DesignView(NavigationStore navigationStore)
11 | {
12 | Nav = navigationStore;
13 | Nav.DesignView = this;
14 |
15 | InitializeComponent();
16 | DataContext = Nav.MainWindow.DataContext;
17 | }
18 |
19 | private void Back_SpecificProductView(object sender, RoutedEventArgs e)
20 | {
21 | Nav.MainWindow.ContentDisplay.Children.Clear();
22 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.SpecificProductView);
23 | }
24 | private void Back_HomeView(object sender, RoutedEventArgs e)
25 | {
26 | Nav.MainWindow.ContentDisplay.Children.Clear();
27 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
28 | }
29 | private void Next_HandleView(object sender, RoutedEventArgs e)
30 | {
31 | Nav.MainWindow.ContentDisplay.Children.Clear();
32 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.HandleView ?? new HandleView(Nav));
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/GUI/Views/HandleView.xaml.cs:
--------------------------------------------------------------------------------
1 | // using System.Windows;
2 | // using System.Windows.Input;
3 | //
4 | // namespace DoorPROGUI.Views
5 | // {
6 | // public partial class HandleView
7 | // {
8 | // private DesignView DesignView { get; }
9 | // public MainWindow MainWindow { get; }
10 | //
11 | // public HandleView(DesignView designView)
12 | // {
13 | // MainWindow = designView.MainWindow;
14 | // DesignView = designView;
15 | // InitializeComponent();
16 | // }
17 | //
18 | // private void GoHome(object sender, MouseButtonEventArgs e)
19 | // {
20 | // MainWindow.MainContent.Children.Clear();
21 | // MainWindow.MainContent.Children.Add(new HomeView());
22 | // }
23 | //
24 | // private void Back_OnClicked(object sender, RoutedEventArgs routedEventArgs)
25 | // {
26 | // MainWindow.MainContent.Children.Clear();
27 | // MainWindow.MainContent.Children.Add(DesignView);
28 | // }
29 | //
30 | // private void Overview_OnClicked(object sender, RoutedEventArgs e)
31 | // {
32 | // MainWindow.MainContent.Children.Clear();
33 | // MainWindow.MainContent.Children.Add(new FinishView(this));
34 | // }
35 | // }
36 | // }
--------------------------------------------------------------------------------
/GUI/Views/ProductViews/HingeView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using GUI.Stores;
3 |
4 | namespace GUI.Views.ProductViews
5 | {
6 | public partial class HingeDoorView
7 | {
8 | private NavigationStore Nav { get; set; }
9 |
10 | public HingeDoorView(NavigationStore navigationStore)
11 | {
12 | Nav = navigationStore;
13 | Nav.SpecificProductView = this;
14 |
15 | InitializeComponent();
16 | DataContext = Nav.MainWindow.DataContext;
17 | }
18 |
19 |
20 | private void Back_GeneralProductView(object sender, RoutedEventArgs e)
21 | {
22 | Nav.MainWindow.ContentDisplay.Children.Clear();
23 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.GeneralProductView);
24 | }
25 |
26 | private void Back_HomeView(object sender, RoutedEventArgs e)
27 | {
28 | Nav.MainWindow.ContentDisplay.Children.Clear();
29 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
30 | }
31 | private void Next_DesignView(object sender, RoutedEventArgs e)
32 | {
33 | Nav.MainWindow.ContentDisplay.Children.Clear();
34 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.DesignView ?? new DesignView(Nav));
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/GUI/Views/ProductViews/PivotView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Globalization;
2 | using System.Windows;
3 | using GUI.Helpers;
4 | using GUI.Stores;
5 |
6 | namespace GUI.Views.ProductViews
7 | {
8 | public partial class PivotDoorView
9 | {
10 | private NavigationStore Nav { get; set; }
11 | public PivotDoorView(NavigationStore navigationStore)
12 | {
13 | Nav = navigationStore;
14 | Nav.SpecificProductView = this;
15 | InitializeComponent();
16 | DataContext = Nav.MainWindow.DataContext;
17 | }
18 |
19 | private void Back_GeneralProductView(object sender, RoutedEventArgs e)
20 | {
21 | Nav.MainWindow.ContentDisplay.Children.Clear();
22 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.GeneralProductView);
23 | }
24 |
25 | private void Back_HomeView(object sender, RoutedEventArgs e)
26 | {
27 | Nav.MainWindow.ContentDisplay.Children.Clear();
28 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
29 | }
30 | private void Next_DesignView(object sender, RoutedEventArgs e)
31 | {
32 | Nav.MainWindow.ContentDisplay.Children.Clear();
33 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.DesignView ?? new DesignView(Nav));
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handles/Ror_R.cs:
--------------------------------------------------------------------------------
1 | using BusinessLogic.Settings;
2 |
3 | namespace BusinessLogic.Classes.Handles
4 | {
5 | public class Ror_R : Handle
6 | {
7 | public string Name { get; set; } = "Ror_R";
8 | public int NumberOfAdapters { get; set; } = 2;
9 | public bool HasRoundHandle { get; set; } = true;
10 | public bool NeedsHandlePlate { get; set; } = true;
11 | public bool IsAdapterFulGripHeight { get; set; }
12 | public double WallThickness { get; set; } = GlobalSettings.DafaultHandleWallThickness;
13 | public double GripWidth { get; set; } = 21;
14 | public double GripThickness { get; set; } = 21;
15 | public double GripExtension { get; set; }
16 | public double HandleOffsetFromAdapter { get; set; }
17 | public double AdapterWidth { get; set; } = 21;
18 | public double AdapterHeight { get; set; } = 21;
19 | public double AdapterThickness { get; set; } = 40;
20 |
21 | public Ror_R()
22 | {
23 |
24 | }
25 |
26 | public Ror_R(Element element, Data data, ConstructionOpening co) { }
27 |
28 | public HandleTopView CalculateTopView(Element element)
29 | {
30 | HandleTopView handleTopView = new HandleTopView();
31 |
32 | return handleTopView;
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handles/Sleeve_R.cs:
--------------------------------------------------------------------------------
1 | using BusinessLogic.Settings;
2 |
3 | namespace BusinessLogic.Classes.Handles
4 | {
5 | public class Sleeve_R : Handle
6 | {
7 | public string Name { get; set; } = "Sleeve_R";
8 | public int NumberOfAdapters { get; set; } = 2;
9 | public bool HasRoundHandle { get; set; }
10 | public bool NeedsHandlePlate { get; set; } = true;
11 | public bool IsAdapterFulGripHeight { get; set; }
12 | public double WallThickness { get; set; } = GlobalSettings.DafaultHandleWallThickness;
13 | public double GripWidth { get; set; } = 30;
14 | public double GripThickness { get; set; } = 20;
15 | public double GripExtension { get; set; }
16 | public double HandleOffsetFromAdapter { get; set; }
17 | public double AdapterWidth { get; set; } = 30;
18 | public double AdapterHeight { get; set; } = 30;
19 | public double AdapterThickness { get; set; } = 30;
20 |
21 | public Sleeve_R()
22 | {
23 |
24 | }
25 |
26 | public Sleeve_R(Element element, Data data, ConstructionOpening co) { }
27 |
28 | public HandleTopView CalculateTopView(Element element)
29 | {
30 | HandleTopView handleTopView = new HandleTopView { };
31 |
32 | return handleTopView;
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handles/Ror_DS.cs:
--------------------------------------------------------------------------------
1 | using BusinessLogic.Settings;
2 |
3 | namespace BusinessLogic.Classes.Handles
4 | {
5 | public class Ror_DS : Handle
6 | {
7 | public string Name { get; set; } = "Ror_DS";
8 | public int NumberOfAdapters { get; set; } = 2;
9 | public bool HasRoundHandle { get; set; } = true;
10 | public bool NeedsHandlePlate { get; set; } = true;
11 | public bool IsAdapterFulGripHeight { get; set; }
12 | public double WallThickness { get; set; } = GlobalSettings.DafaultHandleWallThickness;
13 | public double GripWidth { get; set; } = 21;
14 | public double GripThickness { get; set; } = 21;
15 | public double GripExtension { get; set; } = 30;
16 | public double HandleOffsetFromAdapter { get; set; }
17 | public double AdapterWidth { get; set; } = 21;
18 | public double AdapterHeight { get; set; } = 21;
19 | public double AdapterThickness { get; set; } = 40;
20 |
21 | public Ror_DS()
22 | {
23 |
24 | }
25 |
26 | public Ror_DS(Element element, Data data, ConstructionOpening co) { }
27 |
28 | public HandleTopView CalculateTopView(Element element)
29 | {
30 | HandleTopView handleTopView = new HandleTopView { };
31 |
32 | return handleTopView;
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handles/Hondla.cs:
--------------------------------------------------------------------------------
1 | using BusinessLogic.Settings;
2 |
3 | namespace BusinessLogic.Classes.Handles
4 | {
5 | public class Hondla : Handle
6 | {
7 | public string Name { get; set; } = "Hondla";
8 | public int NumberOfAdapters { get; set; } = 2;
9 | public bool HasRoundHandle { get; set; }
10 | public bool NeedsHandlePlate { get; set; }
11 | public bool IsAdapterFulGripHeight { get; set; }
12 | public double WallThickness { get; set; } = GlobalSettings.DafaultHandleWallThickness;
13 | public double GripWidth { get; set; } = 20;
14 | public double GripThickness { get; set; } = 20;
15 | public double GripExtension { get; set; }
16 | public double HandleOffsetFromAdapter { get; set; } = 40;
17 | public double AdapterWidth { get; set; } = 20;
18 | public double AdapterHeight { get; set; } = 20;
19 | public double AdapterThickness { get; set; } = 20;
20 |
21 | public Hondla()
22 | {
23 |
24 | }
25 |
26 | public Hondla(Element element, Data data, ConstructionOpening co)
27 | {
28 |
29 | }
30 |
31 | public HandleTopView CalculateTopView(Element element)
32 | {
33 | HandleTopView handleTopView = new HandleTopView();
34 |
35 | return handleTopView;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handles/Horn.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using BusinessLogic.Settings;
3 |
4 | namespace BusinessLogic.Classes.Handles
5 | {
6 | public class Horn : Handle
7 | {
8 | public string Name { get; set; } = "Horn";
9 | public int NumberOfAdapters { get; set; } = 1;
10 | public bool HasRoundHandle { get; set; }
11 | public bool NeedsHandlePlate { get; set; }
12 | public bool IsAdapterFulGripHeight { get; set; } = true;
13 | public double WallThickness { get; set; } = 3;
14 | public double GripWidth { get; set; } = 30;
15 | public double GripThickness { get; set; } = 3;
16 | public double GripExtension { get; set; }
17 | public double HandleOffsetFromAdapter { get; set; }
18 |
19 | public double AdapterWidth { get; set; } = 3;
20 | public double AdapterHeight { get => 9999; set { } }
21 |
22 | public double AdapterThickness { get; set; } = 27;
23 |
24 | public Horn()
25 | {
26 |
27 | }
28 |
29 | public Horn(Element element, Data data, ConstructionOpening co)
30 | {
31 |
32 | }
33 |
34 | public HandleTopView CalculateTopView(Element element)
35 | {
36 | HandleTopView handleTopView = new HandleTopView { };
37 |
38 | return handleTopView;
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/GUI/Views/ProductSelectionView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 | using System.Windows.Media;
5 | using BusinessLogic.Classes;
6 | using BusinessLogic.Settings;
7 | using GUI.Commands;
8 | using GUI.Views;
9 | using GUI.ViewModels;
10 | using GUI.Views.ProductViews;
11 | using GUI.Helpers;
12 | using GUI.Stores;
13 |
14 | namespace GUI.Views
15 | {
16 | public partial class ProductSelectionView
17 | {
18 | private NavigationStore Nav { get; set; }
19 | public ProductSelectionView(NavigationStore navigationStore)
20 | {
21 | Nav = navigationStore;
22 | Nav.ProductSelectionView = this;
23 |
24 | InitializeComponent();
25 | DataContext = Nav.MainWindow.DataContext;
26 | }
27 |
28 | private void Next_OnClicked(object sender, RoutedEventArgs e)
29 | {
30 | CurrentGuiInfo.CurrentProduct = ((RadioButton) sender).Tag as string;
31 |
32 | Nav.MainWindow.ContentDisplay.Children.Clear();
33 | Nav.MainWindow.ContentDisplay.Children.Add(new ConstructionView(Nav, false));
34 | }
35 |
36 | private void Back_HomeView(object sender, RoutedEventArgs e)
37 | {
38 | Nav.MainWindow.ContentDisplay.Children.Clear();
39 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Handles/Sleeve_DS.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using BusinessLogic.Settings;
3 |
4 | namespace BusinessLogic.Classes.Handles
5 | {
6 | public class Sleeve_DS : Handle
7 | {
8 | public string Name { get; set; } = "Sleeve_DS";
9 | public int NumberOfAdapters { get; set; } = 2;
10 | public bool HasRoundHandle { get; set; }
11 | public bool NeedsHandlePlate { get; set; } = true;
12 | public bool IsAdapterFulGripHeight { get; set; }
13 | public double WallThickness { get; set; } = GlobalSettings.DafaultHandleWallThickness;
14 | public double GripWidth { get; set; } = 30;
15 | public double GripThickness { get; set; } = 20;
16 | public double GripExtension { get; set; } = 30;
17 | public double HandleOffsetFromAdapter { get; set; }
18 | public double AdapterWidth { get; set; } = 30;
19 | public double AdapterHeight { get; set; } = 30;
20 | public double AdapterThickness { get; set; } = 30;
21 |
22 | public Sleeve_DS()
23 | {
24 |
25 | }
26 |
27 | public Sleeve_DS(Element element, Data data, ConstructionOpening co)
28 | {
29 | }
30 |
31 | public HandleTopView CalculateTopView(Element element)
32 | {
33 | HandleTopView handleTopView = new HandleTopView { };
34 |
35 | return handleTopView;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/BusinessLogic/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("BusinessLogic")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("BusinessLogic")]
12 | [assembly: AssemblyCopyright("Copyright © 2022")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("5C27B3A4-B9B9-4C7F-8522-03A6502E0280")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | // You can specify all the values or you can default the Build and Revision Numbers
32 | // by using the '*' as shown below:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.0.0.0")]
35 | [assembly: AssemblyFileVersion("1.0.0.0")]
--------------------------------------------------------------------------------
/GUI/Views/ConstructionView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Reflection;
3 | using System.Windows;
4 | using GUI.Views;
5 | using GUI.Stores;
6 |
7 | namespace GUI.Views
8 | {
9 | public partial class ConstructionView
10 | {
11 | private NavigationStore Nav { get; set; }
12 | public ConstructionView(NavigationStore navigationStore, bool standAloneOpening)
13 | {
14 | Nav = navigationStore;
15 | Nav.ConstructView = this;
16 |
17 | InitializeComponent();
18 | DataContext = Nav.MainWindow.DataContext;
19 |
20 | if (standAloneOpening)
21 | {
22 | DrawOpening.Visibility = Visibility.Visible;
23 | GeneralProductSelection.Visibility = Visibility.Collapsed;
24 | }
25 | else
26 | {
27 | DrawOpening.Visibility = Visibility.Collapsed;
28 | GeneralProductSelection.Visibility = Visibility.Visible;
29 | }
30 | }
31 |
32 | private void Back_HomeView(object sender, RoutedEventArgs e)
33 | {
34 | Nav.MainWindow.ContentDisplay.Children.Clear();
35 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
36 | }
37 |
38 | private void Next_GeneralProductView(object sender, RoutedEventArgs e)
39 | {
40 | Nav.MainWindow.ContentDisplay.Children.Clear();
41 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.GeneralProductView ?? new GeneralProductView(Nav));
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/GUI/Views/HomeView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using GUI.Stores;
3 |
4 | namespace GUI.Views
5 | {
6 | public partial class HomeView
7 | {
8 | private NavigationStore Nav { get; set; }
9 | public HomeView(MainWindow mainWindow)
10 | {
11 | Nav = new NavigationStore
12 | {
13 | MainWindow = mainWindow,
14 | HomeView = this
15 | };
16 |
17 | InitializeComponent();
18 | DataContext = Nav.MainWindow.DataContext;
19 | }
20 | public HomeView()
21 | {
22 | // Default constructor, sam zarad warning messiga v MainWindow.xaml
23 | }
24 |
25 | private void Construction_OnClicked(object sender, RoutedEventArgs e)
26 | {
27 | const bool StandAloneConstructionOpening = true;
28 | Nav.MainWindow.ContentDisplay.Children.Clear();
29 | Nav.MainWindow.ContentDisplay.Children.Add(new ConstructionView(Nav, StandAloneConstructionOpening));
30 | }
31 |
32 | private void Automatic_OnClicked(object sender, RoutedEventArgs e)
33 | {
34 | Nav.MainWindow.ContentDisplay.Children.Clear();
35 | Nav.MainWindow.ContentDisplay.Children.Add(new ProductSelectionView(Nav));
36 | }
37 |
38 | private void Manual_OnClicked(object sender, RoutedEventArgs e)
39 | {
40 | Nav.MainWindow.ContentDisplay.Children.Clear();
41 | Nav.MainWindow.ContentDisplay.Children.Add(new ManualDrawingView(Nav));
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/app.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessLogic", "BusinessLogic\BusinessLogic.csproj", "{5C27B3A4-B9B9-4C7F-8522-03A6502E0280}"
4 | EndProject
5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GUI", "GUI\GUI.csproj", "{056448F8-4DB6-4AED-BB73-BD3E7F65F5CB}"
6 | EndProject
7 | Global
8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
9 | Debug|Any CPU = Debug|Any CPU
10 | Debug|x64 = Debug|x64
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {5C27B3A4-B9B9-4C7F-8522-03A6502E0280}.Release|Any CPU.ActiveCfg = Release|Any CPU
15 | {5C27B3A4-B9B9-4C7F-8522-03A6502E0280}.Release|Any CPU.Build.0 = Release|Any CPU
16 | {5C27B3A4-B9B9-4C7F-8522-03A6502E0280}.Debug|Any CPU.ActiveCfg = Debug|x64
17 | {5C27B3A4-B9B9-4C7F-8522-03A6502E0280}.Debug|Any CPU.Build.0 = Debug|x64
18 | {5C27B3A4-B9B9-4C7F-8522-03A6502E0280}.Debug|x64.ActiveCfg = Debug|x64
19 | {5C27B3A4-B9B9-4C7F-8522-03A6502E0280}.Debug|x64.Build.0 = Debug|x64
20 | {056448F8-4DB6-4AED-BB73-BD3E7F65F5CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {056448F8-4DB6-4AED-BB73-BD3E7F65F5CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {056448F8-4DB6-4AED-BB73-BD3E7F65F5CB}.Debug|x64.ActiveCfg = Debug|x64
23 | {056448F8-4DB6-4AED-BB73-BD3E7F65F5CB}.Debug|x64.Build.0 = Debug|x64
24 | {056448F8-4DB6-4AED-BB73-BD3E7F65F5CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {056448F8-4DB6-4AED-BB73-BD3E7F65F5CB}.Release|Any CPU.Build.0 = Release|Any CPU
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/GUI/Views/HandleView.cs.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using GUI.Stores;
3 |
4 | namespace GUI.Views
5 | {
6 | public partial class HandleView
7 | {
8 | private NavigationStore Nav { get; set; }
9 |
10 | public HandleView(NavigationStore navigationStore)
11 | {
12 | Nav = navigationStore;
13 | Nav.HandleView = this;
14 |
15 | InitializeComponent();
16 | DataContext = Nav.MainWindow.DataContext;
17 | }
18 | private void ChangeHandleSettings_OnChecked(object sender, RoutedEventArgs e)
19 | {
20 | HandleSettings.Visibility = Visibility.Visible;
21 | HandleImage.Visibility = Visibility.Collapsed;
22 | }
23 | private void ChangeHandleSettings_OnUnchecked(object sender, RoutedEventArgs e)
24 | {
25 | HandleSettings.Visibility = Visibility.Collapsed;
26 | HandleImage.Visibility = Visibility.Visible;
27 | }
28 | private void Back_designView(object sender, RoutedEventArgs e)
29 | {
30 | Nav.MainWindow.ContentDisplay.Children.Clear();
31 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.DesignView);
32 | }
33 | private void Back_HomeView(object sender, RoutedEventArgs e)
34 | {
35 | Nav.MainWindow.ContentDisplay.Children.Clear();
36 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
37 | }
38 | private void Next_FinishView(object sender, RoutedEventArgs e)
39 | {
40 | Nav.MainWindow.ContentDisplay.Children.Clear();
41 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.FinishView ?? new FinishView(Nav));
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/GUI/Commands/DrawCommands/DrawConstructionOpeningCommand.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using BusinessLogic.Settings;
3 | using GUI.ViewModels;
4 |
5 | namespace GUI.Commands.DrawCommands
6 | {
7 | public class DrawConstructionOpeningCommand : CommandBase
8 | {
9 | private ConstructionViewModel _cvm;
10 | public DrawConstructionOpeningCommand(ConstructionViewModel cvm)
11 | {
12 | _cvm = cvm;
13 | }
14 | public override void Execute(object parameter)
15 | {
16 | //CONSTRUCTION OPENING
17 | CurrentDrawInfo.ConstructionWidthBottom = _cvm.WidthOpeningBottom;
18 | CurrentDrawInfo.ConstructionWidthTop = _cvm.WidthOpeningTop;
19 | CurrentDrawInfo.ConstructionHeightLeft = _cvm.HeightOpeningLeft;
20 | CurrentDrawInfo.ConstructionHeightRight = _cvm.HeightOpeningRight;
21 |
22 | CurrentDrawInfo.MoveX = _cvm.MoveX;
23 | CurrentDrawInfo.MoveY = _cvm.MoveY;
24 |
25 | CurrentDrawInfo.DownLeftX = _cvm.DownLeftX;
26 | CurrentDrawInfo.DownLeftY = _cvm.DownLeftY;
27 |
28 | CurrentDrawInfo.DownRightX = _cvm.DownRightX;
29 | CurrentDrawInfo.DownRightY = _cvm.DownRightY;
30 |
31 | CurrentDrawInfo.UpRightX = _cvm.UpRightX;
32 | CurrentDrawInfo.UpRightY = _cvm.UpRightY;
33 |
34 | CurrentDrawInfo.UpLeftX = _cvm.UpLeftX;
35 | CurrentDrawInfo.UpLeftY = _cvm.UpLeftY;
36 |
37 | CurrentDrawInfo.MiddleDownY = _cvm.MiddleDown;
38 | CurrentDrawInfo.MiddleRightX = _cvm.MiddleRight;
39 | CurrentDrawInfo.MiddleUpY = _cvm.MiddleUp;
40 | CurrentDrawInfo.MiddleLeftX = _cvm.MiddleLeft;
41 |
42 | //Create and draw construction opening
43 | MessageBox.Show("Construction opening drawn.");
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/GUI/ViewModels/ViewModelBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Linq;
6 | using BusinessLogic.Classes;
7 | using BusinessLogic.Classes.Datas;
8 |
9 | namespace GUI.ViewModels
10 | {
11 | public class ViewModelBase : INotifyPropertyChanged, INotifyDataErrorInfo
12 | {
13 | //Notify On Property Changed Interface Implementation
14 | public event PropertyChangedEventHandler PropertyChanged;
15 |
16 | protected void OnPropertyChanged(string propertyName)
17 | {
18 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
19 | }
20 |
21 |
22 | //Notify Error Info Interface Implementation
23 |
24 | public readonly Dictionary> _errorsByPropertyName = new Dictionary>();
25 |
26 | public bool HasErrors => _errorsByPropertyName.Any();
27 |
28 | public event EventHandler ErrorsChanged;
29 |
30 | public IEnumerable GetErrors(string propertyName)
31 | {
32 | return _errorsByPropertyName.ContainsKey(propertyName) ?
33 | _errorsByPropertyName[propertyName] : null;
34 | }
35 |
36 | private void OnErrorsChanged(string propertyName)
37 | {
38 | ErrorsChanged?.Invoke(this, new DataErrorsChangedEventArgs(propertyName));
39 | }
40 |
41 | public void AddError(string propertyName, string error)
42 | {
43 | if (!_errorsByPropertyName.ContainsKey(propertyName))
44 | _errorsByPropertyName[propertyName] = new List();
45 |
46 | if (!_errorsByPropertyName[propertyName].Contains(error))
47 | {
48 | _errorsByPropertyName[propertyName].Add(error);
49 | OnErrorsChanged(propertyName);
50 | }
51 | }
52 |
53 | public void ClearErrors(string propertyName)
54 | {
55 | if (_errorsByPropertyName.ContainsKey(propertyName))
56 | {
57 | _errorsByPropertyName.Remove(propertyName);
58 | OnErrorsChanged(propertyName);
59 | }
60 | }
61 |
62 | public virtual Data ParseData()
63 | {
64 | return new PivotData();
65 | }
66 | }
67 | }
--------------------------------------------------------------------------------
/GUI/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("GUI")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("")]
14 | [assembly: AssemblyProduct("GUI")]
15 | [assembly: AssemblyCopyright("Copyright © 2022")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | // Setting ComVisible to false makes the types in this assembly not visible
20 | // to COM components. If you need to access a type in this assembly from
21 | // COM, set the ComVisible attribute to true on that type.
22 | [assembly: ComVisible(false)]
23 |
24 | //In order to begin building localizable applications, set
25 | //CultureYouAreCodingWith in your .csproj file
26 | //inside a . For example, if you are using US english
27 | //in your source files, set the to en-US. Then uncomment
28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
29 | //the line below to match the UICulture setting in the project file.
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
36 | //(used if a resource is not found in the page,
37 | // or application resource dictionaries)
38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
39 | //(used if a resource is not found in the page,
40 | // app, or any theme specific resource dictionaries)
41 | )]
42 |
43 |
44 | // Version information for an assembly consists of the following four values:
45 | //
46 | // Major Version
47 | // Minor Version
48 | // Build Number
49 | // Revision
50 | //
51 | // You can specify all the values or you can default the Build and Revision Numbers
52 | // by using the '*' as shown below:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("1.0.0.0")]
55 | [assembly: AssemblyFileVersion("1.0.0.0")]
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Datas/PivotData.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic.Classes.Datas
2 | {
3 | public class PivotData : Data
4 | {
5 | //COMMON SETTINGS ----------------------------------------------------------------------------------------------
6 |
7 | // DOOR DATA----------------------------------------------------------------------------------------------------
8 |
9 | //Door Profiles
10 | public override double DoorStandingProfile { get; set; } = 30;
11 | public override double DoorTopProfile { get; set; } = 30;
12 | public override double DoorBottomProfile { get; set; } = 60;
13 |
14 | //Door Design Profiles
15 | public override double DoorHorizontalDesignProfile { get; set; } = 30;
16 | public override double DoorVerticalDesignProfile { get; set; } = 30;
17 |
18 | //Default Door Gaps
19 | public override double DefaultGapDoorToWall { get; set; } = 5;
20 | public override double DefaultGapDoorToFloor { get; set; } = 13;
21 | public override double DefaultGapDoorToCeiling { get; set; } = 8;
22 | public override double DefaultGapDoorToDoor { get; set; } = 5;
23 | public override double DefaultGapDoorToSidelight { get; set; } = 5;
24 |
25 | //Door Top View
26 | public override double ElementThickness { get; set; } = 40;
27 | public override double ProfileWallThickness { get; set; } = 2;
28 |
29 |
30 | // SIDELIGHT DATA-----------------------------------------------------------------------------------------------
31 |
32 | //Sidelight Profiles
33 | public override double SidelightStandingProfile { get; set; } = 30;
34 | public override double SidelightTopProfile { get; set; } = 40;
35 | public override double SidelightBottomProfile { get; set; } = 70;
36 |
37 | //Default Sidelight Gaps
38 | public override double DefaultGapSidelightToWall { get; set; }
39 | public override double DefaultGapSidelightToFloor { get; set; }
40 | public override double DefaultGapSidelightToCeiling { get; set; } = 2;
41 |
42 |
43 |
44 | //SPECIFIC SETTINGS --------------------------------------------------------------------------------------------
45 |
46 | //Pivot Point
47 | public double PivotPointDistance { get; set; } = 60;
48 | public double PivotLineLength { get; set; } = 40;
49 | }
50 | }
--------------------------------------------------------------------------------
/BusinessLogic/Settings/GlobalSettings.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic.Settings
2 | {
3 | public static class GlobalSettings
4 | {
5 | // GUI AND MAIN SETTINGS----------------------------------------------------------------------------------------
6 | public static string Language { get; set; } = "Dutch";
7 |
8 |
9 | //HANDLES SETTINGS----------------------------------------------------------------------------------------------
10 | public static double ThicknessOfHandlePlate { get; set; } = 2;
11 | public static double DafaultHandleWallThickness { get; set; } = 2;
12 |
13 |
14 | //CONSTRUCTION OPENING SETTINGS---------------------------------------------------------------------------------
15 | public static double TopViewWallThickness { get; set; } = 100;
16 | public static double TopViewWallLength { get; set; } = 250;
17 |
18 | public static double ConstructionDimOffset { get; set; } = 250;
19 | public static double HelpDimOffset { get; set; } = 450;
20 |
21 |
22 | //TOP VIEW GENERAL SETTINGS-------------------------------------------------------------------------------------
23 |
24 | public static double DefaultTopViewOffset { get; set; } = 1000;
25 | public static double TopViewDimensionChainOffset { get; set; } = 275;
26 | public static double TopViewDimensionWallToWallOffset { get; set; } = 375;
27 |
28 |
29 | //PRODUCTION DRAWING SETTINGS ----------------------------------------------------------------------------------
30 |
31 | //Production Drawing Positions
32 | public static double ProductionFrontViewOffset { get; set; } = -10000;
33 | public static double ProductionTopViewOffset { get; set; } = 500;
34 | public static double ProductionMarginRight { get; set; } = 600;
35 | public static double ProductionProfileMargin { get; set; } = 0;
36 |
37 |
38 | //Dimension Levels
39 | public static double DimOffset { get; set; } = 60;
40 | public static double DimInitialOffset { get; set; } = 60;
41 |
42 | //Installation Hole Positions
43 | public static double MinWidthForWideInstallationHoles { get; set; } = 300;
44 | public static double InstallationHoleVertical { get; set; } = 400;
45 | public static double InstallationHoleWide { get; set; } = 100;
46 | public static double InstallationHoleNarrow { get; set; } = 70;
47 | public static double InstallationHoleExtension { get; set; } = 20;
48 |
49 | }
50 | }
--------------------------------------------------------------------------------
/GUI/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/.idea/.idea.app/.idea/workspace.xml:
--------------------------------------------------------------------------------
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 |
37 |
38 |
39 |
40 |
41 | 1664201877349
42 |
43 |
44 | 1664201877349
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/GUI/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace GUI.Properties
12 | {
13 | ///
14 | /// A strongly-typed resource class, for looking up localized strings, etc.
15 | ///
16 | // This class was auto-generated by the StronglyTypedResourceBuilder
17 | // class via a tool like ResGen or Visual Studio.
18 | // To add or remove a member, edit your .ResX file then rerun ResGen
19 | // with the /str option, or rebuild your VS project.
20 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder",
21 | "4.0.0.0")]
22 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
23 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
24 | internal class Resources
25 | {
26 | private static global::System.Resources.ResourceManager resourceMan;
27 |
28 | private static global::System.Globalization.CultureInfo resourceCulture;
29 |
30 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance",
31 | "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources()
33 | {
34 | }
35 |
36 | ///
37 | /// Returns the cached ResourceManager instance used by this class.
38 | ///
39 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState
40 | .Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp =
48 | new global::System.Resources.ResourceManager("GUI.Properties.Resources",
49 | typeof(Resources).Assembly);
50 | resourceMan = temp;
51 | }
52 |
53 | return resourceMan;
54 | }
55 | }
56 |
57 | ///
58 | /// Overrides the current thread's CurrentUICulture property for all
59 | /// resource lookups using this strongly typed resource class.
60 | ///
61 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState
62 | .Advanced)]
63 | internal static global::System.Globalization.CultureInfo Culture
64 | {
65 | get { return resourceCulture; }
66 | set { resourceCulture = value; }
67 | }
68 | }
69 | }
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Data.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace BusinessLogic.Classes
3 | {
4 | public abstract class Data
5 | {
6 | // DOOR DATA----------------------------------------------------------------------------------------------------
7 |
8 | //Door Design Profiles
9 | public abstract double DoorHorizontalDesignProfile { get; set; }
10 | public abstract double DoorVerticalDesignProfile { get; set; }
11 |
12 | //Door Profiles
13 | public abstract double DoorStandingProfile { get; set; }
14 | public abstract double DoorTopProfile { get; set; }
15 | public abstract double DoorBottomProfile { get; set; }
16 |
17 | //Default Door Gaps
18 | public abstract double DefaultGapDoorToWall { get; set; }
19 | public abstract double DefaultGapDoorToFloor { get; set; }
20 | public abstract double DefaultGapDoorToCeiling { get; set; }
21 | public abstract double DefaultGapDoorToDoor { get; set; }
22 | public abstract double DefaultGapDoorToSidelight { get; set; }
23 |
24 | //Door Slant Info
25 | public double LeftDoorLeftBottomSlant { get; set; }
26 | public double LeftDoorLeftTopSlant { get; set; }
27 | public double LeftDoorRightBottomSlant { get; set; }
28 | public double LeftDoorRightTopSlant { get; set; }
29 | public double RightDoorLeftBottomSlant { get; set; }
30 | public double RightDoorLeftTopSlant { get; set; }
31 | public double RightDoorRightBottomSlant { get; set; }
32 | public double RightDoorRightTopSlant { get; set; }
33 |
34 | // SIDELIGHT DATA-----------------------------------------------------------------------------------------------
35 |
36 | //Sidelight Profiles
37 | public abstract double SidelightStandingProfile { get; set; }
38 | public abstract double SidelightTopProfile { get; set; }
39 | public abstract double SidelightBottomProfile { get; set; }
40 |
41 | //Default Sidelight Gaps
42 | public abstract double DefaultGapSidelightToWall { get; set; }
43 | public abstract double DefaultGapSidelightToFloor { get; set; }
44 | public abstract double DefaultGapSidelightToCeiling { get; set; }
45 |
46 |
47 | //PRODUCT TOP VIEW INFO
48 | public abstract double ElementThickness { get; set; }
49 | public abstract double ProfileWallThickness { get; set; }
50 |
51 | // HANDLES DATA-----------------------------------------------------------------------------------------------
52 | public Point HandleTopPoint { get; set; }
53 | public Point HandleCenterPoint { get; set; }
54 | public Point HandleBottomPoint { get; set; }
55 |
56 | public double HandleWidth { get; set; } = 30;
57 | public double HandleHeight { get; set; } = 300;
58 | public double HandleThickness { get; set; } = 30;
59 | public double HandleExtension { get; set; } = 0;
60 | public double HandleOffsetFromAdapter { get; set; } = 40;
61 |
62 | public double HandleAdapterWidth { get; set; } = 30;
63 | public double HandleAdapterHeight { get; set; } = 30;
64 | public double HandleAdapterThickness { get; set; } = 30;
65 |
66 | }
67 | }
--------------------------------------------------------------------------------
/GUI/ViewModels/GeneralProductViewModel.cs:
--------------------------------------------------------------------------------
1 | using GUI.ViewModels.ProductViewModels;
2 |
3 | namespace GUI.ViewModels
4 | {
5 | public class GeneralProductViewModel : ViewModelBase
6 | {
7 | private bool _isSingle = false;
8 | private bool _isTurningLeft = true;
9 | private double _lslWidth = 300;
10 | private double _rslWidth = 300;
11 | private bool _isLeftSlant;
12 | private bool _isRightSlant;
13 | private bool _isLeftSlantTop;
14 | private bool _isRightSlantTop;
15 | private double _leftSlantAmount;
16 | private double _rightSlantAmount;
17 |
18 | public bool IsSingle
19 | {
20 | get => _isSingle;
21 | set
22 | {
23 | _isSingle = value;
24 | OnPropertyChanged(nameof(IsSingle));
25 | }
26 | }
27 | public bool IsTurningLeft
28 | {
29 | get => _isTurningLeft;
30 | set
31 | {
32 | _isTurningLeft = value;
33 | OnPropertyChanged(nameof(IsTurningLeft));
34 | }
35 | }
36 | public double LSLWidth
37 | {
38 | get => _lslWidth;
39 | set
40 | {
41 | _lslWidth = value;
42 | OnPropertyChanged(nameof(LSLWidth));
43 | }
44 | }
45 | public double RSLWidth
46 | {
47 | get => _rslWidth;
48 | set
49 | {
50 | _rslWidth = value;
51 | OnPropertyChanged(nameof(RSLWidth));
52 | }
53 | }
54 | public bool IsLeftSlant
55 | {
56 | get => _isLeftSlant;
57 | set
58 | {
59 | _isLeftSlant = value;
60 | OnPropertyChanged(nameof(IsLeftSlant));
61 | }
62 | }
63 | public bool IsRightSlant
64 | {
65 | get => _isRightSlant;
66 | set
67 | {
68 | _isRightSlant = value;
69 | OnPropertyChanged(nameof(IsRightSlant));
70 | }
71 | }
72 | public bool IsLeftSlantTop
73 | {
74 | get => _isLeftSlantTop;
75 | set
76 | {
77 | _isLeftSlantTop = value;
78 | OnPropertyChanged(nameof(IsLeftSlantTop));
79 | }
80 | }
81 | public bool IsRightSlantTop
82 | {
83 | get => _isRightSlantTop;
84 | set
85 | {
86 | _isRightSlantTop = value;
87 | OnPropertyChanged(nameof(IsRightSlantTop));
88 | }
89 | }
90 | public double LeftSlantAmount
91 | {
92 | get => _leftSlantAmount;
93 | set
94 | {
95 | _leftSlantAmount = value;
96 | OnPropertyChanged(nameof(LeftSlantAmount));
97 | }
98 | }
99 | public double RightSlantAmount
100 | {
101 | get => _rightSlantAmount;
102 | set
103 | {
104 | _rightSlantAmount = value;
105 | OnPropertyChanged(nameof(RightSlantAmount));
106 | }
107 | }
108 |
109 | public GeneralProductViewModel()
110 | {
111 |
112 | }
113 | }
114 | }
--------------------------------------------------------------------------------
/GUI/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
20 |
21 |
22 |
23 |
24 |
35 |
36 |
37 |
38 |
39 |
64 |
65 |
68 |
69 |
72 |
73 |
79 |
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/BusinessLogic/Classes/Datas/HingeData.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace BusinessLogic.Classes.Datas
3 | {
4 | public class HingeData : Data
5 | {
6 | //COMMON SETTINGS ----------------------------------------------------------------------------------------------
7 |
8 | // DOOR DATA----------------------------------------------------------------------------------------------------
9 |
10 | //Door Profiles
11 | public override double DoorStandingProfile { get; set; } = 30;
12 | public override double DoorTopProfile { get; set; } = 30;
13 | public override double DoorBottomProfile { get; set; } = 30;
14 |
15 | //Door Design Profiles
16 | public override double DoorHorizontalDesignProfile { get; set; } = 30;
17 | public override double DoorVerticalDesignProfile { get; set; } = 30;
18 |
19 | //Default Door Gaps
20 | public override double DefaultGapDoorToWall { get; set; } = 0; //in the interface, but Not for hinge
21 | public override double DefaultGapDoorToFloor { get; set; } = 10;
22 | public override double DefaultGapDoorToCeiling { get; set; } = 0; //in the interface, Not for hinge
23 | public override double DefaultGapDoorToDoor { get; set; } = 4;
24 | public override double DefaultGapDoorToSidelight { get; set; } = 4;
25 |
26 | //Door Top View
27 | public override double ElementThickness { get; set; } = 30;
28 | public override double ProfileWallThickness { get; set; } = 2;
29 |
30 |
31 | // SIDELIGHT DATA-----------------------------------------------------------------------------------------------
32 |
33 | //Sidelight Profiles
34 | public override double SidelightStandingProfile { get; set; } = 30;
35 | public override double SidelightTopProfile { get; set; } = 30;
36 | public override double SidelightBottomProfile { get; set; } = 30;
37 |
38 | //Default Sidelight Gaps
39 | public override double DefaultGapSidelightToWall { get; set; } = 1;
40 | public override double DefaultGapSidelightToFloor { get; set; }
41 | public override double DefaultGapSidelightToCeiling { get; set; } = 2;
42 |
43 |
44 | //SPECIFIC SETTINGS --------------------------------------------------------------------------------------------
45 |
46 | public bool IsClosingStripOnlyTop { get; set; } = true; //true == top, false == around
47 |
48 | public double HingeHeight { get; set; } = 310;
49 | public double TopStripWidth { get; set; } = 50;
50 | public double TopViewStripThickness { get; set; } = 6;
51 | public double StandingStripWidth { get; set; } = 40;
52 | public double MagnetRadius { get; set; } = 8;
53 | public double HingeRadius { get; set; } = 8;
54 | public double MagnetEdgeOffset { get; set; } = 10;
55 | public double ProfileRadius { get; set; } = 3;
56 |
57 | public double ProductionFrameProfileMargin { get; set; } = 250;
58 | public double ProductionStripDetailsMargin { get; set; } = 150;
59 | public double DimInitialOffsetFrame { get; set; } = 60;
60 |
61 |
62 | //Frame Profiles
63 | public double FrameLeftStandingProfile { get; set; } = 30;
64 | public double FrameRightStandingProfile { get; set; } = 30;
65 | public double FrameTopProfile { get; set; } = 30;
66 |
67 |
68 | //Default Frame Gaps
69 | public double DefaultGapFrameToWall { get; set; } = 1;
70 | public double DefaultGapFrameToCeiling { get; set; } = 2;
71 | public double DefaultGapFrameToFloor { get; set; } = 0;
72 | public double DefaultGapDoorToFrame { get; set; } = 4;
73 | }
74 | }
--------------------------------------------------------------------------------
/GUI/Styles/ApplicationStyle.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 | -->
14 |
15 |
16 |
17 |
28 |
29 |
30 |
31 |
32 |
42 |
43 |
44 |
45 |
46 |
71 |
72 |
75 |
76 |
79 |
80 |
84 |
85 |
88 |
89 |
--------------------------------------------------------------------------------
/GUI/Views/PivotDoorSettings.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Web.UI.Design.WebControls;
2 | using System.Windows;
3 | using System.Windows.Forms;
4 | using System.Windows.Input;
5 | using DoorPROGUI.Helpers;
6 |
7 | namespace DoorPROGUI.Views
8 | {
9 | public partial class PivotDoorSettings
10 | {
11 | public PivotDoorSettings()
12 | {
13 | PrepareGUIOptions();
14 | }
15 |
16 | private void PrepareGUIOptions()
17 | {
18 | LSLSettings.Visibility = Visibility.Collapsed;
19 | RSLSettings.Visibility = Visibility.Collapsed;
20 |
21 | LeftSlantSettings.Visibility = Visibility.Collapsed;
22 | RightSlantSettings.Visibility = Visibility.Collapsed;
23 |
24 | if (DataStorage.isLeftSlant)
25 | {
26 | LeftSlantCheckbox.Visibility = Visibility.Collapsed;
27 | }
28 | if (DataStorage.isRightSlant)
29 | {
30 | RightSlantCheckbox.Visibility = Visibility.Collapsed;
31 | }
32 | }
33 |
34 | private void BackButton_OnClick(object sender, RoutedEventArgs routedEventArgs)
35 | {
36 | // MainWindow.MainContent.Children.Clear();
37 | // MainWindow.MainContent.Children.Add(Psv);
38 | }
39 |
40 | private void GoHome(object sender, MouseButtonEventArgs e)
41 | {
42 | // MainWindow.MainContent.Children.Clear();
43 | // MainWindow.MainContent.Children.Add(new WelcomeMessageView());
44 | }
45 |
46 | private void SinglePivot_OnChecked(object sender, RoutedEventArgs e)
47 | {
48 | PivotPointSettings.Visibility = Visibility.Visible;
49 | TurningSettings.Visibility = Visibility.Visible;
50 | }
51 |
52 | private void DoublePivot_OnChecked(object sender, RoutedEventArgs e)
53 | {
54 | PivotPointSettings.Visibility = Visibility.Collapsed;
55 | TurningSettings.Visibility = Visibility.Collapsed;
56 | }
57 |
58 | private void LeftSidelight_OnChecked(object sender, RoutedEventArgs e)
59 | {
60 | LSLSettings.Visibility = Visibility.Visible;
61 | }
62 |
63 | private void RightSidelight_OnChecked(object sender, RoutedEventArgs e)
64 | {
65 | RSLSettings.Visibility = Visibility.Visible;
66 | }
67 |
68 | private void LeftSidelight_OnUnchecked(object sender, RoutedEventArgs e)
69 | {
70 | LSLSettings.Visibility = Visibility.Collapsed;
71 | }
72 |
73 | private void RightSidelight_OnUnchecked(object sender, RoutedEventArgs e)
74 | {
75 | RSLSettings.Visibility = Visibility.Collapsed;
76 | }
77 |
78 | private void LeftSlant_OnChecked(object sender, RoutedEventArgs e)
79 | {
80 | LeftSlantSettings.Visibility = Visibility.Visible;
81 | }
82 |
83 | private void RightSlant_OnChecked(object sender, RoutedEventArgs e)
84 | {
85 | RightSlantSettings.Visibility = Visibility.Visible;
86 | }
87 |
88 | private void LeftSlant_OnUnchecked(object sender, RoutedEventArgs e)
89 | {
90 | LeftSlantSettings.Visibility = Visibility.Collapsed;
91 | }
92 |
93 | private void RightSlant_OnUnchecked(object sender, RoutedEventArgs e)
94 | {
95 | RightSlantSettings.Visibility = Visibility.Collapsed;
96 | }
97 |
98 | private void DesignSelectionButton_OnClick(object sender, RoutedEventArgs e)
99 | {
100 | // MainWindow.MainContent.Children.Clear();
101 | // MainWindow.MainContent.Children.Add(new DesignView(this));
102 | }
103 | }
104 | }
--------------------------------------------------------------------------------
/GUI/Views/ProductSelectionView.xaml:
--------------------------------------------------------------------------------
1 |
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 |
46 |
47 |
48 |
51 |
52 |
53 |
54 |
55 |
58 |
59 |
60 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/GUI/Views/DesignView.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/GUI/Views/ManualDrawingView.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/GUI/Views/HomeView.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
--------------------------------------------------------------------------------
/GUI/Views/DesignView.cs.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/GUI/Views/GeneralProductView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Controls;
5 | using GUI.ViewModels;
6 | using GUI.Helpers;
7 | using GUI.Stores;
8 |
9 | namespace GUI.Views
10 | {
11 | public partial class GeneralProductView : UserControl
12 | {
13 | private NavigationStore Nav { get; set; }
14 | public GeneralProductView(NavigationStore navigationStore)
15 | {
16 | Nav = navigationStore;
17 | Nav.GeneralProductView = this;
18 | InitializeComponent();
19 | DataContext = Nav.MainWindow.DataContext;
20 |
21 | PrepareGUI();
22 | }
23 | private void PrepareGUI()
24 | {
25 | LeftSlantSettings.Visibility = Visibility.Collapsed;
26 | RightSlantSettings.Visibility = Visibility.Collapsed;
27 |
28 | if (GuiDisplayValidation.IsLeftSlant)
29 | {
30 | LeftSlantCheckbox.Visibility = Visibility.Visible;
31 | LeftSlantAmount.Text = GuiDisplayValidation.LeftSlantAmount.ToString(CultureInfo.InvariantCulture);
32 |
33 | if (GuiDisplayValidation.IsSlantLeftTop)
34 | {
35 | LeftSlantTop.IsChecked = true;
36 | LeftSlantBottom.Visibility = Visibility.Collapsed;
37 | }
38 | else
39 | {
40 | LeftSlantBottom.IsChecked = true;
41 | LeftSlantTop.Visibility = Visibility.Collapsed;
42 | }
43 | }
44 | else
45 | {
46 | LeftSlantCheckbox.Visibility = Visibility.Collapsed;
47 | }
48 | if (GuiDisplayValidation.IsRightSlant)
49 | {
50 | RightSlantCheckbox.Visibility = Visibility.Visible;
51 | RightSlantAmount.Text = GuiDisplayValidation.RightSlantAmount.ToString(CultureInfo.InvariantCulture);
52 |
53 | if (GuiDisplayValidation.IsSlantRightTop)
54 | {
55 | RightSlantTop.IsChecked = true;
56 | RightSlantBottom.Visibility = Visibility.Collapsed;
57 | }
58 | else
59 | {
60 | RightSlantBottom.IsChecked = true;
61 | RightSlantTop.Visibility = Visibility.Collapsed;
62 | }
63 | }
64 | else
65 | {
66 | RightSlantCheckbox.Visibility = Visibility.Collapsed;
67 | }
68 | }
69 | private void DoubleDoor_OnChecked(object sender, RoutedEventArgs e)
70 | {
71 | Turning.Visibility = Visibility.Collapsed;
72 | }
73 | private void DoubleDoor_OnUnChecked(object sender, RoutedEventArgs e)
74 | {
75 | Turning.Visibility = Visibility.Visible;
76 | }
77 | private void LSL_Checked(object sender, RoutedEventArgs e)
78 | {
79 | LSLSettings.Visibility = Visibility.Visible;
80 | }
81 | private void LSL_UnChecked(object sender, RoutedEventArgs e)
82 | {
83 | LSLSettings.Visibility = Visibility.Collapsed;
84 | }
85 | private void RSL_Checked(object sender, RoutedEventArgs e)
86 | {
87 | RSLSettings.Visibility = Visibility.Visible;
88 | }
89 | private void RSL_UnChecked(object sender, RoutedEventArgs e)
90 | {
91 | RSLSettings.Visibility = Visibility.Collapsed;
92 | }
93 | private void LeftSlantCheckbox_OnChecked(object sender, RoutedEventArgs e)
94 | {
95 | LeftSlantSettings.Visibility = Visibility.Visible;
96 | }
97 | private void LeftSlantCheckbox_OnUnchecked(object sender, RoutedEventArgs e)
98 | {
99 | LeftSlantSettings.Visibility = Visibility.Collapsed;
100 | }
101 | private void RightSlantCheckbox_OnChecked(object sender, RoutedEventArgs e)
102 | {
103 | RightSlantSettings.Visibility = Visibility.Visible;
104 | }
105 | private void RightSlantCheckbox_OnUnchecked(object sender, RoutedEventArgs e)
106 | {
107 | RightSlantSettings.Visibility = Visibility.Collapsed;
108 | }
109 |
110 | private void Back_ConstructionView(object sender, RoutedEventArgs e)
111 | {
112 | Nav.MainWindow.ContentDisplay.Children.Clear();
113 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.ConstructView);
114 | }
115 |
116 | private void Back_HomeView(object sender, RoutedEventArgs e)
117 | {
118 | Nav.MainWindow.ContentDisplay.Children.Clear();
119 | Nav.MainWindow.ContentDisplay.Children.Add(new HomeView(Nav.MainWindow));
120 | }
121 |
122 | private void Next_SpecificProductView(object sender, RoutedEventArgs e)
123 | {
124 | UserControl specificProductView = Activator.CreateInstance(Type.GetType($"GUI.Views.ProductViews.{CurrentGuiInfo.CurrentProduct}DoorView"), Nav) as UserControl;
125 |
126 | Nav.MainWindow.ContentDisplay.Children.Clear();
127 | Nav.MainWindow.ContentDisplay.Children.Add(Nav.SpecificProductView ?? specificProductView);
128 | }
129 | }
130 | }
--------------------------------------------------------------------------------
/GUI/ViewModels/HandleViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using GUI.Helpers;
3 |
4 | namespace GUI.ViewModels
5 | {
6 | public class HandleViewModel : ViewModelBase
7 | {
8 | private string _selectedHandle;
9 | private string _selectedPositionMethod;
10 |
11 | private double _gripWidth;
12 | private double _gripThickness;
13 | private double _gripExtension;
14 | private double _handleOffsetFromAdapter;
15 | private double _adapterWidth;
16 | private double _adapterThickness;
17 | private double _adapterHeight;
18 | private double _handleWallThickness;
19 | private bool _isBetweenProfiles;
20 | private bool _isBetweenProfilesCentered;
21 | private bool _isFromProfile;
22 | private bool _isFromFloor;
23 |
24 | public double GripWidth
25 | {
26 | get => _gripWidth;
27 | set
28 | {
29 | _gripWidth = value;
30 | OnPropertyChanged(nameof(GripWidth));
31 | }
32 | }
33 | public double GripThickness
34 | {
35 | get => _gripThickness;
36 | set
37 | {
38 | _gripThickness = value;
39 | OnPropertyChanged(nameof(GripThickness));
40 | }
41 | }
42 | public double GripExtension
43 | {
44 | get => _gripExtension;
45 | set
46 | {
47 | _gripExtension = value;
48 | OnPropertyChanged(nameof(GripExtension));
49 | }
50 | }
51 | public double HandleOffsetFromAdapter
52 | {
53 | get => _handleOffsetFromAdapter;
54 | set
55 | {
56 | _handleOffsetFromAdapter = value;
57 | OnPropertyChanged(nameof(HandleOffsetFromAdapter));
58 | }
59 | }
60 | public double AdapterWidth
61 | {
62 | get => _adapterWidth;
63 | set
64 | {
65 | _adapterWidth = value;
66 | OnPropertyChanged(nameof(AdapterWidth));
67 | }
68 | }
69 | public double AdapterThickness
70 | {
71 | get => _adapterThickness;
72 | set
73 | {
74 | _adapterThickness = value;
75 | OnPropertyChanged(nameof(AdapterThickness));
76 | }
77 | }
78 | public double AdapterHeight
79 | {
80 | get => _adapterHeight;
81 | set
82 | {
83 | _adapterHeight = value;
84 | OnPropertyChanged(nameof(AdapterHeight));
85 | }
86 | }
87 | public double HandleWallThickness
88 | {
89 | get => _handleWallThickness;
90 | set
91 | {
92 | _handleWallThickness = value;
93 | OnPropertyChanged(nameof(HandleWallThickness));
94 | }
95 | }
96 | public bool IsBetweenProfiles
97 | {
98 | get => _isBetweenProfiles;
99 | set
100 | {
101 | _isBetweenProfiles = value;
102 | OnPropertyChanged(nameof(IsBetweenProfiles));
103 | }
104 | }
105 | public bool IsBetweenProfilesCentered
106 | {
107 | get => _isBetweenProfilesCentered;
108 | set
109 | {
110 | _isBetweenProfilesCentered = value;
111 | OnPropertyChanged(nameof(IsBetweenProfilesCentered));
112 | }
113 | }
114 | public bool IsFromFloor
115 | {
116 | get => _isFromFloor;
117 | set
118 | {
119 | _isFromFloor = value;
120 | OnPropertyChanged(nameof(IsFromFloor));
121 | }
122 | }
123 |
124 | public bool IsFromProfile
125 | {
126 | get => _isFromProfile;
127 | set
128 | {
129 | _isFromProfile = value;
130 | OnPropertyChanged(nameof(IsFromProfile));
131 | }
132 | }
133 |
134 | public List Handles { get; }
135 | public string SelectedHandle
136 | {
137 | get => _selectedHandle;
138 | set
139 | {
140 | _selectedHandle = value;
141 | OnPropertyChanged(nameof(SelectedHandle));
142 | }
143 | }
144 |
145 | public List PositionMethods { get; }
146 | public string SelectedPositionMethod
147 | {
148 | get => _selectedPositionMethod;
149 | set
150 | {
151 | _selectedPositionMethod = value;
152 | OnPropertyChanged(nameof(SelectedPositionMethod));
153 | }
154 | }
155 |
156 | public HandleViewModel()
157 | {
158 | Handles = GeneralHelp.ReturnListOfClassNames(typeof(BusinessLogic.Classes.Handles.Handle));
159 | SelectedHandle = Handles[0];
160 |
161 | PositionMethods = new List { "Between Profiles", "Between Profiles Centered", "From Profile", "From Floor" };
162 | SelectedPositionMethod = PositionMethods[0];
163 | }
164 | }
165 | }
--------------------------------------------------------------------------------
/GUI/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/BusinessLogic/BusinessLogic.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {5C27B3A4-B9B9-4C7F-8522-03A6502E0280}
8 | Library
9 | Properties
10 | BusinessLogic
11 | BusinessLogic
12 | v4.7.2
13 | 512
14 |
15 |
16 | x64
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 | bin\x64\Debug\
36 | x64
37 |
38 |
39 |
40 | ..\packages\DocumentFormat.OpenXml.2.11.3\lib\net46\DocumentFormat.OpenXml.dll
41 | True
42 |
43 |
44 |
45 | ..\packages\SpreadsheetLight.3.5.0\lib\netstandard2.0\SpreadsheetLight.dll
46 | True
47 |
48 |
49 |
50 |
51 |
52 |
53 | ..\packages\System.Drawing.Common.5.0.0\lib\net461\System.Drawing.Common.dll
54 | True
55 |
56 |
57 | ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll
58 | True
59 |
60 |
61 | ..\packages\System.IO.Packaging.4.7.0\lib\net46\System.IO.Packaging.dll
62 | True
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | {05941c4b-2da0-42e7-9d10-5e055ea4d54c}
107 | AutoCAD_Link
108 |
109 |
110 | {b68b5a44-4108-4f11-ab34-4db7fd849577}
111 | Utility
112 |
113 |
114 |
115 |
116 |
117 |
118 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/GUI/Views/HandleView.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Aa][Rr][Mm]/
27 | [Aa][Rr][Mm]64/
28 | bld/
29 | [Bb]in/
30 | [Oo]bj/
31 | [Ll]og/
32 | [Ll]ogs/
33 |
34 | # Visual Studio 2015/2017 cache/options directory
35 | .vs/
36 | # Uncomment if you have tasks that create the project's static files in wwwroot
37 | #wwwroot/
38 |
39 | # Visual Studio 2017 auto generated files
40 | Generated\ Files/
41 |
42 | # MSTest test Results
43 | [Tt]est[Rr]esult*/
44 | [Bb]uild[Ll]og.*
45 |
46 | # NUnit
47 | *.VisualState.xml
48 | TestResult.xml
49 | nunit-*.xml
50 |
51 | # Build Results of an ATL Project
52 | [Dd]ebugPS/
53 | [Rr]eleasePS/
54 | dlldata.c
55 |
56 | # Benchmark Results
57 | BenchmarkDotNet.Artifacts/
58 |
59 | # .NET Core
60 | project.lock.json
61 | project.fragment.lock.json
62 | artifacts/
63 |
64 | # StyleCop
65 | StyleCopReport.xml
66 |
67 | # Files built by Visual Studio
68 | *_i.c
69 | *_p.c
70 | *_h.h
71 | *.ilk
72 | *.meta
73 | *.obj
74 | *.iobj
75 | *.pch
76 | *.pdb
77 | *.ipdb
78 | *.pgc
79 | *.pgd
80 | *.rsp
81 | *.sbr
82 | *.tlb
83 | *.tli
84 | *.tlh
85 | *.tmp
86 | *.tmp_proj
87 | *_wpftmp.csproj
88 | *.log
89 | *.vspscc
90 | *.vssscc
91 | .builds
92 | *.pidb
93 | *.svclog
94 | *.scc
95 |
96 | # Chutzpah Test files
97 | _Chutzpah*
98 |
99 | # Visual C++ cache files
100 | ipch/
101 | *.aps
102 | *.ncb
103 | *.opendb
104 | *.opensdf
105 | *.sdf
106 | *.cachefile
107 | *.VC.db
108 | *.VC.VC.opendb
109 |
110 | # Visual Studio profiler
111 | *.psess
112 | *.vsp
113 | *.vspx
114 | *.sap
115 |
116 | # Visual Studio Trace Files
117 | *.e2e
118 |
119 | # TFS 2012 Local Workspace
120 | $tf/
121 |
122 | # Guidance Automation Toolkit
123 | *.gpState
124 |
125 | # ReSharper is a .NET coding add-in
126 | _ReSharper*/
127 | *.[Rr]e[Ss]harper
128 | *.DotSettings.user
129 |
130 | # TeamCity is a build add-in
131 | _TeamCity*
132 |
133 | # DotCover is a Code Coverage Tool
134 | *.dotCover
135 |
136 | # AxoCover is a Code Coverage Tool
137 | .axoCover/*
138 | !.axoCover/settings.json
139 |
140 | # Visual Studio code coverage results
141 | *.coverage
142 | *.coveragexml
143 |
144 | # NCrunch
145 | _NCrunch_*
146 | .*crunch*.local.xml
147 | nCrunchTemp_*
148 |
149 | # MightyMoose
150 | *.mm.*
151 | AutoTest.Net/
152 |
153 | # Web workbench (sass)
154 | .sass-cache/
155 |
156 | # Installshield output folder
157 | [Ee]xpress/
158 |
159 | # DocProject is a documentation generator add-in
160 | DocProject/buildhelp/
161 | DocProject/Help/*.HxT
162 | DocProject/Help/*.HxC
163 | DocProject/Help/*.hhc
164 | DocProject/Help/*.hhk
165 | DocProject/Help/*.hhp
166 | DocProject/Help/Html2
167 | DocProject/Help/html
168 |
169 | # Click-Once directory
170 | publish/
171 |
172 | # Publish Web Output
173 | *.[Pp]ublish.xml
174 | *.azurePubxml
175 | # Note: Comment the next line if you want to checkin your web deploy settings,
176 | # but database connection strings (with potential passwords) will be unencrypted
177 | *.pubxml
178 | *.publishproj
179 |
180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
181 | # checkin your Azure Web App publish settings, but sensitive information contained
182 | # in these scripts will be unencrypted
183 | PublishScripts/
184 |
185 | # NuGet Packages
186 | *.nupkg
187 | # NuGet Symbol Packages
188 | *.snupkg
189 | # The packages folder can be ignored because of Package Restore
190 | **/[Pp]ackages/*
191 | # except build/, which is used as an MSBuild target.
192 | !**/[Pp]ackages/build/
193 | # Uncomment if necessary however generally it will be regenerated when needed
194 | #!**/[Pp]ackages/repositories.config
195 | # NuGet v3's project.json files produces more ignorable files
196 | *.nuget.props
197 | *.nuget.targets
198 |
199 | # Microsoft Azure Build Output
200 | csx/
201 | *.build.csdef
202 |
203 | # Microsoft Azure Emulator
204 | ecf/
205 | rcf/
206 |
207 | # Windows Store app package directories and files
208 | AppPackages/
209 | BundleArtifacts/
210 | Package.StoreAssociation.xml
211 | _pkginfo.txt
212 | *.appx
213 | *.appxbundle
214 | *.appxupload
215 |
216 | # Visual Studio cache files
217 | # files ending in .cache can be ignored
218 | *.[Cc]ache
219 | # but keep track of directories ending in .cache
220 | !?*.[Cc]ache/
221 |
222 | # Others
223 | ClientBin/
224 | ~$*
225 | *~
226 | *.dbmdl
227 | *.dbproj.schemaview
228 | *.jfm
229 | *.pfx
230 | *.publishsettings
231 | orleans.codegen.cs
232 |
233 | # Including strong name files can present a security risk
234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
235 | #*.snk
236 |
237 | # Since there are multiple workflows, uncomment next line to ignore bower_components
238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
239 | #bower_components/
240 |
241 | # RIA/Silverlight projects
242 | Generated_Code/
243 |
244 | # Backup & report files from converting an old project file
245 | # to a newer Visual Studio version. Backup files are not needed,
246 | # because we have git ;-)
247 | _UpgradeReport_Files/
248 | Backup*/
249 | UpgradeLog*.XML
250 | UpgradeLog*.htm
251 | ServiceFabricBackup/
252 | *.rptproj.bak
253 |
254 | # SQL Server files
255 | *.mdf
256 | *.ldf
257 | *.ndf
258 |
259 | # Business Intelligence projects
260 | *.rdl.data
261 | *.bim.layout
262 | *.bim_*.settings
263 | *.rptproj.rsuser
264 | *- [Bb]ackup.rdl
265 | *- [Bb]ackup ([0-9]).rdl
266 | *- [Bb]ackup ([0-9][0-9]).rdl
267 |
268 | # Microsoft Fakes
269 | FakesAssemblies/
270 |
271 | # GhostDoc plugin setting file
272 | *.GhostDoc.xml
273 |
274 | # Node.js Tools for Visual Studio
275 | .ntvs_analysis.dat
276 | node_modules/
277 |
278 | # Visual Studio 6 build log
279 | *.plg
280 |
281 | # Visual Studio 6 workspace options file
282 | *.opt
283 |
284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
285 | *.vbw
286 |
287 | # Visual Studio LightSwitch build output
288 | **/*.HTMLClient/GeneratedArtifacts
289 | **/*.DesktopClient/GeneratedArtifacts
290 | **/*.DesktopClient/ModelManifest.xml
291 | **/*.Server/GeneratedArtifacts
292 | **/*.Server/ModelManifest.xml
293 | _Pvt_Extensions
294 |
295 | # Paket dependency manager
296 | .paket/paket.exe
297 | paket-files/
298 |
299 | # FAKE - F# Make
300 | .fake/
301 |
302 | # CodeRush personal settings
303 | .cr/personal
304 |
305 | # Python Tools for Visual Studio (PTVS)
306 | __pycache__/
307 | *.pyc
308 |
309 | # Cake - Uncomment if you are using it
310 | # tools/**
311 | # !tools/packages.config
312 |
313 | # Tabs Studio
314 | *.tss
315 |
316 | # Telerik's JustMock configuration file
317 | *.jmconfig
318 |
319 | # BizTalk build output
320 | *.btp.cs
321 | *.btm.cs
322 | *.odx.cs
323 | *.xsd.cs
324 |
325 | # OpenCover UI analysis results
326 | OpenCover/
327 |
328 | # Azure Stream Analytics local run output
329 | ASALocalRun/
330 |
331 | # MSBuild Binary and Structured Log
332 | *.binlog
333 |
334 | # NVidia Nsight GPU debugger configuration file
335 | *.nvuser
336 |
337 | # MFractors (Xamarin productivity tool) working folder
338 | .mfractor/
339 |
340 | # Local History for Visual Studio
341 | .localhistory/
342 |
343 | # BeatPulse healthcheck temp database
344 | healthchecksdb
345 |
346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
347 | MigrationBackup/
348 |
349 | # Ionide (cross platform F# VS Code tools) working folder
350 | .ionide/
351 |
--------------------------------------------------------------------------------
/BusinessLogic/Settings/CurrentDrawInfo.cs:
--------------------------------------------------------------------------------
1 | namespace BusinessLogic.Settings
2 | {
3 | public static class CurrentDrawInfo
4 | {
5 | //DRAW INFORMATION ---------------------------------------------------------------------------------------------
6 | public static bool DrawLSL { get; set; }
7 | public static bool DrawLD { get; set; }
8 | public static bool DrawRD { get; set; }
9 | public static bool DrawRSL { get; set; }
10 |
11 | public static bool IsSingle { get; set; }
12 | public static bool IsTurningLeft { get; set; } = true;
13 |
14 | public static double LSLWidth { get; set; }
15 | public static double RSLWidth { get; set; }
16 |
17 | public static string ProductType { get; set; }
18 |
19 | //CUTLIST
20 | public static bool MakeCutlist { get; set; } = true;
21 |
22 | public static string ProjectNumber { get; set; }
23 | public static string ProjectName { get; set; }
24 | public static string DoorLetter { get; set; }
25 |
26 | public static string CutlistPathName { get; set; } = "";
27 | public static string CutlistFileName { get; set; } = "";
28 |
29 | //HINGE
30 | public static bool IsClosingStripOnlyTop { get; set; } = true; //true == top, false == around
31 |
32 |
33 | //CURRENT CONSTRUCTION OPENING----------------------------------------------------------------------------------
34 | public static double MoveX { get; set; }
35 | public static double MoveY { get; set; }
36 |
37 | public static double ConstructionWidthBottom { get; set; }
38 | public static double ConstructionWidthTop { get; set; }
39 | public static double ConstructionHeightLeft { get; set; }
40 | public static double ConstructionHeightRight { get; set; }
41 |
42 | public static double CorrectedConstructionWidth { get; set; }
43 | public static double CorrectedConstructionHeight { get; set; }
44 |
45 | //Point Slides
46 | public static double DownLeftX { get; set; }
47 | public static double DownLeftY { get; set; }
48 | public static double DownRightX { get; set; }
49 | public static double DownRightY { get; set; }
50 | public static double UpRightX { get; set; }
51 | public static double UpRightY { get; set; }
52 | public static double UpLeftX { get; set; }
53 | public static double UpLeftY { get; set; }
54 |
55 | public static double MiddleDownY { get; set; }
56 | public static double MiddleRightX { get; set; }
57 | public static double MiddleUpY { get; set; }
58 | public static double MiddleLeftX { get; set; }
59 |
60 |
61 | //------------------------------------------------------------------------------------------------------------//
62 |
63 | //SLANTED DOORS-------------------------------------------------------------------------------------------------
64 | public static double LeftBottomSlant { get; set; }
65 | public static double LeftTopSlant { get; set; }
66 | public static double RightTopSlant { get; set; }
67 | public static double RightBottomSlant { get; set; }
68 |
69 |
70 | //DESIGN--------------------------------------------------------------------------------------------------------
71 |
72 | public static string DesignName { get; set; } = "George";
73 | public static bool IsMirrored { get; set; }
74 |
75 |
76 | public static double DesignParameterX { get; set; }
77 | public static double DesignParameterY { get; set; }
78 |
79 |
80 | //HANDLE--------------------------------------------------------------------------------------------------------
81 |
82 | public static string HandleName { get; set; } = "Ror_DS";
83 | public static double LengthOfHandle { get; set; } = 300;
84 |
85 |
86 | // Custom mode
87 | public static bool IsCustomMode { get; set; } = true;
88 | public static double HeightToHandle { get; set; } = 600;
89 |
90 | public static bool IsFromFloor { get; set; } = true;
91 | public static bool IsFromBottomOfProfile { get; set; }
92 | public static int IndexOfProfile { get; set; }
93 |
94 | public static bool IsToBottom { get; set; }
95 | public static bool IsToCenter { get; set; }
96 | public static bool IsToTop { get; set; }
97 |
98 | // Automatic mode
99 | public static bool IsCenterBetweenProfiles { get; set; }
100 | public static int BottomProfileIndex { get; set; } = 1;
101 | public static int TopProfileIndex { get; set; } = 1;
102 |
103 |
104 | // Info for x
105 | public static bool IsOnVerticalDesignProfile { get; set; }
106 | public static double CenterHandleToEdgeOfDoorX { get; set; } = 75;
107 |
108 |
109 | public static void ResetCurrentDrawInfo()
110 | {
111 | //DRAW INFORMATION ---------------------------------------------------------------------------------------------
112 | DrawLSL = false;
113 | DrawLD = false;
114 | DrawRD = false;
115 | DrawRSL = false;
116 |
117 | IsSingle = false;
118 | IsTurningLeft = false;
119 |
120 | LSLWidth = 0;
121 | RSLWidth = 0;
122 |
123 | ProductType = "Empty";
124 |
125 | //CUTLIST
126 | MakeCutlist = false;
127 |
128 | ProjectNumber = "Empty";
129 | ProjectName = "Empty";
130 | DoorLetter = "Empty";
131 |
132 | CutlistPathName = "Empty";
133 | CutlistFileName = "Empty";
134 |
135 | //HINGE
136 | IsClosingStripOnlyTop = false;
137 |
138 |
139 | //CURRENT CONSTRUCTION OPENING----------------------------------------------------------------------------------
140 | MoveX = 0;
141 | MoveY = 0;
142 |
143 | ConstructionWidthBottom = 0;
144 | ConstructionWidthTop = 0;
145 | ConstructionHeightLeft = 0;
146 | ConstructionHeightRight = 0;
147 |
148 | CorrectedConstructionWidth = 0;
149 | CorrectedConstructionHeight = 0;
150 |
151 | //Point Slides
152 | DownLeftX = 0;
153 | DownLeftY = 0;
154 | DownRightX = 0;
155 | DownRightY = 0;
156 | UpRightX = 0;
157 | UpRightY = 0;
158 | UpLeftX = 0;
159 | UpLeftY = 0;
160 |
161 | MiddleDownY = 0;
162 | MiddleRightX = 0;
163 | MiddleUpY = 0;
164 | MiddleLeftX = 0;
165 |
166 | //SLANTED DOORS-------------------------------------------------------------------------------------------------
167 | LeftBottomSlant = 0;
168 | LeftTopSlant = 0;
169 | RightTopSlant = 0;
170 | RightBottomSlant = 0;
171 |
172 | //DESIGN--------------------------------------------------------------------------------------------------------
173 | DesignName = "Empty";
174 | IsMirrored = false;
175 |
176 | DesignParameterX = 0;
177 | DesignParameterY = 0;
178 |
179 | //HANDLE--------------------------------------------------------------------------------------------------------
180 | HandleName = "Empty";
181 | LengthOfHandle = 0;
182 |
183 | // Custom mode
184 | IsCustomMode = false;
185 | HeightToHandle = 0;
186 |
187 | IsFromFloor = false;
188 | IsFromBottomOfProfile = false;
189 | IndexOfProfile = 0;
190 |
191 | IsToBottom = false;
192 | IsToCenter = false;
193 | IsToTop = false;
194 |
195 | // Automatic mode
196 | IsCenterBetweenProfiles = false;
197 | BottomProfileIndex = 0;
198 | TopProfileIndex = 0;
199 |
200 | // Info for x
201 | IsOnVerticalDesignProfile = false;
202 | CenterHandleToEdgeOfDoorX = 0;
203 | }
204 | }
205 | }
--------------------------------------------------------------------------------
/GUI/Views/FinishView.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
83 |
84 |
86 |
87 |
88 |
89 |
90 |
91 |
94 |
95 |
97 |
98 |
99 |
100 |
101 |
102 |
105 |
106 |
108 |
109 |
110 |
111 |
112 |
113 |
116 |
123 |
124 |
125 |
126 |
127 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
--------------------------------------------------------------------------------
/GUI/Views/HandleView.cs.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/GUI/Views/HingeDoorProductView.xaml:
--------------------------------------------------------------------------------
1 |
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 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
--------------------------------------------------------------------------------
/GUI/ViewModels/ProductViewModels/PivotDoorViewModel.cs:
--------------------------------------------------------------------------------
1 | using BusinessLogic.Classes;
2 | using BusinessLogic.Classes.Datas;
3 |
4 | namespace GUI.ViewModels.ProductViewModels
5 | {
6 | public class PivotDoorViewModel : ViewModelBase
7 | {
8 | // SETTINGS ----------------------------------------------------------------------------------------------------
9 | private double _doorHorizontalDesignProfile;
10 | private double _doorVerticalDesignProfile;
11 | private double _doorStandingProfile;
12 | private double _doorTopProfile;
13 | private double _doorBottomProfile;
14 | private double _defaultGapDoorToWall;
15 | private double _defaultGapDoorToFloor;
16 | private double _defaultGapDoorToCeiling;
17 | private double _defaultGapDoorToDoor;
18 | private double _defaultGapDoorToSidelight;
19 | private double _sidelightStandingProfile;
20 | private double _sidelightTopProfile;
21 | private double _sidelightBottomProfile;
22 | private double _defaultGapSidelightToWall;
23 | private double _defaultGapSidelightToFloor;
24 | private double _defaultGapSidelightToCeiling;
25 | private double _elementThickness;
26 | private double _profileWallThickness;
27 | private double _pivotPointDistance;
28 | private double _pivotLineLength;
29 |
30 | public double DoorHorizontalDesignProfile
31 | {
32 | get => _doorHorizontalDesignProfile;
33 | set
34 | {
35 | _doorHorizontalDesignProfile = value;
36 | OnPropertyChanged(nameof(DoorHorizontalDesignProfile));
37 | }
38 | }
39 | public double DoorVerticalDesignProfile
40 | {
41 | get => _doorVerticalDesignProfile;
42 | set
43 | {
44 | _doorVerticalDesignProfile = value;
45 | OnPropertyChanged(nameof(DoorVerticalDesignProfile));
46 | }
47 | }
48 | public double DoorStandingProfile
49 | {
50 | get => _doorStandingProfile;
51 | set
52 | {
53 | _doorStandingProfile = value;
54 | OnPropertyChanged(nameof(DoorStandingProfile));
55 | }
56 | }
57 | public double DoorTopProfile
58 | {
59 | get => _doorTopProfile;
60 | set
61 | {
62 | _doorTopProfile = value;
63 | OnPropertyChanged(nameof(DoorTopProfile));
64 | }
65 | }
66 | public double DoorBottomProfile
67 | {
68 | get => _doorBottomProfile;
69 | set
70 | {
71 | _doorBottomProfile = value;
72 | OnPropertyChanged(nameof(DoorBottomProfile));
73 | }
74 | }
75 | public double DefaultGapDoorToWall
76 | {
77 | get => _defaultGapDoorToWall;
78 | set
79 | {
80 | _defaultGapDoorToWall = value;
81 | OnPropertyChanged(nameof(DefaultGapDoorToWall));
82 | }
83 | }
84 | public double DefaultGapDoorToFloor
85 | {
86 | get => _defaultGapDoorToFloor;
87 | set
88 | {
89 | _defaultGapDoorToFloor = value;
90 | OnPropertyChanged(nameof(DefaultGapDoorToFloor));
91 | }
92 | }
93 | public double DefaultGapDoorToCeiling
94 | {
95 | get => _defaultGapDoorToCeiling;
96 | set
97 | {
98 | _defaultGapDoorToCeiling = value;
99 | OnPropertyChanged(nameof(DefaultGapDoorToCeiling));
100 | }
101 | }
102 | public double DefaultGapDoorToDoor
103 | {
104 | get => _defaultGapDoorToDoor;
105 | set
106 | {
107 | _defaultGapDoorToDoor = value;
108 | OnPropertyChanged(nameof(DefaultGapDoorToDoor));
109 | }
110 | }
111 | public double DefaultGapDoorToSidelight
112 | {
113 | get => _defaultGapDoorToSidelight;
114 | set
115 | {
116 | _defaultGapDoorToSidelight = value;
117 | OnPropertyChanged(nameof(DefaultGapDoorToSidelight));
118 | }
119 | }
120 | public double SidelightStandingProfile
121 | {
122 | get => _sidelightStandingProfile;
123 | set
124 | {
125 | _sidelightStandingProfile = value;
126 | OnPropertyChanged(nameof(SidelightStandingProfile));
127 | }
128 | }
129 | public double SidelightTopProfile
130 | {
131 | get => _sidelightTopProfile;
132 | set
133 | {
134 | _sidelightTopProfile = value;
135 | OnPropertyChanged(nameof(SidelightTopProfile));
136 | }
137 | }
138 | public double SidelightBottomProfile
139 | {
140 | get => _sidelightBottomProfile;
141 | set
142 | {
143 | _sidelightBottomProfile = value;
144 | OnPropertyChanged(nameof(SidelightBottomProfile));
145 | }
146 | }
147 | public double DefaultGapSidelightToWall
148 | {
149 | get => _defaultGapSidelightToWall;
150 | set
151 | {
152 | _defaultGapSidelightToWall = value;
153 | OnPropertyChanged(nameof(DefaultGapSidelightToWall));
154 | }
155 | }
156 | public double DefaultGapSidelightToFloor
157 | {
158 | get => _defaultGapSidelightToFloor;
159 | set
160 | {
161 | _defaultGapSidelightToFloor = value;
162 | OnPropertyChanged(nameof(DefaultGapSidelightToFloor));
163 | }
164 | }
165 | public double DefaultGapSidelightToCeiling
166 | {
167 | get => _defaultGapSidelightToCeiling;
168 | set
169 | {
170 | _defaultGapSidelightToCeiling = value;
171 | OnPropertyChanged(nameof(DefaultGapSidelightToCeiling));
172 | }
173 | }
174 | public double ElementThickness
175 | {
176 | get => _elementThickness;
177 | set
178 | {
179 | _elementThickness = value;
180 | OnPropertyChanged(nameof(ElementThickness));
181 | }
182 | }
183 | public double ProfileWallThickness
184 | {
185 | get => _profileWallThickness;
186 | set
187 | {
188 | _profileWallThickness = value;
189 | OnPropertyChanged(nameof(ProfileWallThickness));
190 | }
191 | }
192 | public double PivotPointDistance
193 | {
194 | get => _pivotPointDistance;
195 | set
196 | {
197 | _pivotPointDistance = value;
198 | OnPropertyChanged(nameof(PivotPointDistance));
199 | }
200 | }
201 | public double PivotLineLength
202 | {
203 | get => _pivotLineLength;
204 | set
205 | {
206 | _pivotLineLength = value;
207 | OnPropertyChanged(nameof(PivotLineLength));
208 | }
209 | }
210 |
211 | public override Data ParseData()
212 | {
213 | PivotData data = new PivotData
214 | {
215 | DoorHorizontalDesignProfile = DoorHorizontalDesignProfile,
216 | DoorVerticalDesignProfile = DoorVerticalDesignProfile,
217 | DoorStandingProfile = DoorStandingProfile,
218 | DoorTopProfile = DoorTopProfile,
219 | DoorBottomProfile = DoorBottomProfile,
220 | DefaultGapDoorToWall = DefaultGapDoorToWall,
221 | DefaultGapDoorToFloor = DefaultGapDoorToFloor,
222 | DefaultGapDoorToCeiling = DefaultGapDoorToCeiling,
223 | DefaultGapDoorToDoor = DefaultGapDoorToDoor,
224 | DefaultGapDoorToSidelight = DefaultGapDoorToSidelight,
225 | SidelightStandingProfile = SidelightStandingProfile,
226 | SidelightTopProfile = SidelightTopProfile,
227 | SidelightBottomProfile = SidelightBottomProfile,
228 | DefaultGapSidelightToWall = DefaultGapSidelightToWall,
229 | DefaultGapSidelightToFloor = DefaultGapSidelightToFloor,
230 | DefaultGapSidelightToCeiling = DefaultGapSidelightToCeiling,
231 | ElementThickness = ElementThickness,
232 | ProfileWallThickness = ProfileWallThickness,
233 | PivotPointDistance = PivotPointDistance,
234 | PivotLineLength = PivotLineLength
235 | };
236 |
237 | return data;
238 | }
239 |
240 | public PivotDoorViewModel()
241 | {
242 | PivotData pivotData = new PivotData();
243 |
244 | DoorHorizontalDesignProfile = pivotData.DoorHorizontalDesignProfile;
245 | DoorVerticalDesignProfile = pivotData.DoorVerticalDesignProfile;
246 | DoorStandingProfile = pivotData.DoorStandingProfile;
247 | DoorTopProfile = pivotData.DoorTopProfile;
248 | DoorBottomProfile = pivotData.DoorBottomProfile;
249 | DefaultGapDoorToWall = pivotData.DefaultGapDoorToWall;
250 | DefaultGapDoorToFloor = pivotData.DefaultGapDoorToFloor;
251 | DefaultGapDoorToCeiling = pivotData.DefaultGapDoorToCeiling;
252 | DefaultGapDoorToDoor = pivotData.DefaultGapDoorToDoor;
253 | DefaultGapDoorToSidelight = pivotData.DefaultGapDoorToSidelight;
254 | SidelightStandingProfile = pivotData.SidelightStandingProfile;
255 | SidelightTopProfile = pivotData.SidelightTopProfile;
256 | SidelightBottomProfile = pivotData.SidelightBottomProfile;
257 | DefaultGapSidelightToWall = pivotData.DefaultGapSidelightToWall;
258 | DefaultGapSidelightToFloor = pivotData.DefaultGapSidelightToFloor;
259 | DefaultGapSidelightToCeiling = pivotData.DefaultGapSidelightToCeiling;
260 | ElementThickness = pivotData.ElementThickness;
261 | ProfileWallThickness = pivotData.ProfileWallThickness;
262 | PivotPointDistance = pivotData.PivotPointDistance;
263 | PivotLineLength = pivotData.PivotLineLength;
264 | }
265 | }
266 | }
--------------------------------------------------------------------------------