protected IPathEntry[] getRawPathEntries() {
   List<CPElement> paths = getCPaths();
   IPathEntry[] currEntries = new IPathEntry[paths.size()];
   for (int i = 0; i < currEntries.length; i++) {
     CPElement curr = paths.get(i);
     currEntries[i] = curr.getPathEntry();
   }
   return currEntries;
 }
  protected CPElement[] openContainerSelectionDialog(CPElement existing) {
    IContainerEntry elem = null;
    String title;
    if (existing == null) {
      title = CPathEntryMessages.IncludeSymbolEntryPage_ContainerDialog_new_title;
    } else {
      title = CPathEntryMessages.IncludeSymbolEntryPage_ContainerDialog_edit_title;
      elem = (IContainerEntry) existing.getPathEntry();
    }
    CPathContainerWizard wizard =
        new CPathContainerWizard(
            elem,
            null,
            fCurrCProject,
            getRawPathEntries(),
            new int[] {IPathEntry.CDT_INCLUDE, IPathEntry.CDT_MACRO});
    wizard.setWindowTitle(title);
    if (CPathContainerWizard.openWizard(getShell(), wizard) == Window.OK) {
      IPathEntry parent = wizard.getEntriesParent();
      IPathEntry[] elements = wizard.getEntries();

      if (elements != null) {
        CPElement[] res = new CPElement[elements.length];
        CPElementGroup group = getSelectedGroup();
        for (int i = 0; i < res.length; i++) {
          if (elements[i].getEntryKind() == IPathEntry.CDT_INCLUDE) {
            res[i] =
                new CPElement(
                    fCurrCProject,
                    IPathEntry.CDT_INCLUDE,
                    group.getResource().getFullPath(),
                    group.getResource());
            res[i].setAttribute(CPElement.INCLUDE, ((IIncludeEntry) elements[i]).getIncludePath());
            res[i].setAttribute(CPElement.BASE_REF, parent.getPath());
          } else if (elements[i].getEntryKind() == IPathEntry.CDT_MACRO) {
            res[i] =
                new CPElement(
                    fCurrCProject,
                    IPathEntry.CDT_MACRO,
                    group.getResource().getFullPath(),
                    group.getResource());
            res[i].setAttribute(CPElement.MACRO_NAME, ((IMacroEntry) elements[i]).getMacroName());
            res[i].setAttribute(CPElement.BASE_REF, parent.getPath());
          }
        }
        return res;
      }
      return new CPElement[] {CPElement.createFromExisting(parent, fCurrCProject)};
    }
    return null;
  }