I have some experience with Java "classic" web applications, some with console apps, but almost none regarding desktop, event based, GUI applications.
I am working on a web application using GWT and Ext GWT, which is "event based" instead of "request based". So it looks more like a desktop application than a web application.
I have a window that contains a lot of components. This is the component structure (not all of them) and the attachment shows it all:
The problem is that the components interact with each other, for example:
- A button in the ToolBar modifies the right ContentPanel by adding the proper FormPanel to it. It may possible alter the TreePanel too.
- By selecting something from the TreePanel, it modifies the buttons in the ToolBar behaviour. At the same time, it modifies the right ContentPanel by adding the proper FormPanel to it.
- A FormPanel modifies the TreePanel structure.
So the problem is organizing the components in the class. This is the current class structure:
As you can see, I have to keep a reference to the window on each component that needs to interact with another. There has to be a better way.
The source file is already over 500 lines of code long and it's not finished yet.