add functionsetting page

This commit is contained in:
stubbfel
2013-11-25 12:34:01 +01:00
parent c92e301a7e
commit ad3c73dcf2
9 changed files with 383 additions and 53 deletions

View File

@@ -137,6 +137,9 @@
<Compile Include="Model\Setting\UserProfilModel.cs" />
<Compile Include="Model\TimeTable\AppointmentListModel.cs" />
<Compile Include="Model\TimeTable\AppointmentModel.cs" />
<Compile Include="Pages\Setting\FunctionSettingPage.xaml.cs">
<DependentUpon>FunctionSettingPage.xaml</DependentUpon>
</Compile>
<Compile Include="Pages\TimeTable\Appointment.xaml.cs">
<DependentUpon>Appointment.xaml</DependentUpon>
</Compile>
@@ -484,6 +487,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Setting\FunctionSettingPage.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Pages\Setting\Impressum.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>

View File

@@ -9,6 +9,7 @@
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
xmlns:header="clr-namespace:CampusAppWP8.Utility.Lui.Header"
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
xmlns:page="clr-namespace:CampusAppWP8.Utility.Lui.Page"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
@@ -25,48 +26,79 @@
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
<StackPanel Grid.Row="0">
<header:DefaultHeader Name="DefHeader" HeaderName="{Binding Path=LocalizedResources.Setting_App, Source={StaticResource LocalizedStrings}}"/>
<header:DefaultHeader Name="DefHeader" HeaderName="{Binding Path=LocalizedResources.Setting_General, Source={StaticResource LocalizedStrings}}"/>
</StackPanel>
<ScrollViewer Grid.Row="1">
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
<Grid x:Name="ContentPanel" Margin="12,0,12,0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<toolkit:ToggleSwitch Name="GeoWatchToggle" Content="{Binding Path=LocalizedResources.Setting_AppGeoWatch, Source={StaticResource LocalizedStrings}}"></toolkit:ToggleSwitch>
</StackPanel>
<StackPanel Grid.Row="1">
<toolkit:ToggleSwitch Name="OnlyWiFiToggle" Content="{Binding Path=LocalizedResources.Setting_AppOnlyWifi, Source={StaticResource LocalizedStrings}}"></toolkit:ToggleSwitch>
</StackPanel>
<StackPanel Grid.Row="2">
<lui:NavigateButton Content="{Binding Path=LocalizedResources.BTUTag_Title, Source={StaticResource LocalizedStrings}}" Url="{Binding Path=Constants.PathBTUTag_Info, Source={StaticResource Const}}" />
</StackPanel>
<StackPanel Grid.Row="3" >
<TextBlock Margin="12,0,0,0" Text="{Binding Path=LocalizedResources.Setting_TagHandler, Source={StaticResource LocalizedStrings}}"/>
<toolkit:ListPicker Name="TagHandler" ExpansionMode="FullScreenOnly" FullModeHeader="{Binding Path=LocalizedResources.ListPickerHeaderTag, Source={StaticResource LocalizedStrings}}" >
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Text}"/>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<Border BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="12,0,0,0" Margin="0,0,0,6">
<TextBlock Text="{Binding Text}" Style="{StaticResource PhoneTextGroupHeaderStyle}" TextWrapping="Wrap"/>
</Border>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
</StackPanel>
</Grid>
</ScrollViewer>
<phone:Pivot Grid.Row="1" Name="MensaPivot">
<phone:Pivot.HeaderTemplate>
<DataTemplate>
<Grid Margin="0,-36,0,0">
<TextBlock Text="{Binding}"/>
</Grid>
</DataTemplate>
</phone:Pivot.HeaderTemplate>
<phone:PivotItem Header="{Binding Path=LocalizedResources.Setting_GeneralNetwork, Source={StaticResource LocalizedStrings}}">
<ScrollViewer Grid.Row="1">
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
<Grid x:Name="ContentPanel" Margin="12,0,12,0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<toolkit:ToggleSwitch Name="GeoWatchToggle" Content="{Binding Path=LocalizedResources.Setting_AppGeoWatch, Source={StaticResource LocalizedStrings}}"></toolkit:ToggleSwitch>
</StackPanel>
<StackPanel Grid.Row="1">
<toolkit:ToggleSwitch Name="OnlyWiFiToggle" Content="{Binding Path=LocalizedResources.Setting_AppOnlyWifi, Source={StaticResource LocalizedStrings}}"></toolkit:ToggleSwitch>
</StackPanel>
</Grid>
</ScrollViewer>
</phone:PivotItem>
<phone:PivotItem Header="Darstellung">
</phone:PivotItem>
<phone:PivotItem Header="Funktionen">
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem>
<lui:NavigateButton
Style="{StaticResource ListButtonStyle}"
Url="{Binding Path=Constants.PathSetting_Function, Source={StaticResource Const}}"
QuerryStringName="{Binding Path=Constants.Param_FunctionSetting_Index, Source={StaticResource Const}}"
QuerryStringValue="{Binding Path=Constants.FunctionSetting_Mensa, Source={StaticResource Const}}">
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Title, Source={StaticResource LocalizedStrings}}"/>
</lui:NavigateButton>
</ListBoxItem>
<ListBoxItem>
<lui:NavigateButton
Style="{StaticResource ListButtonStyle}"
Url="{Binding Path=Constants.PathSetting_Function, Source={StaticResource Const}}"
QuerryStringName="{Binding Path=Constants.Param_FunctionSetting_Index, Source={StaticResource Const}}"
QuerryStringValue="{Binding Path=Constants.FunctionSetting_TimeTable, Source={StaticResource Const}}">
<TextBlock Text="{Binding Path=LocalizedResources.TimeTableApp_Title, Source={StaticResource LocalizedStrings}}"/>
</lui:NavigateButton>
</ListBoxItem>
<ListBoxItem>
<lui:NavigateButton
Style="{StaticResource ListButtonStyle}"
Url="{Binding Path=Constants.PathSetting_Function, Source={StaticResource Const}}"
QuerryStringName="{Binding Path=Constants.Param_FunctionSetting_Index, Source={StaticResource Const}}"
QuerryStringValue="{Binding Path=Constants.FunctionSetting_Tag, Source={StaticResource Const}}">
<TextBlock Text="{Binding Path=LocalizedResources.Setting_Tag, Source={StaticResource LocalizedStrings}}"/>
</lui:NavigateButton>
</ListBoxItem>
</ListBox>
</phone:PivotItem>
</phone:Pivot>
</Grid>
</phone:PhoneApplicationPage>

View File

@@ -8,9 +8,7 @@
//-----------------------------------------------------------------------
namespace CampusAppWP8.Pages.Setting
{
using System;
using System.Windows.Navigation;
using CampusAppWP8.Model.Setting;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
/// <summary> Class for the AppSettingPage. </summary>
@@ -18,10 +16,6 @@ namespace CampusAppWP8.Pages.Setting
/// <seealso cref="T:Microsoft.Phone.Controls.PhoneApplicationPage"/>
public partial class AppSettingPage : PhoneApplicationPage
{
#region Member
/// <summary> The TagHandler model. </summary>
private TagHandlerListPickerItemListModel taghandlerModel;
#endregion
#region Constructor
/// <summary> Initializes a new instance of the <see cref="AppSettingPage" /> class. </summary>
@@ -31,10 +25,6 @@ namespace CampusAppWP8.Pages.Setting
this.InitializeComponent();
this.GeoWatchToggle.IsChecked = Settings.AppSetting.GeoWatchEnable;
this.OnlyWiFiToggle.IsChecked = Settings.AppSetting.OnlyWifi;
this.taghandlerModel = new TagHandlerListPickerItemListModel();
this.TagHandler.ItemsSource = this.taghandlerModel.List;
int tagselIndex = this.taghandlerModel.GetIndexOrDefault(Settings.AppSetting.TagDefaultHandler.ToString());
this.TagHandler.SelectedIndex = tagselIndex;
}
#endregion
@@ -50,7 +40,6 @@ namespace CampusAppWP8.Pages.Setting
{
Settings.AppSetting.GeoWatchEnable = GeoWatchToggle.IsChecked.Value;
Settings.AppSetting.OnlyWifi = OnlyWiFiToggle.IsChecked.Value;
Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).Value);
}
}

View File

@@ -0,0 +1,88 @@
<phone:PhoneApplicationPage
x:Class="CampusAppWP8.Pages.Setting.FunctionSettingPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
xmlns:header="clr-namespace:CampusAppWP8.Utility.Lui.Header"
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<!--Pivotsteuerelement-->
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
<StackPanel Grid.Row="0">
<header:DefaultHeader
Name="DefHeader"
HeaderName="{Binding Path=LocalizedResources.Setting_Function, Source={StaticResource LocalizedStrings}}"/>
</StackPanel>
<phone:Pivot Grid.Row="1" Name="SettingFunctionPivot">
<phone:Pivot.HeaderTemplate>
<DataTemplate>
<Grid Margin="0,-36,0,0">
<TextBlock Text="{Binding}"/>
</Grid>
</DataTemplate>
</phone:Pivot.HeaderTemplate>
<!--Pivotelement eins-->
<phone:PivotItem
Tag="{Binding Path=Constants.FunctionSetting_Mensa, Source={StaticResource Const}}"
Header="{Binding Path=LocalizedResources.MensaApp_Title, Source={StaticResource LocalizedStrings}}">
<Grid/>
</phone:PivotItem>
<!--Pivotelement zwei-->
<phone:PivotItem
Tag="{Binding Path=Constants.FunctionSetting_TimeTable, Source={StaticResource Const}}"
Header="{Binding Path=LocalizedResources.TimeTableApp_Title, Source={StaticResource LocalizedStrings}}">
<Grid/>
</phone:PivotItem>
<!--Pivotelement drei-->
<phone:PivotItem
Tag="{Binding Path=Constants.FunctionSetting_Tag, Source={StaticResource Const}}"
Header="{Binding Path=LocalizedResources.Setting_Tag, Source={StaticResource LocalizedStrings}}">
<StackPanel>
<StackPanel>
<lui:NavigateButton Content="{Binding Path=LocalizedResources.BTUTag_Title, Source={StaticResource LocalizedStrings}}" Url="{Binding Path=Constants.PathBTUTag_Info, Source={StaticResource Const}}" />
</StackPanel>
<StackPanel>
<TextBlock Margin="12,0,0,0" Text="{Binding Path=LocalizedResources.Setting_TagHandler, Source={StaticResource LocalizedStrings}}"/>
<toolkit:ListPicker Name="TagHandler" ExpansionMode="FullScreenOnly" FullModeHeader="{Binding Path=LocalizedResources.ListPickerHeaderTag, Source={StaticResource LocalizedStrings}}" >
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Text}"/>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<Border BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="12,0,0,0" Margin="0,0,0,6">
<TextBlock Text="{Binding Text}" Style="{StaticResource PhoneTextGroupHeaderStyle}" TextWrapping="Wrap"/>
</Border>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
</StackPanel>
</StackPanel>
</phone:PivotItem>
</phone:Pivot>
</Grid>
</phone:PhoneApplicationPage>

View File

@@ -0,0 +1,106 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using CampusAppWP8.Resources;
using CampusAppWP8.Model.Setting;
namespace CampusAppWP8.Pages.Setting
{
public partial class FunctionSettingPage : PhoneApplicationPage
{
#region Member
/// <summary> The TagHandler model. </summary>
private TagHandlerListPickerItemListModel taghandlerModel;
#endregion
#region Constructor
public FunctionSettingPage()
{
InitializeComponent();
this.taghandlerModel = new TagHandlerListPickerItemListModel();
this.TagHandler.ItemsSource = this.taghandlerModel.List;
int tagselIndex = this.taghandlerModel.GetIndexOrDefault(Settings.AppSetting.TagDefaultHandler.ToString());
this.TagHandler.SelectedIndex = tagselIndex;
}
#endregion
#region Methods
#region protected
/// <summary> Override the OnNavigatedTo method. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <seealso cref="M:System.Windows.Controls.Page.OnNavigatedTo(NavigationEventArgs)"/>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string functionIndex;
if (NavigationMode.New == e.NavigationMode && NavigationContext.QueryString.TryGetValue(Constants.Param_FunctionSetting_Index, out functionIndex))
{
this.SetSelecetPivotItem(functionIndex);
}
else
{
string oldIndex = App.LoadFromIsolatedStorage<string>(Constants.IsolatedStorage_FunctionSettingPageIndex);
this.SetSelecetPivotItem(oldIndex);
}
}
/// <summary> Override the OnNavigatedFrom method. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <seealso cref="M:System.Windows.Controls.Page.OnNavigatedFrom(NavigationEventArgs)"/>
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).Value);
if (NavigationMode.Back == e.NavigationMode)
{
App.SaveToIsolatedStorage<string>(Constants.IsolatedStorage_FunctionSettingPageIndex, null);
}
else
{
FrameworkElement uiElement = this.SettingFunctionPivot.SelectedItem as FrameworkElement;
if (uiElement != null && uiElement.Tag != null)
{
App.SaveToIsolatedStorage<string>(Constants.IsolatedStorage_FunctionSettingPageIndex, uiElement.Tag.ToString());
}
}
}
#endregion
#region private
private void SetSelecetPivotItem(string itemTag)
{
if (itemTag != null)
{
foreach (FrameworkElement pivotItem in this.SettingFunctionPivot.Items)
{
if (pivotItem.Tag != null && itemTag.Equals(pivotItem.Tag.ToString()))
{
this.SettingFunctionPivot.SetValue(Pivot.SelectedItemProperty, pivotItem);
return;
}
}
}
this.SettingFunctionPivot.SelectedIndex = 0;
}
#endregion
#endregion
}
}

View File

@@ -1221,6 +1221,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Funktionseinstellungen ähnelt.
/// </summary>
public static string Setting_Function {
get {
return ResourceManager.GetString("Setting_Function", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Allgemeine Einstellungen ähnelt.
/// </summary>
@@ -1230,6 +1239,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Ortung &amp; Netzwerk ähnelt.
/// </summary>
public static string Setting_GeneralNetwork {
get {
return ResourceManager.GetString("Setting_GeneralNetwork", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Über BTU Campus-App ähnelt.
/// </summary>
@@ -1248,6 +1266,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die BTU-Tag ähnelt.
/// </summary>
public static string Setting_Tag {
get {
return ResourceManager.GetString("Setting_Tag", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die BTU-Tag-Standardfunktion ähnelt.
/// </summary>

View File

@@ -632,7 +632,16 @@
<data name="Rooms" xml:space="preserve">
<value>Räume</value>
</data>
<data name="Setting_Function" xml:space="preserve">
<value>Funktionseinstellungen</value>
</data>
<data name="Setting_GeneralNetwork" xml:space="preserve">
<value>Ortung &amp; Netzwerk</value>
</data>
<data name="Setting_Other" xml:space="preserve">
<value>Sonstige Einstellungen</value>
</data>
<data name="Setting_Tag" xml:space="preserve">
<value>BTU-Tag</value>
</data>
</root>

View File

@@ -624,4 +624,22 @@
<data name="PathSetting_Impressum" xml:space="preserve">
<value>/Pages/Setting/Impressum.xaml</value>
</data>
<data name="FunctionSetting_Mensa" xml:space="preserve">
<value>Mensafunction</value>
</data>
<data name="FunctionSetting_Tag" xml:space="preserve">
<value>Tagfunction</value>
</data>
<data name="FunctionSetting_TimeTable" xml:space="preserve">
<value>TimeTablefunction</value>
</data>
<data name="IsolatedStorage_FunctionSettingPageIndex" xml:space="preserve">
<value>FunctionSettingPageIndex</value>
</data>
<data name="Param_FunctionSetting_Index" xml:space="preserve">
<value>FunctionSettingIndex</value>
</data>
<data name="PathSetting_Function" xml:space="preserve">
<value>/Pages/Setting/FunctionSettingPage.xaml</value>
</data>
</root>

View File

@@ -438,6 +438,33 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Mensafunction ähnelt.
/// </summary>
public static string FunctionSetting_Mensa {
get {
return ResourceManager.GetString("FunctionSetting_Mensa", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Tagfunction ähnelt.
/// </summary>
public static string FunctionSetting_Tag {
get {
return ResourceManager.GetString("FunctionSetting_Tag", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die TimeTablefunction ähnelt.
/// </summary>
public static string FunctionSetting_TimeTable {
get {
return ResourceManager.GetString("FunctionSetting_TimeTable", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die CurrentPositionPoint ähnelt.
/// </summary>
@@ -492,6 +519,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die FunctionSettingPageIndex ähnelt.
/// </summary>
public static string IsolatedStorage_FunctionSettingPageIndex {
get {
return ResourceManager.GetString("IsolatedStorage_FunctionSettingPageIndex", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die LectureAppointment ähnelt.
/// </summary>
@@ -645,6 +681,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die FunctionSettingIndex ähnelt.
/// </summary>
public static string Param_FunctionSetting_Index {
get {
return ResourceManager.GetString("Param_FunctionSetting_Index", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die BuildingId ähnelt.
/// </summary>
@@ -1050,6 +1095,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Setting/FunctionSettingPage.xaml ähnelt.
/// </summary>
public static string PathSetting_Function {
get {
return ResourceManager.GetString("PathSetting_Function", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Setting/Impressum.xaml ähnelt.
/// </summary>