1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Show the Binary in the cview even if not an ICElement

This commit is contained in:
Alain Magloire 2004-03-22 03:21:59 +00:00
parent b8a6e4e9f5
commit f19ce7f75a

View file

@ -226,7 +226,7 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
if (element instanceof ICElement) { if (element instanceof ICElement) {
IResource res = ((ICElement)element).getResource(); IResource res = ((ICElement)element).getResource();
if (res != null) { if (res != null) {
parent = internalGetParent(res.getParent()); parent = internalGetParent(res);
} }
} }
} }
@ -264,12 +264,13 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
try { try {
Object[] nonC = cproject.getNonCResources(); Object[] nonC = cproject.getNonCResources();
if (nonC != null && nonC.length > 0) { if (nonC != null && nonC.length > 0) {
objects = concatenate(objects, cproject.getNonCResources()); nonC = filterNonCResources(nonC, cproject);
objects = concatenate(objects, nonC);
} }
} catch (CModelException e) { } catch (CModelException e) {
// //
} }
//Object[] objects = getCResources((ICContainer)cproject);
IArchiveContainer archives = cproject.getArchiveContainer(); IArchiveContainer archives = cproject.getArchiveContainer();
if (archives.hasChildren()) { if (archives.hasChildren()) {
objects = concatenate(objects, new Object[] {archives}); objects = concatenate(objects, new Object[] {archives});
@ -293,6 +294,9 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
Object[] children = container.getChildren(); Object[] children = container.getChildren();
try { try {
objects = container.getNonCResources(); objects = container.getNonCResources();
if (objects.length > 0) {
objects = filterNonCResources(objects, container.getCProject());
}
} catch (CModelException e) { } catch (CModelException e) {
} }
if (objects == null || objects.length == 0) { if (objects == null || objects.length == 0) {
@ -302,14 +306,31 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
} }
private Object[] getResources(IFolder folder) { private Object[] getResources(IFolder folder) {
try {
ICProject cproject = CoreModel.getDefault().create(folder.getProject()); ICProject cproject = CoreModel.getDefault().create(folder.getProject());
Object[] members = null;
try {
members = folder.members();
} catch (CoreException e) {
//
}
if (members == null || members.length == 0) {
return NO_CHILDREN;
}
return filterNonCResources(members, cproject);
}
private Object[] filterNonCResources(Object[] objects, ICProject cproject) {
ICElement[] binaries = cproject.getBinaryContainer().getChildren(); ICElement[] binaries = cproject.getBinaryContainer().getChildren();
ICElement[] archives = cproject.getArchiveContainer().getChildren(); ICElement[] archives = cproject.getArchiveContainer().getChildren();
Object[] members = folder.members(); ISourceRoot[] roots = null;
List nonCResources= new ArrayList(); try {
for (int i= 0; i < members.length; i++) { roots = cproject.getSourceRoots();
Object o= members[i]; } catch (CModelException e) {
roots = new ISourceRoot[0];
}
List nonCResources = new ArrayList(objects.length);
for (int i= 0; i < objects.length; i++) {
Object o= objects[i];
// A folder can also be a source root in the following case // A folder can also be a source root in the following case
// Project // Project
// + src <- source folder // + src <- source folder
@ -318,10 +339,12 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
// Included is a member of excluded, but since it is rendered as a source // Included is a member of excluded, but since it is rendered as a source
// folder we have to exclude it as a normal child. // folder we have to exclude it as a normal child.
if (o instanceof IFolder) { if (o instanceof IFolder) {
ICElement element= CoreModel.getDefault().create((IFolder)o); IFolder folder = (IFolder)o;
if (element instanceof ISourceRoot && element.exists()) { for (int j = 0; j < roots.length; j++) {
if (roots[j].getPath().equals(folder.getFullPath())) {
continue; continue;
} }
}
} else if (o instanceof IFile){ } else if (o instanceof IFile){
boolean found = false; boolean found = false;
for (int j = 0; j < binaries.length; j++) { for (int j = 0; j < binaries.length; j++) {
@ -345,9 +368,6 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
nonCResources.add(o); nonCResources.add(o);
} }
return nonCResources.toArray(); return nonCResources.toArray();
} catch(CoreException e) {
}
return NO_CHILDREN;
} }
/** /**