mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 22:52:11 +02:00
Fix working-set filter updates
This commit is contained in:
parent
99de459e00
commit
ed64c1a6f9
1 changed files with 29 additions and 0 deletions
|
@ -19,6 +19,8 @@ import org.eclipse.ui.IActionBars;
|
||||||
import org.eclipse.ui.IMemento;
|
import org.eclipse.ui.IMemento;
|
||||||
import org.eclipse.ui.IViewPart;
|
import org.eclipse.ui.IViewPart;
|
||||||
import org.eclipse.ui.IWorkingSet;
|
import org.eclipse.ui.IWorkingSet;
|
||||||
|
import org.eclipse.ui.IWorkingSetManager;
|
||||||
|
import org.eclipse.ui.PlatformUI;
|
||||||
import org.eclipse.ui.ResourceWorkingSetFilter;
|
import org.eclipse.ui.ResourceWorkingSetFilter;
|
||||||
import org.eclipse.ui.actions.ActionContext;
|
import org.eclipse.ui.actions.ActionContext;
|
||||||
import org.eclipse.ui.actions.WorkingSetFilterActionGroup;
|
import org.eclipse.ui.actions.WorkingSetFilterActionGroup;
|
||||||
|
@ -36,6 +38,8 @@ public class CNavigatorWorkingSetActionProvider extends CommonActionProvider {
|
||||||
|
|
||||||
private CNavigatorWorkingSetActionGroup fWorkingSetGroup;
|
private CNavigatorWorkingSetActionGroup fWorkingSetGroup;
|
||||||
private ResourceWorkingSetFilter fWorkingSetFilter;
|
private ResourceWorkingSetFilter fWorkingSetFilter;
|
||||||
|
private IPropertyChangeListener workingSetListener;
|
||||||
|
|
||||||
private boolean fContributed;
|
private boolean fContributed;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -90,6 +94,26 @@ public class CNavigatorWorkingSetActionProvider extends CommonActionProvider {
|
||||||
}
|
}
|
||||||
}};
|
}};
|
||||||
fWorkingSetGroup= new CNavigatorWorkingSetActionGroup(workbenchSite.getShell(), workingSetUpdater);
|
fWorkingSetGroup= new CNavigatorWorkingSetActionGroup(workbenchSite.getShell(), workingSetUpdater);
|
||||||
|
workingSetListener = new IPropertyChangeListener() {
|
||||||
|
public void propertyChange(PropertyChangeEvent ev) {
|
||||||
|
String property= ev.getProperty();
|
||||||
|
if (property == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Object newValue= ev.getNewValue();
|
||||||
|
Object oldValue= ev.getOldValue();
|
||||||
|
IWorkingSet filterWorkingSet= fWorkingSetFilter.getWorkingSet();
|
||||||
|
if (IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property) && oldValue == filterWorkingSet) {
|
||||||
|
fWorkingSetFilter.setWorkingSet(null);
|
||||||
|
} else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property) && newValue == filterWorkingSet) {
|
||||||
|
// updateTitle();
|
||||||
|
} else if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property) && newValue == filterWorkingSet) {
|
||||||
|
viewer.refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
IWorkingSetManager wsManager = PlatformUI.getWorkbench().getWorkingSetManager();
|
||||||
|
wsManager.addPropertyChangeListener(workingSetListener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,6 +152,11 @@ public class CNavigatorWorkingSetActionProvider extends CommonActionProvider {
|
||||||
* @see org.eclipse.ui.actions.ActionGroup#dispose()
|
* @see org.eclipse.ui.actions.ActionGroup#dispose()
|
||||||
*/
|
*/
|
||||||
public void dispose() {
|
public void dispose() {
|
||||||
|
if (workingSetListener != null) {
|
||||||
|
IWorkingSetManager wsManager= PlatformUI.getWorkbench().getWorkingSetManager();
|
||||||
|
wsManager.addPropertyChangeListener(workingSetListener);
|
||||||
|
workingSetListener= null;
|
||||||
|
}
|
||||||
if (fWorkingSetGroup != null) {
|
if (fWorkingSetGroup != null) {
|
||||||
fWorkingSetGroup.dispose();
|
fWorkingSetGroup.dispose();
|
||||||
fWorkingSetGroup= null;
|
fWorkingSetGroup= null;
|
||||||
|
|
Loading…
Add table
Reference in a new issue