commit adca7665b3f777eb8edcbfcf6511c8250514bbef
parent 1cf11cd1f67b40768582604c8a4801aac79b29c2
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Sun, 12 Sep 2010 22:07:12 +0200
Mise à jour de la vue lors de la suppression de noeuds + vérification des indices pour l'insertion et la suppression.
Diffstat:
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/editeur.js b/editeur.js
@@ -4,6 +4,14 @@ $(function() {
});
});
+function inRange(x, min, max) {
+ if (typeof x != "number") {
+ return 0;
+ } else {
+ return Math.min(Math.max(min,x), max);
+ }
+}
+
Object.keys = function(object) {
var keys = [];
for (var k in object) {
@@ -92,9 +100,12 @@ $.fn.extend({
} else if (position >= html.children().size()) {
v.appendTo(html);
} else {
- v.insertAfter(html.children().eq(position));
+ v.insertBefore(html.children().eq(position));
}
});
+ modèle.supprimerEnfant.ajouterÉcouteur(function(position) {
+ html.children().eq(position).remove();
+ });
return this;
},
bindText: function(valeur) {
@@ -307,6 +318,7 @@ var créerDocument = function(schémasTypesNoeud) {
insérerEnfant: function(noeud, position) {
if (noeud.parent() !== null)
noeud.supprimer();
+ position = inRange(position, 0, privé_enfants.length);
privé_enfants.splice(position, 0, noeud);
// noeud.setParent() doit être appellé après l'insertion
// car setParent vérifie qu'on est bien le parent.
@@ -314,6 +326,7 @@ var créerDocument = function(schémasTypesNoeud) {
écoutableInsérer.déclencherÉcouteurs(noeud, position);
},
supprimerEnfant: function(position) {
+ position = inRange(position, 0, privé_enfants.length - 1);
var e = privé_enfants.splice(position, 1)[0];
e.setParent(null);
écoutableSupprimer.déclencherÉcouteurs(position);
diff --git a/todo b/todo
@@ -16,4 +16,5 @@ Utiliser LESS au lieu de CSS : http://github.com/cloudhead/less.js/tree/master/d
Court-terme :
-noeud.insérerEnfant(n,pos) doit vérifier que pos n'est pas > nbEnfants et pas < 0
-\ No newline at end of file
+noeud.insérerEnfant(n,pos) doit vérifier que pos n'est pas > nbEnfants et pas < 0 . Idem pour supprimer.
+Libérer les ressources en arrêtant d'écouter la suppression des enfants quand on est supprimé.
+\ No newline at end of file