client/src/Iri.Modernisation.Controls/ViewModel/NavigationBar/ChutierVM.cs
author Matthieu Totet
Mon, 23 Nov 2009 10:17:33 +0100
changeset 7 de7ba61f66c7
parent 0 249d70e7b32d
child 18 66911d0f0eb6
permissions -rw-r--r--
Add element to personal chutier
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 SLExtensions.Input;
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;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    14
using Iri.Modernisation.Data.Models;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    15
using System.Collections.Generic;
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    16
using SLExtensions.Collections.ObjectModel;
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    17
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    18
using System.Linq;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    19
namespace Iri.Modernisation.Controls.ViewModel
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    20
{
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    21
    public class ChutierVM : BaseMVVM.ViewModel.ViewModel
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    22
    {
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    23
        protected ObservableCollection<PolemicElement> _annotations = new ObservableCollection<PolemicElement>();
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    24
        protected ObservableCollection<PolemicElement> list = new ObservableCollection<PolemicElement>();
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    25
        public ObservableCollection<PolemicElement> Annotations
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    26
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    27
            get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    28
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    29
                if (SearchWord != String.Empty)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    30
                {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    31
                    return list;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    32
                }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    33
                else
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    34
                {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    35
                    return _annotations;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    36
                }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    37
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    38
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    39
            set
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    40
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    41
                list = value;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    42
                OnPropertyChanged("Annotations");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    43
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    44
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    45
        protected String _searchWord = "";
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    46
        public String SearchWord
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    47
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    48
            get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    49
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    50
                return _searchWord;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    51
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    52
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    53
            set
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    54
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    55
                _searchWord = value;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    56
                OnPropertyChanged("SearchWord");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    57
               
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    58
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    59
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    60
        public ChutierVM()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    61
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    62
          InitializeCommands();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    63
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    64
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    65
        private void InitializeCommands()
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    66
        {
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    67
             }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    68
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    69
       
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    70
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    71
        public ChutierVM(ObservableCollection<PolemicElement> argList)
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    72
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    73
            _annotations = argList;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    74
            InitializeCommands();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    75
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    76
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    77
        protected void Search()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    78
        {
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    79
           
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    80
              var query = from c in _annotations
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    81
                        where c.Title.Contains(_searchWord)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    82
                        select c;
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
    83
              Annotations = new ObservableCollection<PolemicElement>(query.ToList());
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    84
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    85
        public void ClickAnnotation_Executed(object sender, ExecutedEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    86
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    87
            Annotation VB = (Annotation)e.Parameter;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    88
            MessageBox.Show(VB.Contributer.UserName + " - " + VB.Title);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    89
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    90
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    91
        public void ChutierSearch_Executed(object sender, ExecutedEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    92
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    93
            Search();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    94
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    95
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    96
        
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    97
    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    98
    public class PersonnalChutierVM : ChutierVM
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    99
    {
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   100
        public PersonnalChutierVM(ObservableCollection<PolemicElement> argList)
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   101
            : base( argList)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   102
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   103
            InitializeCommands();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   104
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   105
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   106
        private void InitializeCommands()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   107
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   108
            Commands.PersonnalChutier.Search.Executed += new EventHandler<ExecutedEventArgs>(ChutierSearch_Executed);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   109
            Commands.PersonnalChutier.ClickAnnotation.Executed += new EventHandler<ExecutedEventArgs>(ClickAnnotation_Executed);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   110
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   111
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   112
        
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   113
    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   114
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   115
    public class ReferencesChutierVM : ChutierVM
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   116
    {
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   117
        public ReferencesChutierVM(ObservableCollection<PolemicElement> argList)
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   118
            : base(argList)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   119
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   120
            InitializeCommands();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   121
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   122
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   123
        private void InitializeCommands()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   124
        {
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   125
            Commands.ReferencesChutier.RefChutierAdd.Executed += new EventHandler<ExecutedEventArgs>(RefChutierAdd_Executed);
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   126
     
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   127
            Commands.ReferencesChutier.Search.Executed += new EventHandler<ExecutedEventArgs>(ChutierSearch_Executed);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   128
            Commands.ReferencesChutier.ClickAnnotation.Executed += new EventHandler<ExecutedEventArgs>(ClickAnnotation_Executed);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   129
        }
7
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   130
        void RefChutierAdd_Executed(object sender, ExecutedEventArgs e)
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   131
        {
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   132
             if(!_annotations.Contains((PolemicElement)e.Parameter))
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   133
             {
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   134
                  _annotations.Add((PolemicElement)e.Parameter);
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   135
             }
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   136
             else
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   137
             {
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   138
                 MessageBox.Show("Element déjà sauvegardé");
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   139
             }
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   140
           
de7ba61f66c7 Add element to personal chutier
Matthieu Totet
parents: 0
diff changeset
   141
        }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   142
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   143
        
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   144
    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   145
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   146
}