/** * Provide the initialization of the listeners additions. The Window, Part, and Document Listener * are added. Note that sensor shell should be instantiated before this method is called because * <code>processActivity()</code> method uses sensor shell instance. */ private void registerListeners() { IWorkbench workbench = EclipseSensorPlugin.getInstance().getWorkbench(); // :RESOLVED: JULY 1, 2003 // Supports the multiple window for sensor collection. IWorkbenchWindow[] activeWindows = workbench.getWorkbenchWindows(); // Check if window listener is not added yet. Otherwise multi instances are notified. if (this.windowListener == null) { this.windowListener = new WindowListenerAdapter(); workbench.addWindowListener(new WindowListenerAdapter()); } for (int i = 0; i < activeWindows.length; i++) { IWorkbenchPage activePage = activeWindows[i].getActivePage(); activePage.addPartListener(new PartListenerAdapter()); IEditorPart activeEditorPart = activePage.getActiveEditor(); // Adds this EclipseSensorPlugin instance to IDocumentListener // only when activeEditorPart is the instance of ITextEditor // so that null case is also ignored. if (activeEditorPart instanceof ITextEditor) { // Sets activeTextEditor. Otherwise a first activated file would not be recorded. this.activeTextEditor = (ITextEditor) activeEditorPart; // Gets opened file since the initial opened file is not notified from IPartListener. URI fileResource = EclipseSensor.this.getFileResource(this.activeTextEditor); Map<String, String> keyValueMap = new HashMap<String, String>(); keyValueMap.put(EclipseSensorConstants.SUBTYPE, "Open"); keyValueMap.put(EclipseSensorConstants.UNIT_TYPE, EclipseSensorConstants.FILE); keyValueMap.put( EclipseSensorConstants.UNIT_NAME, EclipseSensor.this.extractFileName(fileResource)); this.addDevEvent( EclipseSensorConstants.DEVEVENT_EDIT, fileResource, keyValueMap, "Opened " + fileResource.toString()); IDocumentProvider provider = this.activeTextEditor.getDocumentProvider(); IDocument document = provider.getDocument(activeEditorPart.getEditorInput()); // Initially sets active buffer and threshold buffer. // Otherwise a first activated buffer would not be recorded. this.activeBufferSize = document.getLength(); this.thresholdBufferSize = document.getLength(); document.addDocumentListener(new DocumentListenerAdapter()); } } // Handles breakpoint set/unset event. IBreakpointManager bpManager = DebugPlugin.getDefault().getBreakpointManager(); bpManager.addBreakpointListener(new BreakPointerSensor(this)); // Listens to debug event. DebugPlugin.getDefault().addDebugEventListener(new DebugSensor(this)); // Creates instance to handle build error. this.buildErrorSensor = new BuildErrorSensor(this); }
/* (non-Javadoc) * @see org.eclipse.ui.IPageListener#pageActivated(org.eclipse.ui.IWorkbenchPage) */ @Override public void pageActivated(IWorkbenchPage page) { if (currentActivePage != null) currentActivePage.removePartListener(MbeWorkbenchPagePartListener.Default); currentActivePage = page; if (currentActivePage != null) currentActivePage.addPartListener(MbeWorkbenchPagePartListener.Default); }
/* * @see IEditorActionBarContributor#init(IActionBars, IWorkbenchPage) */ @Override public void init(IActionBars bars, IWorkbenchPage page) { fToggleBreadcrumbAction = new ToggleBreadcrumbAction(page); Iterator<RetargetAction> e = fPartListeners.iterator(); while (e.hasNext()) page.addPartListener(e.next()); super.init(bars, page); bars.setGlobalActionHandler( ITextEditorActionDefinitionIds.TOGGLE_SHOW_SELECTED_ELEMENT_ONLY, fTogglePresentation); bars.setGlobalActionHandler( IJavaEditorActionDefinitionIds.TOGGLE_MARK_OCCURRENCES, fToggleMarkOccurrencesAction); bars.setGlobalActionHandler( IJavaEditorActionDefinitionIds.TOGGLE_BREADCRUMB, fToggleBreadcrumbAction); }
public SourceDisplayListener() { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); fPage = window.getActivePage(); fPage.addPartListener(this); fPage .getWorkbenchWindow() .getShell() .getDisplay() .asyncExec( new Runnable() { public void run() { partBroughtToTop(fPage.getActiveEditor()); } }); }
public static void install() { IWorkbenchPage page = CeylonTestUtil.getActivePage(); IViewPart part = page.findView(PackageExplorerPart.VIEW_ID); if (part != null) { PackageExplorerPart packageExplorerPart = (PackageExplorerPart) part; install(packageExplorerPart); } page.addPartListener( new IPartListener2() { @Override public void partOpened(IWorkbenchPartReference partRef) { if (partRef.getId().equals(PackageExplorerPart.VIEW_ID)) { IWorkbenchPart part = partRef.getPart(false); if (part != null) { PackageExplorerPart packageExplorerPart = (PackageExplorerPart) part; install(packageExplorerPart); } } } @Override public void partVisible(IWorkbenchPartReference partRef) {} @Override public void partInputChanged(IWorkbenchPartReference partRef) {} @Override public void partHidden(IWorkbenchPartReference partRef) {} @Override public void partDeactivated(IWorkbenchPartReference partRef) {} @Override public void partClosed(IWorkbenchPartReference partRef) {} @Override public void partBroughtToTop(IWorkbenchPartReference partRef) {} @Override public void partActivated(IWorkbenchPartReference partRef) {} }); }
public void registerAsListener() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (page != null) page.addPartListener(this); }
public void setActiveEditor(IEditorPart targetEditor) { super.setActiveEditor(targetEditor); workbench = targetEditor.getSite().getWorkbenchWindow().getActivePage(); workbench.addPartListener(this); targetEditor.addPropertyListener(this); }
public void pageOpened(IWorkbenchPage page) { page.addPartListener(listener); }