mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-14 20:45:22 +02:00
[196662] Avoid main thread query to check exists when remote refreshing
This commit is contained in:
parent
442afc52bf
commit
b1df07b7af
1 changed files with 36 additions and 2 deletions
|
@ -36,6 +36,7 @@
|
||||||
* David McKnight (IBM) - [187205] Prevented expansion of non-expanded on remote refresh
|
* David McKnight (IBM) - [187205] Prevented expansion of non-expanded on remote refresh
|
||||||
* David McKnight (IBM) - [196930] Don't add the connection when it's not supposed to be shown
|
* David McKnight (IBM) - [196930] Don't add the connection when it's not supposed to be shown
|
||||||
* Tobias Schwarz (Wind River) - [197484] Provide ContextObject for queries on all levels
|
* Tobias Schwarz (Wind River) - [197484] Provide ContextObject for queries on all levels
|
||||||
|
* David McKnight (IBM) - [196662] Avoid main thread query to check exists when remote refreshing
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.ui.view;
|
package org.eclipse.rse.internal.ui.view;
|
||||||
|
@ -2175,6 +2176,21 @@ public class SystemView extends SafeTreeViewer
|
||||||
}
|
}
|
||||||
if (ss != null)
|
if (ss != null)
|
||||||
{
|
{
|
||||||
|
// for bug 196662
|
||||||
|
// if we're refreshing a previously unexpanded node, then a query will not happen
|
||||||
|
// so we should refresh it's parent in this case
|
||||||
|
Widget w = findItem(src);
|
||||||
|
if (w instanceof TreeItem)
|
||||||
|
{
|
||||||
|
TreeItem titem = (TreeItem)w;
|
||||||
|
TreeItem[] titems = titem.getItems();
|
||||||
|
if (titems.length > 0 && !titem.getExpanded())
|
||||||
|
{
|
||||||
|
src = adapter.getParent(src);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* old code - issue in 196662
|
||||||
String key = adapter.getAbsoluteName(src);
|
String key = adapter.getAbsoluteName(src);
|
||||||
if (key != null)
|
if (key != null)
|
||||||
{
|
{
|
||||||
|
@ -2199,6 +2215,7 @@ public class SystemView extends SafeTreeViewer
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5741,11 +5758,12 @@ public class SystemView extends SafeTreeViewer
|
||||||
{
|
{
|
||||||
ref = getContainingFilterReference((TreeItem)match);
|
ref = getContainingFilterReference((TreeItem)match);
|
||||||
}
|
}
|
||||||
|
ISystemViewElementAdapter adapter = (ISystemViewElementAdapter)((IAdaptable)parentElementOrTreePath).getAdapter(ISystemViewElementAdapter.class);
|
||||||
|
|
||||||
if (matches.size() > 1 && ref != null && ref != originalFilter)
|
if (matches.size() > 1 && ref != null && ref != originalFilter)
|
||||||
{
|
{
|
||||||
// could have the same object under multiple filters
|
// could have the same object under multiple filters
|
||||||
// need to apply filter
|
// need to apply filter
|
||||||
ISystemViewElementAdapter adapter = (ISystemViewElementAdapter)((IAdaptable)parentElementOrTreePath).getAdapter(ISystemViewElementAdapter.class);
|
|
||||||
|
|
||||||
Object[] newChildren = null;
|
Object[] newChildren = null;
|
||||||
if (match instanceof TreeItem)
|
if (match instanceof TreeItem)
|
||||||
|
@ -5757,8 +5775,24 @@ public class SystemView extends SafeTreeViewer
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
internalAdd(match, parentElementOrTreePath, childElements);
|
internalAdd(match, parentElementOrTreePath, childElements);
|
||||||
|
|
||||||
|
// refresh parent in this case because the parentElementOrTreePath may no longer exist
|
||||||
|
if (childElements.length == 0 || childElements[0] instanceof SystemMessageObject)
|
||||||
|
{
|
||||||
|
if (adapter.isRemote(parentElementOrTreePath) && !adapter.hasChildren((IAdaptable)parentElementOrTreePath))
|
||||||
|
{
|
||||||
|
// refresh the parent
|
||||||
|
Object par = adapter.getParent(parentElementOrTreePath);
|
||||||
|
ISystemRegistry sr = RSECorePlugin.getTheSystemRegistry();
|
||||||
|
sr.fireEvent(new SystemResourceChangeEvent(par, ISystemResourceChangeEvents.EVENT_REFRESH_REMOTE, null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue