// Show/Hide water map URL box private void SetWaterMapBoxLayout() { if (NoWaterMapBox.GetIsChecked()) { WaterMapTokenBox.Visibility = Visibility.Collapsed; WaterMapUrlBox.Visibility = Visibility.Collapsed; } else if (WasserkarteInfoBox.GetIsChecked()) { WaterMapTokenBox.Visibility = Visibility.Visible; WaterMapUrlBox.Visibility = Visibility.Collapsed; } else { WaterMapTokenBox.Visibility = Visibility.Collapsed; WaterMapUrlBox.Visibility = Visibility.Visible; } TestWaterMapButton.IsEnabled = !NoWaterMapBox.GetIsChecked(); }
// Tries to save all the settings and gives a messgae if something fails private bool Save() { const string caption = "AIC - Fehler beim Speichern"; #region General Settings // Fire Brigade Name try { mSettings.FireBrigadeName = FireBrigadeNameBox.Text; } catch { GeneralTab.Focus(); MessageBox.Show("Der Name der Feuerwehr wurde nicht korrekt eingegeben.", caption); FireBrigadeNameBox.FocusAndSelectAll(); return(false); } // Fire Brigade Address try { mSettings.FireBrigadeAddress = FireBrigadeAddressBox.Text; } catch { GeneralTab.Focus(); MessageBox.Show("Die Adresse der Feuerwehr wurde nicht korrekt eingegeben.", caption); FireBrigadeAddressBox.FocusAndSelectAll(); return(false); } // Fire Brigade Coordinates try { mSettings.FireBrigadeCoordinate = Coordinate.Parse(FireBrigadeCoordinatesBox.Text); FireBrigadeCoordinatesBox.Text = mSettings.FireBrigadeCoordinate.ToDecimalString(); } catch { GeneralTab.Focus(); MessageBox.Show("Die Koordinaten des Feuerwehrhauses wurde nicht korrekt eingegeben.", caption); FireBrigadeCoordinatesBox.FocusAndSelectAll(); return(false); } mSettings.StandAloneMode = ModeStandAloneBox.GetIsChecked(); if (!ModeStandAloneBox.GetIsChecked()) { // Service Host IP try { mSettings.NetworkServiceIpString = NetworksServiceIpBox.Text; } catch { GeneralTab.Focus(); MessageBox.Show("Der Service Hostname wurde nicht korrekt eingegeben.", caption); NetworksServiceIpBox.FocusAndSelectAll(); return(false); } // Service Port try { mSettings.NetworkServicePort = int.Parse(ServicePortBox.Text); } catch { GeneralTab.Focus(); MessageBox.Show("Der Service Port wurde nicht korrekt eingegeben (1-65535).", caption); ServicePortBox.FocusAndSelectAll(); return(false); } } else { // WAS IP try { mSettings.WasIp = IPAddress.Parse(WasIpBox.Text); } catch { GeneralTab.Focus(); MessageBox.Show("Die WAS IP-Adresse wurde nicht korrekt eingegeben.", caption); WasIpBox.FocusAndSelectAll(); return(false); } // WAS Port try { mSettings.WasPort = int.Parse(WasPortBox.Text); } catch { GeneralTab.Focus(); MessageBox.Show("Der WAS Port wurde nicht korrekt eingegeben (1-65535).", caption); WasPortBox.FocusAndSelectAll(); return(false); } } // Full Screen Mode mSettings.FullScreenMode = FullScreenModeBox.GetIsChecked(); // Demo Mode mSettings.DemoMode = DemoModeBox.GetIsChecked(); #endregion #region Alarm-Center Settings // Alarm display duration try { mSettings.AlarmDisplayDuration = int.Parse(AlarmDisplayDurationBox.Text); } catch { AlarmCenterTab.Focus(); MessageBox.Show("Die Alarmanzeigedauer wurde nicht korrekt eingegeben (1-3600).", caption); AlarmDisplayDurationBox.FocusAndSelectAll(); return(false); } // New alarm display duration try { mSettings.NewAlarmDisplayDuration = int.Parse(NewAlarmDisplayDurationBox.Text); } catch { AlarmCenterTab.Focus(); MessageBox.Show("Die Anzeigedauer eines neuen Alarms wurde nicht korrekt eingegeben (1-3600).", caption); NewAlarmDisplayDurationBox.FocusAndSelectAll(); return(false); } // Basic alarm info mSettings.ShowBasicAlarmInfo = ShowBasicAlarmInfoBox.GetIsChecked(); // Turn screen off try { mSettings.TurnScreenOffDelayMinutes = int.Parse(TurnScreenOffDelayBox.Text); } catch { AlarmCenterTab.Focus(); MessageBox.Show("Die Abschaltzeit des Bildschirms nach einem Einsatz wurde nicht korrekt eingegeben.", caption); TurnScreenOffDelayBox.FocusAndSelectAll(); return(false); } // Play alarm sound mSettings.PlayAlarmSound = PlayAlarmSoundBox.GetIsChecked(); // Play announcement mSettings.PlayAnnouncement = PlayAnnouncementBox.GetIsChecked(); // Announcement intervals try { var intervals = new List <int>(); string text = AnnouncementIntervalsBox.Text.Trim(); if (text.Length > 0) { intervals = text.Split(',').Select(int.Parse).ToList(); } mSettings.AnnouncementIntervals = intervals; } catch { PlayAnnouncementBox.IsChecked = true; AlarmCenterTab.Focus(); MessageBox.Show("Die Sprachdurchsagezeiten wurden nicht korrekt eingegeben.", caption); AnnouncementIntervalsBox.FocusAndSelectAll(); return(false); } // Route URL try { mSettings.RouteUrl = RouteUrlBox.Text; } catch { AlarmCenterTab.Focus(); MessageBox.Show("Die URL zur Anzeige der Anfahrtsroute wurde nicht korrekt eingegeben.", caption); RouteUrlBox.FocusAndSelectAll(); return(false); } // Water Map mode try { if (NoWaterMapBox.GetIsChecked()) { mSettings.WaterMapMode = 0; } else if (WasserkarteInfoBox.GetIsChecked()) { mSettings.WaterMapMode = 1; } else { mSettings.WaterMapMode = 2; } } catch (Exception) { AlarmCenterTab.Focus(); MessageBox.Show("Die Wasserkarte wurde nicht korrekt konfiguriert.", caption); return(false); } // wasserkarte.info token try { mSettings.WasserkarteInfoToken = WaterMapTokenBox.Text; } catch { AlarmCenterTab.Focus(); MessageBox.Show("Der Token für wasserkarte.info wurde nicht korrekt eingegeben.", caption); WaterMapTokenBox.FocusAndSelectAll(); return(false); } // Water Map URL try { mSettings.WaterMapApiUrl = WaterMapUrlBox.Text; } catch { AlarmCenterTab.Focus(); MessageBox.Show("Die URL der Wasserkarte wurde nicht korrekt eingegeben.", caption); WaterMapUrlBox.FocusAndSelectAll(); return(false); } #endregion #region Print Settings // Print server try { mSettings.PrintServer = PrintServerBox.Text; } catch { PrintTab.Focus(); MessageBox.Show("Der Druckserver wurde nicht korrekt eingegeben.", caption); PrintServerBox.FocusAndSelectAll(); return(false); } // Printer name try { mSettings.PrinterName = PrinterNameBox.Text; } catch { PrintTab.Focus(); MessageBox.Show("Der Name des Druckers wurde nicht korrekt eingegeben.", caption); PrinterNameBox.FocusAndSelectAll(); return(false); } // Print count try { mSettings.PrintCount = int.Parse(PrintCountBox.Text); } catch { PrintTab.Focus(); MessageBox.Show("Der Anzahl der Ausdrucke wurde nicht korrekt eingegeben (0-100).", caption); PrintCountBox.FocusAndSelectAll(); return(false); } // Route map type mSettings.RouteMapType = GetSelectedMapType(RouteMapTypeBox); // Detail map type mSettings.DetailMapType = GetSelectedMapType(DetailMapTypeBox); // Water map type mSettings.WaterMapType = GetSelectedMapType(WaterMapTypeBox); #endregion #region Info-Center Settings // Info Center enabled mSettings.InfoCenterEnabled = InfoCenterEnabledBox.GetIsChecked(); // Info Center URL try { mSettings.InfoCenterDataUrl = InfoCenterDataUrlBox.Text; } catch { InfoCenterTab.Focus(); MessageBox.Show("Die URL des Info-Center wurde nicht korrekt eingegeben.", caption); InfoCenterDataUrlBox.FocusAndSelectAll(); return(false); } // Info Center page duration try { mSettings.InfoPageDisplayDuration = int.Parse(InfoPageDisplayDurationBox.Text); } catch { InfoCenterTab.Focus(); MessageBox.Show("Die Anzeigedauer einer Seite des Info-Center wurde nicht korrekt eingegeben (1-3600).", caption); InfoPageDisplayDurationBox.FocusAndSelectAll(); return(false); } // Weather project name try { mSettings.WeatherProjectName = WeatherProjectNameBox.Text; } catch { InfoCenterTab.Focus(); MessageBox.Show("Der Projektname von wetter.com wurde nicht korrekt eingegeben.", caption); WeatherProjectNameBox.FocusAndSelectAll(); return(false); } // Weather city code try { mSettings.WeatherCityCode = WeatherCityCodeBox.Text; } catch { InfoCenterTab.Focus(); MessageBox.Show("Der City Code von wetter.com wurde nicht korrekt eingegeben.", caption); WeatherCityCodeBox.FocusAndSelectAll(); return(false); } // Weather API Key try { mSettings.WeatherKey = WeatherKeyBox.Text; } catch { InfoCenterTab.Focus(); MessageBox.Show("Der API Key von wetter.com wurde nicht korrekt eingegeben.", caption); WeatherKeyBox.FocusAndSelectAll(); return(false); } #endregion #region Public Display Settings // IP try { string ip = PublicDisplayIpBox.Text.Trim(); mSettings.PublicDisplayIp = ip.Length > 0 ? IPAddress.Parse(PublicDisplayIpBox.Text) : null; } catch { PublicDisplayTab.Focus(); MessageBox.Show("Die IP-Adresse des Public Display wurde nicht korrekt eingegeben.", caption); PublicDisplayIpBox.FocusAndSelectAll(); return(false); } // Port try { mSettings.PublicDisplayPort = int.Parse(PublicDisplayPortBox.Text); } catch { PublicDisplayTab.Focus(); MessageBox.Show("Der Port des Public Display wurde nicht korrekt eingegeben (0-65535).", caption); PublicDisplayPortBox.FocusAndSelectAll(); return(false); } // Turn on time try { mSettings.PublicDisplayTurnScreenOnTime = TimeSpan.Parse(PublicDisplayTurnOnTimeBox.Text); } catch { PublicDisplayTab.Focus(); MessageBox.Show("Die Einschaltzeit des Public Display wurde nicht korrekt eingegeben (00:00-23:59).", caption); PublicDisplayTurnOnTimeBox.FocusAndSelectAll(); return(false); } // Turn on time try { mSettings.PublicDisplayTurnScreenOffTime = TimeSpan.Parse(PublicDisplayTurnOffTimeBox.Text); } catch { PublicDisplayTab.Focus(); MessageBox.Show("Die Ausschaltzeit des Public Display wurde nicht korrekt eingegeben (00:00-23:59).", caption); PublicDisplayTurnOffTimeBox.FocusAndSelectAll(); return(false); } #endregion // Save settings to settings file try { mSettings.Save(); } catch { MessageBox.Show("Die Einstellungen konnten nicht gespeichert werden.", caption); return(false); } return(true); }