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 ae34250aa6c..d99f0d7eb06 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 @@ -54,6 +54,7 @@ * David Dykstal (IBM) - [225911] Exception received after deleting a profile containing a connection * David Dykstal (IBM) - [216858] Need the ability to Import/Export RSE connections for sharing * David McKnight (IBM) - [231903] TVT34:TCT198: PLK: problems with "Show prompt" checkbox and "New connection prompt" + * David McKnight (IBM) - [233530] Not Prompted on Promptable Filters after using once by double click ********************************************************************************/ package org.eclipse.rse.internal.ui.view; @@ -1284,6 +1285,32 @@ public class SystemView extends SafeTreeViewer */ public void treeCollapsed(TreeExpansionEvent event) { final Object element = event.getElement(); // get parent node being collapsed + + // for bug 233530 we need to disassociate message objects so they don't get cached in the tree + Widget widget = findItem(element); // find GUI widget for this node + if ((widget!=null) && (widget instanceof Item)) + { + Item ti= (Item) widget; + Item[] items= getItems(ti); + + //D51021 if ((items!=null) && (items.length==1)) + if (items!=null) { + for (int i= 0; i < items.length; i++) + { + Object data = items[i].getData(); + if ((data != null) && (data instanceof ISystemMessageObject)) { + if (((ISystemMessageObject) data).isTransient()) { + disassociate(items[i]); + items[i].dispose(); + } + } + } + // append a dummy so there is a plus + if (getItemCount(ti)==0) + newItem(ti, SWT.NULL, -1); + } + } + // we always allow adapters opportunity to show a different icon depending on collapsed state getShell().getDisplay().asyncExec(new Runnable() { public void run() {