www

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

commit 86dbea6e85f296d42544172bb080036f5cf9291e
parent a4c7ddbda7047c17bff30208051a383cb395162c
Author: gduperon <gduperon@5d9ba3ac-444b-4713-9fb3-0b58e79229a2>
Date:   Fri, 30 Apr 2010 00:55:30 +0000

liens entre blocs, partie graphique : presque ok

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

Diffstat:
Mjside/blocs.js | 21++++++++++++++++-----
Mjside/connexions.js | 40++++++++++++++++++++++++++++++++--------
Mjside/extensions-jQuery.js | 1-
Mjside/index.html | 57+++++++++++++++++++++++++++++++++++++++++++++++----------
Mjside/init.js | 5++++-
Mjside/recherche.js | 2++
Mjside/style.css | 43+++++++++++++++++++++++--------------------
7 files changed, 124 insertions(+), 45 deletions(-)

diff --git a/jside/blocs.js b/jside/blocs.js @@ -47,6 +47,9 @@ function nouveauBloc(nom) { .toDom() .attr('id', "edition-" + b.uid) .hide() + .find('.port') + .mousedown(uiLierBlocs) + .end() .appendTo('#edition-blocs'); return b; @@ -87,16 +90,24 @@ function utiliser(uid, uidParent) { .find('.port') .mousedown(uiLierBlocs) .end() - .appendTo('#edition-' + uidParent); + .appendTo('#edition-' + uidParent + ' .contenu:first'); } function uiReduireBloc () { $(this) - .toggleClass('icone-moins') - .toggleClass('icone-plus') + /*.toggleClass('icone-moins') + .toggleClass('icone-plus')*/ .parents('.bloc') - .find('.contenu') + .find('.tete') + .toggle() + .end() + .find('.contenu .description') + .toggle() + .end() + .find('.contenu .titre') .toggle() .end() - .toggleResizable(); + .toggleResizable() + // TODO : devrait envoyer 'reduire' un coup sur deux, et 'agrandir' sinon + .trigger('reduire'); } diff --git a/jside/connexions.js b/jside/connexions.js @@ -17,7 +17,6 @@ function uiActualiserLien(_de, _vers, segments) { $(segment3) .width((vers.centerX() - de.centerX()) / 2) .position({my: 'right center', at: 'center', of: vers}); - $w.debug = [$(segment3), vers]; var neg = segment3.centerY() - segment1.centerY(); @@ -58,17 +57,42 @@ function uiLierBlocs() { lienBlocsActif.elems.unbind('.creerLien'); segments.remove(); lienBlocsActif.actif = false; - return true; + return false; }); } else { log("Connexion lien blocs"); - with (lienBlocsActif) { - elems.unbind('.creerLien'); - actif = false; - debug = this; - uiActualiserLien(start, this, segments); + + // Création du lien + var lien = { + start: $(lienBlocsActif.start), + end: $(this), + segments: $(lienBlocsActif.segments) + }; + + // Un lien a été créé, on est à l'écoute de nouveaux liens + // (et non plus à l'écoute de la fin d'une connexion) + lienBlocsActif.elems.unbind('.creerLien'); + lienBlocsActif.actif = false; + + debugg = lien; + if ((lien.start.parents('.bloc:last')[0] == lien.end.parents('.bloc:last')[0]) + || (lien.start.hasClass('entree') && lien.end.hasClass('entree')) + || (lien.start.hasClass('sortie') && lien.end.hasClass('sortie'))) { + log("abc"); + lien.segments.remove(); + return; } - return true; + + // Mise à jour des positions des segments lors des drag, etc. + $(lien.start).parents('.bloc:last') + .add($(lien.end).parents('.bloc:last')) + .bind('reduire dragstart drag dragstop resizestart resize resizestop', function (event) { + uiActualiserLien(lien.start, lien.end, lien.segments); + }); + + // Et on re-dessine le lien bien en place maintenant que la cible + // est un port et non plus la souris. + uiActualiserLien(lien.start, lien.end, lien.segments); } return false; diff --git a/jside/extensions-jQuery.js b/jside/extensions-jQuery.js @@ -73,7 +73,6 @@ jQuery.fn.extend({ return this.offY.apply(this, arguments); }, centerX: function() { - debug = this; return this.offX() + (this.width() / 2); }, centerY: function() { diff --git a/jside/index.html b/jside/index.html @@ -81,12 +81,42 @@ <script type="text/x-jqote-template" id="modele-edition-bloc"> <![CDATA[ <div class="editionBloc"> - <div class="tete"> - <!--<span class="reduire icone icone-moins"></span>--> - <%= this.nom %> - </div> - <div class="contenu"> - </div> + <table class="agencement-bloc"> + <tbody> + <tr style="height: 1em;" class="tete"> + <td colspan="3"> + <span class="reduire icone icone-moins"></span> + <%= this.nom %> + </td> + </tr> + <tr> + <td class="ports sortie"> + <table class="ports sortie"> + <tbody> + <% for (i = 0; i < this.entrees; i++) { %> + <tr> + <td class="port sortie"><div class="symbole"></td><!--●--> + </tr> + <% } %> + </tbody> + </table> + </td> + <td style="text-align:center;" class="contenu"> + </td> + <td class="ports entree"> + <table class="ports entree"> + <tbody> + <% for (i = 0; i < this.sorties; i++) { %> + <tr> + <td class="port entree"><div class="symbole"></div></td> + </tr> + <% } %> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> </div> ]]> </script> @@ -95,8 +125,8 @@ <div class="bloc"> <table class="agencement-bloc"> <tbody> - <tr style="height: 1em;"> - <td colspan="3" class="tete"> + <tr style="height: 1em;" class="tete"> + <td colspan="3"> <span class="reduire icone icone-moins"></span> <%= this.nom %> </td> @@ -107,14 +137,21 @@ <tbody> <% for (i = 0; i < this.entrees; i++) { %> <tr> - <td class="port entree"><div class="port symbole"></td><!--●--> + <td class="port entree"><div class="symbole"></td><!--●--> </tr> <% } %> </tbody> </table> </td> <td style="text-align:center;" class="contenu"> - <%= this.description %> + <div class="description"> + <%= this.description %> + </div> + <div class="titre"> + <span class="reduire"> + <%= this.nom %> + </span> + </div> </td> <td class="ports sortie"> <table class="ports sortie"> diff --git a/jside/init.js b/jside/init.js @@ -20,7 +20,10 @@ function init() { $('#nouveau-bloc').blink(); rechercher(''); - // Demo + demo(); +} + +function demo() { var a = nouveauBloc("abcd"); var b = nouveauBloc("bc"); var c = nouveauBloc("xyz"); diff --git a/jside/recherche.js b/jside/recherche.js @@ -34,6 +34,7 @@ function rechercher(terme) { .find('.editer') .click(function() { + arreterRecherche(); uiEditer(elem.uid); return false; }) @@ -41,6 +42,7 @@ function rechercher(terme) { .find('.utiliser') .click(function() { + arreterRecherche(); uiUtiliser(elem.uid); return false; }) diff --git a/jside/style.css b/jside/style.css @@ -150,6 +150,11 @@ body { background-color: lightgray; } +.bloc .contenu .titre { + display: none; + text-align: center; +} + .bloc .tete { text-align: center; } @@ -162,37 +167,26 @@ body { padding: 0.4em; } -.bloc .ports { - width:100%; +/* Ports */ + +.ports { height:100%; width: 1em; + padding: 0; + border-collapse: collapse; } -.bloc .ports.sortie { +.ports.sortie { text-align: right; } -.bloc .ports.entree { +.ports.entree { text-align: left; } -.bloc .port.sortie:hover { - color: green; -} - -.bloc .port.entree:hover { - color: green; -} - -/* Liens */ -.lien { - background-color: lightblue; - position: absolute; - height: 5px; - width: 5px; -} - .port .symbole { + position: relative; + z-index: 10; width: 10px; height: 10px; background-color: lightblue; @@ -205,6 +199,15 @@ body { border-color: green; } +/* Liens */ +.lien { + background-color: lightblue; + position: absolute; + height: 5px; + width: 5px; +} + + /*.segment-1 { background-color: lightgreen;