*/
public static void create(Element parent, final Resources resources,
final SourceViewerInitializedCallback initializedCallback) {
Document document = parent.getOwnerDocument();
// Create the iframe within which we will load the source.
final IFrameElement sourceFrame = document.createIFrameElement();
Element frameWrapper = document.createDivElement();
frameWrapper.setClassName(resources.sourceViewerCss().frameWrapper());
frameWrapper.appendChild(sourceFrame);
final Element baseElement = document.createDivElement();
final Element headerElem = document.createDivElement();
headerElem.setClassName(resources.sourceViewerCss().header());
baseElement.appendChild(headerElem);
// IFrame must be attached to fire onload.
baseElement.appendChild(frameWrapper);
parent.appendChild(baseElement);
Event.addEventListener("load", sourceFrame, new EventListener() {
public void handleEvent(Event event) {
// The source fetcher should be loaded. Lets now point it at the source
// we want to load.
SourceViewer sourceViewer = new SourceViewer(baseElement, headerElem,
sourceFrame, resources);
initializedCallback.onSourceViewerInitialized(sourceViewer);
}
});
sourceFrame.setSrc(Chrome.getExtension().getUrl("monitor/SourceFetcher.html"));
}