Vaadin菜单设计 - 哪个组件位于顶部?

时间:2016-06-23 21:31:19

标签: vaadin

我正在做一个类似Eclipse工作区的菜单。基本上, 该页面将分为3个部分(列) - 例如LHS,MDDL& RHS部分。 所有这3个部分都可以调整大小, 可以最小化/最大化。 这3个部分中的每一个都有自己的组件, 取决于用户所在的菜单项。

他们将拥有的另一件事是将触发/传递事件 在这3个部分的2个不同的组件之间。 例如:当用户点击LHS部分的手风琴(或树或标签)中的条目时, en事件将发生在MDDL部分。

Vaadin正在分层管理UI组件 - 根目录下的组件,每个非根组件本身或与其他几个兄弟组件包含在一个其他组件中。组件。从这个角度来看,

从目前为止,我可以通过以下方式设计LHS,MDDL& amp; RHS:

1。)布局(VerticalLayoutHorizontalLayout,或者FormLayout(?)) 或根目录Panel,其中包含3个组成部分(无论这三个组成部分是什么)

2。)根目录HorizontalSplitPanel。在HorizontalSplitPanel的右侧面板上,另一个 HorizontalSplitPanel组成我正在寻找的3个部分。

3。)3列中的GridLayout个,每个列中有一个面板构成3个部分

4。)3个不同的Window - s。

哪些选项最适合我使用?

另外 - 考虑到各个部分(事件监听器和跨部门的相应操作)之间的区别,我应该选择哪种设计? 我希望将代码分离。这三个部分各有各自的样式(LHS:选项,MDDL:数据条目,RHS:控制)。

在另一行 - PanelLayout之间究竟有什么区别? Vaadin book的图6.1暗示Layout的后代更复杂 - 以什么方式?

我是一名后端开发人员 - 对FE事物的新手。如果这是一个天真的问题,请原谅。

TIA。

1 个答案:

答案 0 :(得分:0)

Panel是单个组件容器,布局通常包含多个子组件。区别在于您可以看到:面板为内部组件提供了标题和边框,HorizontalLayout等布局以定义的方式布局组件,例如水平地彼此相邻。

你的选择2对我来说似乎是合理的。只有split panels提供了一个可以开箱即用的分隔符。

关于事件处理:我建议为每个部分创建一个类,派生自CustomComponent。然后在这些类中实现类似于Vaadin的新事件/听众。创建3个部分后,每个部分都需要根据需要将侦听器添加到其他部分。