From 2077b763ea8932ee872550c7a5b9ec287631b2b5 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Wed, 11 Oct 2006 16:40:24 +0000 Subject: [PATCH] more table-tree view issues --- .../UI/org/eclipse/rse/internal/ui/view/SystemView.java | 2 ++ .../ui/view/SystemDeferredTableTreeContentManager.java | 7 ++++++- .../UI/org/eclipse/rse/ui/view/SystemTableTreeView.java | 8 +++++++- .../eclipse/rse/ui/view/SystemTableTreeViewProvider.java | 7 +++++++ .../UI/org/eclipse/rse/ui/view/SystemView.java | 2 ++ .../eclipse/rse/ui/view/search/SystemSearchTableView.java | 4 +++- 6 files changed, 27 insertions(+), 3 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 b6b16845d62..bbcc091159c 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 @@ -1501,6 +1501,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour job.setPriority(Job.INTERACTIVE); //job.setUser(true); job.schedule(); + /* Display display = Display.getCurrent(); try { while (job.getResult() == null) { @@ -1511,6 +1512,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour } } catch (InterruptedException e) { } + */ } /** diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemDeferredTableTreeContentManager.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemDeferredTableTreeContentManager.java index 6718552820d..ed6d235a476 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemDeferredTableTreeContentManager.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemDeferredTableTreeContentManager.java @@ -3,6 +3,7 @@ package org.eclipse.rse.ui.view; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.progress.DeferredTreeContentManager; +import org.eclipse.ui.views.properties.IPropertyDescriptor; public class SystemDeferredTableTreeContentManager extends DeferredTreeContentManager { @@ -20,7 +21,11 @@ public class SystemDeferredTableTreeContentManager extends super.addChildren(parent, children, monitor); _provider.setCachedObjects(parent, children); - Display.getDefault().asyncExec(new RelayoutView(parent)); + IPropertyDescriptor[] descriptors = _view.getUniqueDescriptors(); + if (descriptors == null) + { + Display.getDefault().asyncExec(new RelayoutView(parent)); + } } diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java index 1aeb09ac7a3..289a3eb83dd 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java @@ -436,6 +436,12 @@ implements IMenuListener, ISystemDeleteTarget, ISystemRenameTarget, ISystemSelec { return _columnManager.getVisibleDescriptors(adapter); } + + public IPropertyDescriptor[] getUniqueDescriptors() + { + return _uniqueDescriptors; + } + /** * Used to determine what the columns should be on the table. */ @@ -855,7 +861,7 @@ implements IMenuListener, ISystemDeleteTarget, ISystemRenameTarget, ISystemSelec { if (!madeChange) { - provider.flushCache(); + //provider.flushCache(); madeChange = true; } diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeViewProvider.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeViewProvider.java index 0cda6ffbf2e..e0406dd2688 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeViewProvider.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeViewProvider.java @@ -62,6 +62,7 @@ public class SystemTableTreeViewProvider implements ILabelProvider, ITableLabelP protected Viewer _viewer = null; protected int _maxCharsInColumnZero = 0; private SystemDeferredTableTreeContentManager manager; + private boolean _disableDeferredQueries = false; /** * The cache of images that have been dispensed by this provider. @@ -433,9 +434,15 @@ public class SystemTableTreeViewProvider implements ILabelProvider, ITableLabelP public void dispose() { } + public void disableDeferredQueries(boolean disable) + { + _disableDeferredQueries = disable; + } protected boolean supportsDeferredQueries() { + if (_disableDeferredQueries) + return false; IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore(); return store.getBoolean(ISystemPreferencesConstants.USE_DEFERRED_QUERIES); } 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 b6b16845d62..bbcc091159c 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 @@ -1501,6 +1501,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour job.setPriority(Job.INTERACTIVE); //job.setUser(true); job.schedule(); + /* Display display = Display.getCurrent(); try { while (job.getResult() == null) { @@ -1511,6 +1512,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour } } catch (InterruptedException e) { } + */ } /** diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/search/SystemSearchTableView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/search/SystemSearchTableView.java index b085866d86a..8f545b04302 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/search/SystemSearchTableView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/search/SystemSearchTableView.java @@ -48,6 +48,7 @@ public class SystemSearchTableView extends SystemTableTreeView super(tabletree, msgLine); this.resultSet = resultSet; + _provider.disableDeferredQueries(true); setLabelProvider(new SystemDecoratingLabelProvider(_provider, RSEUIPlugin.getDefault().getWorkbench().getDecoratorManager().getLabelDecorator())); } @@ -155,7 +156,7 @@ public class SystemSearchTableView extends SystemTableTreeView case ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_RENAMED : { Object resource = event.getResource(); - String resourceOldPath = event.getOldName(); + // String resourceOldPath = event.getOldName(); /** FIXME - IREmoteFile is systems.core independent now // we only care about remote file renames @@ -307,6 +308,7 @@ public class SystemSearchTableView extends SystemTableTreeView if ((previousResults == null || previousResults.length == 0) && newResults.length != 0) { provider.flushCache(); refresh(getInput()); + } else if (previousResults != null) {