From fd78e1bd32e0ae39183cdac738d908d88e4f39f5 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Sat, 12 Apr 2003 14:03:54 +0000 Subject: [PATCH] Check for the binaries in the virtual containers they may not have been created if the path is not expanded in the CView. --- .../internal/core/model/DeltaProcessor.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java index 09d5582196d..44a5d3a40da 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java @@ -7,9 +7,12 @@ package org.eclipse.cdt.internal.core.model; import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.CoreModel; +import org.eclipse.cdt.core.model.IArchiveContainer; +import org.eclipse.cdt.core.model.IBinaryContainer; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICElementDelta; import org.eclipse.cdt.core.model.ICModel; +import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.IParent; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; @@ -73,6 +76,38 @@ public class DeltaProcessor { break; } } + // BUG 36424: + // The Binary may only be visible in the BinaryContainers + if (celement == null) { + ICProject cproj = parent.getCProject(); + if (cproj != null) { + IBinaryContainer bin = cproj.getBinaryContainer(); + children = ((CElement)bin).getElementInfo().getChildren(); + for (int i = 0; i < children.length; i++) { + IResource res = children[i].getResource(); + if (res != null && res.equals(resource)) { + celement = children[i]; + break; + } + } + } + } + // BUG 36424: + // The Archive may only be visible in the ArchiveContainers + if (celement == null) { + ICProject cproj = parent.getCProject(); + if (cproj != null) { + IArchiveContainer bin = cproj.getArchiveContainer(); + children = ((CElement)bin).getElementInfo().getChildren(); + for (int i = 0; i < children.length; i++) { + IResource res = children[i].getResource(); + if (res != null && res.equals(resource)) { + celement = children[i]; + break; + } + } + } + } } } return celement;