IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[TreeModel]Problème de conception


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut [TreeModel]Problème de conception
    Bonsoir,

    Dans mon application, j'ai besoin d'utiliser un JTree pour afficher une liste de films ou d'acteurs ou de réalisateurs que j'ai besoin de trier, par genre, par type, par année, par note, ... Les types de tri ne sont pas les mêmes en fonction de ce que j'affiche (films, acteurs, réalisateurs).

    Concrètement, ça veut dire :

    • Contenus :
      • Films
        • Tri par genre
        • Tri par type
        • Tri par année
        • ...
      • Acteurs
        • Tri par note
        • Tri par année
        • ...
      • Réalisateurs
        • Tri par note
        • Tri par année
        • ...


    Tous ces types de données sont contenus dans des classes : Acteur, Film, Realisateur, ... que je peut au besoin faire implémenter une interface commune sans problèmes.

    De plus, ça va être dynamique, j'aurai un bouton pour changer le type de tri. Par contre, le modèle ne sera pas dynamique au niveau contenu, il contiendra toujours la même chose...

    Donc je ne vois pas trop comment faire, mis à part créer pleins de models, un pour chaque type de tri et pour chaque type de contenu, mais ça ne me semble pas du tout optimal et très lourd

    Je sais pas si j'ai été tout à fait clair sur ce que je voulais

    d'avance

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    On va dire que tu vas chercher quand même relativement loin niveau complexité car c'est simplement une partie de ton model qui doit être trié, je ne suis pas sûr qu'offrir un composant tel que celui ci va être optimal.

    Bon sinon l'idée est de rajouter un model intermédiaire entre ton JTree et le model initial. Ce model aura pour but de trier tes données et les agencer (pour le filtrage tu peux procéder de la même façon).

    Mais personnellement je trouve que c'est un peu sortir l'artillerie lourde là où un bonne vieille JXTable bien utilisée pourrait faire l'affaire.
    Grosso modo tu choisit ce que tu veux voire dans un menu, une barre de boutons ou quoi que ce soit, puis tu affiches la table triable selon les désirs de l'utilisateur, il a juste à appuyer sur le haut des colonnes, puis tu ouvres un JDialog présentant les infos que tu veux afficher.

    Je ne me souviens pas avoir déja manipulé un composant aussi effroyablement compliqué que ce que tu proposes en tant qu'utilisateur...


    [edit] j'oubliais: voilà un tuto sun décrivant comment effectuer les opérations de tri sur une JList, à toi d'adapter le process à un JTree si tu en as le courage: http://java.sun.com/developer/techni.../sorted_jlist/

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Je vois pas vraiment ce qu'à mon composant de compliqué

    Je me suis peut-être mal exprimé, mais en fait, c'est la conception du modèle qui pose problème, le composant est un simple JTree.

    Voilà un dessin (vous moquez pas ) de ce que je veut réaliser.

    Sachant que j'aurai trois fois ca (et peut-être plus dans le futur) avec les autres fois des acteurs et des réalisateurs possédant chacun des tris spécifiques.
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Arf en fait j'ai mal du comprendre ton explication.

    Donc un moyen simpa pourrait être de créer un type spécial de TreeNode proposant de trier les informations qui sont contenues dedans. Pour ça tu pourrais t'appuyer sur un outils comme les Glazed List qui proposent du tri et filtrage des éléments à la volée.

    La liste à utiliser sera une SortedList issue de l'Api GlazedList, et tu peu lui affecter un Comparator
    Ensuite il sufft que ton type de node possède une méthode setComparator qui transmet ton comparator à la SortedList celle ci effectuant le tri des nodes.

    En fait ceci va concerner d'après ce que j'ai compris que des nodes contenant des films, ensuite tout dépend de comment tu as modélisé tes beans de base afin que ce soit facile à faire...

    et puis une méthode permettant de propager le changement de comparateur depuis le model bien sûr si besoin est (en parcourant l'arbo et à grand coup de vérification de type dynamique avec des instanceof)

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Je suis pas sûr Glazed List fasse ce que je veut Je préfère rester sur un simple JTree

    En fait, je n'ai pas tout à fait besoin de tri, j'ai juste besoin de pouvoir changer facilement l'organisation du JTree et si possible d'un modèle le plus générique possible, pour pouvoir utiliser le même modèle pour les acteurs, les réalisateurs et les films et pouvoir changer le type de "tri" (c'est pas vraiment du tri, c'est juste si on fait des nodes année, des nodes genre ou des nodes types avec des Child film).

    Je pensais pas que c'était si compliqué, je pensais juste qu'un simple modèle me suffirait, mais je comprends pas vraiment comment le réalisaer

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Je crois que ce n'est pas si trivial que ça à faire (je m'y étais déjà un peu penché, mais j'ai abandonné). J'étais parti sur un unique TreeModel, qui dispose de plusieurs RootNodes (selon la catégorie).
    - à l'ajout d'un élément, créer autant de TreeNodes que de racines, les insérer sous la bonne racine au bon endroit (trier)
    - au changement de mode d'affichage, sélectionner une racine différente et faire un fireToutAChangé(..)
    - getRootNode renvoie la racine qui correspond au mode d'affichage

    Voila ce que j'en pense, mais je ne sais pas si je t'ai apporté grand chose.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Méthode Finalize et problème de conception
    Par phryos dans le forum Langage
    Réponses: 4
    Dernier message: 19/04/2006, 11h04
  2. [VB6][UserControl et OCX]Problème de conception
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 19/01/2006, 22h37
  3. Petit problème de conception sur access
    Par coooookinette dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/12/2005, 18h24
  4. Gestion des départements problème de conception
    Par snoopy69 dans le forum Modélisation
    Réponses: 7
    Dernier message: 11/10/2005, 13h08
  5. Problème de conceptions de tables
    Par dtavan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/05/2004, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo