2
* $Id: JXTaskPaneTest.java,v 1.8 2006/11/01 16:23:12 kleopatra Exp $
4
* Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
5
* Santa Clara, California 95054, U.S.A. All rights reserved.
7
package org.jdesktop.swingx;
9
import java.awt.BorderLayout;
10
import java.awt.Component;
11
import java.beans.PropertyChangeListener;
13
import javax.swing.AbstractAction;
14
import javax.swing.Action;
15
import javax.swing.Icon;
16
import javax.swing.JButton;
17
import javax.swing.UIManager;
19
import org.jdesktop.swingx.icon.EmptyIcon;
20
import org.jdesktop.swingx.plaf.LookAndFeelAddons;
21
import org.jdesktop.swingx.plaf.metal.MetalLookAndFeelAddons;
22
import org.jdesktop.test.PropertyChangeReport;
24
public class JXTaskPaneTest extends InteractiveTestCase {
26
public JXTaskPaneTest(String testTitle) {
30
public void testBean() throws Exception {
31
PropertyChangeReport report = new PropertyChangeReport();
32
JXTaskPane group = new JXTaskPane();
33
group.setAnimated(false);
34
group.addPropertyChangeListener(report);
37
group.setAnimated(true);
38
assertTrue(group.isAnimated());
39
assertEquals(JXTaskPane.ANIMATED_CHANGED_KEY, report.getLastEvent()
41
assertTrue(report.getLastNewBooleanValue());
43
group.setAnimated(false);
44
assertFalse(group.isAnimated());
45
assertFalse(report.getLastNewBooleanValue());
47
UIManager.put("TaskPane.animate", Boolean.FALSE);
48
JXTaskPane anotherGroup = new JXTaskPane();
49
assertFalse(anotherGroup.isAnimated());
51
UIManager.put("TaskPane.animate", null);
52
anotherGroup = new JXTaskPane();
53
assertTrue(anotherGroup.isAnimated());
56
group.setTitle("the title");
57
assertEquals("the title", group.getTitle());
58
assertEquals(JXTaskPane.TITLE_CHANGED_KEY, report.getLastEvent()
60
assertEquals("the title", report.getLastNewValue());
63
assertNull(group.getIcon());
64
Icon icon = new EmptyIcon();
66
assertNotNull(group.getIcon());
67
assertEquals(JXTaskPane.ICON_CHANGED_KEY, report.getLastEvent()
69
assertEquals(icon, report.getLastNewValue());
71
assertEquals(icon, report.getLastOldValue());
72
assertNull(report.getLastNewValue());
75
assertFalse(group.isSpecial());
76
group.setSpecial(true);
77
assertTrue(group.isSpecial());
78
assertEquals(JXTaskPane.SPECIAL_CHANGED_KEY, report.getLastEvent()
80
assertTrue(report.getLastNewBooleanValue());
81
assertFalse(report.getLastOldBooleanValue());
84
assertFalse(group.isScrollOnExpand());
85
group.setScrollOnExpand(true);
86
assertTrue(group.isScrollOnExpand());
87
assertEquals(JXTaskPane.SCROLL_ON_EXPAND_CHANGED_KEY, report.getLastEvent()
89
assertTrue(report.getLastNewBooleanValue());
90
assertFalse(report.getLastOldBooleanValue());
93
assertTrue(group.isExpanded());
94
group.setExpanded(false);
95
assertFalse(group.isExpanded());
96
assertEquals(JXTaskPane.EXPANDED_CHANGED_KEY, report.getLastEvent()
98
assertFalse(report.getLastNewBooleanValue());
99
assertTrue(report.getLastOldBooleanValue());
101
new JXTaskPaneBeanInfo();
104
public void testContentPane() {
105
JXTaskPane group = new JXTaskPane();
106
assertEquals(0, group.getContentPane().getComponentCount());
108
// Objects are not added to the taskPane but to its contentPane
109
JButton button = new JButton();
111
assertEquals(group.getContentPane(), button.getParent());
112
group.remove(button);
113
assertNull(button.getParent());
114
assertEquals(0, group.getContentPane().getComponentCount());
117
assertEquals(0, group.getContentPane().getComponentCount());
120
assertEquals(0, group.getContentPane().getComponentCount());
122
BorderLayout layout = new BorderLayout();
123
group.setLayout(layout);
124
assertEquals(layout, group.getContentPane().getLayout());
125
assertFalse(layout == group.getLayout());
128
public void testActions() throws Exception {
129
JXTaskPane taskPane = new JXTaskPane();
130
Action action = new AbstractAction() {
131
public void actionPerformed(java.awt.event.ActionEvent e) {}
133
assertEquals(0, taskPane.getContentPane().getComponentCount());
134
Component component = taskPane.add(action);
135
assertEquals(taskPane.getContentPane(), component.getParent());
136
assertEquals(1, taskPane.getContentPane().getComponentCount());
139
public void testAnimationListeners() throws Exception {
140
JXTaskPane taskPane = new JXTaskPane();
141
// start with a not expanded or animated taskPane
142
taskPane.setAnimated(false);
143
taskPane.setExpanded(false);
144
assertFalse(taskPane.isExpanded());
146
class ListenForEvents implements PropertyChangeListener {
147
private boolean expandedEventReceived;
148
private boolean collapsedEventReceived;
149
private int animationStart;
151
public void propertyChange(java.beans.PropertyChangeEvent evt) {
152
if ("expanded".equals(evt.getNewValue())) {
153
expandedEventReceived = true;
154
} else if ("collapsed".equals(evt.getNewValue())) {
155
collapsedEventReceived = true;
156
} else if ("reinit".equals(evt.getNewValue())) {
162
ListenForEvents listener = new ListenForEvents();
164
// register a listener on the animation
165
taskPane.addPropertyChangeListener(JXCollapsiblePane.ANIMATION_STATE_KEY,
167
taskPane.setAnimated(true);
169
// expand the taskPane and...
170
taskPane.setExpanded(true);
171
// ...wait until listener has been notified
172
while (!listener.expandedEventReceived) { Thread.sleep(100); }
174
// collapse the taskPane and...
175
// ...wait until listener has been notified
176
taskPane.setExpanded(false);
177
while (!listener.collapsedEventReceived) { Thread.sleep(100); }
179
assertEquals(2, listener.animationStart);
182
public void testAddon() throws Exception {
183
// move around all addons
184
TestUtilities.cycleAddons(new JXTaskPane());
187
public void testIssue344() throws Exception {
189
LookAndFeelAddons.setAddon(new MetalLookAndFeelAddons());
190
String uiClass = UIManager.getString(JXTaskPane.uiClassID);
191
assertTrue("org.jdesktop.swingx.plaf.metal.MetalTaskPaneUI".equals(uiClass)
192
|| "org.jdesktop.swingx.plaf.misc.GlossyTaskPaneUI".equals(uiClass));