下面列出了怎么用org.eclipse.ui.actions.WorkingSetFilterActionGroup的API类实例代码及写法,或者点击链接到github查看源代码。
public void init(ICommonActionExtensionSite aSite) {
viewer = (CommonViewer) aSite.getStructuredViewer();
contentService = aSite.getContentService();
filterService = (NavigatorFilterService) contentService.getFilterService();
extensionStateModel = contentService.findStateModel(WorkingSetsContentProvider.EXTENSION_ID);
workingSetActionGroup = new WorkingSetFilterActionGroup(aSite.getViewSite().getShell(), filterChangeListener);
workingSetRootModeActionGroup = new WorkingSetRootModeActionGroup(viewer, extensionStateModel);
topLevelModeListener = new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
setWorkingSet(workingSet);
viewer.getFrameList().reset();
}
};
if (contentService.isActive(WorkingSetsContentProvider.EXTENSION_ID)) {
managerChangeListener.listen();
extensionStateModel.addPropertyChangeListener(topLevelModeListener);
}
contentService.getActivationService().addExtensionActivationListener(activationListener);
}
public void init(ICommonActionExtensionSite aSite) {
viewer = (CommonViewer) aSite.getStructuredViewer();
contentService = aSite.getContentService();
filterService = (NavigatorFilterService) contentService.getFilterService();
extensionStateModel = contentService.findStateModel(WorkingSetsContentProvider.EXTENSION_ID);
workingSetActionGroup = new WorkingSetFilterActionGroup(aSite.getViewSite().getShell(), filterChangeListener);
workingSetRootModeActionGroup = new WorkingSetRootModeActionGroup(viewer, extensionStateModel);
topLevelModeListener = new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
setWorkingSet(workingSet);
viewer.getFrameList().reset();
}
};
if (contentService.isActive(WorkingSetsContentProvider.EXTENSION_ID)) {
managerChangeListener.listen();
extensionStateModel.addPropertyChangeListener(topLevelModeListener);
}
contentService.getActivationService().addExtensionActivationListener(activationListener);
}
@Override
public void init(ICommonActionExtensionSite aSite) {
site = aSite;
super.init(aSite);
final StructuredViewer viewer = aSite.getStructuredViewer();
final BugContentProvider provider = BugContentProvider.getProvider(site.getContentService());
filterChangeListener = new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (!initDone) {
return;
}
IWorkingSet oldWorkingSet = provider.getCurrentWorkingSet();
IWorkingSet oldWorkingSet1 = (IWorkingSet) event.getOldValue();
IWorkingSet newWorkingSet = (IWorkingSet) event.getNewValue();
if (newWorkingSet != null && (oldWorkingSet == newWorkingSet || oldWorkingSet1 == newWorkingSet)) {
return;
}
if (viewer != null) {
provider.setCurrentWorkingSet(newWorkingSet);
if (newWorkingSet == null) {
viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
} else if (oldWorkingSet != newWorkingSet) {
viewer.setInput(newWorkingSet);
}
}
}
};
workingSetActionGroup = new WorkingSetFilterActionGroup(aSite.getViewSite().getShell(), filterChangeListener);
if (provider == null)
throw new NullPointerException("no provider");
workingSetActionGroup.setWorkingSet(provider.getCurrentWorkingSet());
doubleClickAction = new MyAction();
// only if doubleClickAction must know tree selection:
viewer.addSelectionChangedListener(doubleClickAction);
initDone = true;
}
/**
* We need to add the action for the working set.
*/
@Override
protected void fillViewMenu(IMenuManager menuManager) {
super.fillViewMenu(menuManager);
workingSetFilterActionGroup = new WorkingSetFilterActionGroup(getShell(), new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
String property = event.getProperty();
if (WorkingSetFilterActionGroup.CHANGE_WORKING_SET.equals(property)) {
IWorkingSet workingSet = (IWorkingSet) event.getNewValue();
if (workingSet != null && !(workingSet.isAggregateWorkingSet() && workingSet.isEmpty())) {
workingSetFilter.setWorkingSet(workingSet);
setSubtitle(workingSet.getLabel());
} else {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window != null) {
IWorkbenchPage page = window.getActivePage();
workingSet = page.getAggregateWorkingSet();
if (workingSet.isAggregateWorkingSet() && workingSet.isEmpty()) {
workingSet = null;
}
}
workingSetFilter.setWorkingSet(workingSet);
setSubtitle(null);
}
scheduleRefresh();
}
}
});
menuManager.add(new Separator());
workingSetFilterActionGroup.fillContextMenu(menuManager);
}