private void OnExitEditMode(object sender, EO.Wpf.EditItemEventArgs e)
        {
            try
            {
                if (e.Item is Kernel.Domain.PeriodInterval)
                {
                    Kernel.Domain.PeriodInterval editedInterval = (Kernel.Domain.PeriodInterval)e.Item;
                    string name = e.Text.Trim();

                    Kernel.Domain.PeriodInterval ValidInterval = ValidateName(editedInterval, name);
                    if (ValidInterval == null)
                    {
                        e.Canceled = true;
                        return;
                    }
                    editedInterval.name = ValidInterval.name;
                    editedInterval.GetParent().UpdateChild(editedInterval);
                    //if (ItemChanged != null) ItemChanged(editedInterval);
                    if (Changed != null)
                    {
                        Changed();
                    }
                }


                //The event must be canceled, otherwise the TreeView will
                //set the TreeViewItem's Header to the new text
                // e.Canceled = true;
            }
            catch (Exception)
            {
                return;
            }
        }
 public void DeleteNode(Kernel.Domain.PeriodInterval item)
 {
     if (item != null && item.parent != null)
     {
         int index = item.GetPosition();
         item.GetParent().RemoveChild(item);
         if (Changed != null)
         {
             Changed();
         }
     }
 }
        private void viewFromToDate(Kernel.Domain.PeriodInterval interval)
        {
            NamePanel namePanel = new NamePanel();

            namePanel.gridDefault.Visibility  = System.Windows.Visibility.Collapsed;
            namePanel.gridViewDate.Visibility = System.Windows.Visibility.Visible;
            namePanel.FromDate.Text           = interval.periodFromDateTime.ToShortDateString();
            namePanel.toDate.Text             = interval.periodToDateTime.ToShortDateString();
            namePanel.Height = 70;
            Dialog dialog = new Dialog(interval.name, namePanel);

            dialog.cancelButton.Visibility = System.Windows.Visibility.Collapsed;
            dialog.Height = 200;
            dialog.Width  = 245;
            Kernel.Domain.PeriodInterval intervalPeriod = GetSelectedPeriodInterval();

            DateTime from = intervalPeriod.periodFromDateTime;
            DateTime to   = intervalPeriod.periodToDateTime;

            dialog.ShowCenteredToMouse();
            intervalPeriod.periodTo   = namePanel.toDate.ToString();
            intervalPeriod.periodFrom = namePanel.FromDate.ToString();

            if (intervalPeriod.periodToDateTime < intervalPeriod.periodFromDateTime)
            {
                intervalPeriod.periodTo   = to.ToShortDateString();
                intervalPeriod.periodFrom = from.ToShortDateString();
                namePanel.FromDate.Text   = to.ToShortDateString();
                namePanel.toDate.Text     = from.ToShortDateString();
                MessageDisplayer.DisplayInfo("Unable to change Period interval : " + intervalPeriod.name, "The Date To must be after the Date From");
                return;
            }

            if (from != interval.periodFromDateTime || to != interval.periodToDateTime)
            {
                intervalPeriod.periodFrom = interval.periodFrom;
                intervalPeriod.periodTo   = interval.periodTo;
                interval.GetParent().UpdateChild(intervalPeriod);
                if (Changed != null)
                {
                    Changed();
                }
            }
        }