private string[] getNameAndType(TrainingPlanBase planBase)
        {
            TrainingPlan      plan  = planBase as TrainingPlan;
            TrainingPlanEntry entry = planBase as TrainingPlanEntry;
            TrainingPlanDay   day   = planBase as TrainingPlanDay;
            TrainingPlanSerie set   = planBase as TrainingPlanSerie;

            if (plan != null)
            {
                return(new string[] { plan.Name, LocalizedPropertyGridStrings.TrainingPlan_Object });
            }
            else if (entry != null)
            {
                return(new string[] { ObjectsReposidory.GetExercise(entry.ExerciseId).GetLocalizedName(), LocalizedPropertyGridStrings.TrainingPlanDayEntry_Object });
            }
            if (day != null)
            {
                return(new string[] { day.Name, LocalizedPropertyGridStrings.TrainingPlanDay_Object });
            }
            if (set != null)
            {
                return(new string[] { set.ToString(), LocalizedPropertyGridStrings.TrainingPlanSerie_Object });
            }
            return(null);
        }
        private void lvOutput_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            var item = lvOutput.GetItemAt(e.X, e.Y);

            if (item != null)
            {
                TrainingPlanBase planBase = (TrainingPlanBase)item.Tag;
                selectTrainingPlanBase(planBase);
            }
        }
 TreeNode selectProcess(TreeNodeCollection nodes, TrainingPlanBase planBase)
 {
     foreach (TreeNode node in nodes)
     {
         if (node.Tag == planBase)
         {
             return(node);
         }
         var nodeToSelect = selectProcess(node.Nodes, planBase);
         if (nodeToSelect != null)
         {
             return(nodeToSelect);
         }
     }
     return(null);
 }
 void selectTrainingPlanBase(TrainingPlanBase planBase)
 {
     tvDetails.SelectedNode = selectProcess(tvDetails.Nodes, planBase);
 }