use of org.eclipse.ui.IEditorDescriptor in project titan.EclipsePlug-ins by eclipse.
the class OpenSourceAction method openEditor.
/**
* Opens the editor for the given source file
*
* This method is intended to use only by {@link org.eclipse.titan.log.viewer.actions.OpenSourceViewMenuAction}
*
* @param targetFile The source file
* @param lineNumber The line number to select
* @param logView The view which initiated this action (used only to report errors on the status line)
* @param forceEditorOpening
*/
public static void openEditor(final IFile targetFile, final int lineNumber, final IViewPart logView, final boolean forceEditorOpening) {
// search for the editor to open the file
IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(targetFile.getName());
if (desc == null) {
desc = PlatformUI.getWorkbench().getEditorRegistry().findEditor(IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID);
if (desc == null) {
logView.getViewSite().getActionBars().getStatusLineManager().setErrorMessage("The editor could not be found");
return;
}
}
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window == null) {
return;
}
IWorkbenchPage activePage = window.getActivePage();
if (activePage == null) {
return;
}
try {
FileEditorInput editorInput = new FileEditorInput(targetFile);
IEditorPart editorPart = activePage.findEditor(editorInput);
if (editorPart == null) {
if (!forceEditorOpening) {
return;
}
editorPart = activePage.openEditor(editorInput, desc.getId());
}
if (!(editorPart instanceof AbstractTextEditor)) {
logView.getViewSite().getActionBars().getStatusLineManager().setErrorMessage("Could not jump to the target position");
return;
}
AbstractTextEditor textEditor = (AbstractTextEditor) editorPart;
IDocument targetDocument = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
if (targetDocument == null) {
logView.getViewSite().getActionBars().getStatusLineManager().setErrorMessage("The target document does not exist");
return;
}
if (lineNumber >= targetDocument.getNumberOfLines()) {
logView.getViewSite().getActionBars().getStatusLineManager().setErrorMessage("The position is after the last line in the source code.");
return;
}
// Line numbers are indexed from zero in the editors
IRegion lineRegion = targetDocument.getLineInformation(lineNumber - 1);
activePage.bringToTop(textEditor);
textEditor.selectAndReveal(lineRegion.getOffset(), lineRegion.getLength());
} catch (PartInitException e) {
ErrorReporter.logExceptionStackTrace(e);
} catch (BadLocationException e) {
ErrorReporter.logExceptionStackTrace(e);
}
}
use of org.eclipse.ui.IEditorDescriptor in project titan.EclipsePlug-ins by eclipse.
the class LocationHighlighter method jumpToLocation.
/**
* Jump to the provided location and highlight it.
*/
public static void jumpToLocation(final Location location) {
final IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(location.getFile().getName());
if (desc == null) {
return;
}
try {
final IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
final IEditorPart editorPart = page.openEditor(new FileEditorInput((IFile) location.getFile()), desc.getId());
if (editorPart != null && editorPart instanceof AbstractTextEditor) {
((AbstractTextEditor) editorPart).setHighlightRange(location.getOffset(), 0, true);
}
} catch (final PartInitException e) {
ErrorReporter.logExceptionStackTrace("Error while opening the editor", e);
}
}
use of org.eclipse.ui.IEditorDescriptor in project titan.EclipsePlug-ins by eclipse.
the class NewASN1ModuleWizard method selectAndRevealNewModule.
/**
* Opens the new module in an editor, plus selects and reveals it in
* every open windows.
*
* @param newModule
* the module to be revealed
*/
private void selectAndRevealNewModule(final IFile newModule) {
final IWorkbench workbench = getWorkbench();
final IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
if (window != null) {
final IEditorDescriptor desc = ASN1Editor.findASN1Editor(workbench);
final IWorkbenchPage page = window.getActivePage();
try {
page.openEditor(new FileEditorInput(newModule), desc.getId());
} catch (PartInitException e) {
ErrorReporter.logExceptionStackTrace(e);
}
}
// select and reveal the new file in every window open
selectAndReveal(newModule);
}
use of org.eclipse.ui.IEditorDescriptor in project titan.EclipsePlug-ins by eclipse.
the class NewTTCN3ModuleWizard method selectAndRevealNewModule.
/**
* Opens the new module in an editor, plus selects and reveals it in
* every open windows.
*
* @param newModule
* the module to be revealed
*/
private void selectAndRevealNewModule(final IFile newModule) {
final IWorkbench workbench = getWorkbench();
final IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
if (window != null) {
final IEditorDescriptor desc = TTCN3Editor.findTTCN3Editor(workbench);
final IWorkbenchPage page = window.getActivePage();
try {
page.openEditor(new FileEditorInput(newModule), desc.getId());
} catch (PartInitException e) {
ErrorReporter.logExceptionStackTrace(e);
}
}
// select and reveal the new file in every window open
selectAndReveal(newModule);
}
use of org.eclipse.ui.IEditorDescriptor in project titan.EclipsePlug-ins by eclipse.
the class OpenDeclaration method selectAndRevealDeclaration.
/**
* Opens an editor for the provided declaration, and in this editor the
* location of the declaration is revealed and selected.
*
* @param declaration
* the declaration to reveal
*/
private void selectAndRevealDeclaration(final Location location) {
IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(location.getFile().getName());
if (desc == null) {
targetEditor.getEditorSite().getActionBars().getStatusLineManager().setErrorMessage(TTCN3EDITORNOTFOUND);
return;
}
try {
IWorkbenchPage page = targetEditor.getSite().getPage();
IEditorPart editorPart = page.openEditor(new FileEditorInput((IFile) location.getFile()), desc.getId());
if (editorPart != null && (editorPart instanceof AbstractTextEditor)) {
((AbstractTextEditor) editorPart).selectAndReveal(location.getOffset(), location.getEndOffset() - location.getOffset());
}
} catch (PartInitException e) {
ErrorReporter.logExceptionStackTrace(e);
}
}
Aggregations