Aloha constructor
Aloha()
A binding class for the Aloha HTML5 editor. Refer to the accompanying documentation for setup and usage information. Omissions from the Aloha API are also documented.
Implementation
Aloha() {
/* Ready */
void _jsReady() {
_ready = true;
_onReady.add(null);
}
_alohaContext.callMethod('bind', ['aloha-ready', _jsReady]);
/// The rest of the bindings will always have the jQuery event object as
/// their first parameter, even if Aloha sends nothing, e.g, log ready trigger.
///
void _jsCommandWillExecute(js.JsObject event, js.JsObject jsParams) {
final params = AlohaCommandWillExecuteParameters(
jsParams['commandId'], jsParams['preventDefault']);
_onCommandWillExecute.add(params);
}
_alohaContext.callMethod(
'bind', ['aloha-command-will-execute', _jsCommandWillExecute]);
void _jsCommandExecuted(js.JsObject event, String commandId) {
_onCommandExecuted.add(commandId);
}
_alohaContext
.callMethod('bind', ['aloha-command-executed', _jsCommandExecuted]);
/* Logging */
void _jsLoggerReady(js.JsObject e) {
_onLoggerReady.add(null);
}
_alohaContext.callMethod('bind', ['aloha-logger-ready', _jsLoggerReady]);
void _jsLoggerFull(js.JsObject e) {
_onLoggerFull.add(null);
}
_alohaContext.callMethod('bind', ['aloha-log-full', _jsLoggerFull]);
/* Editables */
void _jsEditableCreated(js.JsObject event, js.JsObject editable) {
final theEditable = AlohaEditable(editable, event);
_onEditableCreated.add(theEditable);
}
_alohaContext
.callMethod('bind', ['aloha-editable-created', _jsEditableCreated]);
void _jsEditableDestroyed(js.JsObject event, js.JsObject ref) {
_onEditableDestroyed.add(null);
}
_alohaContext
.callMethod('bind', ['aloha-editable-destroyed', _jsEditableDestroyed]);
void _jsEditableActivated(js.JsObject event, editableObjects) {
/* We always have the event and the current active editable */
List editableList;
final editableEvent = event;
final activeEditable = editableObjects['editable'];
final editable = AlohaEditable(activeEditable, editableEvent);
/* See if we have an old editable, if so pass it back. */
try {
final oldActiveEditable = editableObjects['old'];
final oldEditable = AlohaEditable(oldActiveEditable, editableEvent);
editableList = [editable, oldEditable];
} on Exception {
editableList = [editable];
}
_onEditableActivated.add(editableList);
}
_alohaContext
.callMethod('bind', ['aloha-editable-activated', _jsEditableActivated]);
void _jsEditableDeactivated(js.JsObject event, js.JsObject editable) {
final theEditable = AlohaEditable(editable['editable'], event);
_onEditableDeactivated.add(theEditable);
}
_alohaContext.callMethod(
'bind', ['aloha-editable-deactivated', _jsEditableDeactivated]);
/* Content changes */
void _jsSmartContentChange(js.JsObject event, js.JsObject parameters) {
final theEditable = AlohaEditable(parameters['editable'], event);
final params = AlohaSmartContentChangeParameters(
theEditable,
parameters['keyIdentifier'],
parameters['keyCode'],
parameters['char'],
parameters['triggerType'],
parameters.callMethod('getSnapshotContent'));
_onSmartContentChange.add(params);
}
_alohaContext.callMethod(
'bind', ['aloha-smart-content-changed', _jsSmartContentChange]);
void _jsBlockSelected(js.JsObject event, Object element) {
_onBlockSelectedChange.add(element);
}
_alohaContext
.callMethod('bind', ['aloha-block-selected', _jsBlockSelected]);
void _jsImageSelected(js.JsObject e) {
_onImageSelected.add(null);
}
_alohaContext
.callMethod('bind', ['aloha-image-selected', _jsImageSelected]);
void _jsImageUnselected(js.JsObject e) {
_onImageUnselected.add(null);
}
_alohaContext
.callMethod('bind', ['aloha-image-unselected', _jsImageUnselected]);
void _jsLinkSelected(js.JsObject e) {
_onLinkSelected.add(null);
}
_alohaContext.callMethod('bind', ['aloha-link-selected', _jsLinkSelected]);
void _jsLinkUnselected(js.JsObject e) {
_onLinkUnselected.add(null);
}
_alohaContext
.callMethod('bind', ['aloha-link-unselected', _jsLinkUnselected]);
void _jsTableSelectionChanged(js.JsObject e) {
_onTableSelectionChanged.add(null);
}
_alohaContext.callMethod(
'bind', ['aloha-table-selection-changed', _jsTableSelectionChanged]);
void _jsTableActivated(js.JsObject e) {
_onTableActivated.add(null);
}
_alohaContext
.callMethod('bind', ['aloha-table-activated', _jsTableActivated]);
void _jsDdfAllFilesPrepared(js.JsObject e) {
_onDdfAllFilesPrepared.add(null);
}
_alohaContext.callMethod(
'bind', ['aloha-allfiles-upload-prepared', _jsDdfAllFilesPrepared]);
void _jsDdfFilesDroppedInPage(js.JsObject e, Object element) {
_onDdfFilesDroppedInPage.add(element);
}
_alohaContext.callMethod(
'bind', ['aloha-drop-files-in-page', _jsDdfFilesDroppedInPage]);
void _jsDdfFileUploadPrepared(js.JsObject e, Object element) {
_onDdfFileUploadPrepared.add(element);
}
_alohaContext.callMethod(
'bind', ['aloha-file-upload-prepared', _jsDdfFileUploadPrepared]);
}