1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.richclient.util;
17
18 import javax.swing.JButton;
19 import javax.swing.JMenu;
20 import javax.swing.JMenuItem;
21 import javax.swing.JSeparator;
22 import javax.swing.JToolBar;
23
24 import junit.framework.TestCase;
25
26
27
28
29
30
31 public class SeparatorUtilsTests extends TestCase {
32 public void testConsolidateSeparatorsInToolBar() {
33 JToolBar toolBar = new JToolBar();
34
35 toolBar.add(createButton("button1", false));
36 toolBar.addSeparator();
37 toolBar.add(createButton("button2", true));
38 toolBar.addSeparator();
39 toolBar.add(createButton("button3", false));
40 toolBar.addSeparator();
41 toolBar.add(createButton("button4",true));
42 toolBar.addSeparator();
43 toolBar.add(createButton("button5", false));
44
45 SeparatorUtils.consolidateSeparators(toolBar);
46
47 assertEquals(9, toolBar.getComponentCount());
48
49 assertFalse(toolBar.getComponent(1).isVisible());
50 assertFalse(toolBar.getComponent(3).isVisible());
51 assertTrue(toolBar.getComponent(5).isVisible());
52 assertFalse(toolBar.getComponent(7).isVisible());
53 }
54
55 public void testConsolidateSeparatorsReset() {
56 JMenu menu = new JMenu("test-menu");
57
58 menu.add(createMenuItem("item1", false));
59 menu.addSeparator();
60 menu.add(createMenuItem("item2", true));
61 menu.addSeparator();
62 menu.add(createMenuItem("item3", false));
63 menu.addSeparator();
64 menu.add(createMenuItem("item4", true));
65 menu.addSeparator();
66 menu.add(createMenuItem("item5", false));
67
68 SeparatorUtils.consolidateSeparators(menu);
69
70 menu.getMenuComponent(0).setVisible(true);
71
72 SeparatorUtils.consolidateSeparators(menu);
73
74 assertTrue(((JSeparator)menu.getMenuComponent(1)).isVisible());
75 assertFalse(((JSeparator)menu.getMenuComponent(3)).isVisible());
76 assertTrue(((JSeparator)menu.getMenuComponent(5)).isVisible());
77 assertFalse(((JSeparator)menu.getMenuComponent(7)).isVisible());
78 }
79
80 public void testConsolidateSeparatorsInMenu() {
81 JMenu menu = new JMenu("test-menu");
82
83 menu.add(createMenuItem("item1", false));
84 menu.addSeparator();
85 menu.add(createMenuItem("item2", true));
86 menu.addSeparator();
87 menu.add(createMenuItem("item3", false));
88 menu.addSeparator();
89 menu.add(createMenuItem("item4", true));
90 menu.addSeparator();
91 menu.add(createMenuItem("item5", false));
92
93 SeparatorUtils.consolidateSeparators(menu);
94
95 assertEquals(9, menu.getMenuComponentCount());
96
97 assertFalse(menu.getMenuComponent(1).isVisible());
98 assertFalse(menu.getMenuComponent(3).isVisible());
99 assertTrue(menu.getMenuComponent(5).isVisible());
100 assertFalse(menu.getMenuComponent(7).isVisible());
101 }
102
103
104 public void testConsolidateSeparatorsInSubMenu() {
105 JMenu sub = new JMenu("sub-menu");
106 sub.add(createMenuItem("sub-item1", true));
107 sub.addSeparator();
108 sub.add(createMenuItem("sub-item2", false));
109 sub.addSeparator();
110 sub.add(createMenuItem("sub-item3", true));
111
112 JMenu menu = new JMenu("test-menu");
113 menu.add(sub);
114
115 SeparatorUtils.consolidateSeparators(menu);
116
117 assertFalse(sub.getMenuComponent(1).isVisible());
118 assertTrue(sub.getMenuComponent(3).isVisible());
119 }
120
121 private static JMenuItem createMenuItem(String text, boolean visible) {
122 JMenuItem item = new JMenuItem(text);
123
124 item.setVisible(visible);
125
126 return item;
127 }
128
129 private static JButton createButton(String text, boolean visible) {
130 JButton button = new JButton(text);
131 button.setVisible(visible);
132
133 return button;
134 }
135 }