예제 #1
0
        public MainWindow(ILogger <MainWindow> logger, MainViewModel viewModel, Connector connector, IRecorderLogic recorderLogic, ImageLogic imageLogic, ExportLogic exportLogic, ThrottleLogic drawingThrottleLogic, StateMachine stateMachine)
        {
            InitializeComponent();

            this.Loaded              += MainWindow_Loaded;
            this.logger               = logger;
            this.viewModel            = viewModel;
            this.connector            = connector;
            this.recorderLogic        = recorderLogic;
            this.imageLogic           = imageLogic;
            this.exportLogic          = exportLogic;
            this.drawingThrottleLogic = drawingThrottleLogic;
            this.stateMachine         = stateMachine;

            stateMachine.StateChanged += StateMachine_StateChanged;

            connector.AircraftPositionUpdated += Connector_AircraftPositionUpdated;
            connector.Frame  += Connector_Frame;
            connector.Closed += Connector_Closed;

            DataContext = viewModel;

            recorderLogic.RecordsUpdated      += RecorderLogic_RecordsUpdated;
            recorderLogic.CurrentFrameChanged += RecorderLogic_CurrentFrameChanged;
            recorderLogic.ReplayFinished      += RecorderLogic_ReplayFinished;

            currentVersion = Assembly.GetEntryAssembly().GetName().Version.ToString();
            Title         += " " + currentVersion;
        }
        public MainWindow(ILogger <MainWindow> logger,
                          IConnector connector,
                          DrawingLogic drawingLogic,
                          ExportLogic exportLogic,
                          VersionLogic versionLogic,
                          Orchestrator orchestrator,
                          WindowFactory windowFactory)
            : base(orchestrator.ThreadLogic, orchestrator.StateMachine, orchestrator.ViewModel, orchestrator.ReplayLogic)
        {
            InitializeComponent();

            this.logger        = logger;
            this.connector     = connector;
            this.drawingLogic  = drawingLogic;
            this.exportLogic   = exportLogic;
            this.windowFactory = windowFactory;
            this.recorderLogic = orchestrator.RecorderLogic;

            stateMachine.StateChanged += StateMachine_StateChanged;

            connector.AircraftPositionUpdated += Connector_AircraftPositionUpdated;
            connector.Closed += Connector_Closed;

            DataContext = viewModel;

            currentVersion = versionLogic.GetVersion();
            Title         += " " + currentVersion;
        }
예제 #3
0
        public StateMachine(ILogger <StateMachine> logger, MainViewModel viewModel, IRecorderLogic recorderLogic, IReplayLogic replayLogic, IDialogLogic dialogLogic, VersionLogic versionLogic)
            : base(logger, dialogLogic, viewModel)
        {
            logger.LogDebug("Creating instance of {class}", nameof(StateMachine));
            this.viewModel      = viewModel;
            this.recorderLogic  = recorderLogic;
            this.replayLogic    = replayLogic;
            this.currentVersion = versionLogic.GetVersion();

            InitializeStateMachine();
        }
예제 #4
0
        public MainViewModel(ILogger <MainViewModel> logger, IThreadLogic threadLogic, IRecorderLogic recorderLogic, IReplayLogic replayLogic, IConnector connector)
        {
            logger.LogDebug("Creating instance of {class}", nameof(MainViewModel));

            this.logger        = logger;
            this.threadLogic   = threadLogic;
            this.recorderLogic = recorderLogic;
            this.replayLogic   = replayLogic;
            this.connector     = connector;

            RegisterEvents();
        }
예제 #5
0
        public Orchestrator(ILogger <Orchestrator> logger,
                            StateMachine stateMachine, IThreadLogic threadLogic, IRecorderLogic recorderLogic, IReplayLogic replayLogic, IConnector connector, MainViewModel viewModel)
        {
            logger.LogDebug("Creating instance of {class}", nameof(Orchestrator));
            StateMachine  = stateMachine;
            ThreadLogic   = threadLogic;
            RecorderLogic = recorderLogic;
            ReplayLogic   = replayLogic;
            ViewModel     = viewModel;

            this.logger    = logger;
            this.connector = connector;
            RegisterEvents(connector);
        }