Program: 102089
Project: 102089
Buggy source:
@SuppressWarnings({"String_Node_Str","String_Node_Str"}) private void createModelsSection(Composite parent){
  modelsGroup=new TableAndToolBar(parent,1,new DefaultTableProvider<VdbModelEntry>(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultTableProvider#doubleClicked(java.lang.Object)
 */
    @Override public void doubleClicked(    final VdbModelEntry element){
      openEditor(element);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.TableProvider#getElements()
 */
    @Override public VdbModelEntry[] getElements(){
      final Set<VdbModelEntry> modelEntries=getVdb().getModelEntries();
      return modelEntries.toArray(new VdbModelEntry[modelEntries.size()]);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultTableProvider#isDoubleClickSupported()
 */
    @Override public boolean isDoubleClickSupported(){
      return true;
    }
  }
,new TextColumnProvider<VdbModelEntry>(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#getImage(java.lang.Object)
 */
    @Override public Image getImage(    final VdbModelEntry element){
      return ModelIdentifier.getModelImage(element.findFileInWorkspace());
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getName()
 */
    @Override public String getName(){
      return MODEL_COLUMN_NAME;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getImage()
 */
    @Override public Image getImage(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getValue(java.lang.Object)
 */
    @Override public String getValue(    final VdbModelEntry element){
      return element.getName().lastSegment();
    }
  }
,this.syncColumnProvider,new CheckBoxColumnProvider<VdbModelEntry>(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getName()
 */
    @Override public String getName(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getImage()
 */
    @Override public Image getImage(){
      return VdbUiPlugin.singleton.getImage(VdbUiConstants.Images.VISIBLE_ICON);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#getToolTip(java.lang.Object)
 */
    @Override public String getToolTip(    final VdbModelEntry element){
      return element.isVisible() ? VISIBLE_TOOLTIP : NOT_VISIBLE_TOOLTIP;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getValue(java.lang.Object)
 */
    @Override public Boolean getValue(    final VdbModelEntry element){
      return element.isVisible();
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#isEditable(java.lang.Object)
 */
    @Override public boolean isEditable(    final VdbModelEntry element){
      return true;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#setValue(java.lang.Object,java.lang.Object)
 */
    @Override public void setValue(    final VdbModelEntry element,    final Boolean value){
      element.setVisible(value);
    }
  }
);
  ButtonProvider addProvider=new ButtonProvider(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getImageDescriptor()
 */
    @Override public ImageDescriptor getImageDescriptor(){
      return VdbUiPlugin.singleton.getImageDescriptor(Images.ADD_MODEL);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getText()
 */
    @Override public String getText(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getToolTip()
 */
    @Override public String getToolTip(){
      return i18n("String_Node_Str");
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#isEnabled(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public boolean isEnabled(    IStructuredSelection selection){
      return true;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#selected(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public void selected(    IStructuredSelection selection){
      final ViewerFilter filter=new ViewerFilter(){
        /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,java.lang.Object,java.lang.Object)
 */
        @Override public boolean select(        final Viewer viewer,        final Object parent,        final Object element){
          if (element instanceof IContainer) {
            IProject proj=((IContainer)element).getProject();
            IProject vdbProject=getVdb().getFile().getProject();
            if (proj.isOpen() && proj.equals(vdbProject)) {
              return true;
            }
            return false;
          }
          final IFile file=(IFile)element;
          if (!ModelUtilities.isModelFile(file)) {
            return false;
          }
          if (ModelUtil.isXsdFile(file)) {
            return false;
          }
          for (          final VdbModelEntry modelEntry : getVdb().getModelEntries())           if (file.equals(modelEntry.findFileInWorkspace()))           return false;
          return true;
        }
      }
;
      ModelingResourceFilter wsFilter=new ModelingResourceFilter(filter);
      wsFilter.setShowHiddenProjects(false);
      final Object[] models=WidgetUtil.showWorkspaceObjectSelectionDialog(ADD_FILE_DIALOG_TITLE,ADD_FILE_DIALOG_MESSAGE,true,null,wsFilter,getModelSelectionValidator(),getModelLabelProvider());
      if (!getVdb().getDataPolicyEntries().isEmpty()) {
        MessageDialog.openInformation(Display.getCurrent().getActiveShell(),VdbEditor.CONFIRM_DIALOG_TITLE,INFORM_DATA_ROLES_ON_ADD_MESSAGE);
      }
      boolean firstTime=(modelsGroup.getTable().getViewer().getTable().getItemCount() == 0);
      boolean success=false;
      boolean foundDuplicateNames=false;
      boolean proceed=false;
      try {
        for (        final Object model : models) {
          boolean canAdd=VdbUtil.canAddModelToVdb((IFile)model,getVdb());
          if (!canAdd) {
            MessageDialog.openError(Display.getCurrent().getActiveShell(),VdbEditor.CANNOT_ADD_DUPLICATE_MODEL_NAME_TITLE,CANNOT_ADD_DUPLICATE_MODEL_NAME_MESSAGE);
            foundDuplicateNames=true;
          }
          break;
        }
        success=true;
      }
 catch (      Exception ex) {
        ErrorHandler.toExceptionDialog(ex);
      }
 finally {
        if (success) {
          proceed=!foundDuplicateNames;
        }
      }
      if (proceed) {
        try {
          for (          final Object model : models) {
            getVdb().addEntry(((IFile)model).getFullPath(),new NullProgressMonitor());
          }
        }
 catch (        Exception ex) {
          ErrorHandler.toExceptionDialog(ex);
        }
      }
      modelsGroup.getTable().getViewer().refresh();
      pnlTranslatorOverrides.refresh();
      udfJarsGroup.getTable().getViewer().refresh();
      if (firstTime) {
        packModelsGroup();
      }
      showImportVdbsButton.setEnabled(!getVdb().getImportVdbEntries().isEmpty());
    }
  }
;
  modelsGroup.add(addProvider);
  ButtonProvider removeProvider=new ButtonProvider(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getImageDescriptor()
 */
    @Override public ImageDescriptor getImageDescriptor(){
      return VdbUiPlugin.singleton.getImageDescriptor(Images.REMOVE_MODEL);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getText()
 */
    @Override public String getText(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getToolTip()
 */
    @Override public String getToolTip(){
      return i18n("String_Node_Str");
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#isEnabled(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public boolean isEnabled(    IStructuredSelection selection){
      return !selection.isEmpty();
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#selected(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public void selected(    IStructuredSelection selection){
      if (!ConfirmationDialog.confirm(CONFIRM_REMOVE_MESSAGE))       return;
      final Set<VdbEntry> entries=new HashSet<VdbEntry>();
      final Set<VdbModelEntry> importedBy=new HashSet<VdbModelEntry>();
      for (      final Object element : selection.toList()) {
        entries.add((VdbEntry)element);
        if (element instanceof VdbModelEntry)         importedBy.addAll(((VdbModelEntry)element).getImportedBy());
      }
      if (!importedBy.isEmpty())       importedBy.removeAll(entries);
      if (!importedBy.isEmpty()) {
        if (!ConfirmationDialog.confirm(new ConfirmationDialog(CONFIRM_REMOVE_IMPORTED_BY_MESSAGE){
          /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
 */
          @Override protected Control createCustomArea(          final Composite parent){
            final ListViewer viewer=new ListViewer(parent);
            viewer.setContentProvider(new DefaultContentProvider());
            viewer.setLabelProvider(new LabelProvider(){
              /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
 */
              @Override public String getText(              final Object element){
                return ((VdbEntry)element).getName().toString();
              }
            }
);
            viewer.getList().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
            viewer.setInput(importedBy);
            return viewer.getControl();
          }
        }
))         return;
        entries.addAll(importedBy);
      }
      dataRoleResolver.modelEntriesRemoved(entries);
      for (      final VdbEntry entry : entries) {
        getVdb().removeEntry(entry);
      }
      udfJarsGroup.getTable().getViewer().refresh();
      showImportVdbsButton.setEnabled(!getVdb().getImportVdbEntries().isEmpty());
    }
  }
;
  modelsGroup.add(removeProvider);
  final TableViewer viewer=modelsGroup.getTable().getViewer();
  final MenuManager menuManager=new MenuManager();
  viewer.getControl().setMenu(menuManager.createContextMenu(parent));
  viewer.addSelectionChangedListener(new ISelectionChangedListener(){
    /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
 */
    @Override public void selectionChanged(    final SelectionChangedEvent event){
      menuManager.removeAll();
      final Object[] actions=SourceHandlerExtensionManager.findApplicableActions(viewer.getSelection());
      if (actions != null)       for (      final Object action : actions) {
        if (action instanceof IAction)         menuManager.add((IAction)action);
      }
      IStructuredSelection sel=(IStructuredSelection)viewer.getSelection();
      VdbModelEntry selectedEntry=null;
      if (sel.getFirstElement() instanceof VdbModelEntry) {
        selectedEntry=(VdbModelEntry)sel.getFirstElement();
      }
      modelDetailsPanel.setSelectedVdbModelEntry(selectedEntry);
    }
  }
);
  modelsGroup.setInput(vdb);
  packModelsGroup();
}

Fixed version (ground truth):
@SuppressWarnings({"String_Node_Str","String_Node_Str"}) private void createModelsSection(Composite parent){
  modelsGroup=new TableAndToolBar(parent,SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL| SWT.V_SCROLL| SWT.BORDER,1,new DefaultTableProvider<VdbModelEntry>(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultTableProvider#doubleClicked(java.lang.Object)
 */
    @Override public void doubleClicked(    final VdbModelEntry element){
      openEditor(element);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.TableProvider#getElements()
 */
    @Override public VdbModelEntry[] getElements(){
      final Set<VdbModelEntry> modelEntries=getVdb().getModelEntries();
      return modelEntries.toArray(new VdbModelEntry[modelEntries.size()]);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultTableProvider#isDoubleClickSupported()
 */
    @Override public boolean isDoubleClickSupported(){
      return true;
    }
  }
,new TextColumnProvider<VdbModelEntry>(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#getImage(java.lang.Object)
 */
    @Override public Image getImage(    final VdbModelEntry element){
      return ModelIdentifier.getModelImage(element.findFileInWorkspace());
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getName()
 */
    @Override public String getName(){
      return MODEL_COLUMN_NAME;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getImage()
 */
    @Override public Image getImage(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getValue(java.lang.Object)
 */
    @Override public String getValue(    final VdbModelEntry element){
      return element.getName().lastSegment();
    }
  }
,this.syncColumnProvider,new CheckBoxColumnProvider<VdbModelEntry>(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getName()
 */
    @Override public String getName(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getImage()
 */
    @Override public Image getImage(){
      return VdbUiPlugin.singleton.getImage(VdbUiConstants.Images.VISIBLE_ICON);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#getToolTip(java.lang.Object)
 */
    @Override public String getToolTip(    final VdbModelEntry element){
      return element.isVisible() ? VISIBLE_TOOLTIP : NOT_VISIBLE_TOOLTIP;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.ColumnProvider#getValue(java.lang.Object)
 */
    @Override public Boolean getValue(    final VdbModelEntry element){
      return element.isVisible();
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#isEditable(java.lang.Object)
 */
    @Override public boolean isEditable(    final VdbModelEntry element){
      return true;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.table.DefaultColumnProvider#setValue(java.lang.Object,java.lang.Object)
 */
    @Override public void setValue(    final VdbModelEntry element,    final Boolean value){
      element.setVisible(value);
    }
  }
);
  ButtonProvider addProvider=new ButtonProvider(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getImageDescriptor()
 */
    @Override public ImageDescriptor getImageDescriptor(){
      return VdbUiPlugin.singleton.getImageDescriptor(Images.ADD_MODEL);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getText()
 */
    @Override public String getText(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getToolTip()
 */
    @Override public String getToolTip(){
      return i18n("String_Node_Str");
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#isEnabled(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public boolean isEnabled(    IStructuredSelection selection){
      return true;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#selected(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public void selected(    IStructuredSelection selection){
      final ViewerFilter filter=new ViewerFilter(){
        /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,java.lang.Object,java.lang.Object)
 */
        @Override public boolean select(        final Viewer viewer,        final Object parent,        final Object element){
          if (element instanceof IContainer) {
            IProject proj=((IContainer)element).getProject();
            IProject vdbProject=getVdb().getFile().getProject();
            if (proj.isOpen() && proj.equals(vdbProject)) {
              return true;
            }
            return false;
          }
          final IFile file=(IFile)element;
          if (!ModelUtilities.isModelFile(file)) {
            return false;
          }
          if (ModelUtil.isXsdFile(file)) {
            return false;
          }
          for (          final VdbModelEntry modelEntry : getVdb().getModelEntries())           if (file.equals(modelEntry.findFileInWorkspace()))           return false;
          return true;
        }
      }
;
      ModelingResourceFilter wsFilter=new ModelingResourceFilter(filter);
      wsFilter.setShowHiddenProjects(false);
      final Object[] models=WidgetUtil.showWorkspaceObjectSelectionDialog(ADD_FILE_DIALOG_TITLE,ADD_FILE_DIALOG_MESSAGE,true,null,wsFilter,getModelSelectionValidator(),getModelLabelProvider());
      if (!getVdb().getDataPolicyEntries().isEmpty()) {
        MessageDialog.openInformation(Display.getCurrent().getActiveShell(),VdbEditor.CONFIRM_DIALOG_TITLE,INFORM_DATA_ROLES_ON_ADD_MESSAGE);
      }
      boolean firstTime=(modelsGroup.getTable().getViewer().getTable().getItemCount() == 0);
      boolean success=false;
      boolean foundDuplicateNames=false;
      boolean proceed=false;
      try {
        for (        final Object model : models) {
          boolean canAdd=VdbUtil.canAddModelToVdb((IFile)model,getVdb());
          if (!canAdd) {
            MessageDialog.openError(Display.getCurrent().getActiveShell(),VdbEditor.CANNOT_ADD_DUPLICATE_MODEL_NAME_TITLE,CANNOT_ADD_DUPLICATE_MODEL_NAME_MESSAGE);
            foundDuplicateNames=true;
          }
          break;
        }
        success=true;
      }
 catch (      Exception ex) {
        ErrorHandler.toExceptionDialog(ex);
      }
 finally {
        if (success) {
          proceed=!foundDuplicateNames;
        }
      }
      if (proceed) {
        try {
          for (          final Object model : models) {
            getVdb().addEntry(((IFile)model).getFullPath(),new NullProgressMonitor());
          }
        }
 catch (        Exception ex) {
          ErrorHandler.toExceptionDialog(ex);
        }
      }
      modelsGroup.getTable().getViewer().refresh();
      pnlTranslatorOverrides.refresh();
      udfJarsGroup.getTable().getViewer().refresh();
      if (firstTime) {
        packModelsGroup();
      }
      showImportVdbsButton.setEnabled(!getVdb().getImportVdbEntries().isEmpty());
    }
  }
;
  modelsGroup.add(addProvider);
  ButtonProvider removeProvider=new ButtonProvider(){
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getImageDescriptor()
 */
    @Override public ImageDescriptor getImageDescriptor(){
      return VdbUiPlugin.singleton.getImageDescriptor(Images.REMOVE_MODEL);
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getText()
 */
    @Override public String getText(){
      return null;
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#getToolTip()
 */
    @Override public String getToolTip(){
      return i18n("String_Node_Str");
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#isEnabled(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public boolean isEnabled(    IStructuredSelection selection){
      return !selection.isEmpty();
    }
    /** 
 * {@inheritDoc}
 * @see org.teiid.designer.ui.common.widget.ButtonProvider#selected(org.eclipse.jface.viewers.IStructuredSelection)
 */
    @Override public void selected(    IStructuredSelection selection){
      if (!ConfirmationDialog.confirm(CONFIRM_REMOVE_MESSAGE))       return;
      final Set<VdbEntry> entries=new HashSet<VdbEntry>();
      final Set<VdbModelEntry> importedBy=new HashSet<VdbModelEntry>();
      for (      final Object element : selection.toList()) {
        entries.add((VdbEntry)element);
        if (element instanceof VdbModelEntry)         importedBy.addAll(((VdbModelEntry)element).getImportedBy());
      }
      if (!importedBy.isEmpty())       importedBy.removeAll(entries);
      if (!importedBy.isEmpty()) {
        if (!ConfirmationDialog.confirm(new ConfirmationDialog(CONFIRM_REMOVE_IMPORTED_BY_MESSAGE){
          /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
 */
          @Override protected Control createCustomArea(          final Composite parent){
            final ListViewer viewer=new ListViewer(parent);
            viewer.setContentProvider(new DefaultContentProvider());
            viewer.setLabelProvider(new LabelProvider(){
              /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
 */
              @Override public String getText(              final Object element){
                return ((VdbEntry)element).getName().toString();
              }
            }
);
            viewer.getList().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
            viewer.setInput(importedBy);
            return viewer.getControl();
          }
        }
))         return;
        entries.addAll(importedBy);
      }
      dataRoleResolver.modelEntriesRemoved(entries);
      for (      final VdbEntry entry : entries) {
        getVdb().removeEntry(entry);
      }
      udfJarsGroup.getTable().getViewer().refresh();
      showImportVdbsButton.setEnabled(!getVdb().getImportVdbEntries().isEmpty());
    }
  }
;
  modelsGroup.add(removeProvider);
  final TableViewer viewer=modelsGroup.getTable().getViewer();
  final MenuManager menuManager=new MenuManager();
  viewer.getControl().setMenu(menuManager.createContextMenu(parent));
  viewer.addSelectionChangedListener(new ISelectionChangedListener(){
    /** 
 * {@inheritDoc}
 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
 */
    @Override public void selectionChanged(    final SelectionChangedEvent event){
      menuManager.removeAll();
      final Object[] actions=SourceHandlerExtensionManager.findApplicableActions(viewer.getSelection());
      if (actions != null)       for (      final Object action : actions) {
        if (action instanceof IAction)         menuManager.add((IAction)action);
      }
      IStructuredSelection sel=(IStructuredSelection)viewer.getSelection();
      VdbModelEntry selectedEntry=null;
      if (sel.getFirstElement() instanceof VdbModelEntry) {
        selectedEntry=(VdbModelEntry)sel.getFirstElement();
      }
      modelDetailsPanel.setSelectedVdbModelEntry(selectedEntry);
    }
  }
);
  modelsGroup.setInput(vdb);
  packModelsGroup();
}