wlu: more on handling disposal
diff --git a/1.5/plugins/org.eclipse.epf.library.ui/src/org/eclipse/epf/library/ui/actions/ConfigurationContributionItem.java b/1.5/plugins/org.eclipse.epf.library.ui/src/org/eclipse/epf/library/ui/actions/ConfigurationContributionItem.java
index 24393e0..654dd80 100644
--- a/1.5/plugins/org.eclipse.epf.library.ui/src/org/eclipse/epf/library/ui/actions/ConfigurationContributionItem.java
+++ b/1.5/plugins/org.eclipse.epf.library.ui/src/org/eclipse/epf/library/ui/actions/ConfigurationContributionItem.java
@@ -140,8 +140,28 @@
configCombo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
configCombo.setVisibleItemCount(10);
configCombo.setEnabled(true);
- configComboViewer = new ComboViewer(configCombo);
+ configComboViewer = new ComboViewer(configCombo) {
+ protected void handleDispose(DisposeEvent event) {
+ super.handleDispose(event);
+ if (!getCombo().isDisposed()) {
+ IStructuredContentProvider c = new IStructuredContentProvider() {
+ public void inputChanged(Viewer viewer,
+ Object oldInput, Object newInput) {
+ }
+ public Object[] getElements(Object inputElement) {
+ return new Object[0];
+ }
+
+ public void dispose() {
+
+ }
+ };
+ setContentProvider(c);
+ }
+ }
+
+ };
contentProvider = new AdapterFactoryContentProvider(
TngAdapterFactory.INSTANCE
.getNavigatorView_ComposedAdapterFactory()) {
@@ -358,19 +378,6 @@
if (configComboViewer != null) {
configComboViewer
.removePostSelectionChangedListener(postSelectionChangedListener);
- if (!configComboViewer.getCombo().isDisposed()) {
- IStructuredContentProvider c = new IStructuredContentProvider() {
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- public Object[] getElements(Object inputElement) {
- return new Object[0];
- }
- public void dispose() {
-
- }
- };
- configComboViewer.setContentProvider(c);
- }
}
super.dispose();