From a88fe3e775a8b2a59160f400eaa4406c91581dd8 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Tue, 5 Dec 2006 20:25:44 +0000 Subject: [PATCH] [166345] applied patch for "empty list" problem --- .../rse/internal/ui/view/SystemView.java | 20 +++++++++++-------- .../org/eclipse/rse/ui/view/SystemView.java | 20 +++++++++++-------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java index 9c8096646a6..63f0f5e83f2 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java @@ -2788,16 +2788,16 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour if (!isTreeItemSelected(widget)) // it is one of our kids that is selected { clearSelection(); // there is nothing much else we can do. Calling code will restore it anyway hopefully - doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings); + doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings, true); } else // it is us that is selected. This might be a refresh selected operation. TreeItem address won't change { - doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings); + doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings, true); } } else { final boolean finalDoTimings = doTimings; preservingSelection(new Runnable() { public void run() { - doOurInternalRefresh(fWidget, fElement, fDoStruct, finalDoTimings); + doOurInternalRefresh(fWidget, fElement, fDoStruct, finalDoTimings, true); } }); } @@ -2813,7 +2813,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour return false; } - protected void doOurInternalRefresh(Widget widget, Object element, boolean doStruct, boolean doTimings) { + protected void doOurInternalRefresh(Widget widget, Object element, boolean doStruct, boolean doTimings, boolean firstCall) { if (debug) { logDebugMsg("in doOurInternalRefresh on " + getAdapter(element).getName(element)); //$NON-NLS-1$ logDebugMsg("...current selection is " + getFirstSelectionName(getSelection())); //$NON-NLS-1$ @@ -2846,9 +2846,9 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour // DKM - without the else we get duplicate queries on expanded folder // uncommented - seems new results after query aren't showing up //else - { - internalRefresh(element); - } +// { +// internalRefresh(element); +// } if (doTimings && timer != null) { System.out.println("doOurInternalRefresh timer 3: time to updateChildren:" + timer.setEndTime()); //$NON-NLS-1$ @@ -2865,7 +2865,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour for (int i = 0; i < children.length; i++) { Widget item = children[i]; Object data = item.getData(); - if (data != null) doOurInternalRefresh(item, data, doStruct, false); + if (data != null) doOurInternalRefresh(item, data, doStruct, false, false); /* if (doTimings) { @@ -2879,6 +2879,10 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour }*/ } } + if (firstCall) + { + internalRefresh(element); + } if (doTimings && timer != null) { System.out.println("doOurInternalRefresh timer 4: time to recurse children:" + timer.setEndTime()); //$NON-NLS-1$ timer.setStartTime(); diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java index 9c8096646a6..63f0f5e83f2 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java @@ -2788,16 +2788,16 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour if (!isTreeItemSelected(widget)) // it is one of our kids that is selected { clearSelection(); // there is nothing much else we can do. Calling code will restore it anyway hopefully - doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings); + doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings, true); } else // it is us that is selected. This might be a refresh selected operation. TreeItem address won't change { - doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings); + doOurInternalRefresh(fWidget, fElement, fDoStruct, doTimings, true); } } else { final boolean finalDoTimings = doTimings; preservingSelection(new Runnable() { public void run() { - doOurInternalRefresh(fWidget, fElement, fDoStruct, finalDoTimings); + doOurInternalRefresh(fWidget, fElement, fDoStruct, finalDoTimings, true); } }); } @@ -2813,7 +2813,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour return false; } - protected void doOurInternalRefresh(Widget widget, Object element, boolean doStruct, boolean doTimings) { + protected void doOurInternalRefresh(Widget widget, Object element, boolean doStruct, boolean doTimings, boolean firstCall) { if (debug) { logDebugMsg("in doOurInternalRefresh on " + getAdapter(element).getName(element)); //$NON-NLS-1$ logDebugMsg("...current selection is " + getFirstSelectionName(getSelection())); //$NON-NLS-1$ @@ -2846,9 +2846,9 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour // DKM - without the else we get duplicate queries on expanded folder // uncommented - seems new results after query aren't showing up //else - { - internalRefresh(element); - } +// { +// internalRefresh(element); +// } if (doTimings && timer != null) { System.out.println("doOurInternalRefresh timer 3: time to updateChildren:" + timer.setEndTime()); //$NON-NLS-1$ @@ -2865,7 +2865,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour for (int i = 0; i < children.length; i++) { Widget item = children[i]; Object data = item.getData(); - if (data != null) doOurInternalRefresh(item, data, doStruct, false); + if (data != null) doOurInternalRefresh(item, data, doStruct, false, false); /* if (doTimings) { @@ -2879,6 +2879,10 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour }*/ } } + if (firstCall) + { + internalRefresh(element); + } if (doTimings && timer != null) { System.out.println("doOurInternalRefresh timer 4: time to recurse children:" + timer.setEndTime()); //$NON-NLS-1$ timer.setStartTime();