cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 29 sept. 2010 à 21:12
lol, j'ai pas ce genre de problême ... je suis rarement levé a midi :)
merci a+
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 29 sept. 2010 à 19:39
Désolé mais ce matin je ne devais pas être en forme, j'ai à nouveau regardé ton code et il respecte parfaitement l'architecture MVC et rien n'est mélangé...
En plus je t'ai mis 4 !!! Je trouve que le code est bon pourtant ! Ca mérite au moins 8 !
Bon alors reprenons :
- architecture MVC bien respectée (décomposition en packages et noms plus explicites peuvent améliorer)
- le code est propre et les objets bien utilisés
- il manque un peu de javadoc au moins sur les paramètres des constructeurs
Oui ca vaut bien 8 ou 9, je vais arreter de mettre des commentaires vers midi, je dois avoir faim et je suis un peu grogon :) délsolé
cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 29 sept. 2010 à 18:39
Pour le nom de package, c'est vrai que treeX c'est pas top. Je poste pas juste pour ca, d'autant que dans un ide, en 2 seconde c'est fait.
Par contre je comprend pas que tu dises que j'ai tout mélangé... J'ai essayé de faire gaffe à respecter le modèle MVC, si tas un exemple , je veux bien..
bye
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 29 sept. 2010 à 11:26
même remarque que edouard333 au niveau des commentaires.
Apparament, tu as essayé de respecter l'architecture MVC ce qui est une bonne idée. Cependant, tu mélanges un peu tout dans ton code, il ne suffit pas de donner des noms aux classes pour respecter l'architecture. Tu devrais te faire 3 packages avec modele, vue et controleur et là, tu sépares, tes noms de packages treeX n'apportent rien.
Ce code peut tout de même etre utile.
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 28 sept. 2010 à 17:04
Merci Kimjoa,
ça fonctionne bien maintenant, il n'y a plus d'exception! Le répertoire est déplacé et l'explorateur est actualisé (avec la première version, le répertoire était également déplacé, mais l'explorateur n'était pas actualisé à cause de l'exception).
Salutations,
André
cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 27 sept. 2010 à 15:22
salut uhrand!!
Et bien c'est bizarre j'arrive pas à avoir cette erreur de mon coté, j'ai fait toutes les manips possible sans résultat. Ca peux venir des droits d'écriture du dossier , en efet j'ai oublié d'intercepter une exception a ce niveaux... J'ai reposte en éspérant que tu n'auras plus ce problème, et j'ai corrigé un petit bug (l'expansion de dossier destination lors d'une copie ne se fessait po :()
bye
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 27 sept. 2010 à 12:25
J'ai quand même reçu une exception lors du déplacement d'un répertoire:
c:\Intel\Label
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at tree5.TreeSystemModel.refreshFilesDirectories(TreeSystemModel.java:66)
at tree5.TreeSystemController$OnPaste.doPaste(TreeSystemController.java:245)
at tree5.TreeSystemController$OnPaste.actionPerformed(TreeSystemController.java:216)
L'exception vise l'instruction suivante:
parent.removeAllChildren();
(dans la méthode refreshFilesDirectories du TreeSystemModel)
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 27 sept. 2010 à 11:16
A première vue, cela fonctionne très bien chez mois. Il y a peut-être un soucis pour le "Voisinage réseau" qui ne montre que le raccourci vers la destination et non pas la destination elle-même. Mais ça c'est un détail, à mon avis. Bon travail! Au niveau code je ne peux rien dire (je ne l'ai pas regardé).
cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 27 sept. 2010 à 03:01
hmm en faite me suis gouré. Les interface et le polymorphisme , ca n'a rien a voire. Le polymorphisme c'est juste l'exécution d'une méthode définit à l'exécution, car le compilo ne connait pas le type réelle de l'objet à la compilation. Alors que les interfaces permettent d'éviter les ambiguïté des appels de méthodes lors d'héritage multiple, mais permettent un typage "multiple" ... vais me coucher ca vaux mieux :)
cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 27 sept. 2010 à 02:04
salut edouard333, dsl pour les commentaire, c'est pas mon fort, vais essayer de t'aider ...
En faite c'est due au fait que la classe FileEditor et une implémentation de l'interface TreeCellEditor, et donc je suis obligé de définir les méthodes qu'elle déclare. C'est le rôle d'une interface, c'est comme si c'était une classe abstraite sans attribut, et dont les méthodes serait toutes abstraites. Les interfaces sont très présente en java, car le langage ne permet pas l'héritage multiple....
Par exemple un objet est déclaré (typé) par une classe. Mais ce type dois faire partie de la chaine des classes que se classe de base hérite. (par exemple un objet JFrame peux être typé en JFrame ou en Component ou en Object).
A partir de ce type, le compilateur sait qu'elle méthodes ou attribut l'objet dispose, et sait ou les trouver ... c'est ce qui définit un langage à typage statique.
Les interfaces permettent de typer un objet dans autre choses que ses types de classes dérivé, car la classe implémentant l'interface n'hérites pas de l'interface, mais juste de son type et de la signature de ses méthodes.
Les interfaces sont très lié au polymorphisme, qui est la faculté aux runtime d'invoquer une méthode non pas par rapport aux type déclarer de l'objet , mais par rapport à son type réelle.
Si le java à préférer avoir un typage multiple via les interfaces, mais limites la dérivation à une seule classe, c'est notamment due aux problèmes d'invocations des méthodes polymorphique. Car dans un langage à héritage multiple, un ensemble de méthode peux être invoqué, dans le cas ou la classe dérivé ne sur-définirait pas la méthodes en question....
Voilà voilà, perso, je comprend pas trops la logique java, rien n'empêche au programmeur de définir précieusement la méthode à invoquer lors d'un tel appelle de méthode mais, bon j'ai ptète zapper un truc ^^
a++
edouard333
Messages postés62Date d'inscriptionsamedi 23 décembre 2000StatutMembreDernière intervention18 décembre 20111 26 sept. 2010 à 18:05
J'ai un peu regarder ton code source, et il manque des commantaires, je n'arrive à rien déchiffrer.
Je ne vois pas l'intérêt de faire:
public boolean shouldSelectCell(EventObject anEvent) {
return true; <-- Autant dire directement true, que faire un méthode, non?
}
public boolean stopCellEditing() {
return true;
}
public void cancelCellEditing() {
} <-- Ici, la méthode est vide, quelle est l'intérêt, sauf si c'était un class abstraite mais se n'en n'est pas une.
public void addCellEditorListener(CellEditorListener l) {
}
public void removeCellEditorListener(CellEditorListener l) {
}
Des commantaires expliqueraient bien tout ça. Je ne dis pas ça méchament, mais à titre d'information, ici c'est pour s'entraider.
:)
cs_Kimjoa
Messages postés262Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention19 septembre 2014 26 sept. 2010 à 14:52
merci pour ton commentaire edouard333 ;).
Je me suis rendue compte que bien des choses pouvait être amélioré, surtout au niveau de l'organisation du code , pour le rendre plus génériques,via un package de base JTreeMutable, définissant des écouteurs et classes listener, du genre addTreeRenameListener ou TreeTriggerMenuListener .. Puis ensuite étendre les classe qui faux pour un système de fichier ...
J'aurais bien aimé avoir le temps de revoir le code, mais ca va être chaud pour le moment, mais il n'empêche qui peux permetre aux débutant de comprendre un peux le mécanisme, et même peux être implémenté dans des petits projet, comme le mien pour moi :)
a++
edouard333
Messages postés62Date d'inscriptionsamedi 23 décembre 2000StatutMembreDernière intervention18 décembre 20111 26 sept. 2010 à 14:01
Je n'ai pas encore regarder ton code, mais dans l'ensemble l'utilisation de ce code est bien, facile à utiliser.
29 sept. 2010 à 21:12
merci a+
29 sept. 2010 à 19:39
En plus je t'ai mis 4 !!! Je trouve que le code est bon pourtant ! Ca mérite au moins 8 !
Bon alors reprenons :
- architecture MVC bien respectée (décomposition en packages et noms plus explicites peuvent améliorer)
- le code est propre et les objets bien utilisés
- il manque un peu de javadoc au moins sur les paramètres des constructeurs
Oui ca vaut bien 8 ou 9, je vais arreter de mettre des commentaires vers midi, je dois avoir faim et je suis un peu grogon :) délsolé
29 sept. 2010 à 18:39
Par contre je comprend pas que tu dises que j'ai tout mélangé... J'ai essayé de faire gaffe à respecter le modèle MVC, si tas un exemple , je veux bien..
bye
29 sept. 2010 à 11:26
Apparament, tu as essayé de respecter l'architecture MVC ce qui est une bonne idée. Cependant, tu mélanges un peu tout dans ton code, il ne suffit pas de donner des noms aux classes pour respecter l'architecture. Tu devrais te faire 3 packages avec modele, vue et controleur et là, tu sépares, tes noms de packages treeX n'apportent rien.
Ce code peut tout de même etre utile.
28 sept. 2010 à 17:04
ça fonctionne bien maintenant, il n'y a plus d'exception! Le répertoire est déplacé et l'explorateur est actualisé (avec la première version, le répertoire était également déplacé, mais l'explorateur n'était pas actualisé à cause de l'exception).
Salutations,
André
27 sept. 2010 à 15:22
Et bien c'est bizarre j'arrive pas à avoir cette erreur de mon coté, j'ai fait toutes les manips possible sans résultat. Ca peux venir des droits d'écriture du dossier , en efet j'ai oublié d'intercepter une exception a ce niveaux... J'ai reposte en éspérant que tu n'auras plus ce problème, et j'ai corrigé un petit bug (l'expansion de dossier destination lors d'une copie ne se fessait po :()
bye
27 sept. 2010 à 12:25
c:\Intel\Label
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at tree5.TreeSystemModel.refreshFilesDirectories(TreeSystemModel.java:66)
at tree5.TreeSystemController$OnPaste.doPaste(TreeSystemController.java:245)
at tree5.TreeSystemController$OnPaste.actionPerformed(TreeSystemController.java:216)
L'exception vise l'instruction suivante:
parent.removeAllChildren();
(dans la méthode refreshFilesDirectories du TreeSystemModel)
27 sept. 2010 à 11:16
27 sept. 2010 à 03:01
27 sept. 2010 à 02:04
En faite c'est due au fait que la classe FileEditor et une implémentation de l'interface TreeCellEditor, et donc je suis obligé de définir les méthodes qu'elle déclare. C'est le rôle d'une interface, c'est comme si c'était une classe abstraite sans attribut, et dont les méthodes serait toutes abstraites. Les interfaces sont très présente en java, car le langage ne permet pas l'héritage multiple....
Par exemple un objet est déclaré (typé) par une classe. Mais ce type dois faire partie de la chaine des classes que se classe de base hérite. (par exemple un objet JFrame peux être typé en JFrame ou en Component ou en Object).
A partir de ce type, le compilateur sait qu'elle méthodes ou attribut l'objet dispose, et sait ou les trouver ... c'est ce qui définit un langage à typage statique.
Les interfaces permettent de typer un objet dans autre choses que ses types de classes dérivé, car la classe implémentant l'interface n'hérites pas de l'interface, mais juste de son type et de la signature de ses méthodes.
Les interfaces sont très lié au polymorphisme, qui est la faculté aux runtime d'invoquer une méthode non pas par rapport aux type déclarer de l'objet , mais par rapport à son type réelle.
Si le java à préférer avoir un typage multiple via les interfaces, mais limites la dérivation à une seule classe, c'est notamment due aux problèmes d'invocations des méthodes polymorphique. Car dans un langage à héritage multiple, un ensemble de méthode peux être invoqué, dans le cas ou la classe dérivé ne sur-définirait pas la méthodes en question....
Voilà voilà, perso, je comprend pas trops la logique java, rien n'empêche au programmeur de définir précieusement la méthode à invoquer lors d'un tel appelle de méthode mais, bon j'ai ptète zapper un truc ^^
a++
26 sept. 2010 à 18:05
Je ne vois pas l'intérêt de faire:
public boolean shouldSelectCell(EventObject anEvent) {
return true; <-- Autant dire directement true, que faire un méthode, non?
}
public boolean stopCellEditing() {
return true;
}
public void cancelCellEditing() {
} <-- Ici, la méthode est vide, quelle est l'intérêt, sauf si c'était un class abstraite mais se n'en n'est pas une.
public void addCellEditorListener(CellEditorListener l) {
}
public void removeCellEditorListener(CellEditorListener l) {
}
Des commantaires expliqueraient bien tout ça. Je ne dis pas ça méchament, mais à titre d'information, ici c'est pour s'entraider.
:)
26 sept. 2010 à 14:52
Je me suis rendue compte que bien des choses pouvait être amélioré, surtout au niveau de l'organisation du code , pour le rendre plus génériques,via un package de base JTreeMutable, définissant des écouteurs et classes listener, du genre addTreeRenameListener ou TreeTriggerMenuListener .. Puis ensuite étendre les classe qui faux pour un système de fichier ...
J'aurais bien aimé avoir le temps de revoir le code, mais ca va être chaud pour le moment, mais il n'empêche qui peux permetre aux débutant de comprendre un peux le mécanisme, et même peux être implémenté dans des petits projet, comme le mien pour moi :)
a++
26 sept. 2010 à 14:01