We try to integrate the CKEditor, but using our own UI. The implementation of the CKEditor allows us to integrate the editor without the user interface pretty nice (using custom UI and editingblock plugin). But on some editing commands (usually insert commands for tables, images, anchors etc.) we cannot hook in the editor to not show the user interface dialogs.
I propose to divide the tightly coupled dialog commands in such a way that you can use the 'table', 'link', 'anchor' commands without the dialogs. The dialog plugin uses the setupContent() / commitContent() method which couples the widgets to the html (table/link/image) element. My proposal is to break this tight connection between the dialog UI and command execution and pass a parameter to the command.exec() whether to show the dialog UI or not.
How do the CKEditor develpers / others think about the strict division between UI and command execution?
I propose to divide the tightly coupled dialog commands in such a way that you can use the 'table', 'link', 'anchor' commands without the dialogs. The dialog plugin uses the setupContent() / commitContent() method which couples the widgets to the html (table/link/image) element. My proposal is to break this tight connection between the dialog UI and command execution and pass a parameter to the command.exec() whether to show the dialog UI or not.
How do the CKEditor develpers / others think about the strict division between UI and command execution?
Re: Execute commmands without a UI
For example the link dialog, it's not just "create a link pointing to this url", but the dialog also allows to specify all kind of properties, so turning that dialog into an API call would be quite complex with very little reward. You can try to define how one of the existing dialogs should be modify to address your use case, and maybe you have a great idea about how to do it, but I think that it would be too complex and also it must be flexible to address future enhancements to any of the dialogs.
You can extract the parts that you want from each dialog and use them as you want, but putting the code of each dialog into the core ckeditor.js file would increase its file size instead of allowing it to be loaded only when it's needed.
Re: Execute commmands without a UI
It would indeed lead to a bigger ckeditor.js, as the command implementation is seperated from the dialog. If that would be an issue then it would not make sense to propose a patch and I would indeed create custom commands to implement the logic.