www

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

tabs-définitions.js~ (3277B)


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