@API(type=INTERNAL,
src=PUBLIC)
public class DITASchemaAwareEditingHandler
extends AuthorSchemaAwareEditingHandlerAdapter
AuthorSchemaAwareEditingHandlerAdapter.WrapInAncestorsOptionslastHandlerResultACTION_ID_BACKSPACE, ACTION_ID_CUT, ACTION_ID_DELETE, ACTION_ID_DND, ACTION_ID_INSERT_FRAGMENT, ACTION_ID_PASTE, ACTION_ID_TYPING, CREATE_FRAGMENT_PURPOSE_COPY, CREATE_FRAGMENT_PURPOSE_CUT, CREATE_FRAGMENT_PURPOSE_DND_COPY, CREATE_FRAGMENT_PURPOSE_DND_MOVE| Constructor and Description |
|---|
DITASchemaAwareEditingHandler() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canBeReplaced(AuthorNode nodeToReplace)
When pasting an element inside an empty element with the same name, a
possible solution is to replace the empty node with the new one.
|
boolean |
changeElementsToMoveUpDown(java.util.List<AuthorNode> selectedElements)
Determine the elements that should be moved by the Move Up/Down operation.
|
AuthorSchemaAwareEditingHandlerAdapter.WrapInAncestorsOptions |
getAncestorDetectionOptions()
One of the default smart paste strategies involves detecting an path o ancestors
from the context element to the inserted one.
|
boolean |
handlePasteFragment(int offset,
AuthorDocumentFragment[] fragmentsToInsert,
int actionId,
AuthorAccess authorAccess)
Handle an insert fragment event generated by:
a Paste action.
|
boolean |
handleTyping(int offset,
char ch,
AuthorAccess authorAccess)
Handle a typing event.
|
boolean |
handleTypingFallback(int offset,
char ch,
AuthorAccess authorAccess)
Give a fallback solution for a typing event.
|
getLastResult, handleCreateDocumentFragment, handleDelete, handleDeleteElementTags, handleDeleteNodes, handleDeleteSelection, handleJoinElementspublic boolean handleTyping(int offset,
char ch,
AuthorAccess authorAccess)
throws InvalidEditException
AuthorSchemaAwareEditingHandlerAuthorSchemaAwareEditingHandler.handleTypingFallback(int, char, AuthorAccess)
will get called.handleTyping in interface AuthorSchemaAwareEditingHandlerhandleTyping in class AuthorSchemaAwareEditingHandlerAdapteroffset - Offset where the typing occurred.ch - The typed character.authorAccess - Access class to the author functions.true if the typing was handled.InvalidEditException - This is an invalid edit and must be rejected.AuthorSchemaAwareEditingHandlerAdapter.handleTyping(int, char, ro.sync.ecss.extensions.api.AuthorAccess)public boolean handleTypingFallback(int offset,
char ch,
AuthorAccess authorAccess)
throws InvalidEditException
AuthorSchemaAwareEditingHandlerAuthorSchemaAwareEditingHandler.handleTyping(int, char, AuthorAccess) method did not handle the
typing event and neither did the AuthorSchemaAwareEditingHandler.handleTyping(int, char, AuthorAccess) from
the default implementation.
As a fallback solution, a paragraph can be inserted at the given offset (if allowed) and then the typed character can be inserted inside it.
handleTypingFallback in interface AuthorSchemaAwareEditingHandlerhandleTypingFallback in class AuthorSchemaAwareEditingHandlerAdapteroffset - Offset where the typing occurred.ch - The typed character.authorAccess - Access class to the author functions.true if the typing was handled.InvalidEditException - This is an invalid edit and must be rejected.AuthorSchemaAwareEditingHandlerAdapter.handleTypingFallback(int, char, ro.sync.ecss.extensions.api.AuthorAccess)public boolean handlePasteFragment(int offset,
AuthorDocumentFragment[] fragmentsToInsert,
int actionId,
AuthorAccess authorAccess)
throws InvalidEditException
AuthorSchemaAwareEditingHandlerAuthorDocumentController.insertXMLFragmentSchemaAware(String, int). Selection removal is handled
before calling this method.handlePasteFragment in interface AuthorSchemaAwareEditingHandlerhandlePasteFragment in class AuthorSchemaAwareEditingHandlerAdapteroffset - Offset where the event occurred.fragmentsToInsert - Fragments to be inserted.actionId - ACTION_ID_PASTE if event was generated by paste action, ACTION_ID_DND if it was generated by
a DND event or ACTION_ID_INSERT_FRAGMENT if the event was generated by an AuthorDocumentController schema aware insert method.authorAccess - Access class to the author functions.true if the insertion was handled.InvalidEditException - This is an invalid edit and must be rejected.AuthorSchemaAwareEditingHandlerAdapter.handlePasteFragment(int, ro.sync.ecss.extensions.api.node.AuthorDocumentFragment[], int, ro.sync.ecss.extensions.api.AuthorAccess)public boolean changeElementsToMoveUpDown(java.util.List<AuthorNode> selectedElements)
AuthorSchemaAwareEditingHandlerAdaptertitle then the element
that should actually be moved is its parent (e.g. section for DocBook).changeElementsToMoveUpDown in class AuthorSchemaAwareEditingHandlerAdapterselectedElements - the selected elements in the author page. This list should be altered
depending on the framework specific structure.
title then the element
that should actually be present in this list is its parent (e.g. section for DocBook).true if the list of elements to be moved was altered by the framework specific handler.AuthorSchemaAwareEditingHandlerAdapter.changeElementsToMoveUpDown(java.util.List)public AuthorSchemaAwareEditingHandlerAdapter.WrapInAncestorsOptions getAncestorDetectionOptions()
AuthorSchemaAwareEditingHandlerAdaptergetAncestorDetectionOptions in class AuthorSchemaAwareEditingHandlerAdapterAuthorSchemaAwareEditingHandlerAdapter.getAncestorDetectionOptions()public boolean canBeReplaced(AuthorNode nodeToReplace)
AuthorSchemaAwareEditingHandlerAdaptercanBeReplaced in class AuthorSchemaAwareEditingHandlerAdapternodeToReplace - The node to replace.true if this node can be replaced by the strategy with a
similar one. false if this node is important and must be kept in the document.AuthorSchemaAwareEditingHandlerAdapter.canBeReplaced(ro.sync.ecss.extensions.api.node.AuthorNode)© Copyright SyncRO Soft SRL 2002 - 2016. All rights reserved.