/*******************************************************************************
* Copyright (c) 2014 Zend Technologies and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Zend Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.php.internal.ui.workingset;
import org.eclipse.dltk.internal.ui.workingsets.WorkingSetFilterActionGroup;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.IWorkingSet;
/**
* Overrides the DLTK working set filter action group for using the
* {@link PHPWorkingSetFilter} filter instead of the DLTK working set filter.
*
* @author Kaloyan Raev
*/
public class PHPWorkingSetFilterActionGroup extends WorkingSetFilterActionGroup {
private PHPWorkingSetFilter fWorkingSetFilter;
public PHPWorkingSetFilterActionGroup(IWorkbenchPartSite site, IPropertyChangeListener changeListener) {
super(site, changeListener);
}
public PHPWorkingSetFilterActionGroup(Shell shell, IWorkbenchPage page, IPropertyChangeListener changeListener) {
super(shell, page, changeListener);
}
@Override
public boolean isFiltered(Object parent, Object object) {
return !getWorkingSetFilter().select(null, parent, object);
}
@Override
public void setWorkingSet(IWorkingSet workingSet, boolean refreshViewer) {
getWorkingSetFilter().setWorkingSet(workingSet);
super.setWorkingSet(workingSet, refreshViewer);
}
@Override
public PHPWorkingSetFilter getWorkingSetFilter() {
if (fWorkingSetFilter == null) {
fWorkingSetFilter = new PHPWorkingSetFilter();
}
return fWorkingSetFilter;
}
}