Santy, Michael wrote: > I'm able to reproduce the numbers that you are seeing when editing a > document locally. The issue appears to be with the latency in > fetching remote images. XXE, even with all of my customizations, is > smokin' fast. > > Like you said, our architecture is based around web start and every > document is loaded into a new editor. We've also disabled the schema > cache. So I expect XXE to take a few seconds to load. XXE, up to the > point where the document view is being created, is great about reporting > the status of loading. > > Once the document is loaded and validated, XXE starts building the > view. For each figure, it has to issue a request and wait for the > response. The fetching of images appears to be happening sequentially > on a single thread. If you multiply this latency by a few dozen images, > the time starts to add up. During this process, there is no status > reported to the user. > > I would like to show an indeterminate progress bar while the initial > document view is being built, because this process can take several > seconds. Are there any events that are fired before and after the > initial document view is built? >
No. --> The document view is built during the invocation of DocumentView.setDocument(Document). See http://www.xmlmind.com/xmleditor/_distrib/doc/api/com/xmlmind/xmledit/view/DocumentView.html#setDocument(com.xmlmind.xmledit.doc.Document) --> At a higher level, this happens during the invocation of Editor.open(OpenedDocument, StyleSheetInfo). See http://www.xmlmind.com/xmleditor/_distrib/doc/api/com/xmlmind/xmleditapp/kit/Editor.html#open(com.xmlmind.xmleditapp.kit.OpenedDocument,%20com.xmlmind.xmledit.edit.StyleSheetInfo) public void open(OpenedDocument openedDoc, StyleSheetInfo styleSheetInfo) { this.openedDoc = openedDoc; this.styleSheetInfo = styleSheetInfo; configureDocumentView(); docView.setDocument(openedDoc.getDocument()); } --> This open() method is invoked in com.xmlmind.xmleditapp.app.Application public void addOpenedDocument(OpenedDocument openedDoc) { ... for (int i = 0; i < panes.length; ++i) { WindowLayoutInfo.Pane pane = panes[i]; Editor editor = createEditor(); editor.open(openedDoc, pane.getStyleSheetInfo()); newEditors[i] = editor; addingEditor(editor); ... }

