todo (1702B)
1 Ne pas créer de noeud <texte> vide ni deux contigüs (sauf explicitement) donc pas lors d'un déballage, remplacement par <texte>, emballage, suppression, modifierType. En fait, pas de <texte> contigüs. Les vides sont autorisés seulement si ils ont le focus. À réfléchir. 2 3 Toutes les opérations sur l'arbre : 4 - Nouveau noeud (avant, après, dans, autour) par rapport à sélection ou à un noeud (transformer la sélection en noeud texte, puis utiliser la même fonction que pour un noeud "normal"); 5 - Supprimer un noeud et son contenu, supprimer et garder le contenu; 6 - Modifier le type d'un noeud (important -> emphase par ex.); 7 - Couper / Copier / Coller un noeud ou une sélection. Le collage utilise la même fonction que l'insertion, couper utilise "copier" et "supprimer". 8 9 Pouvoir spécifier des restrictions sur la structure (tel noeud peut/doit contenir tel noeud, etc.) 10 11 Propriétés d'un noeud (cible pour les liens, source pour les images), pouvoir spécifier quel dialogue permet l'édition des propriétés, plus l'apparence du noeud (icône lien -> quand on clique, ouvre le dialogue ?). + pouvoir manipuler le contenu (texte) du noeud directement depuis le "dialogue". En fait, le "dialogue" ne devrait être qu'une variation du textarea "éditeur". 12 13 Faire du M(VC) !!! Modèle -> objet javascript (DOM + focus), vue/contrôleur -> arbre, aperçu, paneau d'édition 14 15 Utiliser LESS au lieu de CSS : http://github.com/cloudhead/less.js/tree/master/dist/ 16 17 Court-terme : 18 19 noeud.insérerEnfant(n,pos) doit vérifier que pos n'est pas > nbEnfants et pas < 0 . Idem pour supprimer. 20 Libérer les ressources en arrêtant d'écouter la suppression des enfants quand on est supprimé.