package org.projectusus.adapter; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IEclipsePreferences.INodeChangeListener; import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener; import org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent; class RegisterPreferenceListenerForAllChildren implements INodeChangeListener { private final IPreferenceChangeListener preferenceChangeListener; RegisterPreferenceListenerForAllChildren( IPreferenceChangeListener preferenceChangeListener ) { this.preferenceChangeListener = preferenceChangeListener; } public void removed( NodeChangeEvent event ) { IEclipsePreferences preferences = (IEclipsePreferences)event.getChild(); preferences.removePreferenceChangeListener( preferenceChangeListener ); } public void added( NodeChangeEvent event ) { IEclipsePreferences preferences = (IEclipsePreferences)event.getChild(); preferences.addPreferenceChangeListener( preferenceChangeListener ); } }