2013-07-01 4 views
0

Я хочу добавить такое же меню в несколько таблиц (таблица SWT). Когда пользователь нажимает на пункты меню, я хочу определить таблицу, связанную с этим меню. Вот код ниже.Добавление меню в таблицы SWT

private void setMenu(Table table) { 
     Listener popUpListener = new Listener() { 

      @Override 
      public void handleEvent(Event event) { 
       MenuItem item = (MenuItem)event.widget; 
       Menu pare = item.getParent(); 
       Decorations fdf = pare.getParent(); 
            //Code to get table name or instance of table. 

      } 
     }; 
     Menu menu = new Menu(table); // where table1 is your table 
     MenuItem item1 = new MenuItem(menu, SWT.PUSH); 
     item1.setText("Copy cell"); 
     item1.addListener(SWT.Selection, popUpListener); 
     MenuItem item2 = new MenuItem(menu, SWT.PUSH); 
     item2.setText("Copy row"); 
     item2.addListener(SWT.Selection, popUpListener); 
     MenuItem item3 = new MenuItem(menu, SWT.PUSH); 
     item3.setText("Copy column"); 
     item3.addListener(SWT.Selection, popUpListener); 
     MenuItem item4 = new MenuItem(menu, SWT.PUSH); 
     item4.setText("Copy all"); 
     item4.addListener(SWT.Selection, popUpListener); 
     table.setMenu(menu); 
    } 

setMenu метод называется многократным отправкой экземпляров таблицы. Как я могу обнаружить таблицу, связанную с всплывающим меню в появившемся всплывающем меню.

ответ

0

Просто сделать Table вы отправляете к методу final:

private void setMenu(final Table table) { 
    Listener popUpListener = new Listener() { 

     @Override 
     public void handleEvent(Event event) { 
      MenuItem item = (MenuItem)event.widget; 
      Menu pare = item.getParent(); 
      Decorations fdf = pare.getParent(); 

      // Now you can access the table from within the Listener 
      System.out.println(table); 
     } 
    }; 
    Menu menu = new Menu(table); // where table1 is your table 
    MenuItem item1 = new MenuItem(menu, SWT.PUSH); 
    item1.setText("Copy cell"); 
    item1.addListener(SWT.Selection, popUpListener); 
    MenuItem item2 = new MenuItem(menu, SWT.PUSH); 
    item2.setText("Copy row"); 
    item2.addListener(SWT.Selection, popUpListener); 
    MenuItem item3 = new MenuItem(menu, SWT.PUSH); 
    item3.setText("Copy column"); 
    item3.addListener(SWT.Selection, popUpListener); 
    MenuItem item4 = new MenuItem(menu, SWT.PUSH); 
    item4.setText("Copy all"); 
    item4.addListener(SWT.Selection, popUpListener); 
    table.setMenu(menu); 
} 
Смежные вопросы