www

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

commit b6281723c4a699aeee0fd7b77fa534b7c8147d90
parent bb7c20d61677e5138fab9c251866aacc90e87831
Author: gduperon <gduperon@5d9ba3ac-444b-4713-9fb3-0b58e79229a2>
Date:   Wed, 19 May 2010 08:43:50 +0000

On commence eval()

git-svn-id: https://projetud.info-ufr.univ-montp2.fr/svn/flin607-2009-gduperon@65 5d9ba3ac-444b-4713-9fb3-0b58e79229a2

Diffstat:
Mjside4/bugs | 18++++++++++--------
Mjside4/index.html | 12+++++++++---
Mjside4/mvc/bloc.js | 17+++++++++++------
Mjside4/mvc/définition.js | 68+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Mjside4/mvc/instance-bloc.js | 2+-
Mjside4/mvc/instance-connexion.js | 3++-
Mjside4/mvc/liste-ports.js | 2++
Mjside4/mvc/port.js | 2++
Mjside4/mvc/tabs-définitions.js | 5++---
Mjside4/style2.css | 4++--
Mjside4/test.js | 2++
11 files changed, 104 insertions(+), 31 deletions(-)

diff --git a/jside4/bugs b/jside4/bugs @@ -2,16 +2,18 @@ Renomer les onAddXyz() en xyz.onAdd() +Plein de bugs depuis que j'ai mis ces *** connexions + TODO: -Afficher les connexions -- Chercher la vue du port d'entrée -- Chercher la vue du port de sortie -- Connecter +ok Afficher les connexions +ok - Chercher la vue du port d'entrée +ok - Chercher la vue du port de sortie +ok - Connecter -Types de définitions -- Afficher 2 boutons -- ajouter un champ texte -- toggle sur le champ texte +ok Types de définitions +ok - Afficher 2 boutons +ok - ajouter un champ texte +ok - toggle sur le champ texte Eval - chercher la connexion qui va sur le port diff --git a/jside4/index.html b/jside4/index.html @@ -54,7 +54,7 @@ <link rel="stylesheet" type="text/css" href="style.css" /> <link rel="stylesheet" type="text/css" href="style2.css" /> </head> - <body style="position: absolute;" id="editeur"> + <body style="position: absolute;"> <div id="éditeur"> </div> <div id="vues" style="display: none;"> @@ -105,9 +105,15 @@ </form> </div> <div class="vDéfinition"> - <div class="vContenu"> - 42. + <input type="button" class="vTypeJs" value="JavaScript"/> + <input type="button" class="vTypeD" value="Dataflow"/> + <div class="vContenuJs"> + <textarea class="vCodeJs">function() { + return []; +} +</textarea> </div> + <div class="vContenu"></div> </div> <div class="vConnexion"> <div class="vSegment1 lien horizontal"></div> diff --git a/jside4/mvc/bloc.js b/jside4/mvc/bloc.js @@ -6,16 +6,18 @@ function MBloc() { makeField(this, 'mListeDéfinitions', new MListeDéfinitions()); } -function VBloc(mBloc, emplacement, mInstanceBloc_portClick) { +function VBloc(mBloc, emplacement, mInstanceBloc_portClick, vInstanceBlocParente) { makeView(this, 'vBloc', emplacement, 'vTitreBloc', 'vListePortsEntrée', 'vListePortsSortie', 'vTitresTabsDéfinitions', 'vContenusTabsDéfinitions'); new VTitreBloc(mBloc.mTitreBloc(), this.parties.vTitreBloc); var vpe = new VListePorts(mBloc.mListePortsEntrée(), this.parties.vListePortsEntrée); var vps = new VListePorts(mBloc.mListePortsSortie(), this.parties.vListePortsSortie); + this.vpe = vpe; + this.vps = vps; this.mvTabsDéfinitions = new MVTabsDéfinitions(mBloc.mListeDéfinitions()); - new VTitresTabsDéfinitions(this.mvTabsDéfinitions, this.parties.vTitresTabsDéfinitions); - new VContenusTabsDéfinitions(this.mvTabsDéfinitions, this.parties.vContenusTabsDéfinitions); + new VTitresTabsDéfinitions(this.mvTabsDéfinitions, this.parties.vTitresTabsDéfinitions, vInstanceBlocParente); + new VContenusTabsDéfinitions(this.mvTabsDéfinitions, this.parties.vContenusTabsDéfinitions, vInstanceBlocParente); var that = this; var clicsPorts = function(mPort) { @@ -30,6 +32,7 @@ function VBloc(mBloc, emplacement, mInstanceBloc_portClick) { var b = singleton.portClickB; if (a.mPort == b.mPort) { // Double clic, afficher la valeur du port + showEvalPort(a.mPort); } else { //console.log(singleton.portClickA, singleton.portClickB); if (a.mDéfinition.uid == b.mInstanceBloc.dansDéfinition.uid) { // a parent de b @@ -52,9 +55,7 @@ function VBloc(mBloc, emplacement, mInstanceBloc_portClick) { new MConnexion(false, b.mInstanceBloc, b.mPort, true, a.mInstanceBloc, a.mPort) ); } - } - - if (a.mInstanceBloc.dansDéfinition.uid == b.mInstanceBloc.dansDéfinition.uid) { // a et b même parent + } else if (a.mInstanceBloc.dansDéfinition.uid == b.mInstanceBloc.dansDéfinition.uid) { // a et b même parent if (a.mListePorts.estEntrée) { a.mInstanceBloc.dansDéfinition.addConnexions( new MConnexion(false, b.mInstanceBloc, b.mPort, false, a.mInstanceBloc, a.mPort) @@ -73,4 +74,8 @@ function VBloc(mBloc, emplacement, mInstanceBloc_portClick) { vpe.onClickPort(clicsPorts); vps.onClickPort(clicsPorts); +} + +function showEvalPort(mPort) { + console.log(mPort.mListePorts); } \ No newline at end of file diff --git a/jside4/mvc/définition.js b/jside4/mvc/définition.js @@ -5,8 +5,32 @@ function MDéfinition() { makeCollection(this, 'connexions'); } -function VDéfinition(mDéfinition, emplacement) { - makeView(this, 'vDéfinition', emplacement, 'vContenu'); +function findVPort(vInstancesBlocsFilles, mPort) { + for (var i = 0; i < vInstancesBlocsFilles.length; i++) { + var jtab = [vInstancesBlocsFilles[i].vBloc.vpe, vInstancesBlocsFilles[i].vBloc.vps]; + for (var j = 0; j < jtab.length; j++) { + var ktab = jtab[j].vPortsFilles; + for (var k = 0; k < ktab.length; ktab++) { + if (ktab[k].mPort == mPort) return ktab[k]; + } + } + } +} + +function findVPortBis(vInstancesBlocsFilles, mPort) { + for (var i = 0; i < vInstancesBlocsFilles.length; i++) { + var jtab = [vInstancesBlocsFilles[i].vBloc.vpe, vInstancesBlocsFilles[i].vBloc.vps]; + for (var j = 0; j < jtab.length; j++) { + var ktab = jtab[j].vPortsFilles; + for (var k = 0; k < ktab.length; ktab++) { + if (ktab[k].mPort == mPort) return ktab[k]; + } + } + } +} + +function VDéfinition(mDéfinition, emplacement, vInstanceBlocParente) { + makeView(this, 'vDéfinition', emplacement, 'vTypeJs', 'vTypeD', 'vContenuJs', 'vCodeJs', 'vContenu'); var vInstancesBlocsFilles = []; var that = this; @@ -26,17 +50,44 @@ function VDéfinition(mDéfinition, emplacement) { this.ajoutConnexion = function(_mDéfinition, mConnexion) { console.log(mConnexion); if (!mConnexion.deBloc()) { - for (i = 0; i < vInstancesBlocsFilles.length; i++) { - console.log(vInstancesBlocsFilles[i]); - } + var deVPort = findVPort(vInstancesBlocsFilles, mConnexion.deMPort()); + } else { + var deVPort = findVPort([vInstanceBlocParente], mConnexion.deMPort()); + } + if (!mConnexion.versBloc()) { + var versVPort = findVPort(vInstancesBlocsFilles, mConnexion.versMPort()); + } else { + var versVPort = findVPort([vInstanceBlocParente], mConnexion.versMPort()); } - /*var mvic = new MVInstanceConnexion(null, vib.vue, vib2.vue); */ - /*new VInstanceConnexion(mvic, $('#éditeur')); */ + var mvic = new MVInstanceConnexion(null, deVPort.vue, versVPort.vue); + new VInstanceConnexion(mvic, $('#éditeur')); } + this.estTypeJs = false; this.vueNormale = function() { + if (that.estTypeJs) { + that.parties.vTypeJs.hide(); + that.parties.vContenu.hide(); + that.parties.vTypeD.show(); + that.parties.vContenuJs.show(); + } else { + that.parties.vTypeJs.show(); + that.parties.vContenu.show(); + that.parties.vTypeD.hide(); + that.parties.vContenuJs.hide(); + } } + this.typeJavaScript = function() { + that.estTypeJs = true; + that.vueNormale(); + }; + + this.typeDataflow = function() { + that.estTypeJs = false; + that.vueNormale(); + }; + // Binding mDéfinition.onAddInstancesBlocs(this.ajoutInstanceBloc); for (var i = 0; i < mDéfinition.instancesBlocs.length; i++) { @@ -48,6 +99,9 @@ function VDéfinition(mDéfinition, emplacement) { this.ajoutConnexion(mDéfinition, mDéfinition.connexions[i]); } + that.parties.vTypeJs.click(this.typeJavaScript); + that.parties.vTypeD.click(this.typeDataflow); + // Défauts this.vueNormale(); } \ No newline at end of file diff --git a/jside4/mvc/instance-bloc.js b/jside4/mvc/instance-bloc.js @@ -6,7 +6,7 @@ function MInstanceBloc(mBloc) { function VInstanceBloc(mInstanceBloc, emplacement) { makeView(this, 'vInstanceBloc', emplacement, 'vBloc'); - this.vBloc = new VBloc(mInstanceBloc.mBloc(), this.parties.vBloc, mInstanceBloc); + this.vBloc = new VBloc(mInstanceBloc.mBloc(), this.parties.vBloc, mInstanceBloc, this); this.vue.draggable().resizable(); } \ No newline at end of file diff --git a/jside4/mvc/instance-connexion.js b/jside4/mvc/instance-connexion.js @@ -46,7 +46,8 @@ function VInstanceConnexion(mvInstanceConnexion, emplacement) { } // Binding - // onMove (dePort, versPort) + // onMove (dePort, versPort); + window.setInterval(this.vueNormale, 1000); // Défauts this.vueNormale(); diff --git a/jside4/mvc/liste-ports.js b/jside4/mvc/liste-ports.js @@ -8,6 +8,7 @@ function VListePorts(mListePorts, emplacement) { makeView(this, 'vListePorts', emplacement, 'vPorts', 'vNouveauPort'); this.cbClickPort = []; + this.vPortsFilles = []; var that = this; // Actions @@ -22,6 +23,7 @@ function VListePorts(mListePorts, emplacement) { this.ajoutPort = function(mListePorts, mPort) { var vp = new VPort(mPort, that.parties.vPorts); + that.vPortsFilles.push(vp); vp.onClick(that.clickPort); }; diff --git a/jside4/mvc/port.js b/jside4/mvc/port.js @@ -1,5 +1,6 @@ function MPort(mListePorts) { makeUid(this); + makeField(this, 'mListePorts', mListePorts); //makeField(this, 'connexionEntrante', null); // Oui mais… quand on a plusieurs définitions //makeCollection(this, 'connexionsSortantes'); } @@ -7,6 +8,7 @@ function MPort(mListePorts) { function VPort(mPort, emplacement) { makeView(this, 'vPort', emplacement); + this.mPort = mPort; var that = this; this.cbClick = []; diff --git a/jside4/mvc/tabs-définitions.js b/jside4/mvc/tabs-définitions.js @@ -4,7 +4,6 @@ function MVTabsDéfinitions(mListeDéfinitions) { // Modèle ou vue ??? makeField(this, 'définitionActive', 0); } -debugctr = 0; function VTitresTabsDéfinitions(mvTabsDéfinitions, emplacement) { makeView(this, 'vTitresTabsDéfinitions', emplacement, 'vTitresTabs', 'vTitreAucuneDéfinition', 'vNouvelleDéfinition'); @@ -55,7 +54,7 @@ function VTitresTabsDéfinitions(mvTabsDéfinitions, emplacement) { this.vueNormale(); } -function VContenusTabsDéfinitions(mvTabsDéfinitions, emplacement) { +function VContenusTabsDéfinitions(mvTabsDéfinitions, emplacement, vInstanceBlocParente) { makeView(this, 'vContenusTabsDéfinitions', emplacement, 'vContenusTabs', 'vContenuAucuneDéfinition'); var listeVues = {}; @@ -63,7 +62,7 @@ function VContenusTabsDéfinitions(mvTabsDéfinitions, emplacement) { // Actions this.ajoutDéfinition = function(mListeDéfinitions, mDéfinition) { - var vd = new VDéfinition(mDéfinition, that.parties.vContenusTabs); + var vd = new VDéfinition(mDéfinition, that.parties.vContenusTabs, vInstanceBlocParente); listeVues[mDéfinition.uid] = vd; that.vueNormale(); }; diff --git a/jside4/style2.css b/jside4/style2.css @@ -32,8 +32,8 @@ .lien { background-color: lightblue; position: absolute; - top: -10px; - left: -10px; + top: 10px; + left: 10px; width: 5px; height: 5px; } \ No newline at end of file diff --git a/jside4/test.js b/jside4/test.js @@ -7,9 +7,11 @@ $(function() { mFibo.mListeDéfinitions().addDéfinitions(mDéfinitionFibo); var mMoinsUn = new MBloc(); + mMoinsUn.mTitreBloc().titre('x - 1'); mDéfinitionFibo.addInstancesBlocs(new MInstanceBloc(mMoinsUn)); var mUn = new MBloc(); + mUn.mTitreBloc().titre('1'); mDéfinitionFibo.addInstancesBlocs(new MInstanceBloc(mUn)); window.setTimeout(function() {