【IT168 技术文章】
简介
BarApp 是 BasicApplication 类(内含控件生成方法)的扩展。还使用了这个应用程序的几幅屏幕快照来展示不同控件的特性。
图 1 显示所有控件,包括几个 ToolBar 和一个 CoolBar。最左边是三个有边框的 Composite(包含一个 Label),每个 Composite 都位于一个 SashForm 面板内。而 SashForm 本身又处在一个更大的 SashForm 中有边框的 Composite 内。靠近左侧中间是一个垂直的 ToolBar,它的顶部有一个 Open Tracker 按钮。在右上方是四个水平的 ToolBar(在两个 CBanner 中)—— 但只能看到两个;前两个使用了文本标签,后两个使用图片(同一张图片)。这几个 ToolBar 和 CBanner 全都在外围 SashForm 中的一个 Composite 中。从清单 1 的控件层次结构中可以清楚地看出这个结构。
图 1. BarApp 示例
清单 1. BarApp 应用程序的控件层次结构
1 0: BarApp {}
2 1: SashForm {}
3 2: Composite {}
4 3: SashForm {}
5 4: Composite {}
6 5: Label {Left Pane}
7 4: Composite {}
8 5: Label {Center Pane}
9 4: Composite {}
10 5: Label {Right Pane}
11 2: Composite {}
12 3: ToolBar {}
13 4: ToolItem {Open Tracker}
14 4: ToolItem {Check}
15 4: ToolItem {Drop}
16 4: ToolItem {}
17 4: ToolItem {Radio 1}
18 4: ToolItem {Radio 2}
19 4: ToolItem {Radio 3}
20 4: Label {}
21 3: CBanner {}
22 4: ToolBar {}
23 5: ToolItem {Press 1}
24 5: ToolItem {Check}
25 5: ToolItem {Drop}
26 5: ToolItem {}
27 5: ToolItem {Radio 1}
28 5: ToolItem {Radio 2}
29 5: ToolItem {Radio 3}
30 5: Label {}
31 4: ToolBar {}
32 5: ToolItem {Push 2}
33 5: ToolItem {Check}
34 5: ToolItem {Drop}
35 5: ToolItem {}
36 5: ToolItem {Radio 1}
37 5: ToolItem {Radio 2}
38 5: ToolItem {Radio 3}
39 5: Label {}
40 3: CBanner {}
41 4: ToolBar {}
42 5: ToolItem {}
43 5: ToolItem {}
44 5: ToolItem {}
45 5: ToolItem {}
46 5: ToolItem {}
47 5: ToolItem {}
48 5: ToolItem {}
49 5: Label {}
50 4: ToolBar {}
51 5: ToolItem {}
52 5: ToolItem {}
53 5: ToolItem {}
54 5: ToolItem {}
55 5: ToolItem {}
56 5: ToolItem {}
57 5: ToolItem {}
58 5: Label {}
59 3: CoolBar {}
60 4: CoolItem {Drop}
61 4: CoolItem {Drop}
62 4: CoolItem {Drop}
63 4: CoolItem {Drop}
64 4: CoolItem {Drop}
65 4: Button {Press Me 1}
66 4: Button {Press Me 2}
67 4: Button {Radio 1}
68 4: Button {Radio 2}
69 4: Button {Radio 3}
70 3: Link {<a href="http://www.somecorp.com">This is a link!</a>}
71 3: Composite {}
72 4: Button {File}
73 4: Button {Directory}
74 4: Button {Color}
75 4: Button {Font}
76
2 1: SashForm {}
3 2: Composite {}
4 3: SashForm {}
5 4: Composite {}
6 5: Label {Left Pane}
7 4: Composite {}
8 5: Label {Center Pane}
9 4: Composite {}
10 5: Label {Right Pane}
11 2: Composite {}
12 3: ToolBar {}
13 4: ToolItem {Open Tracker}
14 4: ToolItem {Check}
15 4: ToolItem {Drop}
16 4: ToolItem {}
17 4: ToolItem {Radio 1}
18 4: ToolItem {Radio 2}
19 4: ToolItem {Radio 3}
20 4: Label {}
21 3: CBanner {}
22 4: ToolBar {}
23 5: ToolItem {Press 1}
24 5: ToolItem {Check}
25 5: ToolItem {Drop}
26 5: ToolItem {}
27 5: ToolItem {Radio 1}
28 5: ToolItem {Radio 2}
29 5: ToolItem {Radio 3}
30 5: Label {}
31 4: ToolBar {}
32 5: ToolItem {Push 2}
33 5: ToolItem {Check}
34 5: ToolItem {Drop}
35 5: ToolItem {}
36 5: ToolItem {Radio 1}
37 5: ToolItem {Radio 2}
38 5: ToolItem {Radio 3}
39 5: Label {}
40 3: CBanner {}
41 4: ToolBar {}
42 5: ToolItem {}
43 5: ToolItem {}
44 5: ToolItem {}
45 5: ToolItem {}
46 5: ToolItem {}
47 5: ToolItem {}
48 5: ToolItem {}
49 5: Label {}
50 4: ToolBar {}
51 5: ToolItem {}
52 5: ToolItem {}
53 5: ToolItem {}
54 5: ToolItem {}
55 5: ToolItem {}
56 5: ToolItem {}
57 5: ToolItem {}
58 5: Label {}
59 3: CoolBar {}
60 4: CoolItem {Drop}
61 4: CoolItem {Drop}
62 4: CoolItem {Drop}
63 4: CoolItem {Drop}
64 4: CoolItem {Drop}
65 4: Button {Press Me 1}
66 4: Button {Press Me 2}
67 4: Button {Radio 1}
68 4: Button {Radio 2}
69 4: Button {Radio 3}
70 3: Link {<a href="http://www.somecorp.com">This is a link!</a>}
71 3: Composite {}
72 4: Button {File}
73 4: Button {Directory}
74 4: Button {Color}
75 4: Button {Font}
76