Program: 91822
Project: 91822
Buggy source:
/** 
 * Create a pop-up menu.
 */
protected void createPopupMenu(){
  final IAction showTableAction=new Action(Messages.TmfEventsTable_ShowTableActionText){
    @Override public void run(){
      fTable.setVisible(true);
      fSashForm.layout();
    }
  }
;
  final IAction hideTableAction=new Action(Messages.TmfEventsTable_HideTableActionText){
    @Override public void run(){
      fTable.setVisible(false);
      fSashForm.layout();
    }
  }
;
  final IAction showRawAction=new Action(Messages.TmfEventsTable_ShowRawActionText){
    @Override public void run(){
      fRawViewer.setVisible(true);
      fSashForm.layout();
      final int index=fTable.getSelectionIndex();
      if (index >= 1) {
        fRawViewer.selectAndReveal(index - 1);
      }
    }
  }
;
  final IAction hideRawAction=new Action(Messages.TmfEventsTable_HideRawActionText){
    @Override public void run(){
      fRawViewer.setVisible(false);
      fSashForm.layout();
    }
  }
;
  final IAction openCallsiteAction=new Action(Messages.TmfEventsTable_OpenSourceCodeActionText){
    @Override public void run(){
      final TableItem items[]=fTable.getSelection();
      if (items.length != 1) {
        return;
      }
      final TableItem item=items[0];
      final Object data=item.getData();
      if (data instanceof ITmfSourceLookup) {
        ITmfSourceLookup event=(ITmfSourceLookup)data;
        ITmfCallsite cs=event.getCallsite();
        if (cs == null || cs.getFileName() == null) {
          return;
        }
        IMarker marker=null;
        try {
          String fileName=cs.getFileName();
          final String trimmedPath=fileName.replaceAll("String_Node_Str",EMPTY_STRING);
          final ArrayList<IFile> files=new ArrayList<>();
          ResourcesPlugin.getWorkspace().getRoot().accept(new IResourceVisitor(){
            @Override public boolean visit(            IResource resource) throws CoreException {
              if (resource instanceof IFile && resource.getFullPath().toString().endsWith(trimmedPath)) {
                files.add((IFile)resource);
              }
              return true;
            }
          }
);
          IFile file=null;
          if (files.size() > 1) {
            ListDialog dialog=new ListDialog(getTable().getShell());
            dialog.setContentProvider(ArrayContentProvider.getInstance());
            dialog.setLabelProvider(new LabelProvider(){
              @Override public String getText(              Object element){
                return ((IFile)element).getFullPath().toString();
              }
            }
);
            dialog.setInput(files);
            dialog.setTitle(Messages.TmfEventsTable_OpenSourceCodeSelectFileDialogTitle);
            dialog.setMessage(Messages.TmfEventsTable_OpenSourceCodeSelectFileDialogTitle + '\n' + cs.toString());
            dialog.open();
            Object[] result=dialog.getResult();
            if (result != null && result.length > 0) {
              file=(IFile)result[0];
            }
          }
 else           if (files.size() == 1) {
            file=files.get(0);
          }
          if (file != null) {
            marker=file.createMarker(IMarker.MARKER);
            marker.setAttribute(IMarker.LINE_NUMBER,Long.valueOf(cs.getLineNumber()).intValue());
            IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),marker);
            marker.delete();
          }
 else           if (files.size() == 0) {
            displayException(new FileNotFoundException('\'' + cs.toString() + '\''+ '\n'+ Messages.TmfEventsTable_OpenSourceCodeNotFound));
          }
        }
 catch (        CoreException e) {
          displayException(e);
        }
      }
    }
  }
;
  final IAction openModelAction=new Action(Messages.TmfEventsTable_OpenModelActionText){
    @Override public void run(){
      final TableItem items[]=fTable.getSelection();
      if (items.length != 1) {
        return;
      }
      final TableItem item=items[0];
      final Object eventData=item.getData();
      if (eventData instanceof ITmfModelLookup) {
        String modelURI=((ITmfModelLookup)eventData).getModelUri();
        if (modelURI != null) {
          IWorkbenchPage activePage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
          IFile file=null;
          final URI uri=URI.createURI(modelURI);
          if (uri.isPlatformResource()) {
            IPath path=new Path(uri.toPlatformString(true));
            file=ResourcesPlugin.getWorkspace().getRoot().getFile(path);
          }
 else           if (uri.isFile() && !uri.isRelative()) {
            file=ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(uri.toFileString()));
          }
          if (file != null) {
            try {
              IMarker marker=file.createMarker(EValidator.MARKER);
              marker.setAttribute(EValidator.URI_ATTRIBUTE,modelURI);
              marker.setAttribute(IMarker.SEVERITY,IMarker.SEVERITY_INFO);
              IDE.openEditor(activePage,marker,OpenStrategy.activateOnOpen());
              marker.delete();
            }
 catch (            CoreException e) {
              displayException(e);
            }
          }
 else {
            displayException(new FileNotFoundException('\'' + modelURI + '\''+ '\n'+ Messages.TmfEventsTable_OpenModelUnsupportedURI));
          }
        }
      }
    }
  }
;
  final IAction exportToTextAction=new Action(Messages.TmfEventsTable_Export_to_text){
    @Override public void run(){
      IWorkbenchPage activePage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
      IHandlerService handlerService=(IHandlerService)activePage.getActiveEditor().getSite().getService(IHandlerService.class);
      ICommandService cmdService=(ICommandService)activePage.getActiveEditor().getSite().getService(ICommandService.class);
      try {
        HashMap<String,Object> parameters=new HashMap<>();
        Command command=cmdService.getCommand(ExportToTextCommandHandler.COMMAND_ID);
        ParameterizedCommand cmd=ParameterizedCommand.generateCommand(command,parameters);
        IEvaluationContext context=handlerService.getCurrentState();
        List<TmfEventTableColumn> exportColumns=fColumns.subList(EVENT_COLUMNS_START_INDEX,fColumns.size());
        context.addVariable(ExportToTextCommandHandler.TMF_EVENT_TABLE_COLUMNS_ID,exportColumns);
        handlerService.executeCommandInContext(cmd,null,context);
      }
 catch (      ExecutionException e) {
        displayException(e);
      }
catch (      NotDefinedException e) {
        displayException(e);
      }
catch (      NotEnabledException e) {
        displayException(e);
      }
catch (      NotHandledException e) {
        displayException(e);
      }
    }
  }
;
  final IAction showSearchBarAction=new Action(Messages.TmfEventsTable_ShowSearchBarActionText){
    @Override public void run(){
      fHeaderState=HeaderState.SEARCH;
      fTable.refresh();
    }
  }
;
  final IAction showFilterBarAction=new Action(Messages.TmfEventsTable_ShowFilterBarActionText){
    @Override public void run(){
      fHeaderState=HeaderState.FILTER;
      fTable.refresh();
    }
  }
;
  final IAction clearFiltersAction=new Action(Messages.TmfEventsTable_ClearFiltersActionText){
    @Override public void run(){
      clearFilters();
    }
  }
;
  final IAction collapseAction=new Action(Messages.TmfEventsTable_CollapseFilterMenuName){
    @Override public void run(){
      applyFilter(new TmfCollapseFilter());
    }
  }
;
class ToggleBookmarkAction extends Action {
    Long fRank;
    public ToggleBookmarkAction(    final String text,    final Long rank){
      super(text);
      fRank=rank;
    }
    @Override public void run(){
      toggleBookmark(fRank);
    }
  }
  final MenuManager tablePopupMenu=new MenuManager();
  tablePopupMenu.setRemoveAllWhenShown(true);
  tablePopupMenu.addMenuListener(new IMenuListener(){
    @Override public void menuAboutToShow(    final IMenuManager manager){
      if (fTable.getSelectionIndex() == 0) {
        if (fHeaderState == HeaderState.FILTER) {
          tablePopupMenu.add(showSearchBarAction);
        }
 else {
          tablePopupMenu.add(showFilterBarAction);
        }
        return;
      }
      final Point point=fTable.toControl(Display.getDefault().getCursorLocation());
      final TableItem item=fTable.getSelection().length > 0 ? fTable.getSelection()[0] : null;
      if (item != null) {
        final Rectangle imageBounds=item.getImageBounds(0);
        imageBounds.width=BOOKMARK_IMAGE.getBounds().width;
        if (point.x <= (imageBounds.x + imageBounds.width)) {
          final Long rank=(Long)item.getData(Key.RANK);
          if ((rank != null) && (fBookmarksFile != null)) {
            if (fBookmarksMap.containsKey(rank)) {
              tablePopupMenu.add(new ToggleBookmarkAction(Messages.TmfEventsTable_RemoveBookmarkActionText,rank));
            }
 else {
              tablePopupMenu.add(new ToggleBookmarkAction(Messages.TmfEventsTable_AddBookmarkActionText,rank));
            }
          }
          return;
        }
      }
      if (fTable.isVisible() && fRawViewer.isVisible()) {
        tablePopupMenu.add(hideTableAction);
        tablePopupMenu.add(hideRawAction);
      }
 else       if (!fTable.isVisible()) {
        tablePopupMenu.add(showTableAction);
      }
 else       if (!fRawViewer.isVisible()) {
        tablePopupMenu.add(showRawAction);
      }
      tablePopupMenu.add(exportToTextAction);
      tablePopupMenu.add(new Separator());
      if (item != null) {
        final Object data=item.getData();
        Separator separator=null;
        if (data instanceof ITmfSourceLookup) {
          ITmfSourceLookup event=(ITmfSourceLookup)data;
          if (event.getCallsite() != null) {
            tablePopupMenu.add(openCallsiteAction);
            separator=new Separator();
          }
        }
        if (data instanceof ITmfModelLookup) {
          ITmfModelLookup event=(ITmfModelLookup)data;
          if (event.getModelUri() != null) {
            tablePopupMenu.add(openModelAction);
            separator=new Separator();
          }
          if (separator != null) {
            tablePopupMenu.add(separator);
          }
        }
      }
      boolean isCollapsible=false;
      if (fTrace != null) {
        ITmfTrace traces[]=TmfTraceManager.getTraceSet(fTrace);
        for (        ITmfTrace trace : traces) {
          Class<? extends ITmfEvent> eventClass=trace.getEventType();
          isCollapsible=ITmfCollapsibleEvent.class.isAssignableFrom(eventClass);
          if (isCollapsible) {
            break;
          }
        }
      }
      if (isCollapsible && !(fTable.getData(Key.FILTER_OBJ) instanceof TmfCollapseFilter)) {
        tablePopupMenu.add(collapseAction);
        tablePopupMenu.add(new Separator());
      }
      tablePopupMenu.add(clearFiltersAction);
      final ITmfFilterTreeNode[] savedFilters=FilterManager.getSavedFilters();
      if (savedFilters.length > 0) {
        final MenuManager subMenu=new MenuManager(Messages.TmfEventsTable_ApplyPresetFilterMenuName);
        for (        final ITmfFilterTreeNode node : savedFilters) {
          if (node instanceof TmfFilterNode) {
            final TmfFilterNode filter=(TmfFilterNode)node;
            subMenu.add(new Action(filter.getFilterName()){
              @Override public void run(){
                applyFilter(filter);
              }
            }
);
          }
        }
        tablePopupMenu.add(subMenu);
      }
      appendToTablePopupMenu(tablePopupMenu,item);
    }
  }
);
  final MenuManager rawViewerPopupMenu=new MenuManager();
  rawViewerPopupMenu.setRemoveAllWhenShown(true);
  rawViewerPopupMenu.addMenuListener(new IMenuListener(){
    @Override public void menuAboutToShow(    final IMenuManager manager){
      if (fTable.isVisible() && fRawViewer.isVisible()) {
        rawViewerPopupMenu.add(hideTableAction);
        rawViewerPopupMenu.add(hideRawAction);
      }
 else       if (!fTable.isVisible()) {
        rawViewerPopupMenu.add(showTableAction);
      }
 else       if (!fRawViewer.isVisible()) {
        rawViewerPopupMenu.add(showRawAction);
      }
      appendToRawPopupMenu(tablePopupMenu);
    }
  }
);
  Menu menu=tablePopupMenu.createContextMenu(fTable);
  fTable.setMenu(menu);
  menu=rawViewerPopupMenu.createContextMenu(fRawViewer);
  fRawViewer.setMenu(menu);
}

Fixed version (ground truth):
/** 
 * Create a pop-up menu.
 */
protected void createPopupMenu(){
  final IAction showTableAction=new Action(Messages.TmfEventsTable_ShowTableActionText){
    @Override public void run(){
      fTable.setVisible(true);
      fSashForm.layout();
    }
  }
;
  final IAction hideTableAction=new Action(Messages.TmfEventsTable_HideTableActionText){
    @Override public void run(){
      fTable.setVisible(false);
      fSashForm.layout();
    }
  }
;
  final IAction showRawAction=new Action(Messages.TmfEventsTable_ShowRawActionText){
    @Override public void run(){
      fRawViewer.setVisible(true);
      fSashForm.layout();
      final int index=fTable.getSelectionIndex();
      if (index >= 1) {
        fRawViewer.selectAndReveal(index - 1);
      }
    }
  }
;
  final IAction hideRawAction=new Action(Messages.TmfEventsTable_HideRawActionText){
    @Override public void run(){
      fRawViewer.setVisible(false);
      fSashForm.layout();
    }
  }
;
  final IAction openCallsiteAction=new Action(Messages.TmfEventsTable_OpenSourceCodeActionText){
    @Override public void run(){
      final TableItem items[]=fTable.getSelection();
      if (items.length != 1) {
        return;
      }
      final TableItem item=items[0];
      final Object data=item.getData();
      if (data instanceof ITmfSourceLookup) {
        ITmfSourceLookup event=(ITmfSourceLookup)data;
        ITmfCallsite cs=event.getCallsite();
        if (cs == null || cs.getFileName() == null) {
          return;
        }
        IMarker marker=null;
        try {
          String fileName=cs.getFileName();
          final String trimmedPath=fileName.replaceAll("String_Node_Str",EMPTY_STRING);
          final ArrayList<IFile> files=new ArrayList<>();
          ResourcesPlugin.getWorkspace().getRoot().accept(new IResourceVisitor(){
            @Override public boolean visit(            IResource resource) throws CoreException {
              if (resource instanceof IFile && resource.getFullPath().toString().endsWith(trimmedPath)) {
                files.add((IFile)resource);
              }
              return true;
            }
          }
);
          IFile file=null;
          if (files.size() > 1) {
            ListDialog dialog=new ListDialog(getTable().getShell());
            dialog.setContentProvider(ArrayContentProvider.getInstance());
            dialog.setLabelProvider(new LabelProvider(){
              @Override public String getText(              Object element){
                return ((IFile)element).getFullPath().toString();
              }
            }
);
            dialog.setInput(files);
            dialog.setTitle(Messages.TmfEventsTable_OpenSourceCodeSelectFileDialogTitle);
            dialog.setMessage(Messages.TmfEventsTable_OpenSourceCodeSelectFileDialogTitle + '\n' + cs.toString());
            dialog.open();
            Object[] result=dialog.getResult();
            if (result != null && result.length > 0) {
              file=(IFile)result[0];
            }
          }
 else           if (files.size() == 1) {
            file=files.get(0);
          }
          if (file != null) {
            marker=file.createMarker(IMarker.MARKER);
            marker.setAttribute(IMarker.LINE_NUMBER,Long.valueOf(cs.getLineNumber()).intValue());
            IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),marker);
            marker.delete();
          }
 else           if (files.size() == 0) {
            displayException(new FileNotFoundException('\'' + cs.toString() + '\''+ '\n'+ Messages.TmfEventsTable_OpenSourceCodeNotFound));
          }
        }
 catch (        CoreException e) {
          displayException(e);
        }
      }
    }
  }
;
  final IAction openModelAction=new Action(Messages.TmfEventsTable_OpenModelActionText){
    @Override public void run(){
      final TableItem items[]=fTable.getSelection();
      if (items.length != 1) {
        return;
      }
      final TableItem item=items[0];
      final Object eventData=item.getData();
      if (eventData instanceof ITmfModelLookup) {
        String modelURI=((ITmfModelLookup)eventData).getModelUri();
        if (modelURI != null) {
          IWorkbenchPage activePage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
          IFile file=null;
          final URI uri=URI.createURI(modelURI);
          if (uri.isPlatformResource()) {
            IPath path=new Path(uri.toPlatformString(true));
            file=ResourcesPlugin.getWorkspace().getRoot().getFile(path);
          }
 else           if (uri.isFile() && !uri.isRelative()) {
            file=ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(uri.toFileString()));
          }
          if (file != null) {
            try {
              IMarker marker=file.createMarker(EValidator.MARKER);
              marker.setAttribute(EValidator.URI_ATTRIBUTE,modelURI);
              marker.setAttribute(IMarker.SEVERITY,IMarker.SEVERITY_INFO);
              IDE.openEditor(activePage,marker,OpenStrategy.activateOnOpen());
              marker.delete();
            }
 catch (            CoreException e) {
              displayException(e);
            }
          }
 else {
            displayException(new FileNotFoundException('\'' + modelURI + '\''+ '\n'+ Messages.TmfEventsTable_OpenModelUnsupportedURI));
          }
        }
      }
    }
  }
;
  final IAction exportToTextAction=new Action(Messages.TmfEventsTable_Export_to_text){
    @Override public void run(){
      IWorkbenchPage activePage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
      Object handlerServiceObject=activePage.getActiveEditor().getSite().getService(IHandlerService.class);
      IHandlerService handlerService=(IHandlerService)handlerServiceObject;
      Object cmdServiceObject=activePage.getActiveEditor().getSite().getService(ICommandService.class);
      ICommandService cmdService=(ICommandService)cmdServiceObject;
      try {
        HashMap<String,Object> parameters=new HashMap<>();
        Command command=cmdService.getCommand(ExportToTextCommandHandler.COMMAND_ID);
        ParameterizedCommand cmd=ParameterizedCommand.generateCommand(command,parameters);
        IEvaluationContext context=handlerService.getCurrentState();
        List<TmfEventTableColumn> exportColumns=fColumns.subList(EVENT_COLUMNS_START_INDEX,fColumns.size());
        context.addVariable(ExportToTextCommandHandler.TMF_EVENT_TABLE_COLUMNS_ID,exportColumns);
        handlerService.executeCommandInContext(cmd,null,context);
      }
 catch (      ExecutionException e) {
        displayException(e);
      }
catch (      NotDefinedException e) {
        displayException(e);
      }
catch (      NotEnabledException e) {
        displayException(e);
      }
catch (      NotHandledException e) {
        displayException(e);
      }
    }
  }
;
  final IAction showSearchBarAction=new Action(Messages.TmfEventsTable_ShowSearchBarActionText){
    @Override public void run(){
      fHeaderState=HeaderState.SEARCH;
      fTable.refresh();
    }
  }
;
  final IAction showFilterBarAction=new Action(Messages.TmfEventsTable_ShowFilterBarActionText){
    @Override public void run(){
      fHeaderState=HeaderState.FILTER;
      fTable.refresh();
    }
  }
;
  final IAction clearFiltersAction=new Action(Messages.TmfEventsTable_ClearFiltersActionText){
    @Override public void run(){
      clearFilters();
    }
  }
;
  final IAction collapseAction=new Action(Messages.TmfEventsTable_CollapseFilterMenuName){
    @Override public void run(){
      applyFilter(new TmfCollapseFilter());
    }
  }
;
class ToggleBookmarkAction extends Action {
    Long fRank;
    public ToggleBookmarkAction(    final String text,    final Long rank){
      super(text);
      fRank=rank;
    }
    @Override public void run(){
      toggleBookmark(fRank);
    }
  }
  final MenuManager tablePopupMenu=new MenuManager();
  tablePopupMenu.setRemoveAllWhenShown(true);
  tablePopupMenu.addMenuListener(new IMenuListener(){
    @Override public void menuAboutToShow(    final IMenuManager manager){
      if (fTable.getSelectionIndex() == 0) {
        if (fHeaderState == HeaderState.FILTER) {
          tablePopupMenu.add(showSearchBarAction);
        }
 else {
          tablePopupMenu.add(showFilterBarAction);
        }
        return;
      }
      final Point point=fTable.toControl(Display.getDefault().getCursorLocation());
      final TableItem item=fTable.getSelection().length > 0 ? fTable.getSelection()[0] : null;
      if (item != null) {
        final Rectangle imageBounds=item.getImageBounds(0);
        imageBounds.width=BOOKMARK_IMAGE.getBounds().width;
        if (point.x <= (imageBounds.x + imageBounds.width)) {
          final Long rank=(Long)item.getData(Key.RANK);
          if ((rank != null) && (fBookmarksFile != null)) {
            if (fBookmarksMap.containsKey(rank)) {
              tablePopupMenu.add(new ToggleBookmarkAction(Messages.TmfEventsTable_RemoveBookmarkActionText,rank));
            }
 else {
              tablePopupMenu.add(new ToggleBookmarkAction(Messages.TmfEventsTable_AddBookmarkActionText,rank));
            }
          }
          return;
        }
      }
      if (fTable.isVisible() && fRawViewer.isVisible()) {
        tablePopupMenu.add(hideTableAction);
        tablePopupMenu.add(hideRawAction);
      }
 else       if (!fTable.isVisible()) {
        tablePopupMenu.add(showTableAction);
      }
 else       if (!fRawViewer.isVisible()) {
        tablePopupMenu.add(showRawAction);
      }
      tablePopupMenu.add(exportToTextAction);
      tablePopupMenu.add(new Separator());
      if (item != null) {
        final Object data=item.getData();
        Separator separator=null;
        if (data instanceof ITmfSourceLookup) {
          ITmfSourceLookup event=(ITmfSourceLookup)data;
          if (event.getCallsite() != null) {
            tablePopupMenu.add(openCallsiteAction);
            separator=new Separator();
          }
        }
        if (data instanceof ITmfModelLookup) {
          ITmfModelLookup event=(ITmfModelLookup)data;
          if (event.getModelUri() != null) {
            tablePopupMenu.add(openModelAction);
            separator=new Separator();
          }
          if (separator != null) {
            tablePopupMenu.add(separator);
          }
        }
      }
      boolean isCollapsible=false;
      if (fTrace != null) {
        ITmfTrace traces[]=TmfTraceManager.getTraceSet(fTrace);
        for (        ITmfTrace trace : traces) {
          Class<? extends ITmfEvent> eventClass=trace.getEventType();
          isCollapsible=ITmfCollapsibleEvent.class.isAssignableFrom(eventClass);
          if (isCollapsible) {
            break;
          }
        }
      }
      if (isCollapsible && !(fTable.getData(Key.FILTER_OBJ) instanceof TmfCollapseFilter)) {
        tablePopupMenu.add(collapseAction);
        tablePopupMenu.add(new Separator());
      }
      tablePopupMenu.add(clearFiltersAction);
      final ITmfFilterTreeNode[] savedFilters=FilterManager.getSavedFilters();
      if (savedFilters.length > 0) {
        final MenuManager subMenu=new MenuManager(Messages.TmfEventsTable_ApplyPresetFilterMenuName);
        for (        final ITmfFilterTreeNode node : savedFilters) {
          if (node instanceof TmfFilterNode) {
            final TmfFilterNode filter=(TmfFilterNode)node;
            subMenu.add(new Action(filter.getFilterName()){
              @Override public void run(){
                applyFilter(filter);
              }
            }
);
          }
        }
        tablePopupMenu.add(subMenu);
      }
      appendToTablePopupMenu(tablePopupMenu,item);
    }
  }
);
  final MenuManager rawViewerPopupMenu=new MenuManager();
  rawViewerPopupMenu.setRemoveAllWhenShown(true);
  rawViewerPopupMenu.addMenuListener(new IMenuListener(){
    @Override public void menuAboutToShow(    final IMenuManager manager){
      if (fTable.isVisible() && fRawViewer.isVisible()) {
        rawViewerPopupMenu.add(hideTableAction);
        rawViewerPopupMenu.add(hideRawAction);
      }
 else       if (!fTable.isVisible()) {
        rawViewerPopupMenu.add(showTableAction);
      }
 else       if (!fRawViewer.isVisible()) {
        rawViewerPopupMenu.add(showRawAction);
      }
      appendToRawPopupMenu(tablePopupMenu);
    }
  }
);
  Menu menu=tablePopupMenu.createContextMenu(fTable);
  fTable.setMenu(menu);
  menu=rawViewerPopupMenu.createContextMenu(fRawViewer);
  fRawViewer.setMenu(menu);
}