SWT Table mit falschem Popup menu

smuehlba

Grünschnabel
Hallo zusammen,

ich habe einen JFace TableViewer und auf der dazugehörigen Table eine MouseListener!
Innerhalb der Methode mouseDown(MouseEvent e) will ich nun entscheiden, bei welchem selektierten Objekt welches Popup-Menü angezeigt wird. Leider habe ich das Problem, dass anscheinend dieses Popup-Menü bereits angezeigt wird, bevor die mouseDown-Methode durchlaufen wird. D.h. ich bekomme immer das Popup-Menü vom vorherigen selektierten Objekt
so sieht meine Code aus:
Code:
table.addMouseListener(new MouseAdapter() 
{
  public void mouseDown(MouseEvent e)
  {
    IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();

    if (selection.getFirstElement() == null)
      return;
    Object obj = (Object) selection.getFirstElement();

    if(obj instanceof OBJEKT1)
    {
      table.setMenu(menuForOBJEKT1);
    }
    else if (obj instanceof OBJEKT2)
    {
      table.setMenu(menuForOBJEKT2);
    }
    .
    .
    .

  }
});

Weiss jemand eine Lösung zu diesem Problem?

mfg
smuehlba
 
entweder wird das popupmenu bereits angezeigt, oder getSelection() liefert dir noch die alte Auswahl, weil mouseDown aufgerufen wird, bevor der Table seine aktuelle Selection ändert. Wie sieht es denn bei mouseUp aus?
 
Zuletzt bearbeitet:
getSelection() liefert mir das korrekte Ergebnis und es wird dann auch das richtige Menü gesetzt; jedoch wird das falsche Menü angezeigt...
Also wird anscheinend das Menü schon vor dem Aufruf der Methode mouseDown() angezeigt...
 
Kann es sein, dass es da von JRE zu JRE Unterschiede gibt?

Hatte das Problem mit jre1.5.0_08!
Mit jre1.6.0_02 wurde dann das richtige Menü angezeigt...
 
Zurück