Hi Norbert, Norbert Sándor wrote: > Hello, > > I'm experimenting with the RichTextArea (RTA) in a separate application, > not in XWiki. > I checked out the xwiki-gwt-dom and xwiki-gwt-user, and RTA seems to > work well. (Until now I've created only a small demo application, with > an RTA and some buttons to execute various commands.)
Cool! > > My questions are: > > 1. Pressing ENTER creates a BR element by default, is it possible to > create a P instead? AFAIK there's no built-in command (like insertbronreturn) to trigger this behavior. We have written a RTA plugin for this, which you can find at http://tinyurl.com/yacr2l8 . All RTA plugins are for the moment in platform/web/wysiwyg module. The line plugin is pretty much generic so you could try to reuse it. > (The behaviour of the ENTER key inside a P can be set by executing > the insertbronreturn command, but the default document always > contains a BR, and if I set the initial content to <p></p>, I > cannot navigate the cursor inside the P...) You can place the caret inside the empty paragraph using the selection API but you have to make sure the user can't leave the body element empty (e.g. in Firefox if the user selects all content and deletes it you're back to the initial BR). > > 2. Is there a way to listen to selection events? > (I want to enable/disable some buttons based on the current > selection.) Unfortunately no. AFAIK only IE has a native event for selection change. We overcome this by listening to key up, mouse up and command events on the RTA. You can take a look at http://tinyurl.com/yas4fxn . AbstractStatefulPlugin listens to this events and schedules updates of its state using a DeferredUpdater (only the most recent update is executed). In our editor we adopted this strategy: each plugin is responsible for updating its state (e.g. detect bold style) and the editor is responsible to enabling/disabling features based on some rules. > > 3. Are there any extensions to the default RTA in the other parts of > XWiki? > (I mean for example commands and controls for editing TABLEs > visually, toolbars that are enabled/disabled based on the content > of the RTA, etc. - I haven't looked at all the source code yet, > it's huge :) platform/web/wysiwyg module contains plugins built on top of the RTA (from xwiki-gwt-user module) and they use the DOM and Selection API from xwiki-gwt-dom module. Some of the plugins overwrite the default RTA commands with their improved version. For instance TextPlugin ( http://tinyurl.com/y8eoh2f ) registers custom executables for default RTA command like bold and italic. In the same way FormatPlugin overwrites the removeformat command. Most of this plugins are generic. Some are XWiki specific: link, image, import and macro. We have a table plugin, but it offers basic features like insert row after or delete column. Hope this helps. Marius > > That's for a starter :) > Thanks for your help in advance! > > Best regards: > -- > Norbert Sándor > http://jvminside.blogspot.com/ > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

