Hey Bas, thanks for answering.
Unfortunately it does not work.
Even if I run:
String removeEditor = "tinyMCE.execCommand('mceRemoveControl',
false, '"
+ propertyPanel.getValueMarkupId() + "');";
target.appendJavascript(removeEditor);
or simply remove the TinyMceBehavior from my TextField, the result is the
same: mce editor disappear correclty, but remains in tinyMCE.editors list so
Tiny tries to process it in a successive iteration.
I try to find help on tinyMCE forum
On Mon, Oct 5, 2009 at 10:59 AM, bgooren <[email protected]> wrote:
>
> I'll show you some parts of my code so you get an idea of how I do things.
>
> First of all, I have used AjaxEditableLabel from wicket-extensions as a
> starting point.
> TinyMCE's javascripts should always be loaded:
>
> // Preload TinyMCE
> add( new AbstractBehavior()
> {
>
> @Override
> public void renderHead( IHeaderResponse response )
> {
> if( !tinyMCELoaded )
> {
> response.renderJavascriptReference(
> TinyMCESettings.javaScriptReference() );
>
> settings = buildTinyMCESettings();
>
> tinyMCELoaded = true;
> }
> }
>
> } );
>
> In my case TinyMCE is loaded through an AJAX call:
>
> @SuppressWarnings("unchecked")
> @Override
> protected void onEdit( AjaxRequestTarget target )
> {
> super.onEdit( target );
>
> final String id = editor.getMarkupId( true );
> final StringBuilder buf = new StringBuilder();
>
> // Load plugins
> buf.append( settings.getLoadPluginJavaScript() ).append( ";\n" );
>
> // Initialize tinyMCE
> buf.append( "tinyMCE.init({" ).append( settings.toJavaScript(
> Mode.none, Collections.EMPTY_LIST ) ).append( " });\n" );
> buf.append( settings.getAdditionalPluginJavaScript() ).append( ";\n"
> );
>
> // Setup editor
> buf.append( "tinyMCE.execCommand('mceAddControl',true,'" ).append(
> id ).append( "');" );
>
> // Request focus on editor
> buf.append( "setTimeout( function()
> {tinyMCE.execCommand('mceFocus',true,'" ).append( id ).append( "');}, 500
> );" );
>
> target.appendJavascript( buf.toString() );
> }
>
> As you can see I initialize TinyMCE, and then perform an mceAddControl
> command on the textarea I want to convert to a TinyMCE editor.
>
> Finally, I need to switch back to a textarea before unloading, so the
> correct contents are POSTed. To do so, I have added an AjaxCallDecorator to
> the close request, and allow implementations to override it:
>
> @Override
> protected IAjaxCallDecorator getCloseDecorator()
> {
> return new AjaxCallDecorator()
> {
>
> @Override
> public CharSequence decorateScript( CharSequence script )
> {
> return "tinyMCE.execCommand('mceRemoveControl', false, '" +
> editor.getMarkupId() + "'); "
> + super.decorateOnSuccessScript( script );
>
> // Call to save contents back to textarea
> // return "tinyMCE.get('" + editor.getMarkupId() +
> "').save(); " +
> // super.decorateScript( script );
> }
>
> };
> }
>
> The above code removes TinyMCE from the given textarea, and saves the HTML
> back into the textarea. I have commented out the call to save(), since it
> was not necessary.
>
> Bas
>
>
> Daniele Dellafiore wrote:
> >
> > I get what the real problem is: tinyMce saves internally each "editor"
> > that
> > is added to a page in a list called, well, editors.
> > When I remove the behavior from a textField, I should also call
> > tinyMce.remove passing the editors as a parameter.
> >
> > I will try to do this but any help is appreciated :)
> >
> > This is for the checkbox that enable/disable the tinyMce behavior.
> >
> >
> > I have a more subtle situation: I have a list of textFields and a button
> > to
> > add more. When I add a new field, I refresh the list via AJAX to show the
> > new field. But, refreshing the list also causes the html id of any
> element
> > in the list to change!
> >
> > So, when in the end I submit the form, tinyMce cannot find its editors
> > anymore cause the parent DIV of the INPUT field that has an associated
> > tinyMce editor just changed it's html id.
> > Given that the id will change and there is no alternatives, I have to
> find
> > a
> > way to keep the associations or to clean all editors and recreate them at
> > every list refresh.
> >
> > What is your suggesions?
> >
> > --
> > Daniele Dellafiore
> > http://blog.ildella.net
> > http://twitter.com/ildella
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/-tinymce--problem-adding-removing-TinyMceBehavior-dinamically-tp25681833p25747314.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
--
Daniele Dellafiore
http://blog.ildella.net
http://twitter.com/ildella