public GateForm([NotNull] GateSettingsXml gateSettings, bool initiallyMaximized,
            [NotNull] CirceMediatorSessionManager mediatorSessionManager)
        {
            Guard.NotNull(gateSettings, nameof(gateSettings));
            Guard.NotNull(mediatorSessionManager, nameof(mediatorSessionManager));

            settings = gateSettings;
            this.initiallyMaximized = initiallyMaximized;
            sessionManager = new FreshNotNullableReference<CirceMediatorSessionManager>(mediatorSessionManager);
            sessionManager.Value.Devices[settings.DeviceAddressNotNull] = this;

            InitializeComponent();
            EnsureHandleCreated();
        }
        public DisplayForm([NotNull] DisplaySettingsXml displaySettings, bool initiallyMaximized,
            [NotNull] CirceMediatorSessionManager mediatorSessionManager)
        {
            Guard.NotNull(displaySettings, nameof(displaySettings));
            Guard.NotNull(mediatorSessionManager, nameof(mediatorSessionManager));

            settings = displaySettings;
            this.initiallyMaximized = initiallyMaximized;
            sessionManager = new FreshNotNullableReference<CirceMediatorSessionManager>(mediatorSessionManager);
            sessionManager.Value.Devices[settings.DeviceAddressNotNull] = this;

            InitializeComponent();
            EnsureHandleCreated();

            operationDispatcher = VisualizeOperationDispatcher.CreateFor(displayStatus);
        }
        public MediatorForm([NotNull] MediatorSettingsXml mediatorSettings, bool initiallyMaximized,
            [NotNull] CirceMediatorSessionManager mediatorSessionManager)
        {
            Guard.NotNull(mediatorSettings, nameof(mediatorSettings));
            Guard.NotNull(mediatorSessionManager, nameof(mediatorSessionManager));

            settings = mediatorSettings;
            this.initiallyMaximized = initiallyMaximized;
            sessionManager = new FreshNotNullableReference<CirceMediatorSessionManager>(mediatorSessionManager);

            sessionManager.Value.PacketSending += MediatorSessionManagerOnPacketSending;
            sessionManager.Value.PacketReceived += MediatorSessionManagerOnPacketReceived;
            sessionManager.Value.ConnectionStateChanged += MediatorSessionManagerOnConnectionStateChanged;
            sessionManager.Value.StatusCodeChanged += MediatorSessionManagerOnStatusCodeChanged;
            sessionManager.Value.Mediator = this;

            InitializeComponent();
            EnsureHandleCreated();
        }