Hi, David - very good Component! I am trying to use a change listener and

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()?

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

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