From cb9b2d62a4a57830b90bb19a3034f6a29574fe4d Mon Sep 17 00:00:00 2001 From: Christian Fiedler Date: Tue, 24 Sep 2013 17:55:54 +0200 Subject: [PATCH] appointment edit/create --- CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj | 7 ++ .../Pages/TimeTable/AppointmentEdit.xaml | 40 +++++++ .../Pages/TimeTable/AppointmentEdit.xaml.cs | 27 +++++ .../Pages/TimeTable/TimeTableDay.xaml.cs | 102 ++++++++++-------- .../TimeTable/TimeTableProperties.xaml.cs | 29 +++-- 5 files changed, 149 insertions(+), 56 deletions(-) create mode 100644 CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml create mode 100644 CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj index e25ce946..de25f37f 100644 --- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj +++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj @@ -136,6 +136,9 @@ Appointment.xaml + + AppointmentEdit.xaml + TimeTableDay.xaml @@ -460,6 +463,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml new file mode 100644 index 00000000..6decf820 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs new file mode 100644 index 00000000..f484d37c --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs @@ -0,0 +1,27 @@ +//----------------------------------------------------------------------------- +// +// Company copyright tag. +// +// fiedlchr +// 24.09.2013 +//----------------------------------------------------------------------------- +namespace CampusAppWP8.Pages.TimeTable +{ + 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; + + public partial class AppointmentEdit : PhoneApplicationPage + { + public AppointmentEdit() + { + this.InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableDay.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableDay.xaml.cs index 915b95d1..7d38a0c5 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableDay.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableDay.xaml.cs @@ -1,10 +1,15 @@ - +//----------------------------------------------------------------------------- +// +// Company copyright tag. +// +// fiedlchr +// 12.09.2013 +//----------------------------------------------------------------------------- namespace CampusAppWP8.Pages.TimeTable { using System; using System.Collections.Generic; using System.Linq; - using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Media; @@ -13,7 +18,6 @@ namespace CampusAppWP8.Pages.TimeTable using Microsoft.Phone.Controls; using Microsoft.Phone.Shell; using CampusAppWP8.Model.TimeTable; - using CampusAppWP8.Utility; using CampusAppWP8.Resources; public partial class TimeTableDay : PhoneApplicationPage @@ -72,7 +76,12 @@ namespace CampusAppWP8.Pages.TimeTable { base.OnNavigatedTo(e); - if (e.NavigationMode != NavigationMode.Back) + if (e.NavigationMode == NavigationMode.Back) + { + // only after edit/create/delete + //this.SetupItemPage(this.lastSelectedIndex, this.itemDate[this.lastSelectedIndex]); + } + else { double maxW = Application.Current.Host.Content.ActualWidth; @@ -90,28 +99,13 @@ namespace CampusAppWP8.Pages.TimeTable int indexToChange = 0; /* - => - 0->1: 3 - 1->2: 4 - 2->3: 0 - 3->4: 1 - 4->0: 2 - - <= - 4<-0: 2 - 3<-4: 1 - 2<-3: 0 - 1<-2: 4 - 0<-1: 3 - * - * - (0)1 2|3 4 - 0(1)2 3|4 - 0 1(2)3 4| - 0|1 2(3)4 - 0 1|2 3(4) + 0<->1: 3 + 1<->2: 4 + 2<->3: 0 + 3<->4: 1 + 4<->0: 2 */ - + int delta = this.ThePivot.SelectedIndex - this.lastSelectedIndex; if ((this.ThePivot.SelectedIndex == 0) && (this.lastSelectedIndex == (PIVOT_ITEM_PAGES - 1))) @@ -162,7 +156,7 @@ namespace CampusAppWP8.Pages.TimeTable for (int i = 0; i < this.appointmentStackList[stackIndex][listIndex].Count(); i++) { - ((this.itemPages[stackIndex].Content as ScrollViewer).Content as Canvas).Children.Remove(this.appointmentStackList[stackIndex][listIndex][i].Canvas); + this.RemoveContentUIElement(stackIndex, this.appointmentStackList[stackIndex][listIndex][i].Canvas); if (i > 0) { @@ -174,9 +168,8 @@ namespace CampusAppWP8.Pages.TimeTable } } - ((this.itemPages[stackIndex].Content as ScrollViewer).Content as Canvas).Children.Remove(sender as Canvas); + this.RemoveContentUIElement(stackIndex, sender as Canvas); this.DrawMultiBubble( - ((this.itemPages[stackIndex].Content as ScrollViewer).Content as Canvas), stackIndex, listIndex, this.appointmentStackList[stackIndex][listIndex].Count(), @@ -211,6 +204,16 @@ namespace CampusAppWP8.Pages.TimeTable page.NavigationService.Navigate(url); } + private void AddContentUIElement(int index, UIElement elem) + { + (((this.itemPages[index].Content as ScrollViewer).Content as Canvas).Children[1] as Canvas).Children.Add(elem); + } + + private void RemoveContentUIElement(int index, UIElement elem) + { + (((this.itemPages[index].Content as ScrollViewer).Content as Canvas).Children[1] as Canvas).Children.Remove(elem); + } + private void SetupItemPage(int index, DateTime date) { List tempList = new List(); @@ -318,8 +321,8 @@ namespace CampusAppWP8.Pages.TimeTable } this.DrawMultiBubble( - ((this.itemPages[index].Content as ScrollViewer).Content as Canvas), - index, i, + index, + i, this.appointmentStackList[index][i].Count(), this.appointmentStackList[index][i][0].GetPosRight, this.appointmentStackList[index][i][0].GetYOffset); @@ -329,29 +332,37 @@ namespace CampusAppWP8.Pages.TimeTable private void SetupItemPageBackground(PivotItem item) { ScrollViewer sv = null; - Canvas ca = null; - bool alreadyInit = false; - + Canvas caContainer = null; + Canvas caContent = null; + Canvas caBackground = null; + if ((item.Content != null) && (item.Content.GetType().Equals(typeof(ScrollViewer)) == true) && ((item.Content as ScrollViewer).Content != null) && ((item.Content as ScrollViewer).Content.GetType().Equals(typeof(Canvas)) == true)) { sv = item.Content as ScrollViewer; - ca = sv.Content as Canvas; + caContainer = sv.Content as Canvas; sv.ScrollToVerticalOffset(0); - ca.Children.Clear(); - alreadyInit = true; + caContent = caContainer.Children[1] as Canvas; + + caContent.Children.Clear(); + this.EventAutoScroll(sv, null); } else { sv = new ScrollViewer(); - ca = new Canvas(); - } + caContainer = new Canvas(); + caContainer.Height = DAY_TABLE_CELL_HEIGHT * 24; + caContainer.Tag = "caContainer"; + caContent = new Canvas(); + caContent.Tag = "caContent"; + caBackground = new Canvas(); + caBackground.Tag = "caBackground"; - this.DrawDayViewBackground(ca); + this.DrawDayViewBackground(caBackground); - if (alreadyInit == false) - { - sv.Content = ca; + caContainer.Children.Add(caBackground); + caContainer.Children.Add(caContent); + sv.Content = caContainer; sv.Loaded += new RoutedEventHandler(this.EventAutoScroll); item.Content = sv; } @@ -364,11 +375,12 @@ namespace CampusAppWP8.Pages.TimeTable model.Canvas.SetValue(Canvas.ZIndexProperty, DAY_TABLE_ZINDEX_MAX - zIndex); model.Canvas.Margin = new Thickness(DAY_TABLE_HEAD_WIDTH + 2 + (zIndex * DAY_TABLE_ZINDEX_SHIFT), model.GetYOffset, 0, 0); model.SetWidth(this.itemPages[index].ActualWidth - (modelCount * DAY_TABLE_ZINDEX_SHIFT) - 6.0); - ((this.itemPages[index].Content as ScrollViewer).Content as Canvas).Children.Add(model.Canvas); + this.AddContentUIElement(index, model.Canvas); } - private void DrawMultiBubble(Canvas dayView, int stackIndex, int listIndex, int number, double xOffset, double yOffset) + private void DrawMultiBubble(int stackIndex, int listIndex, int number, double xOffset, double yOffset) { + Canvas can = new Canvas(); Rectangle rect = new Rectangle(); @@ -398,7 +410,7 @@ namespace CampusAppWP8.Pages.TimeTable can.SetValue(Canvas.TopProperty, yOffset); can.SetValue(Canvas.ZIndexProperty, DAY_TABLE_ZINDEX_MAX + 1); - dayView.Children.Add(can); + this.AddContentUIElement(stackIndex, can); } private void DrawDayViewBackground(Canvas dayView) diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableProperties.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableProperties.xaml.cs index e7d04980..455f5c20 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableProperties.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTableProperties.xaml.cs @@ -1,16 +1,23 @@ -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; - +//----------------------------------------------------------------------------- +// +// Company copyright tag. +// +// fiedlchr +// 24.09.2013 +//----------------------------------------------------------------------------- namespace CampusAppWP8.Pages.TimeTable { + 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; + public partial class TimeTableProperties : PhoneApplicationPage { public string[] VisualScaleText = new string[] { AppResources.Small, AppResources.Medium, AppResources.Large };