mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-09 10:05:24 +02:00
[174299] changes to use findItems() where possible instead of recursive methods.
This commit is contained in:
parent
5c0f8d20e5
commit
41591dc0dc
1 changed files with 57 additions and 34 deletions
|
@ -3778,7 +3778,7 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
protected Widget internalFindReferencedItem(Widget parent, Object element, int searchLimit) {
|
protected Widget internalFindReferencedItem(Widget parent, Object element, int searchLimit) {
|
||||||
previousItem = null;
|
previousItem = null;
|
||||||
searchDepth = 0;
|
searchDepth = 0;
|
||||||
//System.out.println("recursiveInternalFindReferencedItem");
|
System.out.println("recursiveInternalFindReferencedItem");
|
||||||
return recursiveInternalFindReferencedItem(parent, element, searchLimit);
|
return recursiveInternalFindReferencedItem(parent, element, searchLimit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3812,7 +3812,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
Item[] items = getChildren(parent);
|
Item[] items = getChildren(parent);
|
||||||
for (int i = 0; (i < items.length); i++)
|
for (int i = 0; (i < items.length); i++)
|
||||||
{
|
{
|
||||||
//System.out.println("recursiveInternalFindReferencedItem");
|
|
||||||
Widget o = recursiveInternalFindReferencedItem(items[i], element, searchLimit);
|
Widget o = recursiveInternalFindReferencedItem(items[i], element, searchLimit);
|
||||||
if (o != null) return o;
|
if (o != null) return o;
|
||||||
searchDepth = oldDepth;
|
searchDepth = oldDepth;
|
||||||
|
@ -3875,10 +3874,8 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
match = internalFindFirstRemoteItemReference(remoteObjectName, null, subsystem);
|
match = internalFindFirstRemoteItemReference(remoteObjectName, null, subsystem);
|
||||||
else {
|
else {
|
||||||
|
|
||||||
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
|
|
||||||
//recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, null, subsystem, matches);
|
//recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, null, subsystem, matches);
|
||||||
match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, null, subsystem);
|
match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, null, subsystem);
|
||||||
if (debugRemote) System.out.println("Returning " + match + " from findFirstRemoteItemReference(1,2,3)"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
||||||
}
|
}
|
||||||
//if (matches.size() > 0)
|
//if (matches.size() > 0)
|
||||||
// return (Item)matches.elementAt(0);
|
// return (Item)matches.elementAt(0);
|
||||||
|
@ -3905,9 +3902,8 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
match = internalFindFirstRemoteItemReference(remoteObjectName, remoteObject, subsystem);
|
match = internalFindFirstRemoteItemReference(remoteObjectName, remoteObject, subsystem);
|
||||||
else {
|
else {
|
||||||
//recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, remoteObject, subsystem, matches);
|
//recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, remoteObject, subsystem, matches);
|
||||||
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
|
System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
|
||||||
match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem);
|
match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem);
|
||||||
if (debugRemote) System.out.println("Returning " + match + " from findFirstRemoteItemReference(1,2)"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (matches.size() > 0)
|
//if (matches.size() > 0)
|
||||||
|
@ -3934,20 +3930,29 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
if (element instanceof String)
|
if (element instanceof String)
|
||||||
searchString = (String) element;
|
searchString = (String) element;
|
||||||
else {
|
else {
|
||||||
if (elementObject == null) elementObject = element;
|
if (elementObject == null)
|
||||||
|
elementObject = element;
|
||||||
ISystemViewElementAdapter adapter = getViewAdapter(element);
|
ISystemViewElementAdapter adapter = getViewAdapter(element);
|
||||||
if (adapter == null) return matches;
|
if (adapter == null)
|
||||||
|
return matches;
|
||||||
subsystem = adapter.getSubSystem(element);
|
subsystem = adapter.getSubSystem(element);
|
||||||
searchString = adapter.getAbsoluteName(element);
|
searchString = adapter.getAbsoluteName(element);
|
||||||
}
|
}
|
||||||
Tree tree = getTree();
|
Tree tree = getTree();
|
||||||
Item[] roots = tree.getItems();
|
Item[] roots = tree.getItems();
|
||||||
if (roots == null) return matches;
|
if (roots == null)
|
||||||
if (matches == null) matches = new Vector();
|
return matches;
|
||||||
for (int idx = 0; idx < roots.length; idx++) {
|
if (matches == null)
|
||||||
//System.out.println("recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);");
|
matches = new Vector();
|
||||||
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);
|
|
||||||
|
// try new map lookup method - won't work in cases of rename
|
||||||
|
if (!mappedFindAllRemoteItemReferences(elementObject, matches)){
|
||||||
|
for (int idx = 0; idx < roots.length; idx++) {
|
||||||
|
System.out.println("recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);");
|
||||||
|
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return matches;
|
return matches;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3967,11 +3972,14 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
Tree tree = getTree();
|
Tree tree = getTree();
|
||||||
Item[] roots = tree.getItems();
|
Item[] roots = tree.getItems();
|
||||||
if (roots == null) return matches;
|
if (roots == null) return matches;
|
||||||
if (matches == null) matches = new Vector();
|
if (matches == null)
|
||||||
for (int idx = 0; idx < roots.length; idx++)
|
matches = new Vector();
|
||||||
{
|
|
||||||
System.out.println("2:recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);");
|
// try new map lookup method - won't work in cases of rename
|
||||||
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);
|
if (!mappedFindAllRemoteItemReferences(elementObject, matches)){
|
||||||
|
for (int idx = 0; idx < roots.length; idx++){
|
||||||
|
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return matches;
|
return matches;
|
||||||
}
|
}
|
||||||
|
@ -3992,22 +4000,39 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
protected Item internalFindFirstRemoteItemReference(String searchString, Object elementObject, ISubSystem subsystem) {
|
protected Item internalFindFirstRemoteItemReference(String searchString, Object elementObject, ISubSystem subsystem) {
|
||||||
Item[] roots = getTree().getItems();
|
Item[] roots = getTree().getItems();
|
||||||
if ((roots == null) || (roots.length == 0)) return null;
|
if ((roots == null) || (roots.length == 0)) return null;
|
||||||
Item match = null;
|
|
||||||
if (debugRemote) {
|
// use map first
|
||||||
System.out.println("Inside internalFindFirstRemoteItemReference for searchString: " + searchString + ", subsystem null? " + (subsystem == null) + ", nbr roots = " + roots.length); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
Item match = mappedFindFirstRemoteItemReference(elementObject);
|
||||||
}
|
|
||||||
for (int idx = 0; (match == null) && (idx < roots.length); idx++) {
|
for (int idx = 0; (match == null) && (idx < roots.length); idx++) {
|
||||||
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
|
System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
|
||||||
match = recursiveFindFirstRemoteItemReference(roots[idx], searchString, elementObject, subsystem);
|
match = recursiveFindFirstRemoteItemReference(roots[idx], searchString, elementObject, subsystem);
|
||||||
if (debugRemote) System.out.println("...Inside internalFindFirstRemoteItemReference. Result of searching root " + idx + ": " + roots[idx].getText() + ": " + match); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
if (debugRemote) System.out.println("...Inside internalFindFirstRemoteItemReference. Result of searching root " + idx + ": " + roots[idx].getText() + ": " + match); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||||
}
|
}
|
||||||
if (debugRemote) {
|
|
||||||
System.out.println("...Inside internalFindFirstRemoteItemReference. Returning " + match); //$NON-NLS-1$
|
|
||||||
if (match != null) System.out.println("......set bp here"); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
return match;
|
return match;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected Item mappedFindFirstRemoteItemReference(Object elementObject)
|
||||||
|
{
|
||||||
|
return (Item)findItem(elementObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean mappedFindAllRemoteItemReferences(Object elementObject, Vector occurrences)
|
||||||
|
{
|
||||||
|
Widget[] items = findItems(elementObject);
|
||||||
|
if (items.length > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < items.length; i++)
|
||||||
|
{
|
||||||
|
occurrences.add(items[i]);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recursively tries to find all references to a remote object.
|
* Recursively tries to find all references to a remote object.
|
||||||
* @param parent the parent item at which to start the search.
|
* @param parent the parent item at which to start the search.
|
||||||
|
@ -4063,12 +4088,14 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
// recurse over children
|
// recurse over children
|
||||||
Item[] items = getChildren(parent);
|
Item[] items = getChildren(parent);
|
||||||
for (int i = 0; (i < items.length); i++) {
|
for (int i = 0; (i < items.length); i++) {
|
||||||
System.out.println("3:recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, occurrences);");
|
|
||||||
|
|
||||||
if (!items[i].isDisposed()) occurrences = recursiveFindAllRemoteItemReferences(items[i], elementName, elementObject, subsystem, occurrences);
|
if (!items[i].isDisposed()) occurrences = recursiveFindAllRemoteItemReferences(items[i], elementName, elementObject, subsystem, occurrences);
|
||||||
}
|
}
|
||||||
return occurrences;
|
return occurrences;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recursively tries to find the first references to a remote object.
|
* Recursively tries to find the first references to a remote object.
|
||||||
|
@ -4130,7 +4157,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
Item[] items = getChildren(parent);
|
Item[] items = getChildren(parent);
|
||||||
Item match = null;
|
Item match = null;
|
||||||
for (int i = 0; (match == null) && (i < items.length); i++) {
|
for (int i = 0; (match == null) && (i < items.length); i++) {
|
||||||
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
|
|
||||||
if (!items[i].isDisposed()) match = recursiveFindFirstRemoteItemReference(items[i], elementName, elementObject, subsystem);
|
if (!items[i].isDisposed()) match = recursiveFindFirstRemoteItemReference(items[i], elementName, elementObject, subsystem);
|
||||||
}
|
}
|
||||||
return match;
|
return match;
|
||||||
|
@ -4149,11 +4175,10 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
Tree tree = getTree();
|
Tree tree = getTree();
|
||||||
Item[] roots = tree.getItems();
|
Item[] roots = tree.getItems();
|
||||||
if (roots == null) return matches;
|
if (roots == null) return matches;
|
||||||
if (matches == null) matches = new Vector();
|
if (matches == null)
|
||||||
|
matches = new Vector();
|
||||||
|
|
||||||
for (int idx = 0; idx < roots.length; idx++){
|
for (int idx = 0; idx < roots.length; idx++){
|
||||||
// DKM
|
|
||||||
//System.out.println("recursiveFindAllRemoteItemFilterReferences");
|
|
||||||
matches = recursiveFindAllRemoteItemFilterReferences(roots[idx], elementName, subsystem, matches);
|
matches = recursiveFindAllRemoteItemFilterReferences(roots[idx], elementName, subsystem, matches);
|
||||||
}
|
}
|
||||||
return matches;
|
return matches;
|
||||||
|
@ -4185,7 +4210,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
if (rawData instanceof ISystemFilterReference) {
|
if (rawData instanceof ISystemFilterReference) {
|
||||||
ISystemFilterReference filterRef = (ISystemFilterReference) rawData;
|
ISystemFilterReference filterRef = (ISystemFilterReference) rawData;
|
||||||
if (filterRef.getReferencedFilter().isPromptable()) return occurrences;
|
if (filterRef.getReferencedFilter().isPromptable()) return occurrences;
|
||||||
if (debugRemote) System.out.println("Testing filter: " + filterRef.getReferencedFilter().getName()); //$NON-NLS-1$
|
|
||||||
ISubSystem fss = (ISubSystem) filterRef.getProvider();
|
ISubSystem fss = (ISubSystem) filterRef.getProvider();
|
||||||
if (fss != null) // should never happen!!
|
if (fss != null) // should never happen!!
|
||||||
{
|
{
|
||||||
|
@ -4238,7 +4262,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
|
||||||
// recurse over children
|
// recurse over children
|
||||||
Item[] items = getChildren(parent);
|
Item[] items = getChildren(parent);
|
||||||
for (int i = 0; (i < items.length); i++) {
|
for (int i = 0; (i < items.length); i++) {
|
||||||
//System.out.println("recursiveFindAllRemoteItemFilterReferences");
|
|
||||||
occurrences = recursiveFindAllRemoteItemFilterReferences(items[i], elementName, subsystem, occurrences);
|
occurrences = recursiveFindAllRemoteItemFilterReferences(items[i], elementName, subsystem, occurrences);
|
||||||
}
|
}
|
||||||
return occurrences;
|
return occurrences;
|
||||||
|
|
Loading…
Add table
Reference in a new issue