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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     1
using System;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     2
using System.Net;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     3
using System.Windows;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     4
using System.Windows.Controls;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     5
using System.Windows.Documents;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     6
using System.Windows.Ink;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     7
using System.Windows.Input;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     8
using System.Windows.Media;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     9
using System.Windows.Media.Animation;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    10
using System.Windows.Shapes;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    11
using Iri.Modernisation.Data.Models;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    12
using Iri.Modernisation.BaseMVVM.Commands;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    13
using Iri.Modernisation.BaseMVVM.ViewModel;
26
44a2dc869e28 Save before big changes on HeaderProduction
Matthieu Totet
parents: 25
diff changeset
    14
using System.Collections.Generic;
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    15
namespace Iri.Modernisation.Controls.ViewModel
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    16
{
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    17
    public class HeaderProductionVM : BaseMVVM.ViewModel.ViewModel
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    18
    {
26
44a2dc869e28 Save before big changes on HeaderProduction
Matthieu Totet
parents: 25
diff changeset
    19
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    20
        private List<HeaderProductionChapterVM> _productionChapters;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    21
        public List<HeaderProductionChapterVM> ProductionChapters
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    22
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    23
            get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    24
            {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    25
                return _productionChapters;
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    26
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    27
            set
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    28
            {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    29
                _productionChapters = value;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    30
                OnPropertyChanged("ProductionChapters");
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    31
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    32
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    33
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    34
        private HeaderProductionChapterVM _selectedChapter;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    35
        public HeaderProductionChapterVM SelectedChapter
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    36
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    37
            get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    38
            {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    39
                return _selectedChapter;
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    40
            }
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    41
            set
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    42
            {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    43
                if (_selectedChapter != null)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    44
                {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    45
                    _selectedChapter.HighLight = false;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    46
                }
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    47
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    48
                _selectedChapter = value;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    49
            
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    50
                    value.HighLight = true;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    51
                    if (Change != null)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    52
                        Change(this, new HeaderProductionVMArgs(SelectedChapter));
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    53
              
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    54
                
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    55
                OnPropertyChanged("SelectedChapter");
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    56
            }
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    57
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    58
        }
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    59
      
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    60
        public bool IsVideoBookComplete
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    61
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    62
            get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    63
            {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    64
                bool test = true;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    65
                foreach(HeaderProductionChapterVM Hpcvm in ProductionChapters )
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    66
                {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    67
                    test = Hpcvm.Indexing && test; 
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    68
                }
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    69
                return test;
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    70
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    71
        }
25
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 17
diff changeset
    72
        private String _instruction;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 17
diff changeset
    73
        /// <summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 17
diff changeset
    74
        /// Instruction
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 17
diff changeset
    75
        /// </summary>
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    76
        public String Instruction
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    77
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    78
            get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    79
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    80
                return _instruction;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    81
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    82
            set
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    83
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    84
                _instruction = value;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    85
                OnPropertyChanged("Instruction");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    86
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    87
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    88
        public HeaderProductionVM()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    89
        {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    90
            _productionChapters = new List<HeaderProductionChapterVM>();
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    91
            HeaderProductionChapterVM temp = null;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    92
            foreach (VideoChapterDescription Vcd in FactoryVideoLivre.VideoChapterDescriptions)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    93
            {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    94
                temp = new HeaderProductionChapterVM(Vcd);
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    95
                temp.Ended +=new HeaderProductionChapterVM.EndedDelegate(temp_Ended);
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    96
                temp.EditEnded += new HeaderProductionChapterVM.EditEndedDelegate(temp_EditEnded);
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    97
                temp.HighLight = false;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    98
               _productionChapters.Add(temp);
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
    99
               if(_productionChapters.Count > 1)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   100
               {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   101
                   _productionChapters[_productionChapters.Count - 2].EditEnded+=new HeaderProductionChapterVM.EditEndedDelegate(temp.Enable);
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   102
                   
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   103
               }
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   104
              
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   105
                
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   106
            }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   107
            _instruction = Iri.Modernisation.Controls.Resources.HeaderProduction.InstructionTextRessource.Introduction;
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   108
           
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   109
            InitializeCommands();
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   110
            ProductionChapters[0].Enable();
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   111
          
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   112
    
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   113
        }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   114
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   115
        void temp_EditEnded()
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   116
        {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   117
            if(Change!=null)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   118
            Change(this,new HeaderProductionVMArgs(SelectedChapter));
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   119
        }
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   120
       
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   121
       
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   122
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   123
        void temp_Ended()
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   124
        {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   125
            OnPropertyChanged("IsVideoBookComplete");
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   126
            if (Change != null)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   127
                Change(this, new HeaderProductionVMArgs(SelectedChapter));
25
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 17
diff changeset
   128
        }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   129
        private void InitializeCommands()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   130
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   131
        }
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   132
        public event EventHandler<HeaderProductionVMArgs> Change;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   133
     
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   134
       
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   135
    }
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   136
    public class HeaderProductionVMArgs : EventArgs
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   137
    {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   138
  
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   139
        public HeaderProductionChapterVM ChapterHeader { get; private set; }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   140
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   141
        public HeaderProductionVMArgs( HeaderProductionChapterVM chapterHeader)
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   142
        {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   143
            ChapterHeader = chapterHeader;
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   144
          
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   145
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 26
diff changeset
   146
           
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   147
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   148
    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   149
}