www

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

définition.js (3697B)


      1 function MDéfinition() {
      2     makeUid(this);
      3     makeField(this, 'mTitreDéfinition', new MTitreDéfinition());
      4     makeCollection(this, 'instancesBlocs');
      5     makeCollection(this, 'connexions');
      6 }
      7 
      8 function findVPort(vInstancesBlocsFilles, mPort) {
      9     for (var i = 0; i < vInstancesBlocsFilles.length; i++) {
     10         var jtab = [vInstancesBlocsFilles[i].vBloc.vpe, vInstancesBlocsFilles[i].vBloc.vps];
     11         for (var j = 0; j < jtab.length; j++) {
     12             var ktab = jtab[j].vPortsFilles;
     13             for (var k = 0; k < ktab.length; ktab++) {
     14                 if (ktab[k].mPort == mPort) return ktab[k];
     15             }
     16         }
     17     }
     18 }
     19 
     20 function findVPortBis(vInstancesBlocsFilles, mPort) {
     21     for (var i = 0; i < vInstancesBlocsFilles.length; i++) {
     22         var jtab = [vInstancesBlocsFilles[i].vBloc.vpe, vInstancesBlocsFilles[i].vBloc.vps];
     23         for (var j = 0; j < jtab.length; j++) {
     24             var ktab = jtab[j].vPortsFilles;
     25             for (var k = 0; k < ktab.length; ktab++) {
     26                 if (ktab[k].mPort == mPort) return ktab[k];
     27             }
     28         }
     29     }
     30 }
     31 
     32 function VDéfinition(mDéfinition, emplacement, vInstanceBlocParente) {
     33     makeView(this, 'vDéfinition', emplacement, 'vTypeJs', 'vTypeD', 'vContenuJs', 'vCodeJs', 'vContenu');
     34     
     35     var vInstancesBlocsFilles = [];
     36     var that = this;
     37     
     38     // Actions
     39     this.visible = function(val) {
     40         if (val) that.vue.show();
     41         else that.vue.hide();
     42     };
     43     
     44     this.ajoutInstanceBloc = function(_mDéfinition, mInstanceBloc) {
     45         mInstanceBloc.dansDéfinition = mDéfinition; // TODO hack
     46         var vib = new VInstanceBloc(mInstanceBloc, that.parties.vContenu);
     47         vInstancesBlocsFilles.push(vib);
     48     };
     49 
     50     this.ajoutConnexion = function(_mDéfinition, mConnexion) {
     51         console.log(mConnexion);
     52         if (!mConnexion.deBloc()) {
     53             var deVPort = findVPort(vInstancesBlocsFilles, mConnexion.deMPort());
     54         } else {
     55             var deVPort = findVPort([vInstanceBlocParente], mConnexion.deMPort());
     56         }
     57         if (!mConnexion.versBloc()) {
     58             var versVPort = findVPort(vInstancesBlocsFilles, mConnexion.versMPort());
     59         } else {
     60             var versVPort = findVPort([vInstanceBlocParente], mConnexion.versMPort());
     61         }
     62         var mvic = new MVInstanceConnexion(null, deVPort.vue, versVPort.vue);
     63         new VInstanceConnexion(mvic, $('#éditeur'));
     64     }
     65     
     66     this.estTypeJs = false;
     67     this.vueNormale = function() {
     68         if (that.estTypeJs) {
     69             that.parties.vTypeJs.hide();
     70             that.parties.vContenu.hide();
     71             that.parties.vTypeD.show();
     72             that.parties.vContenuJs.show();
     73         } else {
     74             that.parties.vTypeJs.show();
     75             that.parties.vContenu.show();
     76             that.parties.vTypeD.hide();
     77             that.parties.vContenuJs.hide();
     78         }
     79     }
     80     
     81     this.typeJavaScript = function() {
     82         that.estTypeJs = true;
     83         that.vueNormale();
     84     };
     85     
     86     this.typeDataflow = function() {
     87         that.estTypeJs = false;
     88         that.vueNormale();
     89     };
     90     
     91     // Binding
     92     mDéfinition.onAddInstancesBlocs(this.ajoutInstanceBloc);
     93     for (var i = 0; i < mDéfinition.instancesBlocs.length; i++) {
     94         this.ajoutInstanceBloc(mDéfinition, mDéfinition.instancesBlocs[i]);
     95     }
     96     
     97     mDéfinition.onAddConnexions(this.ajoutConnexion);
     98     for (var i = 0; i < mDéfinition.connexions.length; i++) {
     99         this.ajoutConnexion(mDéfinition, mDéfinition.connexions[i]);
    100     }
    101     
    102     that.parties.vTypeJs.click(this.typeJavaScript);
    103     that.parties.vTypeD.click(this.typeDataflow);
    104     
    105     // Défauts
    106     this.vueNormale();
    107 }