mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-01 13:25:45 +02:00
Discovered path container wizard page now properly displays per file scanner info.
Fixed couple of NPEs.
This commit is contained in:
parent
8c3f6a184a
commit
04cd3adec5
9 changed files with 341 additions and 224 deletions
|
@ -707,8 +707,13 @@ public class PerFileSICollector implements IScannerInfoCollector2, IScannerInfoC
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private CCommandDSC getCommand(IPath path) {
|
private CCommandDSC getCommand(IPath path) {
|
||||||
IFile file = project.getWorkspace().getRoot().getFile(path);
|
try {
|
||||||
return getCommand(file);
|
IFile file = project.getWorkspace().getRoot().getFile(path);
|
||||||
|
return getCommand(file);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CCommandDSC getCommand(IFile file) {
|
private CCommandDSC getCommand(IFile file) {
|
||||||
|
|
BIN
build/org.eclipse.cdt.make.ui/icons/obj16/lib_obj.gif
Normal file
BIN
build/org.eclipse.cdt.make.ui/icons/obj16/lib_obj.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 338 B |
|
@ -427,8 +427,9 @@
|
||||||
point="org.eclipse.cdt.ui.PathContainerPage">
|
point="org.eclipse.cdt.ui.PathContainerPage">
|
||||||
<PathContainerPage
|
<PathContainerPage
|
||||||
class="org.eclipse.cdt.make.ui.dialogs.DiscoveredPathContainerPage"
|
class="org.eclipse.cdt.make.ui.dialogs.DiscoveredPathContainerPage"
|
||||||
name="%DiscoveredScannerInfoContainer.name"
|
icon="icons/obj16/lib_obj.gif"
|
||||||
id="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
|
id="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"
|
||||||
|
name="%DiscoveredScannerInfoContainer.name"/>
|
||||||
</extension>
|
</extension>
|
||||||
<extension
|
<extension
|
||||||
point="org.eclipse.core.runtime.preferences">
|
point="org.eclipse.core.runtime.preferences">
|
||||||
|
|
|
@ -26,8 +26,12 @@ public class DiscoveredElement {
|
||||||
public static final int CONTAINER = 1;
|
public static final int CONTAINER = 1;
|
||||||
public static final int INCLUDE_PATH = 2;
|
public static final int INCLUDE_PATH = 2;
|
||||||
public static final int SYMBOL_DEFINITION = 3;
|
public static final int SYMBOL_DEFINITION = 3;
|
||||||
public static final int PATHS_GROUP = 4;
|
public static final int INCLUDE_FILE = 4;
|
||||||
public static final int SYMBOLS_GROUP = 5;
|
public static final int MACROS_FILE = 5;
|
||||||
|
public static final int PATHS_GROUP = 10;
|
||||||
|
public static final int SYMBOLS_GROUP = 11;
|
||||||
|
public static final int INCLUDE_FILE_GROUP = 12;
|
||||||
|
public static final int MACROS_FILE_GROUP = 13;
|
||||||
|
|
||||||
private IProject fProject;
|
private IProject fProject;
|
||||||
private String fEntry;
|
private String fEntry;
|
||||||
|
@ -53,71 +57,58 @@ public class DiscoveredElement {
|
||||||
boolean removed,
|
boolean removed,
|
||||||
boolean system) {
|
boolean system) {
|
||||||
DiscoveredElement rv = null;
|
DiscoveredElement rv = null;
|
||||||
|
int parentKind = 0;
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case CONTAINER: {
|
case CONTAINER: {
|
||||||
rv = new DiscoveredElement(project, entry, kind, removed, system);
|
rv = new DiscoveredElement(project, entry, kind, removed, system);
|
||||||
DiscoveredElement group = new DiscoveredElement(project, null, PATHS_GROUP, false, false);
|
DiscoveredElement group = new DiscoveredElement(project, null, PATHS_GROUP, false, false);
|
||||||
rv.fChildren.add(group);
|
rv.fChildren.add(group);
|
||||||
group.fParent = rv;
|
group.setParent(rv);
|
||||||
group = new DiscoveredElement(project, null, SYMBOLS_GROUP, false, false);
|
group = new DiscoveredElement(project, null, SYMBOLS_GROUP, false, false);
|
||||||
rv.fChildren.add(group);
|
rv.fChildren.add(group);
|
||||||
group.fParent = rv;
|
group.setParent(rv);
|
||||||
|
group = new DiscoveredElement(project, null, INCLUDE_FILE_GROUP, false, false);
|
||||||
|
rv.fChildren.add(group);
|
||||||
|
group.setParent(rv);
|
||||||
|
group = new DiscoveredElement(project, null, MACROS_FILE_GROUP, false, false);
|
||||||
|
rv.fChildren.add(group);
|
||||||
|
group.setParent(rv);
|
||||||
}
|
}
|
||||||
break;
|
return rv;
|
||||||
case INCLUDE_PATH: {
|
case INCLUDE_PATH:
|
||||||
if (parent != null) {
|
parentKind = PATHS_GROUP;
|
||||||
DiscoveredElement group = null;
|
break;
|
||||||
if (parent.getEntryKind() == PATHS_GROUP) {
|
case SYMBOL_DEFINITION:
|
||||||
parent = parent.getParent();
|
parentKind = SYMBOLS_GROUP;
|
||||||
group = parent;
|
break;
|
||||||
}
|
case INCLUDE_FILE:
|
||||||
else if (parent.getEntryKind() == CONTAINER) {
|
parentKind = INCLUDE_FILE_GROUP;
|
||||||
for (Iterator i = parent.fChildren.iterator(); i.hasNext(); ) {
|
break;
|
||||||
DiscoveredElement child = (DiscoveredElement) i.next();
|
case MACROS_FILE:
|
||||||
if (child.getEntryKind() == PATHS_GROUP) {
|
parentKind = MACROS_FILE_GROUP;
|
||||||
group = child;
|
break;
|
||||||
break;
|
}
|
||||||
}
|
if (parentKind != 0) {
|
||||||
|
if (parent != null) {
|
||||||
|
DiscoveredElement group = null;
|
||||||
|
if (parent.getEntryKind() == parentKind) {
|
||||||
|
group = parent;
|
||||||
|
}
|
||||||
|
else if (parent.getEntryKind() == CONTAINER) {
|
||||||
|
for (Iterator i = parent.fChildren.iterator(); i.hasNext(); ) {
|
||||||
|
DiscoveredElement child = (DiscoveredElement) i.next();
|
||||||
|
if (child.getEntryKind() == parentKind) {
|
||||||
|
group = child;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (group == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (parent.getEntryKind() == CONTAINER) {
|
|
||||||
rv = new DiscoveredElement(project, entry, kind, removed, system);
|
|
||||||
group.fChildren.add(rv);
|
|
||||||
rv.setParent(group);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (group != null) {
|
||||||
break;
|
rv = new DiscoveredElement(project, entry, kind, removed, system);
|
||||||
case SYMBOL_DEFINITION: {
|
group.fChildren.add(rv);
|
||||||
if (parent != null) {
|
rv.setParent(group);
|
||||||
DiscoveredElement group = null;
|
|
||||||
if (parent.getEntryKind() == SYMBOLS_GROUP) {
|
|
||||||
parent = parent.getParent();
|
|
||||||
group = parent;
|
|
||||||
}
|
|
||||||
else if (parent.getEntryKind() == CONTAINER) {
|
|
||||||
for (Iterator i = parent.fChildren.iterator(); i.hasNext(); ) {
|
|
||||||
DiscoveredElement child = (DiscoveredElement) i.next();
|
|
||||||
if (child.getEntryKind() == SYMBOLS_GROUP) {
|
|
||||||
group = child;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (group == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (parent.getEntryKind() == CONTAINER) {
|
|
||||||
rv = new DiscoveredElement(project, entry, kind, removed, system);
|
|
||||||
group.fChildren.add(rv);
|
|
||||||
rv.setParent(group);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
@ -184,6 +175,8 @@ public class DiscoveredElement {
|
||||||
switch(fEntryKind) {
|
switch(fEntryKind) {
|
||||||
case INCLUDE_PATH:
|
case INCLUDE_PATH:
|
||||||
case SYMBOL_DEFINITION:
|
case SYMBOL_DEFINITION:
|
||||||
|
case INCLUDE_FILE:
|
||||||
|
case MACROS_FILE:
|
||||||
return new Object[0];
|
return new Object[0];
|
||||||
}
|
}
|
||||||
return fChildren.toArray();
|
return fChildren.toArray();
|
||||||
|
@ -193,6 +186,8 @@ public class DiscoveredElement {
|
||||||
switch(fEntryKind) {
|
switch(fEntryKind) {
|
||||||
case INCLUDE_PATH:
|
case INCLUDE_PATH:
|
||||||
case SYMBOL_DEFINITION:
|
case SYMBOL_DEFINITION:
|
||||||
|
case INCLUDE_FILE:
|
||||||
|
case MACROS_FILE:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return (fChildren.size() > 0);
|
return (fChildren.size() > 0);
|
||||||
|
|
|
@ -35,17 +35,24 @@ public class DiscoveredElementLabelProvider extends LabelProvider implements ICo
|
||||||
private final Color inDirect = new Color(Display.getDefault(), new RGB(170, 170, 170));
|
private final Color inDirect = new Color(Display.getDefault(), new RGB(170, 170, 170));
|
||||||
|
|
||||||
private ImageDescriptor fIncludeIcon, fMacroIcon, fContainerImage;
|
private ImageDescriptor fIncludeIcon, fMacroIcon, fContainerImage;
|
||||||
private ImageDescriptor fRemovedIncludeIcon, fRemovedMacroIcon;
|
private ImageDescriptor fIncludeGroupIcon, fMacroGroupIcon;
|
||||||
|
private ImageDescriptor fIncludeAndMacrosFileIcon;
|
||||||
|
private ImageDescriptor fIncludeAndMacrosFileGroupIcon;
|
||||||
private ImageDescriptorRegistry fRegistry;
|
private ImageDescriptorRegistry fRegistry;
|
||||||
|
|
||||||
private final String DISABLED_LABEL = MakeUIPlugin.
|
private final String DISABLED_LABEL = MakeUIPlugin.
|
||||||
getResourceString("ManageScannerConfigDialogCommon.discoveredGroup.annotation.disabled");//$NON-NLS-1$
|
getResourceString("ManageScannerConfigDialogCommon.discoveredGroup.annotation.disabled");//$NON-NLS-1$
|
||||||
|
|
||||||
public DiscoveredElementLabelProvider() {
|
public DiscoveredElementLabelProvider() {
|
||||||
fRegistry = CUIPlugin.getImageDescriptorRegistry();
|
fRegistry = CUIPlugin.getImageDescriptorRegistry();
|
||||||
fIncludeIcon = CPluginImages.DESC_OBJS_INCLUDES_FOLDER;
|
|
||||||
fMacroIcon = CPluginImages.DESC_OBJS_MACRO;
|
|
||||||
fContainerImage = CPluginImages.DESC_OBJS_LIBRARY;
|
fContainerImage = CPluginImages.DESC_OBJS_LIBRARY;
|
||||||
|
fIncludeGroupIcon = CPluginImages.DESC_OBJS_INCLUDES_CONTAINER;
|
||||||
|
fMacroGroupIcon = CPluginImages.DESC_OBJS_MACRO;
|
||||||
|
fIncludeAndMacrosFileGroupIcon = CPluginImages.DESC_OBJS_INCLUDE;
|
||||||
|
fIncludeIcon = CPluginImages.DESC_OBJS_INCLUDES_FOLDER;
|
||||||
|
// fQuoteIncludeIcon = CPluginImages.DESC_OBJS_QUOTE_INCLUDES_FOLDER;
|
||||||
|
fIncludeAndMacrosFileIcon = CPluginImages.DESC_OBJS_TUNIT_HEADER;
|
||||||
|
fMacroIcon = fMacroGroupIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -69,7 +76,7 @@ public class DiscoveredElementLabelProvider extends LabelProvider implements ICo
|
||||||
Image image = null;
|
Image image = null;
|
||||||
switch (elem.getEntryKind()) {
|
switch (elem.getEntryKind()) {
|
||||||
case DiscoveredElement.PATHS_GROUP:
|
case DiscoveredElement.PATHS_GROUP:
|
||||||
image = CPluginImages.get(CPluginImages.IMG_OBJS_INCLUDES_CONTAINER);
|
image = fRegistry.get(fIncludeGroupIcon);
|
||||||
break;
|
break;
|
||||||
case DiscoveredElement.CONTAINER:
|
case DiscoveredElement.CONTAINER:
|
||||||
image = fRegistry.get(fContainerImage);
|
image = fRegistry.get(fContainerImage);
|
||||||
|
@ -80,7 +87,15 @@ public class DiscoveredElementLabelProvider extends LabelProvider implements ICo
|
||||||
case DiscoveredElement.SYMBOLS_GROUP:
|
case DiscoveredElement.SYMBOLS_GROUP:
|
||||||
case DiscoveredElement.SYMBOL_DEFINITION:
|
case DiscoveredElement.SYMBOL_DEFINITION:
|
||||||
image = fRegistry.get(fMacroIcon);
|
image = fRegistry.get(fMacroIcon);
|
||||||
|
break;
|
||||||
|
case DiscoveredElement.INCLUDE_FILE:
|
||||||
|
case DiscoveredElement.MACROS_FILE:
|
||||||
|
image = fRegistry.get(fIncludeAndMacrosFileIcon);
|
||||||
break;
|
break;
|
||||||
|
case DiscoveredElement.INCLUDE_FILE_GROUP:
|
||||||
|
case DiscoveredElement.MACROS_FILE_GROUP:
|
||||||
|
image = fRegistry.get(fIncludeAndMacrosFileGroupIcon);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (image != null && elem.isRemoved()) {
|
if (image != null && elem.isRemoved()) {
|
||||||
image = new DiscoveredElementImageDescriptor(image, true).createImage();
|
image = new DiscoveredElementImageDescriptor(image, true).createImage();
|
||||||
|
@ -99,9 +114,15 @@ public class DiscoveredElementLabelProvider extends LabelProvider implements ICo
|
||||||
return CPathEntryMessages.getString("CPElementLabelProvider.Includes"); //$NON-NLS-1$
|
return CPathEntryMessages.getString("CPElementLabelProvider.Includes"); //$NON-NLS-1$
|
||||||
case DiscoveredElement.SYMBOLS_GROUP:
|
case DiscoveredElement.SYMBOLS_GROUP:
|
||||||
return CPathEntryMessages.getString("CPElementLabelProvider.PreprocessorSymbols"); //$NON-NLS-1$
|
return CPathEntryMessages.getString("CPElementLabelProvider.PreprocessorSymbols"); //$NON-NLS-1$
|
||||||
|
case DiscoveredElement.INCLUDE_FILE_GROUP:
|
||||||
|
return CPathEntryMessages.getString("CPElementLabelProvider.IncludeFiles"); //$NON-NLS-1$
|
||||||
|
case DiscoveredElement.MACROS_FILE_GROUP:
|
||||||
|
return CPathEntryMessages.getString("CPElementLabelProvider.MacrosFiles"); //$NON-NLS-1$
|
||||||
case DiscoveredElement.CONTAINER:
|
case DiscoveredElement.CONTAINER:
|
||||||
case DiscoveredElement.INCLUDE_PATH:
|
case DiscoveredElement.INCLUDE_PATH:
|
||||||
case DiscoveredElement.SYMBOL_DEFINITION:
|
case DiscoveredElement.SYMBOL_DEFINITION:
|
||||||
|
case DiscoveredElement.INCLUDE_FILE:
|
||||||
|
case DiscoveredElement.MACROS_FILE:
|
||||||
return elem.getEntry() + (elem.isRemoved() ? addAnnotation(DISABLED_LABEL) : ""); //$NON-NLS-1$
|
return elem.getEntry() + (elem.isRemoved() ? addAnnotation(DISABLED_LABEL) : ""); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,6 +146,8 @@ public class DiscoveredElementLabelProvider extends LabelProvider implements ICo
|
||||||
switch (elem.getEntryKind()) {
|
switch (elem.getEntryKind()) {
|
||||||
case DiscoveredElement.INCLUDE_PATH:
|
case DiscoveredElement.INCLUDE_PATH:
|
||||||
case DiscoveredElement.SYMBOL_DEFINITION:
|
case DiscoveredElement.SYMBOL_DEFINITION:
|
||||||
|
case DiscoveredElement.INCLUDE_FILE:
|
||||||
|
case DiscoveredElement.MACROS_FILE:
|
||||||
if (elem.isRemoved()) {
|
if (elem.isRemoved()) {
|
||||||
return inDirect;
|
return inDirect;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,9 @@ public class DiscoveredElementSorter extends ViewerSorter {
|
||||||
private static final int CONTAINER = 0;
|
private static final int CONTAINER = 0;
|
||||||
private static final int PATHS_GROUP = 1;
|
private static final int PATHS_GROUP = 1;
|
||||||
private static final int SYMBOLS_GROUP = 2;
|
private static final int SYMBOLS_GROUP = 2;
|
||||||
private static final int OTHER = 5;
|
private static final int INCLUDE_FILE_GROUP = 3;
|
||||||
|
private static final int MACROS_FILE_GROUP = 4;
|
||||||
|
private static final int OTHER = 10;
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.jface.viewers.ViewerSorter#category(java.lang.Object)
|
* @see org.eclipse.jface.viewers.ViewerSorter#category(java.lang.Object)
|
||||||
|
@ -37,6 +39,10 @@ public class DiscoveredElementSorter extends ViewerSorter {
|
||||||
return PATHS_GROUP;
|
return PATHS_GROUP;
|
||||||
case DiscoveredElement.SYMBOLS_GROUP:
|
case DiscoveredElement.SYMBOLS_GROUP:
|
||||||
return SYMBOLS_GROUP;
|
return SYMBOLS_GROUP;
|
||||||
|
case DiscoveredElement.INCLUDE_FILE_GROUP:
|
||||||
|
return INCLUDE_FILE_GROUP;
|
||||||
|
case DiscoveredElement.MACROS_FILE_GROUP:
|
||||||
|
return MACROS_FILE_GROUP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return OTHER;
|
return OTHER;
|
||||||
|
@ -50,6 +56,8 @@ public class DiscoveredElementSorter extends ViewerSorter {
|
||||||
switch (firstElem.getEntryKind()) {
|
switch (firstElem.getEntryKind()) {
|
||||||
case DiscoveredElement.INCLUDE_PATH:
|
case DiscoveredElement.INCLUDE_PATH:
|
||||||
case DiscoveredElement.SYMBOL_DEFINITION:
|
case DiscoveredElement.SYMBOL_DEFINITION:
|
||||||
|
case DiscoveredElement.INCLUDE_FILE:
|
||||||
|
case DiscoveredElement.MACROS_FILE:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import java.util.Collections;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.CModelException;
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
import org.eclipse.cdt.core.model.CoreModel;
|
||||||
|
@ -33,6 +34,7 @@ import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||||
import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector;
|
import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector;
|
||||||
import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollectorCleaner;
|
import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollectorCleaner;
|
||||||
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo;
|
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo;
|
||||||
|
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo;
|
||||||
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerProjectDiscoveredPathInfo;
|
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerProjectDiscoveredPathInfo;
|
||||||
import org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredPathContainer;
|
import org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredPathContainer;
|
||||||
import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerConfigUtil;
|
import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerConfigUtil;
|
||||||
|
@ -46,6 +48,7 @@ import org.eclipse.cdt.make.internal.ui.scannerconfig.DiscoveredElementSorter;
|
||||||
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.IPath;
|
||||||
import org.eclipse.jface.action.Action;
|
import org.eclipse.jface.action.Action;
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
import org.eclipse.jface.action.IMenuListener;
|
import org.eclipse.jface.action.IMenuListener;
|
||||||
|
@ -107,7 +110,10 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
private IContainerEntry fPathEntry;
|
private IContainerEntry fPathEntry;
|
||||||
|
|
||||||
private TreeListDialogField fDiscoveredContainerList;
|
private TreeListDialogField fDiscoveredContainerList;
|
||||||
|
private IDiscoveredPathInfo info = null;
|
||||||
private boolean dirty;
|
private boolean dirty;
|
||||||
|
private List deletedEntries;
|
||||||
|
|
||||||
private CopyTextAction copyTextAction;
|
private CopyTextAction copyTextAction;
|
||||||
private HandlerSubmission submission;
|
private HandlerSubmission submission;
|
||||||
|
|
||||||
|
@ -136,6 +142,7 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
fDiscoveredContainerList.setTreeExpansionLevel(2);
|
fDiscoveredContainerList.setTreeExpansionLevel(2);
|
||||||
fDiscoveredContainerList.setViewerSorter(new DiscoveredElementSorter());
|
fDiscoveredContainerList.setViewerSorter(new DiscoveredElementSorter());
|
||||||
dirty = false;
|
dirty = false;
|
||||||
|
deletedEntries = new ArrayList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -151,6 +158,11 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
*/
|
*/
|
||||||
public void initialize(ICProject project, IPathEntry[] currentEntries) {
|
public void initialize(ICProject project, IPathEntry[] currentEntries) {
|
||||||
fCProject = project;
|
fCProject = project;
|
||||||
|
try {
|
||||||
|
info = MakeCorePlugin.getDefault().getDiscoveryManager().getDiscoveredInfo(fCProject.getProject());
|
||||||
|
} catch (CoreException e) {
|
||||||
|
setErrorMessage("Error initializing Discovered paths container");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -160,61 +172,88 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
if (!dirty) {
|
if (!dirty) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
try {
|
// first process deletes
|
||||||
IDiscoveredPathInfo info = MakeCorePlugin.getDefault().
|
if (deletedEntries.size() > 0) {
|
||||||
getDiscoveryManager().getDiscoveredInfo(fCProject.getProject());
|
IProject project = fCProject.getProject();
|
||||||
if (info instanceof IPerProjectDiscoveredPathInfo) {
|
SCProfileInstance profileInstance = ScannerConfigProfileManager.getInstance().
|
||||||
IPerProjectDiscoveredPathInfo projetcPathInfo = (IPerProjectDiscoveredPathInfo) info;
|
getSCProfileInstance(project, ScannerConfigProfileManager.NULL_PROFILE_ID); // use selected profile for the project
|
||||||
|
IScannerInfoCollector collector = profileInstance.getScannerInfoCollector();
|
||||||
|
if (collector instanceof IScannerInfoCollectorCleaner) {
|
||||||
|
IScannerInfoCollectorCleaner collectorUtil = (IScannerInfoCollectorCleaner) collector;
|
||||||
|
boolean exitLoop = false;
|
||||||
|
for (Iterator i = deletedEntries.iterator(); i.hasNext() && !exitLoop; ) {
|
||||||
|
DiscoveredElement elem = (DiscoveredElement) i.next();
|
||||||
|
switch (elem.getEntryKind()) {
|
||||||
|
case DiscoveredElement.CONTAINER:
|
||||||
|
collectorUtil.deleteAll(project);
|
||||||
|
exitLoop = true;
|
||||||
|
break;
|
||||||
|
case DiscoveredElement.PATHS_GROUP:
|
||||||
|
collectorUtil.deleteAllPaths(project);
|
||||||
|
break;
|
||||||
|
case DiscoveredElement.SYMBOLS_GROUP:
|
||||||
|
collectorUtil.deleteAllSymbols(project);
|
||||||
|
break;
|
||||||
|
case DiscoveredElement.INCLUDE_PATH:
|
||||||
|
collectorUtil.deletePath(project, elem.getEntry());
|
||||||
|
break;
|
||||||
|
case DiscoveredElement.SYMBOL_DEFINITION:
|
||||||
|
collectorUtil.deleteSymbol(project, elem.getEntry());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info instanceof IPerProjectDiscoveredPathInfo) {
|
||||||
|
IPerProjectDiscoveredPathInfo projectPathInfo = (IPerProjectDiscoveredPathInfo) info;
|
||||||
|
|
||||||
|
LinkedHashMap includes = new LinkedHashMap();
|
||||||
|
LinkedHashMap symbols = new LinkedHashMap();
|
||||||
|
|
||||||
LinkedHashMap includes = new LinkedHashMap();
|
DiscoveredElement container = (DiscoveredElement) fDiscoveredContainerList.getElement(0);
|
||||||
LinkedHashMap symbols = new LinkedHashMap();
|
if (container != null && container.getEntryKind() == DiscoveredElement.CONTAINER) {
|
||||||
|
Object[] cChildren = container.getChildren();
|
||||||
DiscoveredElement container = (DiscoveredElement) fDiscoveredContainerList.getElement(0);
|
if (cChildren != null) {
|
||||||
if (container != null && container.getEntryKind() == DiscoveredElement.CONTAINER) {
|
for (int i = 0; i < cChildren.length; ++i) {
|
||||||
Object[] cChildren = container.getChildren();
|
DiscoveredElement group = (DiscoveredElement) cChildren[i];
|
||||||
if (cChildren != null) {
|
switch (group.getEntryKind()) {
|
||||||
for (int i = 0; i < cChildren.length; ++i) {
|
case DiscoveredElement.PATHS_GROUP: {
|
||||||
DiscoveredElement group = (DiscoveredElement) cChildren[i];
|
// get the include paths
|
||||||
switch (group.getEntryKind()) {
|
Object[] gChildren = group.getChildren();
|
||||||
case DiscoveredElement.PATHS_GROUP: {
|
if (gChildren != null) {
|
||||||
// get the include paths
|
for (int j = 0; j < gChildren.length; ++j) {
|
||||||
Object[] gChildren = group.getChildren();
|
DiscoveredElement include = (DiscoveredElement) gChildren[j];
|
||||||
if (gChildren != null) {
|
includes.put(include.getEntry(), Boolean.valueOf(include.isRemoved()));
|
||||||
for (int j = 0; j < gChildren.length; ++j) {
|
}
|
||||||
DiscoveredElement include = (DiscoveredElement) gChildren[j];
|
}
|
||||||
includes.put(include.getEntry(), Boolean.valueOf(include.isRemoved()));
|
}
|
||||||
}
|
break;
|
||||||
}
|
case DiscoveredElement.SYMBOLS_GROUP: {
|
||||||
}
|
// get the symbol definitions
|
||||||
break;
|
Object[] gChildren = group.getChildren();
|
||||||
case DiscoveredElement.SYMBOLS_GROUP: {
|
if (gChildren != null) {
|
||||||
// get the symbol definitions
|
for (int j = 0; j < gChildren.length; ++j) {
|
||||||
Object[] gChildren = group.getChildren();
|
DiscoveredElement symbol = (DiscoveredElement) gChildren[j];
|
||||||
if (gChildren != null) {
|
ScannerConfigUtil.scAddSymbolString2SymbolEntryMap(symbols, symbol.getEntry(), !symbol.isRemoved());
|
||||||
for (int j = 0; j < gChildren.length; ++j) {
|
}
|
||||||
DiscoveredElement symbol = (DiscoveredElement) gChildren[j];
|
}
|
||||||
ScannerConfigUtil.scAddSymbolString2SymbolEntryMap(symbols, symbol.getEntry(), !symbol.isRemoved());
|
}
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
projetcPathInfo.setIncludeMap(includes);
|
|
||||||
projetcPathInfo.setSymbolMap(symbols);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
// update scanner configuration
|
|
||||||
List resourceDelta = new ArrayList(1);
|
|
||||||
resourceDelta.add(fCProject.getProject());
|
|
||||||
MakeCorePlugin.getDefault().getDiscoveryManager().updateDiscoveredInfo(info, resourceDelta);
|
|
||||||
return true;
|
|
||||||
} catch (CoreException e) {
|
|
||||||
MakeCorePlugin.log(e);
|
|
||||||
}
|
}
|
||||||
|
projectPathInfo.setIncludeMap(includes);
|
||||||
|
projectPathInfo.setSymbolMap(symbols);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// update scanner configuration
|
||||||
|
List resourceDelta = new ArrayList(1);
|
||||||
|
resourceDelta.add(fCProject.getProject());
|
||||||
|
MakeCorePlugin.getDefault().getDiscoveryManager().updateDiscoveredInfo(info, resourceDelta);
|
||||||
|
return true;
|
||||||
} catch (CoreException e) {
|
} catch (CoreException e) {
|
||||||
MakeCorePlugin.log(e);
|
MakeCorePlugin.log(e);
|
||||||
}
|
}
|
||||||
|
@ -251,51 +290,79 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private DiscoveredElement populateDiscoveredElements(IContainerEntry pathEntry) {
|
private DiscoveredElement populateDiscoveredElements(IContainerEntry pathEntry) {
|
||||||
IDiscoveredPathInfo info;
|
|
||||||
DiscoveredElement container = null;
|
DiscoveredElement container = null;
|
||||||
try {
|
try {
|
||||||
container = DiscoveredElement.createNew(null, fCProject.getProject(), null,
|
container = DiscoveredElement.createNew(null, fCProject.getProject(), null,
|
||||||
DiscoveredElement.CONTAINER, false, false);
|
DiscoveredElement.CONTAINER, false, false);
|
||||||
info = MakeCorePlugin.getDefault().
|
IPathEntryContainer peContainer = CoreModel.getPathEntryContainer(pathEntry.getPath(), fCProject);
|
||||||
getDiscoveryManager().getDiscoveredInfo(fCProject.getProject());
|
if (peContainer != null) {
|
||||||
try {
|
container.setEntry(peContainer.getDescription());
|
||||||
IPathEntryContainer peContainer = CoreModel.getPathEntryContainer(pathEntry.getPath(), fCProject);
|
|
||||||
if (peContainer != null) {
|
|
||||||
container.setEntry(peContainer.getDescription());
|
|
||||||
}
|
|
||||||
if (info instanceof IPerProjectDiscoveredPathInfo) {
|
|
||||||
IPerProjectDiscoveredPathInfo projetcPathInfo = (IPerProjectDiscoveredPathInfo) info;
|
|
||||||
// get include paths
|
|
||||||
LinkedHashMap paths = projetcPathInfo.getIncludeMap();
|
|
||||||
for (Iterator i = paths.keySet().iterator(); i.hasNext(); ) {
|
|
||||||
String include = (String) i.next();
|
|
||||||
Boolean removed = (Boolean) paths.get(include);
|
|
||||||
removed = (removed == null) ? Boolean.FALSE : removed;
|
|
||||||
DiscoveredElement.createNew(container, fCProject.getProject(), include,
|
|
||||||
DiscoveredElement.INCLUDE_PATH, removed.booleanValue(), false);
|
|
||||||
}
|
|
||||||
// get defined symbols
|
|
||||||
LinkedHashMap symbols = projetcPathInfo.getSymbolMap();
|
|
||||||
for (Iterator i = symbols.keySet().iterator(); i.hasNext(); ) {
|
|
||||||
String symbol = (String) i.next();
|
|
||||||
SymbolEntry se = (SymbolEntry) symbols.get(symbol);
|
|
||||||
for (Iterator j = se.getActiveRaw().iterator(); j.hasNext();) {
|
|
||||||
String value = (String) j.next();
|
|
||||||
DiscoveredElement.createNew(container, fCProject.getProject(), value,
|
|
||||||
DiscoveredElement.SYMBOL_DEFINITION, false, false);
|
|
||||||
}
|
|
||||||
for (Iterator j = se.getRemovedRaw().iterator(); j.hasNext();) {
|
|
||||||
String value = (String) j.next();
|
|
||||||
DiscoveredElement.createNew(container, fCProject.getProject(), value,
|
|
||||||
DiscoveredElement.SYMBOL_DEFINITION, true, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (CModelException e) {
|
|
||||||
MakeUIPlugin.log(e.getStatus());
|
|
||||||
}
|
}
|
||||||
} catch (CoreException e) {
|
if (info != null) {
|
||||||
MakeUIPlugin.log(e);
|
if (info instanceof IPerProjectDiscoveredPathInfo) {
|
||||||
|
IPerProjectDiscoveredPathInfo projectPathInfo = (IPerProjectDiscoveredPathInfo) info;
|
||||||
|
// get include paths
|
||||||
|
LinkedHashMap paths = projectPathInfo.getIncludeMap();
|
||||||
|
for (Iterator i = paths.keySet().iterator(); i.hasNext(); ) {
|
||||||
|
String include = (String) i.next();
|
||||||
|
Boolean removed = (Boolean) paths.get(include);
|
||||||
|
removed = (removed == null) ? Boolean.FALSE : removed;
|
||||||
|
DiscoveredElement.createNew(container, fCProject.getProject(), include,
|
||||||
|
DiscoveredElement.INCLUDE_PATH, removed.booleanValue(), false);
|
||||||
|
}
|
||||||
|
// get defined symbols
|
||||||
|
LinkedHashMap symbols = projectPathInfo.getSymbolMap();
|
||||||
|
for (Iterator i = symbols.keySet().iterator(); i.hasNext(); ) {
|
||||||
|
String symbol = (String) i.next();
|
||||||
|
SymbolEntry se = (SymbolEntry) symbols.get(symbol);
|
||||||
|
for (Iterator j = se.getActiveRaw().iterator(); j.hasNext();) {
|
||||||
|
String value = (String) j.next();
|
||||||
|
DiscoveredElement.createNew(container, fCProject.getProject(), value,
|
||||||
|
DiscoveredElement.SYMBOL_DEFINITION, false, false);
|
||||||
|
}
|
||||||
|
for (Iterator j = se.getRemovedRaw().iterator(); j.hasNext();) {
|
||||||
|
String value = (String) j.next();
|
||||||
|
DiscoveredElement.createNew(container, fCProject.getProject(), value,
|
||||||
|
DiscoveredElement.SYMBOL_DEFINITION, true, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (info instanceof IPerFileDiscoveredPathInfo) {
|
||||||
|
IPerFileDiscoveredPathInfo filePathInfo = (IPerFileDiscoveredPathInfo) info;
|
||||||
|
// get include paths
|
||||||
|
IPath[] includes = filePathInfo.getIncludePaths();
|
||||||
|
for (int i = 0; i < includes.length; i++) {
|
||||||
|
String include = includes[i].toPortableString();
|
||||||
|
DiscoveredElement.createNew(container, fCProject.getProject(), include,
|
||||||
|
DiscoveredElement.INCLUDE_PATH, false, false);
|
||||||
|
}
|
||||||
|
// get defined symbols
|
||||||
|
Map symbols = filePathInfo.getSymbols();
|
||||||
|
for (Iterator iter = symbols.keySet().iterator(); iter.hasNext();) {
|
||||||
|
String key = (String) iter.next();
|
||||||
|
String value = (String) symbols.get(key);
|
||||||
|
String symbol = (value != null && value.length() > 0) ? key + "=" + value : key; //$NON-NLS-1$
|
||||||
|
DiscoveredElement.createNew(container, fCProject.getProject(), symbol,
|
||||||
|
DiscoveredElement.SYMBOL_DEFINITION, false, false);
|
||||||
|
}
|
||||||
|
// get include files
|
||||||
|
IPath[] includeFiles = filePathInfo.getIncludeFiles(fCProject.getPath());
|
||||||
|
for (int i = 0; i < includeFiles.length; i++) {
|
||||||
|
String includeFile = includeFiles[i].toPortableString();
|
||||||
|
DiscoveredElement.createNew(container, fCProject.getProject(), includeFile,
|
||||||
|
DiscoveredElement.INCLUDE_FILE, false, false);
|
||||||
|
}
|
||||||
|
// get macros files
|
||||||
|
IPath[] macrosFiles = filePathInfo.getMacroFiles(fCProject.getPath());
|
||||||
|
for (int i = 0; i < macrosFiles.length; i++) {
|
||||||
|
String macrosFile = macrosFiles[i].toPortableString();
|
||||||
|
DiscoveredElement.createNew(container, fCProject.getProject(), macrosFile,
|
||||||
|
DiscoveredElement.MACROS_FILE, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (CModelException e) {
|
||||||
|
MakeUIPlugin.log(e.getStatus());
|
||||||
}
|
}
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
|
@ -320,6 +387,8 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
switch (elem.getEntryKind()) {
|
switch (elem.getEntryKind()) {
|
||||||
case DiscoveredElement.PATHS_GROUP:
|
case DiscoveredElement.PATHS_GROUP:
|
||||||
case DiscoveredElement.SYMBOLS_GROUP:
|
case DiscoveredElement.SYMBOLS_GROUP:
|
||||||
|
case DiscoveredElement.INCLUDE_FILE_GROUP:
|
||||||
|
case DiscoveredElement.MACROS_FILE_GROUP:
|
||||||
return elem.getChildren().length != 0;
|
return elem.getChildren().length != 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -567,72 +636,72 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
|
|
||||||
private boolean deleteEntry() {
|
private boolean deleteEntry() {
|
||||||
boolean rc = false;
|
boolean rc = false;
|
||||||
IProject project = fCProject.getProject();
|
List newSelection = new ArrayList();
|
||||||
SCProfileInstance profileInstance = ScannerConfigProfileManager.getInstance().
|
List selElements = fDiscoveredContainerList.getSelectedElements();
|
||||||
getSCProfileInstance(project, ScannerConfigProfileManager.NULL_PROFILE_ID); // use selected profile for the project
|
boolean skipIncludes = false, skipSymbols = false;
|
||||||
IScannerInfoCollector collector = profileInstance.getScannerInfoCollector();
|
for (int i = 0; i < selElements.size(); ++i) {
|
||||||
if (collector instanceof IScannerInfoCollectorCleaner) {
|
DiscoveredElement elem = (DiscoveredElement) selElements.get(i);
|
||||||
IScannerInfoCollectorCleaner collectorUtil = (IScannerInfoCollectorCleaner) collector;
|
if (elem.getEntryKind() == DiscoveredElement.CONTAINER) {
|
||||||
List newSelection = new ArrayList();
|
deletedEntries.add(elem);
|
||||||
List selElements = fDiscoveredContainerList.getSelectedElements();
|
|
||||||
for (int i = 0; i < selElements.size(); ++i) {
|
Object[] children = elem.getChildren();
|
||||||
DiscoveredElement elem = (DiscoveredElement) selElements.get(i);
|
for (int j = 0; j < children.length; j++) {
|
||||||
if (elem.getEntryKind() == DiscoveredElement.CONTAINER) {
|
if (children[j] instanceof DiscoveredElement) {
|
||||||
collectorUtil.deleteAll(project);
|
DiscoveredElement child = (DiscoveredElement) children[j];
|
||||||
Object[] children = elem.getChildren();
|
child.delete();
|
||||||
for (int j = 0; j < children.length; j++) {
|
|
||||||
if (children[j] instanceof DiscoveredElement) {
|
|
||||||
DiscoveredElement child = (DiscoveredElement) children[j];
|
|
||||||
child.delete();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
newSelection.add(elem);
|
|
||||||
rc = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else {
|
newSelection.add(elem);
|
||||||
DiscoveredElement parent = elem.getParent();
|
rc = true;
|
||||||
if (parent != null) {
|
break;
|
||||||
Object[] children = parent.getChildren();
|
}
|
||||||
if (elem.delete()) {
|
DiscoveredElement parent = elem.getParent();
|
||||||
switch (elem.getEntryKind()) {
|
if (parent != null) {
|
||||||
case DiscoveredElement.PATHS_GROUP:
|
Object[] children = parent.getChildren();
|
||||||
collectorUtil.deleteAllPaths(project);
|
if (elem.delete()) {
|
||||||
break;
|
switch (elem.getEntryKind()) {
|
||||||
case DiscoveredElement.SYMBOLS_GROUP:
|
case DiscoveredElement.PATHS_GROUP:
|
||||||
collectorUtil.deleteAllSymbols(project);
|
deletedEntries.add(elem);
|
||||||
break;
|
skipIncludes = true;
|
||||||
case DiscoveredElement.INCLUDE_PATH:
|
break;
|
||||||
collectorUtil.deletePath(project, elem.getEntry());
|
case DiscoveredElement.SYMBOLS_GROUP:
|
||||||
break;
|
deletedEntries.add(elem);
|
||||||
case DiscoveredElement.SYMBOL_DEFINITION:
|
skipSymbols = true;
|
||||||
collectorUtil.deleteSymbol(project, elem.getEntry());
|
break;
|
||||||
break;
|
case DiscoveredElement.INCLUDE_PATH:
|
||||||
}
|
if (!skipIncludes) {
|
||||||
rc = true;
|
deletedEntries.add(elem);
|
||||||
// set new selection
|
}
|
||||||
for (int j = 0; j < children.length; ++j) {
|
break;
|
||||||
DiscoveredElement child = (DiscoveredElement) children[j];
|
case DiscoveredElement.SYMBOL_DEFINITION:
|
||||||
if (elem.equals(child)) {
|
if (!skipSymbols) {
|
||||||
newSelection.clear();
|
deletedEntries.add(elem);
|
||||||
if (j + 1 < children.length) {
|
}
|
||||||
newSelection.add(children[j + 1]);
|
break;
|
||||||
}
|
}
|
||||||
else if (j - 1 >= 0) {
|
|
||||||
newSelection.add(children[j - 1]);
|
rc = true;
|
||||||
}
|
// set new selection
|
||||||
else {
|
for (int j = 0; j < children.length; ++j) {
|
||||||
newSelection.add(parent);
|
DiscoveredElement child = (DiscoveredElement) children[j];
|
||||||
}
|
if (elem.equals(child)) {
|
||||||
break;
|
newSelection.clear();
|
||||||
}
|
if (j + 1 < children.length) {
|
||||||
}
|
newSelection.add(children[j + 1]);
|
||||||
}
|
}
|
||||||
}
|
else if (j - 1 >= 0) {
|
||||||
}
|
newSelection.add(children[j - 1]);
|
||||||
}
|
}
|
||||||
fDiscoveredContainerList.postSetSelection(new StructuredSelection(newSelection));
|
else {
|
||||||
|
newSelection.add(parent);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
fDiscoveredContainerList.postSetSelection(new StructuredSelection(newSelection));
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -654,6 +723,9 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean canMoveUpDown(List selElements, int direction) {
|
private boolean canMoveUpDown(List selElements, int direction) {
|
||||||
|
if (info instanceof IPerFileDiscoveredPathInfo) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (selElements.size() == 0) {
|
if (selElements.size() == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -686,6 +758,9 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean canRemoveRestore(List selElements) {
|
private boolean canRemoveRestore(List selElements) {
|
||||||
|
if (info instanceof IPerFileDiscoveredPathInfo) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (selElements.size() == 0) {
|
if (selElements.size() == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -706,6 +781,13 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean canDelete(List selElements) {
|
private boolean canDelete(List selElements) {
|
||||||
|
if (info instanceof IPerFileDiscoveredPathInfo) {
|
||||||
|
if (selElements.size() > 0 &&
|
||||||
|
((DiscoveredElement) selElements.get(0)).getEntryKind() == DiscoveredElement.CONTAINER) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (selElements.size() == 0) {
|
if (selElements.size() == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -719,7 +801,6 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
*/
|
*/
|
||||||
public class CopyTextAction extends Action {
|
public class CopyTextAction extends Action {
|
||||||
static final String ACTION_ID = "org.eclipse.ui.edit.copy"; //$NON-NLS-1$
|
static final String ACTION_ID = "org.eclipse.ui.edit.copy"; //$NON-NLS-1$
|
||||||
private Shell shell;
|
|
||||||
private Clipboard clipboard;
|
private Clipboard clipboard;
|
||||||
private String discoveredEntry = null;
|
private String discoveredEntry = null;
|
||||||
|
|
||||||
|
@ -729,7 +810,6 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
|
||||||
setToolTipText(MakeUIPlugin.getResourceString("CopyDiscoveredPathAction.tooltip")); //$NON-NLS-1$
|
setToolTipText(MakeUIPlugin.getResourceString("CopyDiscoveredPathAction.tooltip")); //$NON-NLS-1$
|
||||||
setActionDefinitionId(ACTION_ID);
|
setActionDefinitionId(ACTION_ID);
|
||||||
clipboard = new Clipboard(shell.getDisplay());
|
clipboard = new Clipboard(shell.getDisplay());
|
||||||
this.shell = shell;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2005-06-08 Vladimir Hirsl
|
||||||
|
Fix for NPE in CPElement.java
|
||||||
|
|
||||||
|
* src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElement.java
|
||||||
|
|
||||||
2005-06-07 Alain Magloire
|
2005-06-07 Alain Magloire
|
||||||
Patch form Chris Recoskie to provide an ID to the wizard.
|
Patch form Chris Recoskie to provide an ID to the wizard.
|
||||||
* src/org/eclipse/cdt/ui/wizards/NewCProjectWizardPage.java
|
* src/org/eclipse/cdt/ui/wizards/NewCProjectWizardPage.java
|
||||||
|
|
|
@ -764,7 +764,7 @@ public class CPElement {
|
||||||
res = root.findMember(path);
|
res = root.findMember(path);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
CPElement elem = new CPElement(element.getCProject(), curr.getEntryKind(), path, res);
|
CPElement elem = new CPElement((element == null) ? null : element.getCProject(), curr.getEntryKind(), path, res);
|
||||||
elem.setAttribute(SOURCEATTACHMENT, sourceAttachment);
|
elem.setAttribute(SOURCEATTACHMENT, sourceAttachment);
|
||||||
elem.setAttribute(EXCLUSION, exclusion);
|
elem.setAttribute(EXCLUSION, exclusion);
|
||||||
elem.setAttribute(INCLUDE, include);
|
elem.setAttribute(INCLUDE, include);
|
||||||
|
|
Loading…
Add table
Reference in a new issue