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

Eclipse Java Discussion :

Eclipse RCP - Gestion du nombre d'instance d'une vue d'un plugin


Sujet :

Eclipse Java

  1. #1
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut Eclipse RCP - Gestion du nombre d'instance d'une vue d'un plugin
    Bonjour,

    j'ai un cas de figure interessant à gérer et recherche une solution élégante pour se faire.

    Dans mon workbench, j'ai plusieurs Plugins et grâce à des à des évènements d'un plugin, je démarre une vue dans un autre Plugin. Pour ne pas surcharger mon application (la vue est gourmande et me pose des problèmes d'handles windows &#128530, je cherche donc à limiter le nombre de vues ouvertes simultanément.

    Je n'ai pas la main sur la configuration du Workbench. Sinon j'aurai essayé avec ViewFactory. Du coup cherche donc plutôt une solution via le plugin.xml. Auriez-vous une idée? un conseil utile à me donner? Une solution connue pour cette problématique? Ou mon idée est-elle stupide?!?😔

    Merci d'avance pour vos commentaires et dans l'attente de conseils 😉
    Jean

  2. #2
    Membre expert
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 474
    Points : 3 003
    Points
    3 003
    Par défaut
    Citation Envoyé par jdvacheron Voir le message
    la vue [...] me pose des problèmes d'handles windows &#128530
    De nos jours, des problemes de handles sont plutot revelateur d'une fuite dans le code. Verifie bien que tu n'instanties pas plus d'Image/Font/Color que necessaire (en utilisant un cache tant que possible), et assure toi de faire un ".dispose()" sur ces elements lorsque tu fermes/dispose ta vue. Cette prez donne de bons conseils, a appliquer imperativement: https://fr.slideshare.net/souillac/e...o-more-handles

    Du coup cherche donc plutôt une solution via le plugin.xml. Auriez-vous une idée? un conseil utile à me donner?
    La solution la plus propre consiste surement a placer un placer un IPartListener sur les views. Tu peux soit faire ca en utilisant une extension a org.eclipse.ui.startup ou dans ton plugin Activator. C'est un peu laborieux parce qu'il faut placer un listener sur le workbench qui ajoutera un listener sur chacune des fenetres existantes et des nouvelles fenetres, qui ajoutera un listener sur chacune des pages existantes et nouvelles pages... mais ca marchera.
    Ou alors, tu peux coder ca directement dans le "create" de ta view: il regarde les autres vues ouvertes et en ferme une dans certaines conditions. Ca me parait mieux comme ca parce que tu affectes moins le workbench et les autres vues.
    Mais quoi qu'il en soit, ton probleme, celui que tu dois fixer, c'est la handler leak decrite plus haut. Fix-la et t'auras pas besoin de fermer des vues.

  3. #3
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut
    Bonjour Mickael,

    merci pour ta réponse.

    De nos jours, des problemes de handles sont plutot revelateur d'une fuite dans le code. Verifie bien que tu n'instanties pas plus d'Image/Font/Color que necessaire (en utilisant un cache tant que possible), et assure toi de faire un ".dispose()" sur ces elements lorsque tu fermes/dispose ta vue. Cette prez donne de bons conseils, a appliquer imperativement: https://fr.slideshare.net/souillac/e...o-more-handles
    👍 Je suis tout à fait d'accord avec toi sur ce point concernant les handles. J'ai bien conscience qu'il y a des fuites mémoire. 😉 Je dois encore me pencher sur le sujet. Mais comme il s'agit de maintenance de code et la vue concernée est vraiment lourde, cela va me prendre du temps.

    La solution la plus propre consiste surement a placer un placer un IPartListener sur les views. Tu peux soit faire ca en utilisant une extension a org.eclipse.ui.startup ou dans ton plugin Activator. C'est un peu laborieux parce qu'il faut placer un listener sur le workbench qui ajoutera un listener sur chacune des fenetres existantes et des nouvelles fenetres, qui ajoutera un listener sur chacune des pages existantes et nouvelles pages... mais ca marchera.
    Ou alors, tu peux coder ca directement dans le "create" de ta view: il regarde les autres vues ouvertes et en ferme une dans certaines conditions. Ca me parait mieux comme ca parce que tu affectes moins le workbench et les autres vues.
    J'ai déjà ajouter IPartListerner à ma vue lors de son démarrage. Mais cela ne m'aide pas car la vue est déjà créée C'est pour cette raison que j'aurai préféré agir en amour. Du jour dans la ViewFactory via un IExtensionTracker. La méthode addExtension(...) existe mais il n'y pas d'implementation

    Je vais essayer les org.eclipse.ui.startup ou dans ton plugin Activator.

    Bonne journée

  4. #4
    Membre expert
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 474
    Points : 3 003
    Points
    3 003
    Par défaut
    Citation Envoyé par jdvacheron Voir le message
    Bonjour Mickael,
    👍 Je suis tout à fait d'accord avec toi sur ce point concernant les handles. J'ai bien conscience qu'il y a des fuites mémoire. 😉 Je dois encore me pencher sur le sujet. Mais comme il s'agit de maintenance de code et la vue concernée est vraiment lourde, cela va me prendre du temps.
    Justement, du code en maintenance, tu souhaites le changer le moins possible pour eviter d'introduire de nouveau bugs. Ajouter du comportement comme fermer des vues, c'est une source de bugs, sans compter le fait que ca risque de pas trop plaire aux utilisateurs. En maintenance, on fixe les bugs, les fuites de handles, les fuites memoires... C'est ca la maitenance, c'est pas changer le comportement pour eviter de tomber dans les mauvais cas, c'est enlever les raisons des mauvais cas.
    Si j'etais ton chef, je n'y irai pas par 4 chemins et je te dirai "corrige les fuites de handles", non negociable. Le fait que la vue soit lourde est plus le symptome du probleme de handle qu'un obstacle. Ta vue instancie surement des tonnes de couleurs ou fonts que tu ne disposes pas. C'est le bug a corriger.

  5. #5
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut
    Citation Envoyé par Mickael_Istria Voir le message
    Justement, du code en maintenance, tu souhaites le changer le moins possible pour eviter d'introduire de nouveau bugs. Ajouter du comportement comme fermer des vues, c'est une source de bugs, sans compter le fait que ca risque de pas trop plaire aux utilisateurs. En maintenance, on fixe les bugs, les fuites de handles, les fuites memoires... C'est ca la maitenance, c'est pas changer le comportement pour eviter de tomber dans les mauvais cas, c'est enlever les raisons des mauvais cas.
    Nous sommes d'accord sur la philosophie du développeur
    Le mot "maintenance" n'est peut-être pas le plus juste étant donné que je bosse dessus (le projet)

    Citation Envoyé par Mickael_Istria Voir le message
    Si j'etais ton chef, je n'y irai pas par 4 chemins et je te dirai "corrige les fuites de handles", non negociable. Le fait que la vue soit lourde est plus le symptome du probleme de handle qu'un obstacle. Ta vue instancie surement des tonnes de couleurs ou fonts que tu ne disposes pas. C'est le bug a corriger.
    Mon chef veut que la vue qui ne pouvait être ouverte qu'une seule fois, le soit désormais jusqu'à trois fois. Mon souci vient de MessageManager. J'ai plusieurs plugins et certain d'entre eux ouvre ladite vue sans passer par mon ViewManager

    J'ai regardé IStartup mais je dois avouer que je ne sais pas comment je pourrais l'utiliser... Aurais tu un autre conseil?

  6. #6
    Membre expert
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 474
    Points : 3 003
    Points
    3 003
    Par défaut
    Citation Envoyé par jdvacheron Voir le message
    Aurais tu un autre conseil?
    Oui, corrige les fuites de handles et de memoire

  7. #7
    Membre habitué
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Points : 143
    Points
    143
    Par défaut
    Citation Envoyé par Mickael_Istria Voir le message
    Oui, corrige les fuites de handles et de memoire

Discussions similaires

  1. Compter le nombre d'instances d'une classe dérivée
    Par Quid ' dans le forum Général Java
    Réponses: 1
    Dernier message: 22/08/2017, 19h46
  2. Réponses: 5
    Dernier message: 27/11/2009, 09h21
  3. Compter le nombre d'instance d'une classe
    Par cashmoney dans le forum Langage
    Réponses: 2
    Dernier message: 21/09/2009, 11h31
  4. Compter le nombre d'instance d'une classe
    Par themadmax dans le forum C#
    Réponses: 6
    Dernier message: 12/07/2008, 09h48
  5. nombre d'instance pour une base
    Par awatif dans le forum Oracle
    Réponses: 2
    Dernier message: 08/08/2007, 19h16

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