diff --git a/zaaReloaded2/Controller/SettingsRepository.cs b/zaaReloaded2/Controller/SettingsRepository.cs index 2bc9960..61614c7 100755 --- a/zaaReloaded2/Controller/SettingsRepository.cs +++ b/zaaReloaded2/Controller/SettingsRepository.cs @@ -167,25 +167,10 @@ namespace zaaReloaded2.Controller return SettingsList.FirstOrDefault(s => s.Uid == uid); } - /// - /// Imports one Settings object by deserialization - /// from a stream. - /// - /// Stream to read from. - /// True if the import was successful. - bool Import(Stream s) + public static bool IsDefaultSettings(Settings settings) { - XmlSerializer ser = new XmlSerializer(typeof(Settings)); - Settings settings = ser.Deserialize(s) as Settings; - if (settings != null) - { - SettingsList.Add(settings); - return true; - } - else - { - return false; - } + return (settings.Name == Properties.Settings.Default.SettingsNameClinic + BUILTIN_LABEL || + settings.Name == Properties.Settings.Default.SettingsNameWard + BUILTIN_LABEL); } #endregion @@ -223,7 +208,7 @@ namespace zaaReloaded2.Controller // Configure the settings for the ward SettingsList.Add( new Settings( - def.SettingsNameWard, + def.SettingsNameWard + BUILTIN_LABEL, new List() { new TwoColumns(), @@ -238,7 +223,7 @@ namespace zaaReloaded2.Controller // Configure the settings for the outpatient clinic SettingsList.Add( new Settings( - def.SettingsNameClinic, + def.SettingsNameClinic + BUILTIN_LABEL, new List() { new SelectEachDay(defaultItems), @@ -250,7 +235,12 @@ namespace zaaReloaded2.Controller #endregion - #region Private constants + #region Constants + + /// + /// Label that is appended to the default Settings' names. + /// + public const string BUILTIN_LABEL = " (eingebaut)"; /// /// Constant GUID for the first default Settings. diff --git a/zaaReloaded2/ViewModels/SettingsRepositoryViewModel.cs b/zaaReloaded2/ViewModels/SettingsRepositoryViewModel.cs index 837e7fa..2c1b155 100755 --- a/zaaReloaded2/ViewModels/SettingsRepositoryViewModel.cs +++ b/zaaReloaded2/ViewModels/SettingsRepositoryViewModel.cs @@ -149,6 +149,7 @@ namespace zaaReloaded2.ViewModels return _exportSettingsCommand; } } + public DelegatingCommand ImportSettingsCommand { get @@ -270,12 +271,7 @@ namespace zaaReloaded2.ViewModels public SettingsRepositoryViewModel(SettingsRepository repository) { _repository = repository; - SettingsList = new ObservableCollection(); - foreach (Settings s in repository.SettingsList) - { - SettingsViewModel vm = new SettingsViewModel(s); - AddSettingsViewModel(vm); - } + BuildSettingsList(); RequestCloseView += (sender, args) => { _repository.Store(); @@ -286,6 +282,17 @@ namespace zaaReloaded2.ViewModels #region Private methods + void BuildSettingsList() + { + SettingsList = new ObservableCollection(); + foreach (Settings s in _repository.SettingsList) + { + SettingsViewModel vm = new SettingsViewModel(s); + AddSettingsViewModel(vm); + } + OnPropertyChanged("SettingsList"); + } + void DoEditSettings() { if (CanEditSettings()) @@ -356,7 +363,8 @@ namespace zaaReloaded2.ViewModels { if (content.Confirmed) { - + _repository = new SettingsRepository(); + BuildSettingsList(); } } @@ -365,6 +373,10 @@ namespace zaaReloaded2.ViewModels if (LastSelected != null) { SettingsViewModel copy = LastSelected.Clone() as SettingsViewModel; + if (IsDefaultSettings()) + { + copy.Name = copy.Name.Replace(SettingsRepository.BUILTIN_LABEL, String.Empty); + } _repository.SettingsList.Add(copy.RevealModelObject() as Settings); AddSettingsViewModel(copy); LastSelected.IsSelected = false; @@ -390,9 +402,7 @@ namespace zaaReloaded2.ViewModels { if (LastSelected != null) { - return - (LastSelected.Name == zaaReloaded2.Properties.Settings.Default.SettingsNameClinic - || LastSelected.Name == zaaReloaded2.Properties.Settings.Default.SettingsNameWard); + return SettingsRepository.IsDefaultSettings(LastSelected.RevealModelObject() as Settings); } else { diff --git a/zaaReloaded2/Views/SettingsRepositoryView.xaml b/zaaReloaded2/Views/SettingsRepositoryView.xaml index 11bf804..cb47ece 100755 --- a/zaaReloaded2/Views/SettingsRepositoryView.xaml +++ b/zaaReloaded2/Views/SettingsRepositoryView.xaml @@ -38,6 +38,10 @@ + + + @@ -62,6 +66,7 @@