public AddEvent(GoogleCalendar.Data.Event monEvt, EventControler controler, ICalendar parent) { this.InitializeComponent(); this.Title.Text = IConstantes.TITLE_ADD_EVT; this.Button_Cancel.Content = IConstantes.BUTTON_CANCEL; this.Button_Add.Content = IConstantes.BUTTON_ADD; this.DataContext = new VIEWMODEL.Event.EventModelView(monEvt, controler,parent); }
public ModifEvent(GoogleCalendar.Data.Event monEvt,EventControler controler, ICalendar parent) { this.InitializeComponent(); this.Title.Text = IConstantes.TITLE_UPDATE_EVT; this.Button_Cancel.Content = IConstantes.BUTTON_CANCEL; this.Button_Add.Content = IConstantes.BUTTON_UPDATE; this.Button_Delete.Content = IConstantes.BUTTON_DELETE; this.DataContext = new EventModelView(monEvt, controler, parent); }
private void createEvent(GoogleCalendar.Data.Event e) { DateTime time, timeEnd; if (!String.IsNullOrEmpty(e.Start.DateTime)) time = DateTime.Parse(e.Start.DateTime); else time = DateTime.Parse(e.Start.Date); if (!String.IsNullOrEmpty(e.Start.DateTime)) timeEnd = DateTime.Parse(e.End.DateTime); else timeEnd = DateTime.Parse(e.End.Date);// format : 2011-11-02T07:00:00+01:00 // on récupère le nombre de jour dans le mois de la date du jour int dayInMonth = DateTime.DaysInMonth(Date.Year, Date.Month); int col; //si la date du jour est plus grande que la date de l'évenement (31>2) alors la semaine comprend deux mois if (Date.Day > time.Day) { //on initialise un compteur (31+1)-31 pour déterminer le nb de colonne à ajouter a la date de l'event pour trouver sa position dans la grille int cpt = (dayInMonth + 1) - Date.Day; col = time.Day + cpt; } else { col = (time.Day - Date.Day) + 1; } int hour = time.Hour; int n = timeEnd.DayOfYear - time.DayOfYear; for (int i = 0; i <= n; i++) { //On créer un user Control et on lui donne l'evenement comme contexte WeekEvent we = new WeekEvent(e); //on définit l'action a effectuer lors d'un double tap we.DoubleTapped += new Windows.UI.Xaml.Input.DoubleTappedEventHandler(EventDoubleTapped); // on définit la ligne où l'on doit ajouter le userControl Grid.SetRow(we, hour); //on définit la colonne ou l'on doit ajouter le userControl Grid.SetColumn(we, col + i); // si i est différent de n if (i != n) { // on précise que l'évenement doit prendre plusieurs lignes Grid.SetRowSpan(we, (24 - hour)); hour = 0; } else { // si l'heure de fin est égale à l'heure de début if (timeEnd.Hour == hour) Grid.SetRowSpan(we, 24); else Grid.SetRowSpan(we, (timeEnd.Hour - hour)); } Events.Add(we); StackPanel pan = GetStackPanel(hour, col + i); IEnumerable<WeekEvent> collection = pan.Children.OfType<WeekEvent>(); double width = pan.ActualWidth; if (collection.Count()==1) { we.Width = width/2; foreach (WeekEvent old in collection) { old.Width = width/2; } } else if (collection.Count() == 2) { we.Width = width/3; foreach (WeekEvent old in collection) { old.Width = width/3; } } else if (collection.Count() == 3) { we.Width = width/4; foreach (WeekEvent old in collection) { old.Width = width/4; } } else { we.Width = width; } pan.Children.Add(we); LayoutWeek.UpdateLayout(); } }
/// <summary> /// Constructeur /// </summary> /// <param name="evt">L'évènement à gérer</param> /// <param name="control">Le controleur de l'évènement</param> /// <param name="parent">Fenêtre parent qui a créé le POPUP contenant le userControls</param> public EventModelView(GoogleCalendar.Data.Event evt, EventControler control, ICalendar parent) { this._parent = parent; _controller = control; _mEvent = evt; initDates(); }
public void SetGoogleCalendar(GoogleCalendar calendar) { this.calendar = calendar; }
/// <summary> /// Methode qui crée les évènements et les place dans les stackpanel correspondants /// </summary> /// <param name="e"></param> private void createEvent(GoogleCalendar.Data.Event e) { DateTime time, timeEnd; if (!String.IsNullOrEmpty(e.Start.DateTime)) time = DateTime.Parse(e.Start.DateTime); else time = DateTime.Parse(e.Start.Date); if (!String.IsNullOrEmpty(e.Start.DateTime)) timeEnd = DateTime.Parse(e.End.DateTime); else timeEnd = DateTime.Parse(e.End.Date);// format : 2011-11-02T07:00:00+01:00 //on récupère la colonne de l'evenement int col = getCol(time); int hour = time.Hour; int n = timeEnd.DayOfYear - time.DayOfYear; for (int i = 0; i <= n; i++) { //On créer un user Control et on lui donne l'evenement comme contexte DayEvent we = new DayEvent(e); //on définit l'action a effectuer lors d'un double tap we.DoubleTapped += new Windows.UI.Xaml.Input.DoubleTappedEventHandler(EventDoubleTapped); //retourne le stackpanel à l'index spécifié StackPanel pan = GetStackPanel(hour, col + i); // on définit la ligne où l'on doit ajouter le userControl Grid.SetRow(pan, hour); //on définit la colonne ou l'on doit ajouter le userControl Grid.SetColumn(pan, col + i); // si i est différent de n if (i != n) { // on précise que l'évenement doit prendre plusieurs lignes Grid.SetRowSpan(pan, (24 - hour)); hour = 0; } else { // si l'heure de fin est égale à l'heure de début if (timeEnd.Hour == hour && timeEnd.Minute == time.Minute) { Grid.SetRowSpan(pan, 24); } else if (timeEnd.Hour == hour && timeEnd.Minute != time.Minute) { Grid.SetRowSpan(pan, (timeEnd.Hour - hour + 1)); } else { Grid.SetRowSpan(pan, (timeEnd.Hour - hour)); } } Events.Add(we); IEnumerable<DayEvent> collection = pan.Children.OfType<DayEvent>(); double width = pan.ActualWidth; if (collection.Count() == 1) { we.Width = width / 2; foreach (DayEvent old in collection) { pan.Orientation = Orientation.Horizontal; old.Width = width / 2; } } else if (collection.Count() == 2) { we.Width = width / 3; pan.Orientation = Orientation.Horizontal; foreach (DayEvent old in collection) { old.Width = width / 3; } } else if (collection.Count() == 3) { we.Width = width / 4; pan.Orientation = Orientation.Horizontal; foreach (DayEvent old in collection) { old.Width = width / 4; } } else { we.Width = width; } pan.Children.Add(we); LayoutWeek.UpdateLayout(); layout = this.LayoutWeek; } }