STP/XEF XML Framework
The main idea of this proposal is to expose XEF editor in more generic way: as XML framework. GUI representation of XML schema is very common task, required by the number of applications and Eclipse projects. So intention is to make XEF usable not only in context of policy editor, but also for many another scenarios like:
This proposal also will be very helpful to redesign Policy Editor regarding UI Walkthrough [Policy Editor UI Walkthrough].
Using of XEF Framework
XEF Framework provides well defined public interfaces. Interfaces are defined for the tree following tiers:
Components and applications will use XEF Framework in different contexts and scenarios via these interfaces.
Three tier interfaces
1. Model API
This is a lowest level to access XEF Framework. On this interface provides access to XMLModelFactory and XMLInstanceElement.
2. Rendering API
The second level API (Rendering) allows to display and process GUI representation of XML schema on any composite. This API could be used for schema representation on views, dialogs, preference pages. Draft proposal rendering API is represented bellow. The IXEFRender is public interface of framework. IXEFCallback should be implemented by framework consumer to receive notifications.
3. Editor API
This API provides the possibility to use XEF as normal Eclipse Editor. Using extension point user can open editor, load files, receive notifications.
Typical using of XEF Editor in this case is:
String XEF_ID = "org.eclipse.stp.ui.xef.editor.XefEditor"; PolicyDetailEditorInput edInput = new PolicyDetailEditorInput(text, streamIn, project, callback); IWorkbench workbench = PlatformUI.getWorkbench(); IWorkbenchWindow activeWindow = workbench.getActiveWorkbenchWindow(); IWorkbenchPage workbenchPage = activeWindow.getActivePage(); IEditorPart part = IDE.openEditor(workbenchPage, edInput, XEF_ID);
So XEF editor will be activated as standard Eclipse editor.