www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

tabs-définitions.js (3307B)


      1 function MVTabsDéfinitions(mListeDéfinitions) { // Modèle ou vue ???
      2     makeUid(this);
      3     this.mListeDéfinitions = mListeDéfinitions;
      4     makeField(this, 'définitionActive', 0);
      5 }
      6 
      7 function VTitresTabsDéfinitions(mvTabsDéfinitions, emplacement) {
      8     makeView(this, 'vTitresTabsDéfinitions', emplacement, 'vTitresTabs', 'vTitreAucuneDéfinition', 'vNouvelleDéfinition');
      9     
     10     var listeVues = {};
     11     var that = this;
     12     
     13     // Actions
     14     this.actionNouvelleDéfinition = function() {
     15         mvTabsDéfinitions.mListeDéfinitions.addDéfinitions(new MDéfinition());
     16     };
     17     
     18     this.ajoutDéfinition = function(mListeDéfinitions, mDéfinition) {
     19         var vtd = new VTitreDéfinition(mDéfinition.mTitreDéfinition(), that.parties.vTitresTabs);
     20         mvTabsDéfinitions.définitionActive(mDéfinition);
     21         vtd.vue.click(function(){ // TODO : pas propre, devrait être vtd.onClick().
     22             mvTabsDéfinitions.définitionActive(mDéfinition);
     23         })
     24         listeVues[mDéfinition.uid] = vtd;
     25         that.vueNormale();
     26     };
     27     
     28     this.switchDéfinition = function(_mvTabsDéfinitions, _définitionActive) {
     29         for (var i in listeVues)
     30             listeVues[i].active(i == mvTabsDéfinitions.définitionActive().uid);
     31     };
     32     
     33     this.vueNormale = function() {
     34         if (mvTabsDéfinitions.mListeDéfinitions.définitions.length == 0) {
     35             that.parties.vTitreAucuneDéfinition.show();
     36         } else {
     37             that.parties.vTitreAucuneDéfinition.hide();
     38         }
     39         that.switchDéfinition();
     40     };
     41     
     42     // Binding
     43     mvTabsDéfinitions.mListeDéfinitions.onAddDéfinitions(this.ajoutDéfinition);
     44     var mld = mvTabsDéfinitions.mListeDéfinitions;
     45     for (var i = 0; i < mld.définitions.length; i++) {
     46         this.ajoutDéfinition(mld, mld.définitions[i]);
     47     }
     48 
     49     mvTabsDéfinitions.onChangeDéfinitionActive(this.switchDéfinition);
     50     
     51     this.parties.vNouvelleDéfinition.click(this.actionNouvelleDéfinition);
     52     
     53     // Défauts
     54     this.vueNormale();
     55 }
     56 
     57 function VContenusTabsDéfinitions(mvTabsDéfinitions, emplacement, vInstanceBlocParente) {
     58     makeView(this, 'vContenusTabsDéfinitions', emplacement, 'vContenusTabs', 'vContenuAucuneDéfinition');
     59     
     60     var listeVues = {};
     61     var that = this;
     62     
     63     // Actions
     64     this.ajoutDéfinition = function(mListeDéfinitions, mDéfinition) {
     65         var vd = new VDéfinition(mDéfinition, that.parties.vContenusTabs, vInstanceBlocParente);
     66         listeVues[mDéfinition.uid] = vd;
     67         that.vueNormale();
     68     };
     69     
     70     this.switchDéfinition = function(_mvTabsDéfinitions, _définitionActive) {
     71         for (var i in listeVues)
     72             listeVues[i].visible(i == mvTabsDéfinitions.définitionActive().uid);
     73     };
     74 
     75     this.vueNormale = function() {
     76         if (mvTabsDéfinitions.mListeDéfinitions.définitions.length == 0) {
     77             that.parties.vContenuAucuneDéfinition.show();
     78         } else {
     79             that.parties.vContenuAucuneDéfinition.hide();
     80         }
     81         that.switchDéfinition();
     82     };
     83     
     84     // Binding
     85     mvTabsDéfinitions.mListeDéfinitions.onAddDéfinitions(this.ajoutDéfinition);
     86     mvTabsDéfinitions.onChangeDéfinitionActive(this.switchDéfinition);
     87     
     88     // Défauts
     89     this.vueNormale();
     90 }