У меня есть простая оболочка для редактора WYSIWYG (TinyMCE). Я использую JSNI для вызова метода экземпляра Java (onClick) из Javascript. Однако метод Java onClick всегда вызывается для одного и того же экземпляра Java (последнего созданного), независимо от того, в каком редакторе он был создан.
private SimplePanel panel;
private TextArea ta;
private String id;
public TinyMCE(AbstractTinyMCEConfiguration config) {
id = HTMLPanel.createUniqueId();
ta = new TextArea();
ta.getElement().setId(id);
panel = new SimplePanel();
panel.add(ta);
initWidget(panel);
init(config);
}
protected native void init(AbstractTinyMCEConfiguration conf) /*-{
var ins = this;
$wnd.tinyMCE.init({
// General options
mode : [email protected]::getMode()(),
setup : function(ed) {
ed.onClick.add(function(ed,e) {
alert(ed.id);
[email protected]::onClick(Lcom/google/gwt/dom/client/NativeEvent;)(e);
});
}
});
}-*/;
private void onClick(NativeEvent e) {
GWT.log("onClick " + id);
ClickEvent.fireNativeEvent(e, this);
}
Я не уверен, смогу ли я вызвать метод Java из функции Javascript, которая находится внутри другой функции. Может быть, это объясняет мою проблему... или, может быть, я что-то упускаю. Спасибо за вашу помощь.