From 4b33e1fe34901b32068a41b8a9e5be30c8e2534a Mon Sep 17 00:00:00 2001 From: Christian Fiedler Date: Thu, 24 Oct 2013 19:26:11 +0200 Subject: [PATCH] i can see a weekview --- .../Pages/TimeTable/TimeTableWeek.xaml | 14 +- .../Pages/TimeTable/TimeTableWeek.xaml.cs | 102 ++++++----- .../Resources/AppResources.Designer.cs | 9 + .../CampusAppWP8/Resources/AppResources.resx | 3 + .../Utility/Lui/Templates/WeekView.xaml | 170 ++++++++++++------ .../Utility/Lui/Templates/WeekView.xaml.cs | 75 ++++++-- 6 files changed, 255 insertions(+), 118 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml index 1693c64b..e579f271 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml @@ -17,17 +17,21 @@ - + - + - - - + diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml.cs index c1f3ab39..5c399192 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableWeek.xaml.cs @@ -22,6 +22,7 @@ namespace CampusAppWP8.Pages.TimeTable using CampusAppWP8.Resources; using CampusAppWP8.Utility.Lui.Templates; using CampusAppWP8.Utility.Lui.Header; + using System.Windows.Data; public partial class TimeTableWeek : PhoneApplicationPage { @@ -41,8 +42,7 @@ namespace CampusAppWP8.Pages.TimeTable public int WeekNumber { get; set; } public WeekView weekView { get; set; } //??? - public List appointmentList { get; set; } - public PivotItem pItemPtr { get; set; } + public List AppointmentList { get; set; } } private static readonly int PIVOT_PAGES = 3; @@ -51,7 +51,6 @@ namespace CampusAppWP8.Pages.TimeTable private PageItem[] itemPages = new PageItem[PIVOT_PAGES]; private int lastSelectedIndex = 0; - private int loadedWeekView = 0; public TimeTableWeek() { @@ -63,6 +62,8 @@ namespace CampusAppWP8.Pages.TimeTable { this.itemPages[i].DateFrom = firstDay; this.itemPages[i].DateTo = firstDay.AddDays(6); + this.itemPages[i].WeekNumber = this.GetWeekNumber(this.itemPages[i].DateFrom); + this.itemPages[i].WeekChar = ((this.itemPages[i].WeekNumber % 2) != 0) ? 'A' : 'B'; firstDay = firstDay.AddDays(7); } @@ -119,6 +120,16 @@ namespace CampusAppWP8.Pages.TimeTable return retValue; } + private int GetWeekNumber(DateTime date) + { + int retValue = 0; + + var cal = System.Globalization.DateTimeFormatInfo.CurrentInfo.Calendar; + retValue = cal.GetWeekOfYear(date, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday); + + return retValue; + } + private int GetDayOfWeekIndex(DateTime dayInWeek) { int retValue = -1; @@ -157,10 +168,7 @@ namespace CampusAppWP8.Pages.TimeTable { this.itemPages[i].DateFrom = firstDay; this.itemPages[i].DateTo = this.itemPages[i].DateFrom.AddDays(6); - this.itemPages[i].WeekNumber = System.Globalization.DateTimeFormatInfo.CurrentInfo.Calendar.GetWeekOfYear( - this.itemPages[i].DateFrom, - System.Globalization.CalendarWeekRule.FirstDay, - DayOfWeek.Monday); + this.itemPages[i].WeekNumber = this.GetWeekNumber(this.itemPages[i].DateFrom); this.itemPages[i].WeekChar = ((this.itemPages[i].WeekNumber % 2) == 0) ? 'B' : 'A'; firstDay = firstDay.AddDays(7); @@ -625,25 +633,6 @@ namespace CampusAppWP8.Pages.TimeTable */ } - private void CreatePage(int itemIndex, DateTime weekStart) - { -// this.itemPages[itemIndex].Content = new Canvas(); -// this.itemPages[itemIndex].Content.Height = WEEK_TABLE_CELL_HEIGHT * 24; - this.itemPages[itemIndex].DateFrom = weekStart; - this.itemPages[itemIndex].DateTo = weekStart.AddDays(6); -// this.itemPages[itemIndex].WeekNumber = System.Globalization.DateTimeFormatInfo.CurrentInfo.Calendar.GetWeekOfYear( -// weekStart, -// System.Globalization.CalendarWeekRule.FirstDay, -// DayOfWeek.Monday); -// this.itemPages[itemIndex].WeekChar = ((this.itemPages[itemIndex].WeekNumber % 2) == 0) ? 'B' : 'A'; - - //PivotItem pvItem = new PivotItem(); - //Grid headGrid = new Grid(); - //pvItem.Header = headGrid; - - //this.ThePivot.Items.Add(pvItem); - } - private void RemoveContentUIElement(int index, UIElement elem) { // if (this.itemPages[index].Content.Children.Remove(elem) == false) @@ -747,7 +736,46 @@ namespace CampusAppWP8.Pages.TimeTable // this.itemPages[index].Content.Children.Add(can); } +/* + private PageItem CreatePivotItem(PageItem pItem) + { + pItem.pItemPtr = new PivotItem(); + pItem.pItemPtr.Header = new Grid(); + + pItem.weekView = new WeekView(); + pItem.weekView.Name = "TheWeekView"; + pItem.weekView.StartDate = pItem.DateFrom; + WeekViewPivotHeader wvpHeader = new WeekViewPivotHeader(); + wvpHeader.DateFrom = pItem.DateFrom; + + Grid g = (pItem.pItemPtr.Header as Grid); + + Binding colLineBind = new Binding(); + colLineBind.Path = new PropertyPath("ActualWidth"); + colLineBind.ElementName = "TheWeekView"; + colLineBind.Mode = BindingMode.OneWay; + + g.SetBinding(WidthProperty, colLineBind); + g.Children.Clear(); + //wvpHeader.Width = g.Width; + //g.Children.Add(wvpHeader); + + RowDefinition row = new RowDefinition(); + row.Height = GridLength.Auto; + g.RowDefinitions.Add(row); + + g.Background = new SolidColorBrush(Colors.Green); + TextBlock tb = new TextBlock(); + tb.Text = "hallo"; + tb.SetValue(Grid.RowProperty, 0); + g.Children.Add(tb); + + pItem.pItemPtr.Content = pItem.weekView; + + return pItem; + } +*/ private void DrawHeader(int index) { Grid grid = ((this.ThePivot.Items[index] as PivotItem).Header as Grid); @@ -810,29 +838,9 @@ namespace CampusAppWP8.Pages.TimeTable grid.Children.Add(headCan); } - private void ScrollViewer_Loaded(object sender, RoutedEventArgs e) - { - - } - - private void TheWeekView_Loaded(object sender, RoutedEventArgs e) - { -// this.itemPages[this.loadedWeekView].weekView = sender as WeekView; - this.loadedWeekView++; - } - private void ThePivot_LoadedPivotItem(object sender, PivotItemEventArgs e) { - } - - private void Grid_Loaded(object sender, RoutedEventArgs e) - { - - } - - private void ThePivot_LoadingPivotItem(object sender, PivotItemEventArgs e) - { - + } } } \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs index dffe834c..97f47b74 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs @@ -204,6 +204,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die KW ähnelt. + /// + public static string Calendar_Week_Short { + get { + return ResourceManager.GetString("Calendar_Week_Short", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Gebäudeinfos ausblenden ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx index 90588cd5..52126cbe 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx @@ -596,4 +596,7 @@ Mi + + KW + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml b/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml index 3194e106..85cec670 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml +++ b/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml @@ -10,65 +10,123 @@ FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" > - - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml.cs b/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml.cs index 395756dd..8e8194e9 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Lui/Templates/WeekView.xaml.cs @@ -17,10 +17,16 @@ namespace CampusAppWP8.Utility.Lui.Templates using System.Windows.Media; using Microsoft.Phone.Controls; using Microsoft.Phone.Shell; + using CampusAppWP8.Model.TimeTable; public partial class WeekView : UserControl { - public static readonly DependencyProperty StartDateProperty = DependencyProperty.Register("StartDate", typeof(DateTime), typeof(WeekView), new PropertyMetadata(null)); + public static readonly DependencyProperty DateFromProperty = DependencyProperty.Register("DateFrom", typeof(DateTime), typeof(WeekView), new PropertyMetadata(null)); + public static readonly DependencyProperty DateToProperty = DependencyProperty.Register("DateTo", typeof(DateTime), typeof(WeekView), new PropertyMetadata(null)); + public static readonly DependencyProperty DaysProperty = DependencyProperty.Register("Days", typeof(int), typeof(WeekView), new PropertyMetadata(null)); + public static readonly DependencyProperty AppointmentsProperty = DependencyProperty.Register("Appointments", typeof(List), typeof(WeekView), new PropertyMetadata(null)); + public static readonly DependencyProperty WeekNameProperty = DependencyProperty.Register("WeekName", typeof(string), typeof(WeekView), new PropertyMetadata(null)); + public static readonly DependencyProperty WeekNumberProperty = DependencyProperty.Register("WeekNumber", typeof(int), typeof(WeekView), new PropertyMetadata(null)); private List borderList = new List(); @@ -29,21 +35,76 @@ namespace CampusAppWP8.Utility.Lui.Templates public WeekView() { + this.Days = 5; + this.InitializeComponent(); this.InitLayout(); } - public DateTime StartDate + public DateTime DateFrom { get { - return (DateTime)this.GetValue(StartDateProperty); + return (DateTime)this.GetValue(DateFromProperty); } set { - this.SetValue(StartDateProperty, value); + this.SetValue(DateFromProperty, value); + this.SetValue(DateToProperty, value.AddDays(this.Days)); + } + } + + public int Days + { + get + { + return (int)this.GetValue(DaysProperty); + } + + set + { + this.SetValue(DaysProperty, value); + } + } + + public List Appointments + { + get + { + return (List)this.GetValue(AppointmentsProperty); + } + + set + { + this.SetValue(AppointmentsProperty, value); + } + } + + public string WeekName + { + get + { + return (string)this.GetValue(WeekNameProperty); + } + + set + { + this.SetValue(WeekNameProperty, value); + } + } + + public int WeekNumber + { + get + { + return (int)this.GetValue(WeekNumberProperty); + } + + set + { + this.SetValue(WeekNumberProperty, value); } } @@ -70,12 +131,6 @@ namespace CampusAppWP8.Utility.Lui.Templates this.borderList.Add(this.FriBorder); this.TimeList.ItemsSource = this.timeStrings; - - //this.MonList.ItemsSource = this.monStrings; - //this.TueList.ItemsSource = this.monStrings; - //this.WedList.ItemsSource = this.monStrings; - //this.ThuList.ItemsSource = this.monStrings; - //this.FriList.ItemsSource = this.monStrings; } } }