Implement import and export of Settings.

- NEU: Stile können importiert und exportiert werden.
This commit is contained in:
Daniel Kraus
2015-08-11 21:22:34 +02:00
parent 00c60ba0ad
commit 0708f2a2b3
11 changed files with 379 additions and 49 deletions

View File

@ -0,0 +1,52 @@
<!--
IoErrorView.xaml
part of zaaReloaded2
Copyright 2015 Daniel Kraus
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Window x:Class="zaaReloaded2.Views.IoErrorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:b="clr-namespace:Bovender.Mvvm.Views.Settings;assembly=Bovender"
SizeToContent="WidthAndHeight" MaxWidth="480"
ResizeMode="NoResize" ShowInTaskbar="False"
b:WindowState.CenterScreen="True"
Title="Import/Export-Fehler"
>
<Window.Resources>
<ResourceDictionary Source="/zaaReloaded2;component/Style.xaml" />
</Window.Resources>
<DockPanel Margin="10">
<TextBlock DockPanel.Dock="Left" Margin="0 0 20 0" LineHeight="72" LineStackingStrategy="BlockLineHeight"
Text="X" FontSize="72" FontWeight="ExtraBold" Foreground="IndianRed">
<TextBlock.Effect>
<DropShadowEffect />
</TextBlock.Effect>
</TextBlock>
<StackPanel DockPanel.Dock="Bottom" HorizontalAlignment="Right" Margin="0 10 0 0">
<Button Content="Schließen" Command="{Binding CloseViewCommand}" />
</StackPanel>
<StackPanel>
<TextBlock TextWrapping="Wrap">
Die Aktion konnte nicht ausgeführt werden, weil Windows einen Fehler gemeldet hat.
</TextBlock>
<TextBlock Margin="0 10 0 0">
Fehlermeldung:
</TextBlock>
<TextBlock Margin="0 5 0 0" Text="{Binding Message}" />
</StackPanel>
</DockPanel>
</Window>

View File

@ -0,0 +1,33 @@
/* IoErrorView.xaml.cs
* part of zaaReloaded2
*
* Copyright 2015 Daniel Kraus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System.Windows;
namespace zaaReloaded2.Views
{
/// <summary>
/// Interaction logic for IoErrorView.xaml
/// </summary>
public partial class IoErrorView : Window
{
public IoErrorView()
{
InitializeComponent();
}
}
}

View File

@ -23,7 +23,7 @@
xmlns:b="clr-namespace:Bovender.Mvvm.Views.Settings;assembly=Bovender"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:action="clr-namespace:Bovender.Mvvm.Actions;assembly=Bovender"
Width="380" Height="340" ResizeMode="CanResizeWithGrip" ShowInTaskbar="False"
Width="380" Height="365" ResizeMode="CanResizeWithGrip" ShowInTaskbar="False"
b:WindowState.CenterScreen="True" b:WindowState.Save="True"
Title="Stil auswählen"
>
@ -38,25 +38,40 @@
<action:ConfirmationAction Caption="Stil entfernen" OkButtonLabel="Ja" CancelButtonLabel="Nein"
Message="Soll dieser Stil wirklich unwiederbringlich entfernt werden?" />
</i:EventTrigger>
<i:EventTrigger SourceObject="{Binding ChooseExportFileNameMessage}" EventName="Sent">
<action:ChooseFileSaveAction Caption="Stil exportieren" Message="Bitte Dateinamen für den Export angeben." />
</i:EventTrigger>
<i:EventTrigger SourceObject="{Binding ChooseImportFileNameMessage}" EventName="Sent">
<action:ChooseFileOpenAction Caption="Stil importieren" Message="Bitte zu importierende Datei auswählen." />
</i:EventTrigger>
<!-- TODO: Implement meaningful error messages. -->
<i:EventTrigger SourceObject="{Binding ExportErrorMessage}" EventName="Sent">
<action:ShowViewDialogAction Assembly="zaaReloaded2" View="zaaReloaded2.Views.IoErrorView" />
</i:EventTrigger>
<i:EventTrigger SourceObject="{Binding ImportErrorMessage}" EventName="Sent">
<action:ShowViewDialogAction Assembly="zaaReloaded2" View="zaaReloaded2.Views.IoErrorView" />
</i:EventTrigger>
</i:Interaction.Triggers>
<StackPanel Margin="10">
<Label Target="{Binding ElementName=settingsList}">Bitte Stil auswählen:</Label>
<DockPanel Margin="0 5 0 0">
<StackPanel DockPanel.Dock="Right" Margin="10 0 0 0">
<Button Command="{Binding UseSettingsCommand}" Content="Wählen" IsDefault="True" Margin="0 0 0 5" />
<Button Command="{Binding AddSettingsCommand}" Content="Hinzufügen" Margin="0 10 0 5" />
<Button Command="{Binding EditSettingsCommand}" Content="Bearbeiten" Margin="0 0 0 5" />
<Button Command="{Binding DeleteSettingsCommand}" Content="Entfernen" Margin="0 0 0 5" />
<Button Command="{Binding CopySettingsCommand}" Content="Kopieren" Margin="0 0 0 5" />
<Button Command="{Binding CloseViewCommand}" Content="Schließen" Margin="0 10 0 0" IsCancel="True" />
</StackPanel>
<StackPanel>
<ListBox ItemsSource="{Binding SettingsList}"
DisplayMemberPath="Name"
ItemContainerStyle="{DynamicResource ResourceKey=ViewModelListBox}"
x:Name="settingsList"
MinWidth="240" MinHeight="240" />
<Button Command="{Binding ExportSettingsCommand}" Content="Exportieren" Margin="0 5 0 5" />
<Button Command="{Binding ImportSettingsCommand}" Content="Importieren" Margin="0 0 0 5" />
</StackPanel>
<UniformGrid DockPanel.Dock="Bottom" Margin="0 10 0 0" Columns="2" Rows="1" HorizontalAlignment="Right">
<Button Command="{Binding UseSettingsCommand}" Content="Auswählen" IsDefault="True" Margin="0 0 5 0" />
<Button Command="{Binding CloseViewCommand}" Content="Schließen" Margin="5 0 0 0" IsCancel="True" />
</UniformGrid>
<ListBox ItemsSource="{Binding SettingsList}"
DisplayMemberPath="Name"
ItemContainerStyle="{DynamicResource ResourceKey=ViewModelListBox}"
x:Name="settingsList"
MinWidth="240" MinHeight="240" />
</DockPanel>
</StackPanel>
</Window>