From 5e81be52d6ed73b148f176af5e1432737924dedc Mon Sep 17 00:00:00 2001 From: David McKnight Date: Fri, 23 Nov 2007 01:29:34 +0000 Subject: [PATCH] [210563] error messages need to be shown if incurred during filter expansion --- .../SystemViewFilterReferenceAdapter.java | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java index 95de95fc634..782be22b1bd 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewFilterReferenceAdapter.java @@ -23,6 +23,7 @@ * Kevin Doyle (IBM) - [187707] Added separator between New Folder and New File in context menu * David McKnight (IBM) - [199566] Remove synchronzied from internalGetChildren * Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread + * David McKnight (IBM) - [210563] error messages need to be shown if incurred during filter expansion ********************************************************************************/ package org.eclipse.rse.internal.ui.view; @@ -269,7 +270,8 @@ public class SystemViewFilterReferenceAdapter ISubSystemConfiguration configuration = subsystem.getSubSystemConfiguration(); Object adapter = Platform.getAdapterManager().getAdapter(configuration, ISubSystemConfigurationAdapter.class); - if (adapter instanceof ISubSystemConfigurationAdapter) { + if (adapter instanceof ISubSystemConfigurationAdapter) + { children = ((ISubSystemConfigurationAdapter)adapter).applyViewFilters(element, children); } @@ -424,21 +426,27 @@ public class SystemViewFilterReferenceAdapter } else { + if (allChildren.length == 1 && allChildren[0] instanceof ISystemMessageObject) + { + // error to display + return allChildren; // nothing to sort or cache - just show the error + } + if (nestedFilterReferences != null) { - int nbrNestedFilters = nestedFilterReferences.length; - children = new Object[nbrNestedFilters + allChildren.length]; - int idx = 0; - for (idx = 0; idx < nbrNestedFilters; idx++) - children[idx] = nestedFilterReferences[idx]; - for (int jdx = 0; jdx < allChildren.length; jdx++) - children[idx++] = allChildren[jdx]; - - - if (!referencedFilter.isTransient() && ssf.supportsFilterCaching()) - { - fRef.setContents(SystemChildrenContentsType.getInstance(), children); - } + int nbrNestedFilters = nestedFilterReferences.length; + children = new Object[nbrNestedFilters + allChildren.length]; + int idx = 0; + for (idx = 0; idx < nbrNestedFilters; idx++) + children[idx] = nestedFilterReferences[idx]; + for (int jdx = 0; jdx < allChildren.length; jdx++) + children[idx++] = allChildren[jdx]; + + + if (!referencedFilter.isTransient() && ssf.supportsFilterCaching()) + { + fRef.setContents(SystemChildrenContentsType.getInstance(), children); + } } } }