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();
 }
Beispiel #5
0
 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;
            }
        }