Conversion Java en Rhino

Bonjour,

Pourriez-vous svp m’aider à convertir le code java suivant en Rhino :

package com.simplicite.extobjects.Immo;

import com.simplicite.util.tools.Parameters;

public class ImmoAlerteAgenda extends com.simplicite.webapp.web.ResponsiveExternalObject {
	private static final long serialVersionUID = 1L;
	
	@Override
	public String getRenderStatement(Parameters params) {
		return "$ui.loadCalendar(function() { " + super.getRenderStatement(params) + " });";
	}
}

C’est le script de l’objet externe DemoOrderAgenda que je souhaite l’appliquer pour notre calendrier. Il fonctionne bien mais je voudrais que cela soit homogène avec tout notre code qui est en Rhino.

Merci d’avance.

Abed.

Un objet externe destiné à la UI responsive doit simplement retourner un statement Javascript client.
Donc dans le genre:

MyExtObject.display = function(params) {
    return this.javascript("<my JS statement>");
}

Est-ce que cela veut dire que je dois copier le contenu du SCRIPT Javascript vers de “MyExtObject.display” (qui est donc dans “Editer le code” de l’objet externe) ? Ou bien simplement un appel ? si oui, qu’elle est la syntaxe de l’appel ?

Votre Javascript doit rester dans une resource Javascript. Ce que renvoie le code serveur c’est le point d’entrée de ce code client.

La classe Java ResponsiveExternalObject appelle par défaut une fonction Javascript qui s’appelle render en lui passant en argument les params sérialisés en JSON

En gros ça fait donc l’équivalent Rhino suivant :

MyExtObject.display = function(params) {
    return this.javascript(this.getName()  + ".render(" + params.toJSON() + ")");
}

Dans le cas de l’exemple de calendrier de la démo on ajoute le chargement de la lib calendar, d’où la surcharge de la méthode getRenderStatement qui ne serait pas requise si on n’avait pas besoin de cette lib.

Merci @david.
J’ai mis le chargement de la lib calendar dans la ressource Javascript et ça fonctionne.