client/src/Iri.Modernisation.Controls/ViewModel/HeaderProduction/HeaderProductionVM.cs
author totetm <>
Thu, 14 Jan 2010 16:39:50 +0100
changeset 30 644e3cd48034
parent 27 f292db96b050
child 31 775d895e5d4d
permissions -rw-r--r--
Introduce in Web context

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Iri.Modernisation.Data.Models;
using Iri.Modernisation.BaseMVVM.Commands;
using Iri.Modernisation.BaseMVVM.ViewModel;
using System.Collections.Generic;
namespace Iri.Modernisation.Controls.ViewModel
{
    public class HeaderProductionVM : BaseMVVM.ViewModel.ViewModel
    {

        private List<HeaderProductionChapterVM> _productionChapters;
        public List<HeaderProductionChapterVM> ProductionChapters
        {
            get
            {
                return _productionChapters;
            }
            set
            {
                _productionChapters = value;
                OnPropertyChanged("ProductionChapters");
            }
        }

        private HeaderProductionChapterVM _selectedChapter;
        public HeaderProductionChapterVM SelectedChapter
        {
            get
            {
                return _selectedChapter;
            }
            set
            {
                if (_selectedChapter != null)
                {
                    _selectedChapter.HighLight = false;
                }

                _selectedChapter = value;
            
                    value.HighLight = true;
                    if (Change != null)
                        Change(this, new HeaderProductionVMArgs(SelectedChapter));
              
                
                OnPropertyChanged("SelectedChapter");
            }

        }
      
        public bool IsVideoBookComplete
        {
            get
            {
                bool test = true;
                foreach(HeaderProductionChapterVM Hpcvm in ProductionChapters )
                {
                    test = Hpcvm.Indexing && test; 
                }
                return test;
            }
        }
        private String _instruction;
        /// <summary>
        /// Instruction
        /// </summary>
        public String Instruction
        {
            get
            {
                return _instruction;
            }
            set
            {
                _instruction = value;
                OnPropertyChanged("Instruction");
            }
        }
        public HeaderProductionVM()
        {
            _productionChapters = new List<HeaderProductionChapterVM>();
            HeaderProductionChapterVM temp = null;
            foreach (VideoChapterDescription Vcd in FactoryVideoLivre.VideoChapterDescriptions)
            {
                temp = new HeaderProductionChapterVM(Vcd);
                temp.Ended +=new HeaderProductionChapterVM.EndedDelegate(temp_Ended);
                temp.EditEnded += new HeaderProductionChapterVM.EditEndedDelegate(temp_EditEnded);
                temp.HighLight = false;
               _productionChapters.Add(temp);
               if(_productionChapters.Count > 1)
               {
                   _productionChapters[_productionChapters.Count - 2].EditEnded+=new HeaderProductionChapterVM.EditEndedDelegate(temp.Enable);
                   
               }
              
                
            }
            _instruction = Iri.Modernisation.Controls.Resources.HeaderProduction.InstructionTextRessource.Introduction;
           
            InitializeCommands();
            ProductionChapters[0].Enable();
          
    
        }

        void temp_EditEnded()
        {
            if(Change!=null)
            Change(this,new HeaderProductionVMArgs(SelectedChapter));
        }
       
       

        void temp_Ended()
        {
            OnPropertyChanged("IsVideoBookComplete");
            if (Change != null)
                Change(this, new HeaderProductionVMArgs(SelectedChapter));
        }
        private void InitializeCommands()
        {
        }
        public event EventHandler<HeaderProductionVMArgs> Change;
     
       
    }
    public class HeaderProductionVMArgs : EventArgs
    {
  
        public HeaderProductionChapterVM ChapterHeader { get; private set; }

        public HeaderProductionVMArgs( HeaderProductionChapterVM chapterHeader)
        {
            ChapterHeader = chapterHeader;
          

           
        }
    }
}