开发者

Design Suggestion for Rich Client UIs

Background:

I have extensive experience in web applications, but I have very little or no experience with RCP. Presently, I am working with Java Swing API. Everything is good. The only problem is, I don't feel very confident about my design.

Question:

In web application when we implement MVC, we forward the request to a View. The Controller doesn't care about where to show it. Everything is going to be displayed on a page, typically. But in RCP, we need to know where to show this form/table/etc.. I mean which panel, right or left, up or down. That requires a reference to a container component in which we desire to show the thing. How we should design our code to get that reference?

Take:

I am keeping reference to all first level components in the main class -- that has main() method. And then wherever I need some component, I am doing something like,

JPanel formPanel = MainApp.getMainPanel().getFormPanel();
..
JPanel treePan开发者_如何学运维el = MainApp.getMainPanel().getTreePanel();

Is it okay?


MVC isn't really as much of a thing in RCP, people talk about it but largely it's bullshit.

For sure having a model of your business objects that's separate and had no dependency on any UI code is important. But the lines between Views and Controllers tend to be more blurred I wouldn't sweat it too much.

User interface elements naturally tend to be organized in a tree like you have, though global variables such as your main panel should be avoided.

Lean heavily on the observer pattern.


A Swing Architecture Overview elaborates on Swing's separable model architecture. I found the concept helpful in understanding commonly used Swing components, as well as popular tools like JFreeChart.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜