bloc.js (3940B)
1 function MBloc() { 2 makeUid(this); 3 makeField(this, 'mTitreBloc', new MTitreBloc()); 4 makeField(this, 'mListePortsEntrée', new MListePorts(true)); 5 makeField(this, 'mListePortsSortie', new MListePorts(false)); 6 makeField(this, 'mListeDéfinitions', new MListeDéfinitions()); 7 } 8 9 function VBloc(mBloc, emplacement, mInstanceBloc_portClick, vInstanceBlocParente) { 10 makeView(this, 'vBloc', emplacement, 'vTitreBloc', 'vListePortsEntrée', 'vListePortsSortie', 'vTitresTabsDéfinitions', 'vContenusTabsDéfinitions'); 11 new VTitreBloc(mBloc.mTitreBloc(), this.parties.vTitreBloc); 12 var vpe = new VListePorts(mBloc.mListePortsEntrée(), this.parties.vListePortsEntrée); 13 var vps = new VListePorts(mBloc.mListePortsSortie(), this.parties.vListePortsSortie); 14 this.vpe = vpe; 15 this.vps = vps; 16 17 this.mvTabsDéfinitions = new MVTabsDéfinitions(mBloc.mListeDéfinitions()); 18 19 new VTitresTabsDéfinitions(this.mvTabsDéfinitions, this.parties.vTitresTabsDéfinitions, vInstanceBlocParente); 20 new VContenusTabsDéfinitions(this.mvTabsDéfinitions, this.parties.vContenusTabsDéfinitions, vInstanceBlocParente); 21 22 var that = this; 23 var clicsPorts = function(mPort) { 24 singleton.portClickA.mInstanceBloc = mInstanceBloc_portClick; 25 singleton.portClickA.mDéfinition = that.mvTabsDéfinitions.définitionActive(); 26 27 if (singleton.portClickB === null) { 28 singleton.portClickB = singleton.portClickA; 29 singleton.portClickA = {}; 30 } else { 31 var a = singleton.portClickA; 32 var b = singleton.portClickB; 33 if (a.mPort == b.mPort) { 34 // Double clic, afficher la valeur du port 35 showEvalPort(a.mPort); 36 } else { 37 //console.log(singleton.portClickA, singleton.portClickB); 38 if (a.mDéfinition.uid == b.mInstanceBloc.dansDéfinition.uid) { // a parent de b 39 if (a.mListePorts.estEntrée) { 40 a.mDéfinition.addConnexions( 41 new MConnexion(true, a.mInstanceBloc, a.mPort, false, b.mInstanceBloc, b.mPort) 42 ); 43 } else { 44 a.mDéfinition.addConnexions( 45 new MConnexion(false, b.mInstanceBloc, b.mPort, true, a.mInstanceBloc, a.mPort) 46 ); 47 } 48 } else if (b.mDéfinition.uid == a.mInstanceBloc.dansDéfinition.uid) { // b parent de a 49 if (a.mListePorts.estEntrée) { 50 a.mDéfinition.addConnexions( 51 new MConnexion(true, a.mInstanceBloc, a.mPort, false, b.mInstanceBloc, b.mPort) 52 ); 53 } else { 54 a.mDéfinition.addConnexions( 55 new MConnexion(false, b.mInstanceBloc, b.mPort, true, a.mInstanceBloc, a.mPort) 56 ); 57 } 58 } else if (a.mInstanceBloc.dansDéfinition.uid == b.mInstanceBloc.dansDéfinition.uid) { // a et b même parent 59 if (a.mListePorts.estEntrée) { 60 a.mInstanceBloc.dansDéfinition.addConnexions( 61 new MConnexion(false, b.mInstanceBloc, b.mPort, false, a.mInstanceBloc, a.mPort) 62 ); 63 } else { 64 a.mInstanceBloc.dansDéfinition.addConnexions( 65 new MConnexion(false, a.mInstanceBloc, a.mPort, false, b.mInstanceBloc, b.mPort) 66 ); 67 } 68 } 69 } 70 singleton.portClickB = null; 71 singleton.portClickA = {}; 72 } 73 } 74 75 vpe.onClickPort(clicsPorts); 76 vps.onClickPort(clicsPorts); 77 } 78 79 function showEvalPort(mPort) { 80 console.log(mPort.mListePorts); 81 }