コード例 #1
0
        /// <summary>
        /// Creates a new instance of the settings window and applies the provided settings.
        /// </summary>
        /// <param name="settings">The settings to be shown in the window.</param>
        public SettingsWindow(AicSettings settings = null)
        {
            InitializeComponent();

            DemoModeBox.ToolTip = "Im Demo-Modus wird keine Verbindung zum Service bzw. WAS hergestellt. Die Daten werden von der Datei " + Constants.AicMessageDemoPath + " gelesen.";

            PrepareMapTypeBox(RouteMapTypeBox);
            PrepareMapTypeBox(DetailMapTypeBox);
            PrepareMapTypeBox(WaterMapTypeBox);

            if (settings != null)
            {
                mSettings = settings;
                ApplySettings(mSettings);
            }
        }
コード例 #2
0
        // Open the settings window
        private void ShowSettings()
        {
            RefreshMainWindow(new List <Alarm>());              // Remove all the alarms from the screen
            Topmost = false;
            Mouse.OverrideCursor = null;                        // Use the default cursor when the settings window is opened
            StopListener();
            var window = new SettingsWindow(AicSettings.Global);
            var result = window.ShowDialog();

            if (result.HasValue && result.Value)
            {
                try
                {
                    AicSettings.Global = AicSettings.Load();
                }
                catch (Exception)
                {
                    MessageBox.Show("Die neuen Einstellungen konnten nicht geladen werden. Bitte starten Sie das Programm neu.", "AIC", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            ApplySettings();
        }
コード例 #3
0
        // Applies the provided settings to the form
        private void ApplySettings(AicSettings settings)
        {
            // General
            FireBrigadeNameBox.Text        = settings.FireBrigadeName;
            FireBrigadeAddressBox.Text     = settings.FireBrigadeAddress;
            FireBrigadeCoordinatesBox.Text = settings.FireBrigadeCoordinate.ToDecimalString();
            ModeClientBox.IsChecked        = !settings.StandAloneMode;
            ModeStandAloneBox.IsChecked    = settings.StandAloneMode;
            NetworksServiceIpBox.Text      = settings.NetworkServiceIpString;
            ServicePortBox.Text            = settings.NetworkServicePort.ToString();
            WasIpBox.Text               = settings.WasIp.ToString();
            WasPortBox.Text             = settings.WasPort.ToString();
            FullScreenModeBox.IsChecked = settings.FullScreenMode;
            DemoModeBox.IsChecked       = settings.DemoMode;

            // Alarm-Center
            AlarmDisplayDurationBox.Text    = settings.AlarmDisplayDuration.ToString();
            NewAlarmDisplayDurationBox.Text = settings.NewAlarmDisplayDuration.ToString();
            ShowBasicAlarmInfoBox.IsChecked = settings.ShowBasicAlarmInfo;
            TurnScreenOffDelayBox.Text      = settings.TurnScreenOffDelayMinutes.ToString();
            PlayAlarmSoundBox.IsChecked     = settings.PlayAlarmSound;
            PlayAnnouncementBox.IsChecked   = settings.PlayAnnouncement;
            AnnouncementIntervalsBox.Text   = string.Join(", ", settings.AnnouncementIntervals);
            RouteUrlBox.Text = settings.RouteUrl;
            if (settings.WaterMapMode == 1)
            {
                WasserkarteInfoBox.IsChecked = true;
            }
            else if (settings.WaterMapMode == 2)
            {
                CustomWaterMapBox.IsChecked = true;
            }
            else
            {
                NoWaterMapBox.IsChecked = true;
            }
            WaterMapTokenBox.Text = settings.WasserkarteInfoToken;
            WaterMapUrlBox.Text   = settings.WaterMapApiUrl;

            // Print
            PrintServerBox.Text = settings.PrintServer;
            PrinterNameBox.Text = settings.PrinterName;
            PrintCountBox.Text  = settings.PrintCount.ToString();
            SetMapType(RouteMapTypeBox, settings.RouteMapType);
            SetMapType(DetailMapTypeBox, settings.DetailMapType);
            SetMapType(WaterMapTypeBox, settings.WaterMapType);

            // Info-Center
            InfoCenterEnabledBox.IsChecked  = settings.InfoCenterEnabled;
            InfoCenterDataUrlBox.Text       = settings.InfoCenterDataUrl;
            InfoPageDisplayDurationBox.Text = settings.InfoPageDisplayDuration.ToString();
            WeatherProjectNameBox.Text      = settings.WeatherProjectName;
            WeatherCityCodeBox.Text         = settings.WeatherCityCode;
            WeatherKeyBox.Text = settings.WeatherKey;

            // Public Display
            PublicDisplayIpBox.Text          = settings.PublicDisplayIp == null ? string.Empty : settings.PublicDisplayIp.ToString();
            PublicDisplayPortBox.Text        = settings.PublicDisplayPort.ToString();
            PublicDisplayTurnOnTimeBox.Text  = settings.PublicDisplayTurnScreenOnTime.ToString();
            PublicDisplayTurnOffTimeBox.Text = settings.PublicDisplayTurnScreenOffTime.ToString();
        }
コード例 #4
0
        /// <summary>
        /// Initializes a new main window.
        /// </summary>
        public MainWindow()
        {
            InitializeComponent();

            mStartTime = DateTime.Now;
            Log.GetInstance().IgnoreEqualLogMessages = true;
            Log.GetInstance().LogInformation("AIC started");

            // Timer that turns the screen off if there is no alarm anymore
            mTurnScreenOffTimer       = new DispatcherTimer();
            mTurnScreenOffTimer.Tick += mTurnScreenOffTimer_Tick;

            try
            {
                AicSettings.Global = AicSettings.Load();
            }
            catch
            {
                AicSettings.Global = new AicSettings();
                ShowSettings();
            }

            PrepareForDebug();                                                          // This method is only called in DEBUG mode

            ApplySettings();

            // Apply settings without data binding
            InfoCenterCtrl.LogInformation = Log.GetInstance().LogInformation;
            InfoCenterCtrl.LogWarning     = Log.GetInstance().LogWarning;
            InfoCenterCtrl.LogError       = Log.GetInstance().LogError;

            // Full screen mode
            if (AicSettings.Global.FullScreenMode)
            {
                Visibility  = Visibility.Visible;
                WindowState = WindowState.Maximized;
            }
            else
            {
                Visibility = Visibility.Hidden;
            }

            // Multi alarm font size
            MultiAlarmLbl.FontSize     = SystemParameters.PrimaryScreenHeight / 18;
            MultiAlarmPageLbl.FontSize = MultiAlarmLbl.FontSize;

            // Check system in a separate thread
            mCheckSystemWorker.DoWork             += mCheckSystemWorker_DoWork;
            mCheckSystemWorker.RunWorkerCompleted += mCheckSystemWorker_RunWorkerCompleted;
            mCheckSystemWorker.RunWorkerAsync();

            // One minute timer (checks the system)
            var oneMinuteTimer = new DispatcherTimer();

            oneMinuteTimer.Interval = new TimeSpan(0, 1, 0);
            oneMinuteTimer.Tick    += oneMinuteTimer_Tick;
            oneMinuteTimer.Start();

            // Change alarm tab every x seconds
            mChangeTabTimer          = new DispatcherTimer();
            mChangeTabTimer.Interval = new TimeSpan(0, 0, AicSettings.Global.AlarmDisplayDuration);
            mChangeTabTimer.Tick    += mChangeTabTimer_Tick;
            mChangeTabTimer.Start();

            // Show new alarm for x seconds
            mNewAlarmTimer          = new DispatcherTimer();
            mNewAlarmTimer.Interval = new TimeSpan(0, 0, AicSettings.Global.NewAlarmDisplayDuration);
            mNewAlarmTimer.Tick    += mNewAlarmTimer_Tick;

            //Thread.Sleep(200);		// Show the splash screen some more time. Do not waste time!
        }