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() { 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); }