Handling When URLs or XHTML Fragments are Dropped or Pasted in Author Mode
The AuthorExternalObjectInsertionHandler extension can be used to configure how URLs or XHTML fragments from external applications are handled when they are dropped or pasted in Author mode.
How to Implement an AuthorExternalObjectInsertionHandler
To implement your own AuthorExternalObjectInsertionHandler, follow this procedure:
- Implement the ro.sync.ecss.extensions.api.AuthorExternalObjectInsertionHandler interface.
- To instruct Oxygen XML Editor to use this newly created implementation, use
either of the following methods:
- If your framework is an extension of DITA, DocBook, TEI, or XHTML, you can specify the AuthorExternalObjectInsertionHandler in the Author extern object Insertion handler individual extension in the Extensions tab of the Document Type configuration dialog box for your particular document type.
- Otherwise, you can configure an extensions bundle, then return the AuthorExternalObjectInsertionHandler implementation using the ro.sync.ecss.extensions.api.ExtensionsBundle.createAuthorExternalObjectInsertionHandler() method.
-
You can use a stylesheet to convert the pasted XHTML to your own XML vocabulary by overwriting the following method:
ro.sync.ecss.extensions.api.AuthorExternalObjectInsertionHandler.getImporterStylesheetFileName(AuthorAccess)
and return the file name of the stylesheet that will be applied. The path to the importer stylesheet must also be added in the Classpath tab in the Document Type configuration dialog box for your particular document type.
Example
The following example illustrates an implementation for the DITA
framework:
/**
* @see ro.sync.ecss.extensions.api.ExtensionsBundle#
createExternalObjectInsertionHandler()
*/
@Override
public AuthorExternalObjectInsertionHandler createExternalObjectInsertionHandler() {
return new DITAExternalObjectInsertionHandler();
}
/**
* @see ro.sync.ecss.extensions.api.AuthorExternalObjectInsertionHandler#
getImporterStylesheetFileName(ro.sync.ecss.extensions.api.AuthorAccess)
*/
@Override
protected String getImporterStylesheetFileName(AuthorAccess authorAccess) {
return "xhtml2ditaDriver.xsl";
}
Tip: For XHTML fragments, there is another method that you could use to configure
how they are handled when they are pasted in Author mode. For more
information, see Customizing Smart Paste Support.