[jbosstools-issues] [JBoss JIRA] (JBIDE-14320) JSPMultiPageEditor.getDocumentProvider().getDocument(input) returns null
Yahor Radtsevich (JIRA)
jira-events at lists.jboss.org
Thu Apr 25 15:00:53 EDT 2013
Yahor Radtsevich created JBIDE-14320:
----------------------------------------
Summary: JSPMultiPageEditor.getDocumentProvider().getDocument(input) returns null
Key: JBIDE-14320
URL: https://issues.jboss.org/browse/JBIDE-14320
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: browsersim, jsp/jsf/xml/html source editing
Affects Versions: 4.1.0.Beta1
Reporter: Yahor Radtsevich
Assignee: Victor Rubezhny
Fix For: 4.1.0.Beta1
In BrowserSim we [use|https://github.com/jbosstools/jbosstools-vpe/blob/master/plugins/org.jboss.tools.vpe.browsersim.eclipse/src/org/jboss/tools/vpe/browsersim/eclipse/callbacks/ViewSourceCallback.java#L108] the following code to view the source code of currently opened page.
This code opens a default html editor with given {{content}}.
Everything is working fine, unless {{JSPMultiPageEditor}} is the default html editor.
In the case with {{JSPMultiPageEditor}}, the method {{JSPMultiPageEditor.getDocumentProvider().getDocument(input)}} returns {{null}} and blanck editor is shown.
{code}
private void openInMemoryHtmlEditor(String content, String name, String toolTip) {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IWorkbenchPage page = window != null ? window.getActivePage() : null;
if (page != null) {
try {
IEditorDescriptor editorDescriptor = PlatformUI.getWorkbench()
.getEditorRegistry().getDefaultEditor("view-source.html"); // get default editor for .html //$NON-NLS-1$
String editorId;
if (editorDescriptor != null && editorDescriptor.isInternal()) {
editorId = editorDescriptor.getId();
} else {
editorId = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$
}
IStorage storage = new StringStorage("", // see the long comment below to know why an empty storage is created //$NON-NLS-1$
"view-source.html"); // .html extension is needed to enable code highlighting in the WTP HTML editor //$NON-NLS-1$
IStorageEditorInput input = new StringInput(storage, name, toolTip);
IEditorPart editor = page.openEditor(input, editorId);
/* We change content of the editor AFTER the editor is created
* as a workaround for the following WTP bug.
* The essence of the bug is that if given HTML page contains a link
* to an external DTD, then WTP HTML editor tries to access this DTD before the editor
* is created and freezes UI.
* See http://www.eclipse.org/forums/index.php/m/639937/
*/
IDocument doc = null;
ITextEditor textEditor = null;
if (editor instanceof ITextEditor) {
textEditor = (ITextEditor) editor;
} else {
textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
}
if (textEditor != null) {
doc = textEditor.getDocumentProvider().getDocument(input);// <<<<----- THE PROBLEM APPEARS HERE
}
if (doc != null) {
doc.set(content);
editor.doSave(null); // reset resource-changed marker
}
} catch (PartInitException e) {
Activator.logError(e.getMessage(), e);
}
} else {
Activator.logError("Cannot obtain workbench page", null);
}
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jbosstools-issues
mailing list