Attribut au comportement bizarre

cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010 - 1 avril 2007 à 02:39
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010 - 1 avril 2007 à 15:07
Bon alors voila ... C'est mon premier code en javascript j'ai commence vendredi soir (y'a deux jours)
Resultat :
C'est la gelere, le JS c'est moche, c'est inutilement compliqué ...
Bref pour trouver de bon tutos sur le net c'est quand meme la galere et ils sont pas plus simple que des bon vieux template C++.
Mais j'ai réussi à faire quelquechose !!

Voici le code (trop long à paster ici )

http://rafb.net/p/4wyBvE75.html

EXPLICATION :

J'explique le probleme pour que vous puissez comprendre le code et mon probleme rapidement.
Typiquement je voulais faire un google gadget.
Je connais rien au technos web et va bien falloir que je m'y mette un jour ...
autant commencer en faisant quelquechose  qui peut etre marrant
Je voulais donc faire/refaire un gadget pour gerer mes favoris AVEC des dossiers, ce que les autres ne font pas a ma connaissance (ils utilisent des labels)

J'ai donc definit trois classes :
-- une classe de base abstraite : Item
-- deux classes filles final : Folder et Favori
(ouais je sais c'est bookmark en anglais ... faites pas c**** :p lol )
Ces trois classes forme un design patern : "Composante" bref c'est la modelisation typique pour les systeme de fichier , appliqué au favoris ici :)

Grosso modo je pars d'une de chaine de caractere "$;Root;false;{-;Yahoo;www.yahoo.fr;|}0|"; pour laquelle j'ai definit un format perso .. et je construit le treeview de mes favoris. Donc ici il s'agit d'un Folder "Root" et d'un Favori "Yahoo"

Donc typiquement cela se passe comme ca :

ligne 195 :
On construit le folder Root. Les deux arguments sont ininteressants pour le probleme donc vous fatiguez pas...
ligne 196 :
Une fois construit on rempli l'objet en appelant la fonction Import et lui passant la chaine de caractere en argument pour init des valeurs internes.
La premiere chose que fait la fonction Import de Folder est d'appeller la fonction Import de sa classe de base : Item.Import.
(j'ai l'impression que c'est la que se situe le probleme mais bon ...)
Item.Import initialise ainsi la donné qui me pose probleme : "caption" et utilise uen alerte pour afficher sa valeur : "Root"
ensuite on sort de Item.Import et on effectue Folder.Import
Root se rend compte qu'il y a un favori dans le dossier ..
ligne 134:
Il instancie un Item de type Favori dans la variable "item"et appelle sa methode import.
Meme chose que precedement : Favori.Import appelle Item.Import, le caption de "item" est normalement mis a "Yahoo",
l'alerte le prouve ...
bref on continue on sort .. et on revient au tout debut

ligne 199: on appelle la methode root.to_HTML qui va dumper, sous forme HTML, le contenu du treeview super simple que l'on vient de construire .
Et c'est LA que j'ai un PROBLEME !!!
Les deux methodes to_HTML utilise this.caption et pourtant :
le root qui avait initialisé son caption à "Root" contient ce que devrait contenir le Favori,c'ets a dire Yahoo
et le Favori ne contient plus rien (ligne 89) !!!!!!!!!!?

Qui peut m'expliquer ca  ?

Merci d'avance !!!

-={[ Zeroc00l ]}=-

4 réponses

cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
1 avril 2007 à 02:47
Je précise que j'utilise IE 7
Noooooon me frappez pas ! ^_^

-={[ Zeroc00l ]}=-
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 avril 2007 à 14:04
Bonjour,

>>..j'ai commence..y'a deux jours
    ben pour apprendre un langage, c'est pas vieux

>>JS c'est moche, c'est inutilement compliqué ...
    ben ? ne l'utilise pas si cela ne te plais pas !
    perso je n'aime pas c ou c++, je n'en use pas, point barre.

>>sont pas plus simple que des bon vieux template C++.
    ça veut dire quoi ? c++ c'est compliqué ?
    pas d'accord, mais faut l'utiliser pour ce qu'il est fait :
        un soft de base, un logiciel très pointu...
        pas pour des applications "normales"

>>Mais j'ai réussi à faire quelquechose !!
    chapeau ! bravo !

>>Voici le code (trop long à paster ici )
    ben... postes seulement ce qui pose problème
    faire une analyse du souci et poster l'essentiel  :
        99% du temps on résoud tout seul.

>>Je précise que j'utilise IE 7
>>Noooooon me frappez pas ! ^_^
    lamentable.
    je sais qu'il est de bon ton de dénigrer IE ( enfin, parmi les incompétents... )
    mais même remarque qu'au début : si tu n'aimes pas
        n'utilises pas, il existe de superbes alternatives.

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]           




<hr />
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
1 avril 2007 à 15:00
>>>>..j'ai commence..y'a deux jours
>>    ben pour apprendre un langage, c'est pas vieux
J'ai vite fait le tour de ce qu'on pouvait trouver sur le net comme info

>>>>JS c'est moche, c'est inutilement compliqué ...
>>    ben ? ne l'utilise pas si cela ne te plais pas !
>>    perso je n'aime pas c ou c++, je n'en use pas, point barre.
J'ai jamais touche au technos web ... donc j'ai pas trop le choix.
Pour faire un google gadget c'ets encore le moyen le plus simple.
T'es peut etre un free lance mais dans la vie ou travaille pas tjrs avec ce qu'on veut.

>>>>sont pas plus simple que des bon vieux template C++.
>>    ça veut dire quoi ? c++ c'est compliqué ?
>>    pas d'accord, mais faut l'utiliser pour ce qu'il est fait :
>>        un soft de base, un logiciel très pointu...
>>        pas pour des applications "normales"
Je dis ca parce la plupart des gens trouve que le C++ est trop compliqué.
Et ben je trouve que javascript l'est beaucoup plus !
On peut faire de la prog fonctionnel alors qu'en C++ difficilement.
C'est dû au fait que javascript soit interpreté

>>>>Mais j'ai réussi à faire quelquechose !!
>>    chapeau ! bravo !
Merci :/

>>>>Voici le code (trop long à paster ici )
>>    ben... postes seulement ce qui pose problème
>>    faire une analyse du souci et poster l'essentiel  :
>>        99% du temps on résoud tout seul.
Mon explication (vous aller perdre 2 minutes à la lire)
vous fait gagner normalement les 10 minutes que vous auriez passé à comprendre le code

>>Je précise que j'utilise IE 7
>>Noooooon me frappez pas ! ^_^
>>    lamentable.
>>    je sais qu'il est de bon ton de dénigrer IE ( enfin, parmi les incompétents... )
>>    mais même remarque qu'au début : si tu n'aimes pas
>>        n'utilises pas, il existe de superbes alternatives.

Tu connais l'humour ?
Tu te rappelle des figures de style que t'a peut etre appris en francais dans ta jeunesse !
Je blaguais .. J'utilise IE7 tout les jours parce que firefox des que je passe une aprem midi dessus je suis oblige de totue fermer tellement il prend de RAM !
(IE7 c'est pire... Je monte a 1Go de Ram et il me fait sans arret des penuries de handle)
Quand on developpe quelquechose, on s'adapte a son public ... Quand tu vois ces chiffres :
http://www.xitimonitor.com/fr-fr/technique/ie7-et-ff2-mars-2007/index-1-1-3-78.html
Ben c'est commercialement une mauvaise idée de s'isoler comme un geek au milieu de ses outils prefere.

La prochaine fois j'aimerais des remarques concernant mon probleme siouplait
Je mords que si on me cherche et qu'on me fait des critiques non constructives
(dès que c'est en rapport avec le probleme c'est constructif pour moi)

-={[ Zeroc00l ]}=-
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
1 avril 2007 à 15:07
Bon sinon le line n'est deja plus valable ...


Je vais donc simplifie le probleme avant de le reposter !

-={[ Zeroc00l ]}=-
0
Rejoignez-nous