|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Ingénieur en apprentissage Inscription : août 2012 Messages : 12 ![]() |
Bonjour tout le monde,
J'ai un petit souci et j'aurais besoin d'aide. J'ai un tableviewer dans un Master/Details block. Dans ma master part beaucoup de nouveaux items l'updatent très rapidement. Mes detail pages affichent les infos de l'item sélectionné. J'aimerais que celles-ci soient persistantes et notifiées seulement en cas de changement de sélection. Mon problème est que quand un nouvel item est ajouté au tableviewer, la sélection change automatiquement. Des idées ? Merci |
|
|
00
|
|
|
#2 |
![]() ![]() Marc Développeur Java Inscription : mai 2007 Messages : 1 567 ![]() |
Salut,
Peux-tu nous donner la façon dont tu affiches la partie details? Ainsi que la façon dont tu mets à jour ton Viewer d'ailleurs. Voilà, à+ Gueritarish
__________________
Pas de questions technique par MP, les forums sont là pour ça. Le 5 et 6 juin à Toulouse, la première EclipseCon France ! |
|
|
00
|
|
|
#3 | ||||
|
Invité régulier
![]() Ingénieur en apprentissage Inscription : août 2012 Messages : 12 ![]() |
J'ai une classe Observable qui détient une liste d'évènements qui me sert de modèle. Plusieurs handlers ajoutent des évènements à cette liste de façon synchronisée.
Le ContentProvider du TableViewer se sert de cette liste. Code :
Le Master/Details block est un de ces Observer. Lorsque la sélection change : Code :
Le souci se situe au niveau du TableViewer. Lorsque je sélectionne un event et qu'un autre est ajouté, la sélection change car elle reste sur la même ligne. |
||||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Ingénieur en apprentissage Inscription : août 2012 Messages : 12 ![]() |
Cela vient du fait que mon TableViewer est SWT.VIRTUAL. Donc la sélection se fait sur l'index dans la table.
Si j'enlève l'option SWT.VIRTUAL la sélection reste sur l'élément que j'ai sélectionné. Mais le problème c'est que mon TableViewer DOIT rester SWT.VIRTUAL parce qu'il contient tellement de données que les stocker de façon non virtuelle fait chuter grandement les performances de mon application. Personne n'a jamais été confronté à ce problème ? |
|
|
00
|
|
|
#5 |
![]() ![]() Marc Développeur Java Inscription : mai 2007 Messages : 1 567 ![]() |
Salut,
Tu peux modifier ton ContentProvider. Dans la méthode inputChanged(), tu peux récupérer la sélection courante pour la remettre une fois la mise à jour finie. Voilà, à+ Gueritarish
__________________
Pas de questions technique par MP, les forums sont là pour ça. Le 5 et 6 juin à Toulouse, la première EclipseCon France ! |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Ingénieur en apprentissage Inscription : août 2012 Messages : 12 ![]() |
Bonjour,
Merci pour ta réponse. Malheureusement la méthode inputChanged() n'est appelée que lors de l'exécution des méthodes suivantes : setInput(), setContentProvider() et dispose(). J'ai donc récupéré le ContentProvider pour l'appeler. Mais je souhaite agir sur ma sélection au moment de la mise à jour avant que la sélection ne change toute seule sinon j'ai 2 changements de sélection ce qui est encore pire. |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Ingénieur en apprentissage Inscription : août 2012 Messages : 12 ![]() |
Bug eclipse :
https://bugs.eclipse.org/bugs/show_bug.cgi?id=396604 |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com