Finding java class by UIDL call

We have a big Vaadin third party application, and we need to do small improvements of it. Any interactive control on page after interaction makes a call to UIDL/?v-uiId=3. It’s work ok, and I understand how to write new functionality.

But there is a reverse problem: how find java class, that responsible by this concrete button click? UIDL request looks like this:

{"csrfToken":"e52d9640-7590-455d-a92a-8ce2204818b4","rpc":[["114","com.vaadin.shared.ui.button.ButtonServerRpc","click",[{"altKey":false,"button":"LEFT","clientX":1444,"clientY":303,"ctrlKey":false,"metaKey":false,"relativeX":46,"relativeY":22,"shiftKey":false,"type":1}]
]],"syncId":7,"clientId":7}

But I’m realy not understand how vaadin search proper class.

In application more than thousand classes, and I need to quickly find corresponding control class in java.

PS. I’m understand that is internal API, and not going to do hacks with this. Only find classes to make small changes.

I assume you have the Java source code of the app in IDE (Eclipse or IntelliJ), so you can easily use search function of the IDE to find classes using Button, more over you can search the usage of the Button with the same caption what you see in the UI. You will probably find more usable information by using Chrome developer tools and inspecting the DOM. Then you will find in which kind of layouts the components are, and if they have added style names you can search.

All forms in app have similar structure, and many buttons have same names, for example “Save”. I can’t find button by these criterions, because after search I get over 2000 results…

Now I find buttons and other controls by looking in class structure, guessing, changing buttons and other control title and looking result. It takes a lot of time. Is there more straightforward decision?

May be possible to list all rpc’s and it’s ids with backing java class mapping? I say about for example rpc 114 (see example in my first post).

Hi Alex, this is truly a very annoying problem, did you find a better solution? i’m in the same trouble…