Merge branch 'release/newstart' into develmaster

This commit is contained in:
stubbfel
2013-11-21 13:35:26 +01:00
38 changed files with 1034 additions and 529 deletions

View File

@@ -212,7 +212,7 @@ namespace CampusAppWP8
// Dieser Code wird beim Deaktivieren der Anwendung nicht ausgeführt
private void Application_Closing(object sender, ClosingEventArgs e)
{
// Sicherstellen, dass der erforderliche Anwendungszustand hier beibehalten wird
App.SaveToIsolatedStorage<string>("StartPageIndex", null);
}
// Code, der bei einem Navigationsfehler ausgeführt wird

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

View File

@@ -255,7 +255,7 @@
<Compile Include="Utility\Lui\ListBoxFixed.cs" />
<Compile Include="Utility\Lui\Templates\AppointmentCanvas.xaml.cs">
<DependentUpon>AppointmentCanvas.xaml</DependentUpon>
</Compile>
</Compile>
<Compile Include="Utility\Lui\MultiValueTextBlock.xaml.cs">
<DependentUpon>MultiValueTextBlock.xaml</DependentUpon>
</Compile>
@@ -542,7 +542,7 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Utility\Lui\Templates\AppointmentCanvas.xaml"/>
<Page Include="Utility\Lui\Templates\AppointmentCanvas.xaml" />
<Page Include="Utility\Lui\MultiValueTextBlock.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -571,18 +571,21 @@
<Content Include="Assets\ApplicationIcon.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Assets\Background.jpg" />
<Content Include="Assets\Icons\DarkTheme\events_159.png" />
<Content Include="Assets\Icons\DarkTheme\lectures_159.png" />
<Content Include="Assets\Icons\DarkTheme\lehrstuehle_159.png" />
<Content Include="Assets\Icons\DarkTheme\mensaplan_159.png" />
<Content Include="Assets\Icons\DarkTheme\pos_159.png" />
<Content Include="Assets\Icons\DarkTheme\speaker_159.png" />
<Content Include="Assets\Icons\DarkTheme\stundenplan_add_159.png" />
<Content Include="Assets\Icons\LightTheme\events_159.png" />
<Content Include="Assets\Icons\LightTheme\lectures_159.png" />
<Content Include="Assets\Icons\LightTheme\lehrstuehle_159.png" />
<Content Include="Assets\Icons\LightTheme\mensaplan_159.png" />
<Content Include="Assets\Icons\LightTheme\pos_159.png" />
<Content Include="Assets\Icons\LightTheme\speaker_159.png" />
<Content Include="Assets\Icons\LightTheme\stundenplan_add_159.png" />
<Content Include="Assets\Maps\campusmap.png" />
<Content Include="Assets\Icons\DarkTheme\add_159.png" />
<Content Include="Assets\Icons\DarkTheme\add_contact_159.png" />
@@ -665,6 +668,11 @@
<Content Include="Assets\Lens.Screen-WXGA.png" />
<Content Include="Assets\Maps\IKMZ.png" />
<Content Include="Assets\Maps\MZG.png" />
<Content Include="Assets\Slides\Slide1.jpg" />
<Content Include="Assets\Slides\Slide2.jpg" />
<Content Include="Assets\Slides\Slide3.jpg" />
<Content Include="Assets\Slides\Slide4.jpg" />
<Content Include="Assets\Slides\Slide5.jpg" />
<Content Include="File\Campusmap\BuildingsMaps.xml" />
<Content Include="File\Campusmap\Offlinemap.xml">
<SubType>Designer</SubType>

View File

@@ -14,20 +14,6 @@ namespace CampusAppWP8.Model.Setting
/// <remarks> Stubbfel, 15.10.2013. </remarks>
public class AppSettings
{
#region Enum
/// <summary> Values that represent BTUTagDefaultHandler. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
public enum BTUTagDefaultHandler
{
/// <summary> An enum constant representing the information page option. </summary>
InfoPage = 0,
/// <summary> An enum constant representing the campus map option. </summary>
CampusMap = 1
}
#endregion
#region Property
/// <summary> Gets or sets a value indicating whether the GeoWatch-Flag. </summary>

View File

@@ -16,6 +16,9 @@ namespace CampusAppWP8.Model.Setting
InfoPage = 0,
/// <summary> An enum constant representing the campus map option. </summary>
CampusMap = 1
CampusMap = 1,
/// <summary> An enum constant representing the date creation option. </summary>
DateCreation = 2
}
}

View File

@@ -37,8 +37,9 @@ namespace CampusAppWP8.Model.Setting
/// <seealso cref="M:CampusAppWPortalLib8.Model.Utility.ListPickerItemListModel.LoadList()"/>
protected override void LoadList()
{
this.AddItem(new ListPickerItemModel(AppSettings.BTUTagDefaultHandler.InfoPage.ToString(), AppResources.Setting_TagHandlerInfo));
this.AddItem(new ListPickerItemModel(AppSettings.BTUTagDefaultHandler.CampusMap.ToString(), AppResources.Setting_TagHandlerMap));
this.AddItem(new ListPickerItemModel(BTUTagDefaultHandler.InfoPage.ToString(), AppResources.Setting_TagHandlerInfo));
this.AddItem(new ListPickerItemModel(BTUTagDefaultHandler.CampusMap.ToString(), AppResources.Setting_TagHandlerMap));
this.AddItem(new ListPickerItemModel(BTUTagDefaultHandler.DateCreation.ToString(), AppResources.Setting_TagHandlerDate));
}
#endregion

View File

@@ -8,18 +8,8 @@
namespace CampusAppWP8.Model.TimeTable
{
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Text.RegularExpressions;
using System.Windows.Shapes;
using System.Xml.Serialization;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows;
using CampusAppWP8.Utility;
using CampusAppWP8.Utility.ICSProperties;
/// <summary>
/// Model for appointments.

View File

@@ -48,7 +48,7 @@ namespace CampusAppWP8.Pages.BTTTag
{
if (NavigationMode.Back == e.NavigationMode)
{
Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).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

@@ -226,7 +226,7 @@ namespace CampusAppWP8.Pages.Dev
var result = this.barcodeReader.Decode(this.bit);
if (result != null )
if (result != null)
{
Dispatcher.BeginInvoke(delegate
{
@@ -250,19 +250,24 @@ namespace CampusAppWP8.Pages.Dev
}
else
{
if (AppSettings.BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler)
string qrContent = result.Text;
switch (Settings.AppSetting.TagDefaultHandler)
{
this.GoToCampusMappage(result.Text);
}
else
{
MessageBoxResult msgResult = MessageBoxes.ShowBtuTagInfoOkCancelMessageBox(result.Text);
if (msgResult.Equals(MessageBoxResult.OK))
{
string urlString = Constants.PathBTUTag_Info;
Uri url = new Uri(urlString as string, UriKind.Relative);
this.NavigationService.Navigate(url);
}
case BTUTagDefaultHandler.CampusMap:
this.GoToCampusMappage(qrContent);
break;
case BTUTagDefaultHandler.DateCreation:
this.GoToAppointment(qrContent);
break;
default:
MessageBoxResult msgResult = MessageBoxes.ShowBtuTagInfoOkCancelMessageBox(result.Text);
if (msgResult.Equals(MessageBoxResult.OK))
{
string urlString = Constants.PathBTUTag_Info;
Uri url = new Uri(urlString as string, UriKind.Relative);
this.NavigationService.Navigate(url);
}
break;
}
}
});
@@ -285,6 +290,25 @@ namespace CampusAppWP8.Pages.Dev
NavigationService.Navigate(url);
}
/// <summary> Go to appointment. </summary>
/// <remarks> Fiedler, 15.11.2013. </remarks>
/// <param name="tagContent"> The tag content. </param>
private void GoToAppointment(string tagContent)
{
string pid = Wp8StringManager.FilterPlaceIdinQRResultString(tagContent);
string urlStr = Constants.PathTimeTable_AppointmentEdit + "?" + Constants.ParamPID + "=" + pid;
Uri url = new Uri(urlStr, UriKind.Relative);
if (this.Dispatcher != null)
{
this.Dispatcher.BeginInvoke(new Action(() => NavigationService.Navigate(url)));
}
else
{
NavigationService.Navigate(url);
}
}
/// <summary> Capture thread function. </summary>
/// <remarks> fiedlchr, 15.10.2013. </remarks>
private void CaptureThreadFunc()

View File

@@ -10,15 +10,19 @@ namespace CampusAppWP8.Pages.Events
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Windows.Phone.Speech.Synthesis;
using CampusAppWP8.Model.TimeTable;
using CampusAppWP8.Resources;
using CampusAppWP8.Utility;
using CampusAppWP8.Utility.ICSProperties;
using CampusAppWP8.Utility.Lui.Page;
using CampusAppWPortalLib8.Model.RSS;
using Microsoft.Phone.Shell;
using Windows.Phone.Speech.Synthesis;
/// <summary> EventPage, where every event feed has his own PivotItem. </summary>
/// <remarks> Stubbfel, 22.10.2013. </remarks>
@@ -39,6 +43,9 @@ namespace CampusAppWP8.Pages.Events
/// <summary> The is in speech. </summary>
private volatile bool isInSpeech = false;
/// <summary> The event model. </summary>
private RSSModel eventModel;
#endregion
#region Constructor
@@ -57,10 +64,16 @@ namespace CampusAppWP8.Pages.Events
ApplicationBarIconButton ttsBtn = new ApplicationBarIconButton();
ttsBtn.IconUri = new Uri(Icons.TextToSpeech, UriKind.Relative);
ttsBtn.Text = AppResources.TextToSpeech_Btn;
ttsBtn.Text = AppResources.Add;
ttsBtn.Click += new EventHandler(this.EventTextToSpeech_Click);
ApplicationBar.Buttons.Add(ttsBtn);
ApplicationBarIconButton addCalBtn = new ApplicationBarIconButton();
addCalBtn.IconUri = new Uri(Icons.Calendar_Add, UriKind.Relative);
addCalBtn.Text = AppResources.TextToSpeech_Btn;
addCalBtn.Click += new EventHandler(this.AddCalender_Click);
ApplicationBar.Buttons.Add(addCalBtn);
this.isNewInstance = true;
this.synth = new SpeechSynthesizer();
@@ -229,6 +242,78 @@ namespace CampusAppWP8.Pages.Events
}
}
/// <summary> Event handler. Called by AddCalendar for click events. </summary>
/// <remarks> Stubbfel, 19.11.2013. </remarks>
/// <param name="sender"> parent pivot object. </param>
/// <param name="e"> Routed event information. </param>
private void AddCalender_Click(object sender, EventArgs e)
{
this.eventModel = EventIndexPage.GetEventFeed().Model.Channel[0].Item[this.EventPivot.SelectedIndex];
AppointmentModel appoinment = this.CreateAppointment(this.eventModel);
string urlString = Constants.PathTimeTable_AppointmentEdit;
if (appoinment != null)
{
App.SaveToIsolatedStorage<string>(Constants.IsolatedStorage_EventAppointment, ICSManager.ExportToICS(appoinment.CalendarObj));
urlString += "?" + Constants.ParamIsoKey + "=" + Constants.IsolatedStorage_EventAppointment;
}
Uri url = new Uri(urlString as string, UriKind.Relative);
NavigationService.Navigate(url);
}
/// <summary> Creates an appointment. </summary>
/// <remarks> Stubbfel, 19.11.2013. </remarks>
/// <param name="eventModel"> The event model. </param>
/// <returns> The new appointment. </returns>
private AppointmentModel CreateAppointment(RSSModel eventModel)
{
if (eventModel == null)
{
return null;
}
CultureInfo german = Wp8StringManager.GermanCulture;
AppointmentModel appoinment = new AppointmentModel();
DateTime time = eventModel.DTTimestamp;
DTStart start = new DTStart();
start.Value = time;
string dateValue = eventModel.Title;
if (dateValue != null)
{
Summary summary = new Summary();
summary.Value = dateValue;
appoinment.SetValue(summary);
}
// set cat
Categories category = new Categories();
category.AddCategory("Veranstaltung");
appoinment.SetValue(category);
// set description
dateValue = this.eventModel.Text;
if (dateValue != null)
{
Description desc = new Description();
desc.Value = dateValue;
appoinment.SetValue(desc);
}
// set url
dateValue = this.eventModel.Link;
if (dateValue != null)
{
Url url = new Url();
url.Value = dateValue;
appoinment.SetValue(url);
}
return appoinment;
}
#endregion
#endregion

View File

@@ -70,6 +70,44 @@
<TextBlock Text="{Binding Topic}" TextWrapping="Wrap"/>
</StackPanel>
</Border>
<Border BorderBrush="{StaticResource PhoneInverseInactiveBrush}" BorderThickness="0,1,0,0" Padding="0,12,0,12">
<StackPanel>
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_LectureDates, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextGroupHeaderStyle}" Margin="0,0,0,0"/>
<ItemsControl ItemsSource="{Binding Dates}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<StackPanel Margin="0,0,0,12" Grid.Column="0" VerticalAlignment="Center">
<TextBlock Text="{Binding FromToDate}" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding WeekDay}" />
<TextBlock Text=" (" />
<TextBlock Text="{Binding Interval}" />
<TextBlock Text="): " />
<TextBlock Text="{Binding From}" />
<TextBlock Text=" - " />
<TextBlock Text="{Binding To}" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding Path=LocalizedResources.Location, Source={StaticResource LocalizedStrings}}"/>
<TextBlock Text=":" />
<TextBlock Text="{Binding Room}" />
</StackPanel>
</StackPanel>
<Button Grid.Column="2" Tag="{Binding Id}" Click="AddCalender_Click">
<Image Source="{Binding Path=ThemelizedIcon.Calendar_Add, Source={StaticResource ThemelizedIcons}}" Height="70" />
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Border>
</StackPanel>
</ScrollViewer>
</Grid>

View File

@@ -8,16 +8,31 @@
//-----------------------------------------------------------------------
namespace CampusAppWP8.Pages.Lecture
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Windows;
using System.Windows.Navigation;
using CampusAppWP8.Model.Lecture;
using CampusAppWP8.Model.TimeTable;
using CampusAppWP8.Resources;
using Microsoft.Phone.Controls;
using CampusAppWP8.Utility;
using CampusAppWP8.Utility.ICSProperties;
using CampusAppWPortalLib8.Model.Lecture;
using Microsoft.Phone.Controls;
/// <summary> Class for the page which shows details of an activity. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <seealso cref="T:Microsoft.Phone.Controls.PhoneApplicationPage"/>
public partial class ResultDetailPage : PhoneApplicationPage
{
#region Member
/// <summary> The activity. </summary>
private LectureWp8Activity activity;
#endregion
#region Constructor
/// <summary> Initializes a new instance of the <see cref="ResultDetailPage" /> class. </summary>
@@ -54,18 +69,220 @@ namespace CampusAppWP8.Pages.Lecture
/// <summary> Method load a certain Activity from the model. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <param name="activityId"> id of the activity. </param>
private void LoadActivity(int activityId)
private void LoadActivity(int activityId)
{
LectureWp8List list = App.LoadFromIsolatedStorage<LectureWp8List>(Constants.IsolatedStorage_LectureModel);
if (list != null)
{
LectureWp8Activity activity = list.GetActivity(activityId);
activity.CreateLectureString();
activity.CreateCourseString();
this.ContentPanel.DataContext = activity;
this.activity = list.GetActivity(activityId);
this.activity.CreateLectureString();
this.activity.CreateCourseString();
this.ContentPanel.DataContext = this.activity;
}
}
/// <summary> Event handler. Called by AddCalendar for click events. </summary>
/// <remarks> Stubbfel, 18.11.2013. </remarks>
/// <param name="sender"> Source of the event. </param>
/// <param name="e"> Routed event information. </param>
private void AddCalender_Click(object sender, System.Windows.RoutedEventArgs e)
{
FrameworkElement btn = sender as FrameworkElement;
if (btn == null)
{
return;
}
string dateId = btn.Tag.ToString();
LectureDate date = this.activity.GetDate(dateId);
AppointmentModel appoinment = this.CreateAppointment(date);
string urlString = Constants.PathTimeTable_AppointmentEdit;
if (appoinment != null)
{
App.SaveToIsolatedStorage<string>(Constants.IsolatedStorage_LectureAppointment, ICSManager.ExportToICS(appoinment.CalendarObj));
urlString += "?" + Constants.ParamIsoKey + "=" + Constants.IsolatedStorage_LectureAppointment;
}
Uri url = new Uri(urlString as string, UriKind.Relative);
NavigationService.Navigate(url);
}
/// <summary> Creates an appointment. </summary>
/// <remarks> Stubbfel, 19.11.2013. </remarks>
/// <param name="date"> The date. </param>
/// <returns> The new appointment. </returns>
private AppointmentModel CreateAppointment(LectureDate date)
{
if (date == null)
{
return null;
}
CultureInfo german = Wp8StringManager.GermanCulture;
AppointmentModel appoinment = new AppointmentModel();
DTStart start;
DateTime dtStart;
TimeSpan fromTime;
DTEnd end;
DateTime dtEnd;
TimeSpan toTime;
TimeSpan duration = TimeSpan.FromTicks(0);
RecurrenceRule rRule;
// set the room
string dateValue = date.Room;
if (dateValue != null)
{
Location location = new Location();
location.Value = dateValue;
appoinment.SetValue(location);
}
if (this.activity != null)
{
// set Tilte
dateValue = this.activity.Title;
if (dateValue != null)
{
Summary summary = new Summary();
summary.Value = dateValue;
appoinment.SetValue(summary);
}
// set cat
dateValue = this.activity.Type;
if (dateValue != null)
{
Categories category = new Categories();
category.AddCategory(dateValue);
appoinment.SetValue(category);
}
// set description
dateValue = this.activity.Topic;
if (dateValue != null)
{
Description desc = new Description();
desc.Value = dateValue;
appoinment.SetValue(desc);
}
// set orignazier
dateValue = this.activity.LecturerString;
if (dateValue != null)
{
Organizer org = new Organizer();
org.Value = dateValue;
appoinment.SetValue(org);
}
}
// set the startdate
dateValue = date.StartDate;
start = new DTStart();
if (dateValue != null)
{
try
{
dtStart = DateTime.Parse(dateValue, german);
}
catch
{
dtStart = DateTime.Today;
}
}
else
{
dtStart = DateTime.Today;
}
dateValue = date.From;
if (dateValue != null)
{
try
{
fromTime = TimeSpan.Parse(dateValue, german);
dtStart = dtStart.Add(fromTime);
duration = fromTime;
}
catch
{
}
}
start.Value = dtStart;
appoinment.SetValue(start);
// set the end date
dateValue = date.EndDate;
end = new DTEnd();
if (dateValue != null)
{
try
{
dtEnd = DateTime.Parse(dateValue, german);
}
catch
{
dtEnd = DateTime.Today;
}
}
else
{
dtEnd = DateTime.Today;
}
dateValue = date.To;
if (dateValue != null)
{
try
{
toTime = TimeSpan.Parse(dateValue, german);
dtEnd = dtEnd.Add(toTime);
duration = toTime - duration;
}
catch
{
}
}
end.Value = dtEnd;
appoinment.SetValue(end);
// set the duration
CampusAppWP8.Utility.ICSProperties.Duration icsDuration = new Utility.ICSProperties.Duration();
icsDuration.Value = duration;
appoinment.SetValue(icsDuration);
// set the RRule
rRule = new RecurrenceRule();
rRule.Value.Add(new Tuple<string, List<string>>(ICSValue.FREQ, new List<string>() { ICSValueValue.WEEKLY }));
// set by the week
dateValue = date.WeekDay;
if (dateValue != null)
{
DayOfWeek weekDay = Wp8StringManager.ToDayofWeek(dateValue, german);
rRule.Value.Add(new Tuple<string, List<string>>(ICSValue.BY_DAY, new List<string>() { ICSValueValue.ToICSWeekDay(weekDay) }));
}
// set interval
dateValue = date.Interval;
if (dateValue != null)
{
string lowVal = dateValue.ToLower();
if (lowVal.Contains("a") ^ lowVal.Contains("b"))
{
rRule.Value.Add(new Tuple<string, List<string>>(ICSValue.INTERVAL, new List<string>() { "2" }));
}
}
appoinment.SetValue(rRule);
return appoinment;
}
#endregion
#endregion

View File

@@ -50,7 +50,7 @@ namespace CampusAppWP8.Pages.Setting
{
Settings.AppSetting.GeoWatchEnable = GeoWatchToggle.IsChecked.Value;
Settings.AppSetting.OnlyWifi = OnlyWiFiToggle.IsChecked.Value;
Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).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

@@ -18,231 +18,267 @@
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<phone:Panorama
Name="PanoramaContent"
Title="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}">
<phone:Panorama.Background>
<ImageBrush Stretch="UniformToFill" ImageSource="/Assets/Background.jpg" Opacity="1"/>
</phone:Panorama.Background>
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
<StackPanel Name="AppTitle" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextLargeStyle}"/>
</StackPanel>
<ScrollViewer Grid.Row="1">
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
<StackPanel x:Name="ContentPanel" Margin="12,0,12,12" >
<!--Panoramaelement eins-->
<phone:PanoramaItem Name="Item1">
<ScrollViewer Name="scoller1" Margin="12 -24 12 0">
<StackPanel>
<lui:NavigateButton Name="TimeTableAppButton" Style="{StaticResource StartPageButtonLong}" Grid.Column="0" Url="{Binding Path=Constants.PathTimeTable_Day, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyleLong}">
<StackPanel Background="{StaticResource PhoneAccentBrush}" Margin="0 0 12 0">
<Image Source="{Binding Path=ThemelizedIcon.Schedule, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImgLong}"/>
</StackPanel>
<TextBlock
Text="{Binding Path=LocalizedResources.TimeTableApp_Title, Source={StaticResource LocalizedStrings}}"
Style="{StaticResource StartPageButtonTextLong}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="TimeTableAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<Grid Name="Row0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<!-- Row 0 -->
<!-- <lui:NavigateButton Name="TimeTableAppButton" Style="{StaticResource StartPageButton}" IsEnabled="False" Grid.Column="0">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Schedule, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.TimeTableApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
</lui:NavigateButton> -->
<lui:NavigateButton Name="DepartmentAppButton" Grid.Column="0" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathDepartment_DepartmentIndexPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Departments, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.DepartmentApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="DepartmentAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="LectureAppButton" Style="{StaticResource StartPageButtonLong}" Url="{Binding Path=Constants.PathLecture_LecturePage, Source={StaticResource Const}}" >
<StackPanel Style="{StaticResource StartPageStackPanelStyle}" Orientation="Horizontal">
<StackPanel Background="{StaticResource PhoneAccentBrush}" Margin="0 0 12 0">
<Image Source="{Binding Path=ThemelizedIcon.Lectures, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImgLong}"/>
</StackPanel>
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonTextLong}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="LectureAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="NewsAppButton" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathNews_NewsIndexPage, Source={StaticResource Const}}" Grid.Column="1">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.News, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.NewsApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="NewsAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="MensaAppButton" Style="{StaticResource StartPageButtonLong}" Url="{Binding Path=Constants.PathMensa_MensaPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyleLong}">
<StackPanel Background="{StaticResource PhoneAccentBrush}" Margin="0 0 12 0">
<Image Source="{Binding Path=ThemelizedIcon.Mensa, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImgLong}"/>
</StackPanel>
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonTextLong}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="MensaAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="LectureAppButton" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathLecture_LecturePage, Source={StaticResource Const}}" Grid.Column="2">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Lectures, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="LectureAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid>
<lui:NavigateButton Name="CampusMapAppButton" Style="{StaticResource StartPageButtonLong}" Url="{Binding Path=Constants.PathCampusmap_Campusmap, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyleLong}">
<StackPanel Background="{StaticResource PhoneAccentBrush}" Margin="0 0 12 0">
<Image Source="{Binding Path=ThemelizedIcon.Campus, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImgLong}"/>
</StackPanel>
<TextBlock Text="{Binding Path=LocalizedResources.CampusMapApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonTextLong}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="CampusMapAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<!-- Row 1 -->
<lui:NavigateButton Name="EventAppButton" Style="{StaticResource StartPageButtonLong}" Url="{Binding Path=Constants.PathEvents_EventsIndexPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyleLong}">
<StackPanel Background="{StaticResource PhoneAccentBrush}" Margin="0 0 12 0">
<Image Source="{Binding Path=ThemelizedIcon.Events, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImgLong}"/>
</StackPanel>
<TextBlock Text="{Binding Path=LocalizedResources.EventApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonTextLong}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="EventAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<Grid Name="Row1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<lui:NavigateButton Name="NewsAppButton" Style="{StaticResource StartPageButtonLong}" Url="{Binding Path=Constants.PathNews_NewsIndexPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyleLong}">
<StackPanel Background="{StaticResource PhoneAccentBrush}" Margin="0 0 12 0">
<Image Source="{Binding Path=ThemelizedIcon.News, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImgLong}"/>
</StackPanel>
<TextBlock Text="{Binding Path=LocalizedResources.NewsApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonTextLong}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="NewsAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</StackPanel>
</ScrollViewer>
</phone:PanoramaItem>
<!--<lui:NavigateButton Name="HomeworkAppButton" Grid.Column="0" Style="{StaticResource StartPageButton}" IsEnabled="False">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Homework, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Name="HomeworkAppButtonText" Text="{Binding Path=LocalizedResources.HomeworkApp_Title2, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
</lui:NavigateButton> -->
<!--Panoramaelement zwei-->
<phone:PanoramaItem Orientation="Horizontal"
Name="Item2">
<ScrollViewer Name="scoller2" Margin="12 -24 12 0">
<StackPanel>
<Grid Name="Row0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<lui:NavigateButton Name="OSAAppButton" Url="{Binding Path=Constants.PathStudentCouncil_StudentCouncilPage, Source={StaticResource Const}}" Grid.Column="0" Style="{StaticResource StartPageButton}">
<lui:NavigateButton.RenderTransform>
<CompositeTransform/>
</lui:NavigateButton.RenderTransform>
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.StudentCouncil, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.OSAApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="OSAAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="DepartmentAppButton" Grid.Column="0" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathDepartment_DepartmentIndexPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Departments, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.DepartmentApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="DepartmentAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="EventAppButton" Grid.Column="1" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathEvents_EventsIndexPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Events, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.EventApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="EventAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="personAppButton" Url="{Binding Path=Constants.PathPerson_Person, Source={StaticResource Const}}" Grid.Column="1" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Person, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Name="personAppButtonText" Text="{Binding Path=LocalizedResources.PersonApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="personAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="CampusMapAppButton" Grid.Column="2" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathCampusmap_Campusmap, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Campus, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.CampusMapApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="CampusMapAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid>
<lui:NavigateButton Name="MailAppButton" Grid.Column="2" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathMail_WebMailPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.MailApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="MailAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid>
<!-- Row 2 -->
<!-- Row 1 -->
<Grid Name="Row1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Name="Row2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<lui:NavigateButton Name="OSAAppButton" Url="{Binding Path=Constants.PathStudentCouncil_StudentCouncilPage, Source={StaticResource Const}}" Grid.Column="0" Style="{StaticResource StartPageButton}">
<lui:NavigateButton.RenderTransform>
<CompositeTransform/>
</lui:NavigateButton.RenderTransform>
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.StudentCouncil, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.OSAApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="OSAAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="examinationAppButton" Url="{Binding Path=Constants.PathExams_ExamsPage, Source={StaticResource Const}}" Grid.Column="0" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.ExamApp, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Name="examinationAppButtonText" Text="{Binding Path=LocalizedResources.ExaminationApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="examinationAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="examinationAppButton" Url="{Binding Path=Constants.PathExams_ExamsPage, Source={StaticResource Const}}" Grid.Column="1" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.ExamApp, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Name="examinationAppButtonText" Text="{Binding Path=LocalizedResources.ExaminationApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="examinationAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="MensaAppButton" Grid.Column="1" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathMensa_MensaPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Mensa, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="MensaAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<Button Name="NFCButton" Grid.Column="2" Style="{StaticResource StartPageButton}" VerticalContentAlignment="Center" Click="NFCButton_Click">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<!-- <Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/> -->
<TextBlock Text="{Binding Path=LocalizedResources.App_ScanNfc, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="NFCButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Button>
</Grid>
<lui:NavigateButton Name="personAppButton" Url="{Binding Path=Constants.PathPerson_Person, Source={StaticResource Const}}" Grid.Column="2" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Person, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Name="personAppButtonText" Text="{Binding Path=LocalizedResources.PersonApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="personAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid>
<!-- Row 2 -->
<Grid Name="Row2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- Row 3 -->
<lui:NavigateButton Name="OpenHoursAppButton" Url="{Binding Path=Constants.PathOpeninghours_OpeninghoursPage, Source={StaticResource Const}}" Grid.Column="1" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Openhours, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Name="OpenHoursAppButtonText" Text="{Binding Path=LocalizedResources.OpenHoursApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="OpenHoursAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<Grid Name="Row3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<lui:NavigateButton Name="MailAppButton" Grid.Column="0" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathMail_WebMailPage, Source={StaticResource Const}}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.MailApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="MailAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="OpenHoursAppButton" Url="{Binding Path=Constants.PathOpeninghours_OpeninghoursPage, Source={StaticResource Const}}" Grid.Column="1" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Openhours, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Name="OpenHoursAppButtonText" Text="{Binding Path=LocalizedResources.OpenHoursApp_Title2, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="OpenHoursAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<lui:NavigateButton Name="LinkAppButton" Url="{Binding Path=Constants.PathLinks_LinkPage, Source={StaticResource Const}}" Grid.Column="2" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Link, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.LinkApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="LinkAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid>
<lui:NavigateButton Name="LinkAppButton" Url="{Binding Path=Constants.PathLinks_LinkPage, Source={StaticResource Const}}" Grid.Column="0" Style="{StaticResource StartPageButton}">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Link, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.LinkApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="LinkAppButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
<!-- Row 4
<lui:NavigateButton Name="QrButton" Grid.Column="2" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathQR_QRPage, Source={StaticResource Const}}" VerticalContentAlignment="Center">
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<!-- <Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/> -->
<TextBlock Text="{Binding Path=LocalizedResources.App_ScanQR, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Tag="QRButton" Header="{Binding Path=LocalizedResources.ContextMenu_PinToStart, Source={StaticResource LocalizedStrings}}" Click="PintoStart_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid>
</StackPanel>
</ScrollViewer>
</phone:PanoramaItem>
<!--Panoramaelement drei
<phone:PanoramaItem>
<StackPanel Margin="12 -24 12 0">
<Grid Name="Row4">
<Grid.ColumnDefinitions>
@@ -264,21 +300,28 @@
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid> -->
</StackPanel>
</ScrollViewer>
</Grid>
</StackPanel>
</phone:PanoramaItem>-->
<phone:PanoramaItem Header="Einstellungen" Name="Item3">
<ScrollViewer Name="scoller3">
<StackPanel Background="{StaticResource PhoneSemitransparentBrush}" VerticalAlignment="Top">
<lui:NavigateButton Url="{Binding Path=Constants.PathSetting_User, Source={StaticResource Const}}" BorderThickness="0" HorizontalContentAlignment="Left">
<TextBlock Text="{Binding Path=LocalizedResources.Setting_UserProfilAppBarTitle, Source={StaticResource LocalizedStrings}}" HorizontalAlignment="Left" Style="{StaticResource PhoneTextTitle2Style}" />
</lui:NavigateButton>
<lui:NavigateButton Url="{Binding Path=Constants.PathSetting_App, Source={StaticResource Const}}" BorderThickness="0" HorizontalContentAlignment="Left">
<TextBlock Text="{Binding Path=LocalizedResources.Setting_ApplAppBarTitle, Source={StaticResource LocalizedStrings}}" HorizontalAlignment="Left" Style="{StaticResource PhoneTextTitle2Style}" />
</lui:NavigateButton>
<lui:NavigateButton Url="{Binding Path=Constants.PathSetting_Impressum, Source={StaticResource Const}}" BorderThickness="0" HorizontalContentAlignment="Left">
<TextBlock Text="{Binding Path=LocalizedResources.Setting_ImpressumTitle, Source={StaticResource LocalizedStrings}}" HorizontalAlignment="Left" Style="{StaticResource PhoneTextTitle2Style}" />
</lui:NavigateButton>
</StackPanel>
</ScrollViewer>
</phone:PanoramaItem>
</phone:Panorama>
</Grid>
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Mode="Minimized" StateChanged="ApplicationBar_StateChanged" Opacity="0.5">
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="Setting" Click="ApplicationBarMenuItem_Click"/>
<shell:ApplicationBarMenuItem Text="Setting2" Click="ApplicationBarMenuItem2_Click"/>
<shell:ApplicationBarMenuItem Text="Setting3" Click="ApplicationBarMenuItem3_Click"/>
<shell:ApplicationBarMenuItem Text="Setting4" Click="ApplicationBarMenuItem4_Click"/>
<shell:ApplicationBarMenuItem Text="Setting4" Click="ApplicationBarMenuItem5_Click"/>
<shell:ApplicationBarMenuItem Text="Setting5" Click="ApplicationBarMenuItem_Click_1"/>
<shell:ApplicationBarMenuItem Text="NFC" Click="ApplicationBarMenuItem_Click_2"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
</page:PortraitLandscapePage>

View File

@@ -54,52 +54,6 @@ namespace CampusAppWP8.Pages
{
this.InitializeComponent();
ApplicationBarMenuItem menuItem1 = ApplicationBar.MenuItems[0] as ApplicationBarMenuItem;
ApplicationBarMenuItem menuItem2 = ApplicationBar.MenuItems[1] as ApplicationBarMenuItem;
ApplicationBarMenuItem menuItem3 = ApplicationBar.MenuItems[2] as ApplicationBarMenuItem;
ApplicationBarMenuItem menuItem4 = ApplicationBar.MenuItems[3] as ApplicationBarMenuItem;
ApplicationBarMenuItem menuItem5 = ApplicationBar.MenuItems[4] as ApplicationBarMenuItem;
ApplicationBarMenuItem menuItem6 = ApplicationBar.MenuItems[5] as ApplicationBarMenuItem;
if (menuItem1 != null)
{
menuItem1.Text = AppResources.Setting_UserProfilAppBarTitle;
}
if (menuItem2 != null)
{
menuItem2.Text = AppResources.Setting_ApplAppBarTitle;
}
if (menuItem3 != null)
{
menuItem3.Text = AppResources.App_ScanQR;
}
if (menuItem4 != null)
{
menuItem4.Text = AppResources.App_ScanNfc;
}
if (menuItem5 != null)
{
menuItem5.Text = AppResources.Setting_ImpressumTitle;
}
else
{
/*
ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count - 1);
ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count - 1);
*/
ApplicationBar.MenuItems.Remove(menuItem3);
ApplicationBar.MenuItems.Remove(menuItem4);
}
if (menuItem6 != null)
{
menuItem6.Text = AppResources.TimeTableApp_Title;
}
TimeTable.TimeTable.InitFeed();
@@ -127,7 +81,7 @@ namespace CampusAppWP8.Pages
#region protected
/// <summary> Methods overrides the OnNavigatedTo-Method. </summary>
/// <summary> Methods overrides 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)
@@ -136,7 +90,7 @@ namespace CampusAppWP8.Pages
if (device != null)
{
this.ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler);
}
}
}
/// <summary> Methods overrides the OnNavigatedFrom-Method. </summary>
@@ -171,138 +125,13 @@ namespace CampusAppWP8.Pages
this.initCourseList.SaveData();
}
/// <summary> Raises the orientation changed event. </summary>
/// <remarks> Fiedler, 22.10.2013. </remarks>
/// <seealso cref="M:CampusAppWP8.Utility.PortraitLandscapePage.OnSwitchedToPortrait(OrientationChangedEventArgs)"/>
/// ### <param name="e"> Event information to send to registered event handlers. </param>
protected override void OnSwitchedToPortrait(OrientationChangedEventArgs e)
{
base.OnSwitchedToPortrait(e);
this.ApplicationBar.Opacity = 0.5;
//this.ContentPanel.Margin = new Thickness(12, 0, 12, 12);
//this.AppTitle.Margin = new Thickness(12, 17, 0, 28);
if (!this.Row0.Children.Contains(this.MailAppButton)
&& !this.Row1.Children.Contains(this.OpenHoursAppButton)
&& !this.Row2.Children.Contains(this.LinkAppButton))
{
return;
}
this.Row0.Children.Remove(this.MailAppButton);
this.Row3.Children.Add(this.MailAppButton);
this.MailAppButton.SetValue(Grid.ColumnProperty, 0);
this.Row1.Children.Remove(this.OpenHoursAppButton);
this.Row3.Children.Add(this.OpenHoursAppButton);
this.OpenHoursAppButton.SetValue(Grid.ColumnProperty, 1);
this.Row2.Children.Remove(this.LinkAppButton);
this.Row3.Children.Add(this.LinkAppButton);
this.LinkAppButton.SetValue(Grid.ColumnProperty, 2);
}
/// <summary> Raises the orientation changed event. </summary>
/// <remarks> Fiedler, 22.10.2013. </remarks>
/// <seealso cref="M:CampusAppWP8.Utility.PortraitLandscapePage.OnSwitchedToLandscape(OrientationChangedEventArgs)"/>
/// ### <param name="e"> Event information to send to registered event handlers. </param>
protected override void OnSwitchedToLandscape(OrientationChangedEventArgs e)
{
base.OnSwitchedToLandscape(e);
this.ApplicationBar.Opacity = 1.0;
//this.ContentPanel.Margin = new Thickness(76, -24, 24, 0); // LandscapeRight
//this.ContentPanel.Margin = new Thickness(24, -24, 76, 0); // LandscapeLeft
//this.AppTitle.Margin = new Thickness(12, 17, 0, 28);
if (!this.Row3.Children.Contains(this.MailAppButton)
&& !this.Row3.Children.Contains(this.OpenHoursAppButton)
&& !this.Row3.Children.Contains(this.LinkAppButton))
{
return;
}
this.Row3.Children.Remove(this.MailAppButton);
this.Row0.Children.Add(this.MailAppButton);
this.MailAppButton.SetValue(Grid.ColumnProperty, 3);
this.Row3.Children.Remove(this.OpenHoursAppButton);
this.Row1.Children.Add(this.OpenHoursAppButton);
this.OpenHoursAppButton.SetValue(Grid.ColumnProperty, 3);
this.Row3.Children.Remove(this.LinkAppButton);
this.Row2.Children.Add(this.LinkAppButton);
this.LinkAppButton.SetValue(Grid.ColumnProperty, 3);
}
/// <summary> Method Navigate to <see cref="Setting/UserProfil"/> </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <param name="sender"> Caller of the function. </param>
/// <param name="e"> some EventArgs. </param>
private void ApplicationBarMenuItem_Click(object sender, EventArgs e)
{
Uri url = new Uri(Constants.PathSetting_User, UriKind.Relative);
NavigationService.Navigate(url);
}
/// <summary> Method Navigate to <see cref="Setting/UserProfil"/> </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <param name="sender"> Caller of the function. </param>
/// <param name="e"> some EventArgs. </param>
private void ApplicationBarMenuItem2_Click(object sender, EventArgs e)
{
Uri url = new Uri(Constants.PathSetting_App, UriKind.Relative);
NavigationService.Navigate(url);
}
/// <summary> Method Navigate to <see cref="Setting/UserProfil"/> </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <param name="sender"> Caller of the function. </param>
/// <param name="e"> some EventArgs. </param>
private void ApplicationBarMenuItem4_Click(object sender, EventArgs e)
private void NFCButton_Click(object sender,RoutedEventArgs e)
{
MessageBoxes.ShowMainModelInfoMessageBox(AppResources.ScarNfc_Search);
// this.device.StopSubscribingForMessage(this.ndefId);
// this.ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler);
}
/// <summary> Event handler. Called by ApplicationBarMenuItem5 for click events. </summary>
/// <remarks> Stubbfel, 14.10.2013. </remarks>
/// <param name="sender"> Caller of the function. </param>
/// <param name="e"> Event information. </param>
private void ApplicationBarMenuItem5_Click(object sender, EventArgs e)
{
Uri url = new Uri("/Pages/Setting/Impressum.xaml", UriKind.Relative);
NavigationService.Navigate(url);
}
/// <summary> Event handler. Called by ApplicationBarMenuItem4 for click events. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <param name="sender"> Caller of the function. </param>
/// <param name="e"> Event information. </param>
private void ApplicationBarMenuItem3_Click(object sender, EventArgs e)
{
Uri url = new Uri("/Pages/Dev/QRScanner.xaml", UriKind.Relative);
NavigationService.Navigate(url);
}
/// <summary> Method change the Opacity of the ApplicationBar. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
/// <param name="sender"> Caller of the function. </param>
/// <param name="e"> some EventArgs. </param>
private void ApplicationBar_StateChanged(object sender, ApplicationBarStateChangedEventArgs e)
{
if (e.IsMenuVisible)
{
ApplicationBar.Opacity = 0.99;
}
else
{
ApplicationBar.Opacity = 0.5;
}
}
/// <summary> Method show all OptIns. </summary>
@@ -396,6 +225,15 @@ namespace CampusAppWP8.Pages
case "placeNewsAppButton":
TileCreator.CreatePlaceNewsTile();
break;
case "QRButton":
TileCreator.CreateQRTile();
break;
case "NFCButton":
TileCreator.CreateNFCTile();
break;
case "TimeTableAppButton":
TileCreator.CreateTimeTableTile();
break;
}
}
@@ -437,25 +275,25 @@ namespace CampusAppWP8.Pages
}
else
{
this.GoToAppointment(nfcContent);
/* removed for testing
if (AppSettings.BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler)
switch (Settings.AppSetting.TagDefaultHandler)
{
// search for placeId
this.GoToCampusMappage(nfcContent);
case BTUTagDefaultHandler.CampusMap:
this.GoToCampusMappage(nfcContent);
break;
case BTUTagDefaultHandler.DateCreation:
this.GoToAppointment(nfcContent);
break;
default:
if (this.Dispatcher != null)
{
this.Dispatcher.BeginInvoke(new Action(() => this.ShowBtuTagMessageBox()));
}
else
{
this.ShowBtuTagMessageBox();
}
break;
}
else
{
if (this.Dispatcher != null)
{
this.Dispatcher.BeginInvoke(new Action(() => this.ShowBtuTagMessageBox()));
}
else
{
this.ShowBtuTagMessageBox();
}
}
*/
}
this.ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler);
@@ -515,18 +353,6 @@ namespace CampusAppWP8.Pages
#endregion
private void ApplicationBarMenuItem_Click_1(object sender, EventArgs e)
{
Uri url = new Uri(Constants.PathTimeTable_Day, UriKind.Relative);
NavigationService.Navigate(url);
}
#endregion
private void ApplicationBarMenuItem_Click_2(object sender, EventArgs e)
{
Uri url = new Uri("/Pages/Dev/NFC.xaml", UriKind.Relative);
NavigationService.Navigate(url);
}
}
}

View File

@@ -70,6 +70,7 @@ namespace CampusAppWP8.Pages.TimeTable
string appointmentIndexStr = string.Empty;
string pid = string.Empty;
string isoStr = string.Empty;
// Navigate to the selected pivotitem
@@ -130,6 +131,16 @@ namespace CampusAppWP8.Pages.TimeTable
}
}
}
else if (NavigationContext.QueryString.TryGetValue(Constants.ParamIsoKey, out isoStr))
{
string appointmentStr = App.LoadFromIsolatedStorage<string>(isoStr);
AppointmentModel newModel = new AppointmentModel(appointmentStr);
this.InTitle.Text = newModel.Title;
this.InLocation.Text = newModel.Location;
//TODO
}
else
{
this.HeadLine.Text = AppResources.Creating;

View File

@@ -17,25 +17,27 @@
</Tasks>
<Tokens>
<PrimaryToken TokenID="CampusAppWP8Token" TaskName="_default">
<TemplateIconic>
<TemplateCycle>
<SmallImageURI IsRelative="true" IsResource="false">Assets\ApplicationIcon.png</SmallImageURI>
<Count>0</Count>
<IconImageURI IsRelative="true" IsResource="false">Assets\ApplicationIcon.png</IconImageURI>
<Title>BTU CampusApp</Title>
<Message>
</Message>
<BackgroundColor>
</BackgroundColor>
<Photo01ImageURI IsRelative="true" IsResource="false">Assets\Slides\Slide1.jpg</Photo01ImageURI>
<Photo02ImageURI IsRelative="true" IsResource="false">Assets\Slides\Slide2.jpg</Photo02ImageURI>
<Photo03ImageURI IsRelative="true" IsResource="false">Assets\Slides\Slide3.jpg</Photo03ImageURI>
<Photo04ImageURI IsRelative="true" IsResource="false">Assets\Slides\Slide4.jpg</Photo04ImageURI>
<Photo05ImageURI IsRelative="true" IsResource="false">Assets\Slides\Slide5.jpg</Photo05ImageURI>
<Photo06ImageURI IsRelative="true" IsResource="false">
</Photo06ImageURI>
<Photo07ImageURI IsRelative="true" IsResource="false">
</Photo07ImageURI>
<Photo08ImageURI IsRelative="true" IsResource="false">
</Photo08ImageURI>
<Photo09ImageURI IsRelative="true" IsResource="false">
</Photo09ImageURI>
<Count>0</Count>
<HasLarge>True</HasLarge>
<LargeContent1>
</LargeContent1>
<LargeContent2>
</LargeContent2>
<LargeContent3>
</LargeContent3>
<DeviceLockImageURI IsRelative="true" IsResource="false">
</DeviceLockImageURI>
</TemplateIconic>
</TemplateCycle>
</PrimaryToken>
</Tokens>
<Extensions>

View File

@@ -555,6 +555,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Veranstaltungstermine ähnelt.
/// </summary>
public static string LectureApp_LectureDates {
get {
return ResourceManager.GetString("LectureApp_LectureDates", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Veranstaltungsname ähnelt.
/// </summary>
@@ -1230,6 +1239,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Termin erstellen ähnelt.
/// </summary>
public static string Setting_TagHandlerDate {
get {
return ResourceManager.GetString("Setting_TagHandlerDate", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die BTU-Tag-Informationsseite anzeigen ähnelt.
/// </summary>

View File

@@ -617,4 +617,10 @@
<data name="MensaApp_Weekplan" xml:space="preserve">
<value>Wochenplan</value>
</data>
<data name="Setting_TagHandlerDate" xml:space="preserve">
<value>Termin erstellen</value>
</data>
<data name="LectureApp_LectureDates" xml:space="preserve">
<value>Veranstaltungstermine</value>
</data>
</root>

View File

@@ -609,4 +609,16 @@
<data name="UrlMensaPrice" xml:space="preserve">
<value>http://www.tu-cottbus.de/campusapp-data/canteens.php?v=1</value>
</data>
<data name="ParamIsoKey" xml:space="preserve">
<value>isolated</value>
</data>
<data name="IsolatedStorage_LectureAppointment" xml:space="preserve">
<value>LectureAppointment</value>
</data>
<data name="IsolatedStorage_EventAppointment" xml:space="preserve">
<value>EventAppointment</value>
</data>
<data name="PathSetting_Impressum" xml:space="preserve">
<value>/Pages/Setting/Impressum.xaml</value>
</data>
</root>

View File

@@ -474,6 +474,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die EventAppointment ähnelt.
/// </summary>
public static string IsolatedStorage_EventAppointment {
get {
return ResourceManager.GetString("IsolatedStorage_EventAppointment", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_EventRSSModel ähnelt.
/// </summary>
@@ -483,6 +492,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die LectureAppointment ähnelt.
/// </summary>
public static string IsolatedStorage_LectureAppointment {
get {
return ResourceManager.GetString("IsolatedStorage_LectureAppointment", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die LectureModel ähnelt.
/// </summary>
@@ -681,6 +699,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die isolated ähnelt.
/// </summary>
public static string ParamIsoKey {
get {
return ResourceManager.GetString("ParamIsoKey", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die ActivityId ähnelt.
/// </summary>
@@ -1023,6 +1050,15 @@ namespace CampusAppWP8.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Setting/Impressum.xaml ähnelt.
/// </summary>
public static string PathSetting_Impressum {
get {
return ResourceManager.GetString("PathSetting_Impressum", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Setting/UserProfil.xaml ähnelt.
/// </summary>

View File

@@ -44,6 +44,17 @@ namespace CampusAppWP8.Resources
}
}
/// <summary>
/// Gets the uri string of the Calendar_Add icon.
/// </summary>
public static string Calendar_Add
{
get
{
return Themerize("stundenplan_add_159.png");
}
}
/// <summary>
/// Gets the uri string of the Campus icon.
/// </summary>

View File

@@ -123,6 +123,9 @@
<data name="AddContact" xml:space="preserve">
<value>add_contact_159.png</value>
</data>
<data name="Calendar_Add" xml:space="preserve">
<value>stundenplan_add_159.png</value>
</data>
<data name="Campus" xml:space="preserve">
<value>campus_159.png</value>
</data>

View File

@@ -6,25 +6,52 @@
mc:Ignorable="d">
<Style x:Key="StartPageStackPanelStyle" TargetType="StackPanel">
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<Style x:Key="StartPageStackPanelStyleLong" TargetType="StackPanel">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Orientation" Value="Horizontal" />
</Style>
<Style x:Key="StartPageButton" TargetType="Button">
<Setter Property="Margin" Value="-6"/>
<Setter Property="BorderBrush" Value="{x:Null}"/>
<Setter Property="Background" Value="{StaticResource PhoneAccentBrush}"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Width" Value="164"/>
<Setter Property="Height" Value="192"/>
<Setter Property="Width" Value="200"/>
<Setter Property="Height" Value="200"/>
<Setter Property="toolkit:TiltEffect.IsTiltEnabled" Value="True"/>
</Style>
<Style x:Key="StartPageButtonLong" TargetType="Button">
<Setter Property="Margin" Value="-6"/>
<Setter Property="BorderBrush" Value="{x:Null}"/>
<Setter Property="Background" Value="{StaticResource PhoneSemitransparentBrush}"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Width" Value="400"/>
<Setter Property="Height" Value="100"/>
<Setter Property="toolkit:TiltEffect.IsTiltEnabled" Value="True"/>
</Style>
<Style x:Key="StartPageButtonText" TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
<Style x:Key="StartPageButtonTextLong" TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="StartPageButtonImg" TargetType="Image">
<Setter Property="Height" Value="100"/>
</Style>
<Style x:Key="StartPageButtonImgLong" TargetType="Image">
<Setter Property="Height" Value="80"/>
</Style>
</ResourceDictionary>

View File

@@ -15,7 +15,7 @@ namespace CampusAppWP8.Utility
public class ICSDesc
{
private string name = string.Empty;
public ICSDesc()
{
}
@@ -32,7 +32,7 @@ namespace CampusAppWP8.Utility
}
}
public bool Is(string tag)
public bool Is(string tag)
{
return this.name.Equals(tag);
}
@@ -41,14 +41,15 @@ namespace CampusAppWP8.Utility
public class ICSParamDesc : ICSDesc
{
private List<string> types = null;
public ICSParamDesc(string name, string[] typeList) : base()
public ICSParamDesc(string name, string[] typeList)
: base()
{
this.Name = name;
if((typeList != null) && (typeList.Length > 0))
if ((typeList != null) && (typeList.Length > 0))
{
this.types = new List<string>();
this.types = new List<string>();
this.types.AddRange(types);
}
}
@@ -75,11 +76,12 @@ namespace CampusAppWP8.Utility
{
private List<ICSElemDesc> subs = null;
public ICSValueDesc(string name, ICSElemDesc[] elemList) : base()
public ICSValueDesc(string name, ICSElemDesc[] elemList)
: base()
{
this.Name = name;
if((elemList != null) && (elemList.Length > 0))
if ((elemList != null) && (elemList.Length > 0))
{
this.subs = new List<ICSElemDesc>();
this.subs.AddRange(elemList);
@@ -146,11 +148,12 @@ namespace CampusAppWP8.Utility
private List<ICSValueDesc> value = null;
private Type objType;
public ICSElemDesc(Type t, ICSValueDesc[] valueList) : base()
public ICSElemDesc(Type t, ICSValueDesc[] valueList)
: base()
{
this.objType = t;
this.Name = (this.CreateObj() as ICSClasses.Interface).GetName();
if ((valueList != null) && (valueList.Length > 0))
{
this.value = new List<ICSValueDesc>();
@@ -221,7 +224,7 @@ namespace CampusAppWP8.Utility
object retValue = this.CreateObj();
(retValue as ICSClasses.Interface).Set(valueString, paramString);
return retValue;
}
@@ -450,7 +453,7 @@ namespace CampusAppWP8.Utility
{
public const string BEGIN = "BEGIN";
public const string END = "END";
public const string END = "END";
// Calendar Components
public const string VCALENDAR = "VCALENDAR";
@@ -462,7 +465,7 @@ namespace CampusAppWP8.Utility
public const string METHOD = "METHOD";
// 0-*
public const string X_WR_CALNAME = "X-WR-CALNAME";
// Event Component
public const string VEVENT = "VEVENT";
// 1-1
@@ -523,7 +526,7 @@ namespace CampusAppWP8.Utility
// DT_MODIFIED
public const string TIME_ZONE_URL = "TZURL";
// one of both MUST occure: 1-*
// Time Zone: Standardc/Daylightc
public const string STANDARD = "STANDARD";
public const string DAYLIGHT = "DAYLIGHT";
@@ -570,14 +573,14 @@ namespace CampusAppWP8.Utility
// REPEAT
// 0-*
// ATTACH
// ???
// public const string RELATED_TO = "RELATED-TO";
public const string SEQUENCE = "SEQUENCE";
}
@@ -585,7 +588,7 @@ namespace CampusAppWP8.Utility
public class ICSParam
{
// see http://tools.ietf.org/html/rfc5545 3.2.
public const string ALT_REPRESENTATION = "ALTREP";
public const string COMMON_NAME = "CN";
public const string CALENDAR_USER_TYPE = "CUTYPE";
@@ -730,12 +733,39 @@ namespace CampusAppWP8.Utility
public const string DATE = "DATE";
public const string DATE_TIME = "DATE-TIME";
// ...
public const string DAY_SU = "SU";
public const string DAY_SU = "SU";
public const string DAY_MO = "MO";
public const string DAY_TU = "TU";
public const string DAY_WE = "WE";
public const string DAY_TH = "TH";
public const string DAY_FR = "FR";
public const string DAY_SA = "SA";
/// <summary> Converts a day to the ics week day. </summary>
/// <remarks> Stubbfel, 19.11.2013. </remarks>
/// <param name="day"> The day. </param>
/// <returns> day as a string. </returns>
public static string ToICSWeekDay(DayOfWeek day)
{
switch (day)
{
case DayOfWeek.Sunday:
return ICSValueValue.DAY_SU;
case DayOfWeek.Monday:
return ICSValueValue.DAY_MO;
case DayOfWeek.Tuesday:
return ICSValueValue.DAY_TU;
case DayOfWeek.Wednesday:
return ICSValueValue.DAY_WE;
case DayOfWeek.Thursday:
return ICSValueValue.DAY_TH;
case DayOfWeek.Friday:
return ICSValueValue.DAY_FR;
case DayOfWeek.Saturday:
return ICSValueValue.DAY_SA;
default:
return null;
}
}
}
}

View File

@@ -12,6 +12,7 @@ namespace CampusAppWP8.Utility.Lui.Tiles
using System.Linq;
using CampusAppWP8.Resources;
using Microsoft.Phone.Shell;
using CampusAppWP8.Model.Setting;
/// <summary> Class creates different live tiles. </summary>
/// <remarks> Stubbfel, 15.10.2013. </remarks>
@@ -147,5 +148,43 @@ namespace CampusAppWP8.Utility.Lui.Tiles
{
TileCreator.CreateIconicTile(AppResources.CampusMapApp_Title, Constants.PathCampusmap_Campusmap, Icons.Campus, Icons.Campus);
}
/// <summary> Creates time table tile. </summary>
/// <remarks> Stubbfel, 21.11.2013. </remarks>
public static void CreateTimeTableTile()
{
TileCreator.CreateIconicTile(AppResources.TimeTableApp_Title, Constants.PathTimeTable_Week, Icons.Schedule, Icons.Schedule);
}
/// <summary> Creates qr tile. </summary>
/// <remarks> Stubbfel, 21.11.2013. </remarks>
public static void CreateQRTile()
{
TileCreator.CreateIconicTile(AppResources.App_ScanQR, Constants.PathQR_QRPage, Icons.Favorite, Icons.Favorite);
}
/// <summary> Creates nfc tile. </summary>
/// <remarks> Stubbfel, 21.11.2013. </remarks>
public static void CreateNFCTile()
{
string path;
string name = "NFC -> ";
switch (Settings.AppSetting.TagDefaultHandler)
{
case BTUTagDefaultHandler.CampusMap:
path = Constants.PathCampusmap_Campusmap;
name += AppResources.CampusMapApp_Title;
break;
case BTUTagDefaultHandler.DateCreation:
path = Constants.PathTimeTable_Week;
name += AppResources.TimeTableApp_Title;
break;
default:
path = Constants.PathBTUTag_Info;
name += AppResources.BTUTag_Title;
break;
}
TileCreator.CreateIconicTile(name, path, Icons.Favorite, Icons.Favorite);
}
}
}

View File

@@ -8,8 +8,6 @@
//-----------------------------------------------------------------------
namespace CampusAppWP8.Utility
{
using System;
using System.Text.RegularExpressions;
using CampusAppWP8.Resources;
/// <summary> Class provides some special StringMethods. </summary>

View File

@@ -210,6 +210,28 @@ namespace CampusAppWPortalLib8.Model.Lecture
this.CourseString = DefaultStringManager.RemoveNewLine(result);
}
/// <summary> Gets a date. </summary>
/// <remarks> Stubbfel, 19.11.2013. </remarks>
/// <param name="id"> The identifier. </param>
/// <returns> The date. </returns>
public LectureDate GetDate(string id)
{
if (this.Dates == null || id == null)
{
return null;
}
foreach (LectureDate date in this.Dates)
{
if (id.Equals(date.Id))
{
return date;
}
}
return null;
}
#endregion
#endregion

View File

@@ -26,6 +26,11 @@ namespace CampusAppWPortalLib8.Model.Lecture
#region Property
/// <summary> Gets or sets the identifier. </summary>
/// <value> The identifier. </value>
[XmlAttribute("id")]
public string Id { get; set; }
/// <summary> Gets or sets WeekDay. </summary>
/// <value> The week day. </value>
[XmlElement("wochentag")]
@@ -61,6 +66,24 @@ namespace CampusAppWPortalLib8.Model.Lecture
[XmlElement("enddatum")]
public string EndDate { get; set; }
/// <summary> Gets from to date. </summary>
/// <value> from to date. </value>
public string FromToDate
{
get
{
string startDate = this.StartDate;
string endDate = this.EndDate;
if (startDate == null || string.Empty.Equals(startDate.Trim()) || endDate == null || string.Empty.Equals(endDate.Trim()))
{
return string.Empty;
}
return startDate + " - " + endDate;
}
}
#endregion
}
}

View File

@@ -9,6 +9,7 @@
namespace CampusAppWPortalLib8.Utility
{
using System;
using System.Globalization;
using System.Text.RegularExpressions;
using CampusAppWPortalLib8.Resources;
@@ -18,6 +19,9 @@ namespace CampusAppWPortalLib8.Utility
{
#region Members
/// <summary> The german culture. </summary>
public static readonly CultureInfo GermanCulture = new CultureInfo("de-DE");
/// <summary> Patter for Html-Tags. </summary>
private static readonly string HtmlTagPattern = "<.*?>";
@@ -127,7 +131,7 @@ namespace CampusAppWPortalLib8.Utility
/// <returns> the id if it was found it in the string otherwise null. </returns>
public static string FilterPlaceIdinQRResultString(string qrcodeResult)
{
if (qrcodeResult == null)
if (qrcodeResult == null)
{
return null;
}
@@ -197,18 +201,18 @@ namespace CampusAppWPortalLib8.Utility
return null;
}
/// <summary>Count character.</summary>
/// <remarks>Fiedler, 27.08.2013.</remarks>
/// <param name="str">input string.</param>
/// <param name="c">The character.</param>
/// <returns>The total number of the specified character in the string.</returns>
/// <summary> Count a certain character. </summary>
/// <remarks> Fiedler, 27.08.2013. </remarks>
/// <param name="str"> input string. </param>
/// <param name="c"> The character. </param>
/// <returns> The total number of the specified character in the string. </returns>
public static int CountChar(string str, char c)
{
int retValue = 0;
foreach(char tc in str)
foreach (char tc in str)
{
if(tc.Equals(c) == true)
if (tc.Equals(c) == true)
{
retValue++;
}
@@ -216,6 +220,48 @@ namespace CampusAppWPortalLib8.Utility
return retValue;
}
/// <summary> Converts this object to a day of the week. </summary>
/// <remarks> Stubbfel, 19.11.2013. </remarks>
/// <param name="inputDay"> The input day. </param>
/// <param name="culture"> The culture. </param>
/// <returns> The given data converted to a DayOfWeek. </returns>
public static DayOfWeek ToDayofWeek(string inputDay, CultureInfo culture)
{
if (inputDay == null || culture == null)
{
return 0;
}
inputDay = inputDay.Trim().ToLower();
string[] days = culture.DateTimeFormat.DayNames;
int i = 0;
foreach (string day in days)
{
if (inputDay.Equals(day.ToLower()))
{
return (DayOfWeek)i;
}
i++;
}
// look for AbbreviatedDayNames
days = culture.DateTimeFormat.AbbreviatedDayNames;
i = 0;
foreach (string day in days)
{
if (inputDay.Equals(day.ToLower()))
{
return (DayOfWeek)i;
}
i++;
}
return 0;
}
#endregion
}
}