Marc154
(Marc Pellmann)
1
Hi, David - very good Component!
I am trying to use a change listener and need to distinguish between changes made by the user and by a setValue() on the server.
When I use addAceChangedListener(), event.isFromClient() is true in both cases.
If I use addValueChangeListener(), it is false for setValue() on the server - but there is no event at all for user input.
Also, is there a reason why there is the addAceChangedListener() besides the default addValueChangeListener()?
Marc154
(Marc Pellmann)
2
To make this clear - I have this code:
AceEditor aceEditor = new AceEditor();
aceEditor.setSizeFull();
aceEditor.addAceChangedListener(event -> {
System.out.println("ace change listener - change from client?:" + event.isFromClient() + ": " + event.getValue());
});
aceEditor.addValueChangeListener(event -> {
System.out.println("value change listener - change from client?:" + event.isFromClient() + ": " + event.getValue());
});
add(new H1("Ace Editor"), aceEditor, new Button("Set Text", click -> {
aceEditor.setValue("something new");
}));
When I click the “Set Text” button, I get
value change listener - change from client?:false: something new
ace change listener - change from client?:true: something new
and when I insert a value - e.g. ‘x’ - in the editor I get
ace change listener - change from client?:true: something newx
Marc154
(Marc Pellmann)
3
Hi David,
what do you think about the possibility to give the event.isFromClient() a correct value - at least in the ace changed event?
Thanks in advance, Marc