0

I have a TreeViewer, and I created a context menu with some actions.

With this code snippet below, I get the context menu for all tree items.

protected void createMasterPart(final IManagedForm managedForm, final Composite parent)
{
 Tree t = toolkit.createTree(client, SWT.NULL);
 GridData gd = new GridData(GridData.FILL_BOTH);
 gd.heightHint = 20;
 gd.widthHint = 100;
 t.setLayoutData(gd);
 toolkit.paintBordersFor(client);
 section.setClient(client);
 final SectionPart spart = new SectionPart(section);
 managedForm.addPart(spart);
 viewer = new TreeViewer(t);
 viewer.addSelectionChangedListener(new ISelectionChangedListener() 
 {
 public void selectionChanged(SelectionChangedEvent event) 
 {
    managedForm.fireSelectionChanged(spart, event.getSelection());
 }
 });
 viewer.setContentProvider(new MasterTreeContentProvider());
 viewer.setInput(page.getEditor().getEditorInput());

 m_newKeyAction = new AddNewKeyAction(viewer, parent.getShell());

 m_newValueAction = new AddNewValueAction(viewer, parent.getShell());

 hookContextMenu();
} 
private void hookContextMenu()
{
   MenuManager menuMgr = new MenuManager();
   menuMgr.setRemoveAllWhenShown(true);
   menuMgr.addMenuListener(new IMenuListener() {
   public void menuAboutToShow(IMenuManager manager) 
   {
   fillContextMenu(manager);
   }
   });
   Menu menu = menuMgr.createContextMenu(viewer.getControl());
   viewer.getControl().setMenu(menu);
}

protected void fillContextMenu( IMenuManager manager )
{   
    manager.add( m_newKeyAction );
    manager.add( m_newValueAction );
}

I want this context menu to be displayed only for tree items of particular type. Please let me know how do I get this done.

Kai
  • 38,985
  • 14
  • 88
  • 103
kk331317
  • 129
  • 2
  • 12
  • possible duplicate of [Context menu for TreeViewer based on selected node - SWT](http://stackoverflow.com/questions/6207772/context-menu-for-treeviewer-based-on-selected-node-swt) – Aaron Digulla Jan 03 '12 at 15:52
  • Not exactly the same question, but the answers of the question linked by @AaronDigulla apply to this one as well. – Martti Käärik Jan 03 '12 at 20:51

0 Answers0