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

SWT/JFace Java Discussion :

Ajouter un canvas à droite de mon TableViewer


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut Ajouter un canvas à droite de mon TableViewer
    Bonjour,

    Suite à cette conversation : http://www.developpez.net/forums/d14...r-tableviewer/
    et aux conseils de Gueritarish:
    Citation Envoyé par Gueritarish Voir le message
    Salut,

    Dans le même "style" que les marques Eclipse, pourquoi tu n'accoles pas tout simplement un Canvas à ton TableViewer?
    Pièce jointe 140415
    Dans ce cas là, t'as le TableViewer en noir, le Scroll en rouge et le Canvas en vert dans lequel tu insères des rectangles représentant les marques.
    Tu fais une règle de 3 pour avoir la position et c'est gagné.
    Après, il va te falloir gérer le survol des éléments ainsi que l'action lié au clic... Mais bon, une fois que tu as la position dans le Canvas, ça reste la "même" règle de 3 inversé.

    Voilà, à+
    Gueritarish
    Je me lance dans l'ajout d'un canvas à droite de mon tableviewer, a priori simple... sauf que je n'y arrive pas.
    Je pense que je n'utilise peut-être pas la bonne méthode ..

    J'étends un AbstractDebugEventHandlerView dans lequel est instancié une méthode createPartControl dans laquelle j'ajoute des boutons dans la partie haute de ma vue et j'appelle le super.createPartControl(parent); ensuite une méthode createViewer dans laquelle est créé mon tableauViewer dans la partie basse de ma vue.

    Cependant je n'arrive pas à ajouter un canvas à droite de mon tableViewer, certainement parce que le createViewer par définition ne renvoie que le Viewer (ici mon tableViewer).

    Comment faire ?

    Kkt8

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pourquoi étendre un AbstractDebugEventHandlerView, d'autant plus que c'est une classe d'un package internal, qu'il est conseillé de ne pas utiliser ?

    En tout cas, vu le code de AbstractDebugView (non internal, elle), il n'est pas possible (enfin si, peut être bien, mais pas sans faire des bidouilles assez lourdes) d'ajouter des composants à côté du Viewer : en effet, le control du Viewer est créé dans une classe interne de visibilité package :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class ViewerPage extends Page {
    /**
     * @see IPage#createControl(Composite)
     */
    public void createControl(Composite parent) {
    	Viewer viewer = createViewer(parent);
    	setViewer(viewer);			
    }
    ...
    Il faudrait pouvoir rédéfinir createControl de cette classe, pour insérer un niveau de Composite, qui deviendrait parent du control du Viewer et de ton Canvas.

    EDIT : ah, si, pardon j'avais pas vu cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected IPage createDefaultPage(PageBook book) {
        ViewerPage page = new ViewerPage();
        page.createControl(book);
        initPage(page);
       return page;
    }
    qu'on pourrait redéfinir en dupliquant le code de ViewerPage (mais ça reste de la bidouille pas belle).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    A priori, t'as la main sur ton Composite dans ta méthode createPartControl()... Je vois pas où est le problème.
    Il te faut juste utiliser un layout adapté.
    Tu peux poster ta méthode createPartControl s'il te plait?
    Par contre, comme joel, je déconseille l'utilisation de classes internes...

    Voilà, à+
    Gueritarish

  4. #4
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut
    cool, of course en mettant dans le createPartControl je peux ajouter ce que je veux ! Merci !
    Je m'étais focaliser sur la méthode createViewer ... il y a des fois ou juste d'en parler les choses deviennent évidentes !

    je vais voir quand même à changer mon extend ...

    merci à tous les deux

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ça me semble étonnant de pouvoir faire ça dans createPartControl(), vu que le viewer est placé dans une Page, et qu'il semble qu'il y ait plusieurs pages, mais je n'ai pas regardé en détail tout le code. Cela dit, attention aux évolutions du composant qui peuvent tout changer à la présentation.

    Sinon, je pensais à une autre solution : toute simplement en redéfinissant createViewer(Composite parent) et en y créant un Composite intermédiaire.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Ça me semble étonnant de pouvoir faire ça dans createPartControl(), vu que le viewer est placé dans une Page, et qu'il semble qu'il y ait plusieurs pages, mais je n'ai pas regardé en détail tout le code. Cela dit, attention aux évolutions du composant qui peuvent tout changer à la présentation.

    Sinon, je pensais à une autre solution : toute simplement en redéfinissant createViewer(Composite parent) et en y créant un Composite intermédiaire.
    alors oui j'ai essayé ça au début ce qui me parraissait ce qu'il fallait faire, mais ça ne marche pas, il n'y a que mon TableViewer de visible ...

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

Discussions similaires

  1. Ajouter un fichier jar dans mon projet
    Par Pierre8r dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 24/11/2006, 12h23
  2. Réponses: 3
    Dernier message: 05/05/2006, 16h14
  3. Ajouter un routeur wifi sur mon reseau.
    Par busy999 dans le forum Hardware
    Réponses: 2
    Dernier message: 18/03/2006, 15h12
  4. [PDE] Comment ajouter un éditeur de texte à mon projet ?
    Par simsky dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 29/06/2005, 10h40

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