}
protected void rewriteClientHTMLTextAreaProperties(HTMLTextAreaElement elem,StringBuilder code)
{
// Se redefine en el caso de Opera 9 Desktop
ClientDocumentStfulImpl clientDoc = getClientDocumentStful();
Browser browser = clientDoc.getBrowser();
// Hay dos casos, fast load mode y no fast load, pero la acci�n es la misma
// - Caso Fast Load
// El contenido que manda est� en el nodo de texto del <textarea>
// no en el atributo value, salvo que expl�citamente se sepa que se ha definido
// Para m�s detalles ver m�todos:
// ItsNatHTMLTextAreaImpl.afterRender(...) y
// DocMutationEventListenerHTMLImpl.beforeAfterRenderAndSendMutationCode(...)
// - Caso NO fast load
// En modo no fast load el reseteo (esta llamada) se hace tras serializar
// pero ANTES de que se despachen los listeners. El valor del atributo value
// no ha podido ser cambiado respecto al inicial en el template
// (ya sea page template o fragmento incluido via <include> da igual)
// y sabemos que no pinta nada inicialmente (ignorado) en el valor del textarea
// por lo que s�lo cuenta el nodo de texto hijo. Sabemos que en este
// caso el value no ha sido definido expl�citamente por c�digo del usuario.
// En remote control tenemos que saber si el atributo fue definido expl�citamente
// por c�digo o no.
// Recuerda que en Opera 9 se pasa por aqu� dos veces (la segunda tras la carga)
// para evitar el auto-fill
String explicitValue = ((HTMLTextAreaElementImpl)elem).getValueProperty();
if (explicitValue != null) // Ser� el mismo valor que el atributo value
{
processUIControlProperty(elem,"value",code,clientDoc);
}
else // Manda el nodo de texto (el atributo puede tener un valor inicial cualquiera pero este no pinta nada)
{
code.append( "var elem = " + clientDoc.getNodeReference(elem,true,true) + ";\n" );
String content = DOMUtilInternal.getTextContent(elem,false); // No puede ser nulo
String valueJS = JSRenderImpl.toTransportableStringLiteral(content,browser);
JSRenderPropertyImpl render = JSRenderPropertyImpl.getJSRenderProperty(elem,clientDoc.getBrowser());
PropertyImpl prop = render.getProperty(elem,"value");
code.append( render.renderSetProperty(prop, elem, "elem", valueJS, content, clientDoc) );
}
}