下面列出了org.eclipse.ui.IWorkbenchPage#addPartListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void init() {
super.init();
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
activeEditorOnPageListener = new ActiveEditorOnPageListener(page);
page.addPartListener(activeEditorOnPageListener);
activeEditorOnPageListener.checkEditorInWindow();
CodeRecommendationResultsModel model = new CodeRecommendationResultsModel();
CodeRecommendationResultsView view = new CodeRecommendationResultsView();
CodeRecommendationResultsController controller = new CodeRecommendationResultsController(this, model, view);
controller.init();
getView().showResults(view);
}
@Inject(optional=true)
protected void initialize(final IWorkbench workbench) {
Assert.isNotNull(Display.getCurrent());
partListener = new PartListener();
pageListener = new PageListener();
for (IWorkbenchWindow window : workbench.getWorkbenchWindows()) {
window.addPageListener(pageListener);
for (IWorkbenchPage page : window.getPages()) {
page.addPartListener(partListener);
for (IEditorReference editorRef : page.getEditorReferences()) {
Pair<URI, IXtextDocument> entry = getEntry(editorRef);
if (entry != null) {
resourceUri2document.put(entry.getFirst(), entry.getSecond());
}
}
}
}
}
public void setLinkingEnabled(boolean enabled) {
fLinkingEnabled= enabled;
saveDialogSettings();
IWorkbenchPage page= getSite().getPage();
if (enabled) {
page.addPartListener(fLinkWithEditorListener);
IEditorPart editor = page.getActiveEditor();
if (editor != null)
editorActivated(editor);
} else {
page.removePartListener(fLinkWithEditorListener);
}
fOpenAndLinkWithEditorHelper.setLinkWithEditor(enabled);
}
/**
* Makes sure that the editor's folding state is correct the next time
* it becomes visible. If it already is visible, it toggles the folding
* state. If not, it either registers a part listener to toggle folding
* when the editor becomes visible, or cancels an already registered
* runner.
*/
public void runWhenNextVisible() {
// if there is one already: toggling twice is the identity
if (fFoldingRunner != null) {
fFoldingRunner.cancel();
return;
}
IWorkbenchPartSite site= getSite();
if (site != null) {
IWorkbenchPage page= site.getPage();
if (!page.isPartVisible(JavaEditor.this)) {
// if we're not visible - defer until visible
fPage= page;
fFoldingRunner= this;
page.addPartListener(this);
return;
}
}
// we're visible - run now
toggleFolding();
}
private void hookListeners(IWorkbenchPage page) {
IPerspectiveDescriptor perspective = page.getPerspective();
if (perspective != null) {
perspectiveActivated(page, perspective);
}
page.addPartListener(this);
}
@Override
public void pageOpened(IWorkbenchPage page) {
IEditorReference[] rs = page.getEditorReferences();
for (IEditorReference r : rs) {
IEditorPart part = r.getEditor(false);
if (part != null) {
editorOpened(part);
}
}
page.addPartListener(this);
}
@Override
public void createPartControl(Composite parentComposite) {
IWorkbenchPage parentPage = getViewSite().getPage();
editor = getAcceptableEditor(parentPage.getActiveEditor());
createGui(parentComposite);
parentPage.addPartListener(partListener);
}
public void install(IWorkbenchPage page) {
page.addPartListener(this);
fIsVisible= page.isPartVisible(getViewPart());
if (fIsVisible) {
installOnActiveEditor(page);
}
}
@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);
}
@Override
public void init(IViewSite site, IMemento memento) throws PartInitException {
init(site);
final IWorkbenchPage page = site.getPage();
page.addPostSelectionListener(this);
page.addPartListener(new PartAdapter2() {
@Override
public void partClosed(IWorkbenchPartReference partRef) {
if (gridTable == null || gridTable.isDisposed()) {
page.removePartListener(this); // 关闭视图后,移除此监听
} else {
if ("net.heartsome.cat.ts.ui.xliffeditor.nattable.editor".equals(partRef.getId())) {
IEditorReference[] editorReferences = page.getEditorReferences();
if (editorReferences.length == 0) { // 所有编辑器全部关闭的情况下。
matcher.clearResources();
firstAction.setEnabled(false);
copyEnable.resetSelection();
gridTable.removeAll();
}
}
}
}
});
site.getActionBars().getStatusLineManager()
.setMessage(Messages.getString("view.TerminologyViewPart.statusLine"));
}
@Override
public void init(IViewSite site, IMemento memento) throws PartInitException {
init(site);
final IWorkbenchPage page = site.getPage();
page.addPostSelectionListener(this);
page.addPartListener(new PartAdapter2() {
@Override
public void partClosed(IWorkbenchPartReference partRef) {
if (gridTable == null || gridTable.isDisposed()) {
page.removePartListener(this); // 关闭视图后,移除此监听
} else {
if ("net.heartsome.cat.ts.ui.xliffeditor.nattable.editor".equals(partRef.getId())) {
IEditorReference[] editorReferences = page.getEditorReferences();
if (editorReferences.length == 0) { // 所有编辑器全部关闭的情况下。
matcher.clearResources();
firstAction.setEnabled(false);
copyEnable.resetSelection();
gridTable.removeAll();
}
}
}
}
});
site.getActionBars().getStatusLineManager()
.setMessage(Messages.getString("view.TerminologyViewPart.statusLine"));
}
/**
* @see com.mulgasoft.emacsplus.minibuffer.HistoryMinibuffer#addOtherListeners(IWorkbenchPage, ISourceViewer, StyledText)
*/
@Override
protected void addOtherListeners(IWorkbenchPage page, ISourceViewer viewer, StyledText widget) {
if (page != null) {
page.addPartListener(this);
}
super.addOtherListeners(page, viewer, widget);
}
private void loadContributions(IWorkbenchPage page) {
contributions.stream().map(CustomToolItem::getContributionItem).filter(IPartListener.class::isInstance)
.forEach(partListener -> page.removePartListener((IPartListener) partListener));
contributions.clear();
final IConfigurationElement[] elements = BonitaStudioExtensionRegistryManager.getInstance()
.getConfigurationElements(
"org.bonitasoft.studio.coolbarContributionItem");
if (elements.length >= MAX_CONTRIBUTION_SIZE) {
throw new RuntimeException("Too many coolbar contributions defined");
}
for (int i = 0; i < MAX_CONTRIBUTION_SIZE; i++) {
final IConfigurationElement element = findContributionForPosition(i, elements);
if (element != null) {
try {
final IBonitaContributionItem item = (IBonitaContributionItem) element
.createExecutableExtension(CLASS);
if (contributions.size() > i && item instanceof SeparatorCoolbarItem) {
final IBonitaContributionItem previousItem = contributions.get(i - 1).getContributionItem();
if (previousItem instanceof SeparatorCoolbarItem) {
item.setVisible(false);
}
}
if (item.isVisible()) {
if (item instanceof SaveCoolbarItem) {
page.addPartListener((IPartListener) item);
((SaveCoolbarItem) item).partOpened(page.getActivePart());
}
contributions.add(new CustomToolItem(item));
}
} catch (final CoreException e) {
BonitaStudioLog.error(e);
}
}
}
}
@Override
public void pageOpened(IWorkbenchPage page) {
page.addPartListener(partListener);
}
public void pageOpened(IWorkbenchPage page) {
page.addPartListener(this);
}
public void addListener(IPartListener2 listener) {
IWorkbenchPage page = EmacsPlusUtils.getWorkbenchPage();
if (page != null) {
page.addPartListener(listener);
}
}