diff options
Diffstat (limited to 'org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/views/minimap/MinimapView.java')
-rw-r--r-- | org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/views/minimap/MinimapView.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/views/minimap/MinimapView.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/views/minimap/MinimapView.java new file mode 100644 index 00000000000..4b1ebe54a81 --- /dev/null +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/views/minimap/MinimapView.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * Copyright (c) 2018 Angelo ZERR. + * 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: + * Angelo Zerr <angelo.zerr@gmail.com> - [minimap] Initialize minimap view - Bug 535450 + *******************************************************************************/ +package org.eclipse.ui.internal.views.minimap; + +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.IPage; +import org.eclipse.ui.part.MessagePage; +import org.eclipse.ui.part.MultiPageEditorPart; +import org.eclipse.ui.part.Page; +import org.eclipse.ui.part.PageBook; +import org.eclipse.ui.part.PageBookView; +import org.eclipse.ui.part.PageSite; + +import org.eclipse.ui.texteditor.ITextEditor; + +/** + * Minimap view used to display content of current text editor with scale. + * + */ +public class MinimapView extends PageBookView { + + private String defaultText; + + public MinimapView() { + this.defaultText = MinimapMessages.MinimapViewNoMinimap; + } + + @Override + protected IPage createDefaultPage(PageBook book) { + MessagePage page = new MessagePage(); + this.initPage(page); + page.createControl(book); + page.setMessage(this.defaultText); + return page; + } + + @Override + protected PageRec doCreatePage(IWorkbenchPart part) { + Page page = createMinimapPage(part); + PageSite site = new PageSite(this.getViewSite()); + page.init(site); + page.createControl(this.getPageBook()); + return new PageBookView.PageRec(part, page); + } + + private Page createMinimapPage(IWorkbenchPart part) { + if (part instanceof MultiPageEditorPart) { + return new MultiPageMinimapPage((MultiPageEditorPart) part); + } + return new MinimapPage((ITextEditor) part); + } + + @Override + protected void doDestroyPage(IWorkbenchPart part, PageRec rec) { + IPage page = rec.page; + page.dispose(); + rec.dispose(); + } + + @Override + protected IWorkbenchPart getBootstrapPart() { + IWorkbenchPage page = this.getSite().getPage(); + return page != null ? page.getActiveEditor() : null; + } + + @Override + protected boolean isImportant(IWorkbenchPart part) { + return part instanceof ITextEditor || part instanceof MultiPageEditorPart; + } +} |