A few general and short comments about the patch (the submitted one and also the intermediary versions of it that I've seen and commented):
- a few notes on the architecture approach:
- weak usage of a controller to transform view calls (UI calls) into server aync calls - which led to specific, non-reusable serverside code written to serve the particular purpose of a specific ui action
- too much duplicate code (the initial service implementation (not present in this patch), the links tabs)
- useless storage of data in member variables, especially as this happened in the context of the client code
- strange approach for a couple of problems (e.g. filling the dropdown boxes on selection change), messed up responsibilities (e.g. LinkDialog responsible for initialization and update of its child tabs)
- as a general impression, not enough overall view, local analysis of situations instead of a contextual approach and integration with the rest.
- otherwise good, clean, non-hacky approach. Easy to understand the general idea and relatively easy to work on top of it. Also, working, tested code.
- good, strict follow of formatting rules
- awareness and follow of checkstyle rules, but missing or useless comments someplaces.
- no comments whatsoever in code, which should be there to help understand the logic or necessity of some parts
It would be good to see more agile-style approach of problems: incremental development, starting with minimal functionalities / code, then iterating and adding more and more, with review of the whole landscape and potential refactor at each iteration.