~ubuntu-branches/ubuntu/trusty/libswingx-java/trusty

« back to all changes in this revision

Viewing changes to src/test/org/jdesktop/swingx/JXTaskPaneTest.java

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2008-03-08 16:18:24 UTC
  • Revision ID: james.westby@ubuntu.com-20080308161824-wsahvl9pwzjcea3g
Tags: upstream-0.9.2
ImportĀ upstreamĀ versionĀ 0.9.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * $Id: JXTaskPaneTest.java,v 1.8 2006/11/01 16:23:12 kleopatra Exp $
 
3
 *
 
4
 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
 
5
 * Santa Clara, California 95054, U.S.A. All rights reserved.
 
6
 */
 
7
package org.jdesktop.swingx;
 
8
 
 
9
import java.awt.BorderLayout;
 
10
import java.awt.Component;
 
11
import java.beans.PropertyChangeListener;
 
12
 
 
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;
 
18
 
 
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;
 
23
 
 
24
public class JXTaskPaneTest extends InteractiveTestCase {
 
25
 
 
26
  public JXTaskPaneTest(String testTitle) {
 
27
    super(testTitle);
 
28
  }
 
29
 
 
30
  public void testBean() throws Exception {
 
31
    PropertyChangeReport report = new PropertyChangeReport();
 
32
    JXTaskPane group = new JXTaskPane();
 
33
    group.setAnimated(false);
 
34
    group.addPropertyChangeListener(report);
 
35
 
 
36
    // ANIMATED PROPERTY
 
37
    group.setAnimated(true);
 
38
    assertTrue(group.isAnimated());
 
39
    assertEquals(JXTaskPane.ANIMATED_CHANGED_KEY, report.getLastEvent()
 
40
      .getPropertyName());
 
41
    assertTrue(report.getLastNewBooleanValue());
 
42
 
 
43
    group.setAnimated(false);
 
44
    assertFalse(group.isAnimated());
 
45
    assertFalse(report.getLastNewBooleanValue());
 
46
 
 
47
    UIManager.put("TaskPane.animate", Boolean.FALSE);
 
48
    JXTaskPane anotherGroup = new JXTaskPane();
 
49
    assertFalse(anotherGroup.isAnimated());
 
50
 
 
51
    UIManager.put("TaskPane.animate", null);
 
52
    anotherGroup = new JXTaskPane();
 
53
    assertTrue(anotherGroup.isAnimated());
 
54
 
 
55
    // TITLE
 
56
    group.setTitle("the title");
 
57
    assertEquals("the title", group.getTitle());
 
58
    assertEquals(JXTaskPane.TITLE_CHANGED_KEY, report.getLastEvent()
 
59
      .getPropertyName());
 
60
    assertEquals("the title", report.getLastNewValue());
 
61
 
 
62
    // ICON
 
63
    assertNull(group.getIcon());
 
64
    Icon icon = new EmptyIcon();
 
65
    group.setIcon(icon);
 
66
    assertNotNull(group.getIcon());
 
67
    assertEquals(JXTaskPane.ICON_CHANGED_KEY, report.getLastEvent()
 
68
      .getPropertyName());
 
69
    assertEquals(icon, report.getLastNewValue());
 
70
    group.setIcon(null);
 
71
    assertEquals(icon, report.getLastOldValue());
 
72
    assertNull(report.getLastNewValue());
 
73
 
 
74
    // SPECIAL
 
75
    assertFalse(group.isSpecial());
 
76
    group.setSpecial(true);
 
77
    assertTrue(group.isSpecial());
 
78
    assertEquals(JXTaskPane.SPECIAL_CHANGED_KEY, report.getLastEvent()
 
79
      .getPropertyName());
 
80
    assertTrue(report.getLastNewBooleanValue());
 
81
    assertFalse(report.getLastOldBooleanValue());
 
82
 
 
83
    // SCROLL ON EXPAND
 
84
    assertFalse(group.isScrollOnExpand());
 
85
    group.setScrollOnExpand(true);
 
86
    assertTrue(group.isScrollOnExpand());
 
87
    assertEquals(JXTaskPane.SCROLL_ON_EXPAND_CHANGED_KEY, report.getLastEvent()
 
88
      .getPropertyName());
 
89
    assertTrue(report.getLastNewBooleanValue());
 
90
    assertFalse(report.getLastOldBooleanValue());
 
91
 
 
92
    // EXPANDED
 
93
    assertTrue(group.isExpanded());
 
94
    group.setExpanded(false);
 
95
    assertFalse(group.isExpanded());
 
96
    assertEquals(JXTaskPane.EXPANDED_CHANGED_KEY, report.getLastEvent()
 
97
      .getPropertyName());
 
98
    assertFalse(report.getLastNewBooleanValue());
 
99
    assertTrue(report.getLastOldBooleanValue());
 
100
 
 
101
    new JXTaskPaneBeanInfo();
 
102
  }
 
103
 
 
104
  public void testContentPane() {
 
105
    JXTaskPane group = new JXTaskPane();
 
106
    assertEquals(0, group.getContentPane().getComponentCount());
 
107
 
 
108
    // Objects are not added to the taskPane but to its contentPane
 
109
    JButton button = new JButton();
 
110
    group.add(button);
 
111
    assertEquals(group.getContentPane(), button.getParent());
 
112
    group.remove(button);
 
113
    assertNull(button.getParent());
 
114
    assertEquals(0, group.getContentPane().getComponentCount());
 
115
    group.add(button);
 
116
    group.removeAll();
 
117
    assertEquals(0, group.getContentPane().getComponentCount());
 
118
    group.add(button);
 
119
    group.remove(0);
 
120
    assertEquals(0, group.getContentPane().getComponentCount());
 
121
 
 
122
    BorderLayout layout = new BorderLayout();
 
123
    group.setLayout(layout);
 
124
    assertEquals(layout, group.getContentPane().getLayout());
 
125
    assertFalse(layout == group.getLayout());
 
126
  }
 
127
 
 
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) {}
 
132
    };
 
133
    assertEquals(0, taskPane.getContentPane().getComponentCount());
 
134
    Component component = taskPane.add(action);
 
135
    assertEquals(taskPane.getContentPane(), component.getParent());
 
136
    assertEquals(1, taskPane.getContentPane().getComponentCount());
 
137
  }
 
138
 
 
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());
 
145
 
 
146
    class ListenForEvents implements PropertyChangeListener {
 
147
      private boolean expandedEventReceived;
 
148
      private boolean collapsedEventReceived;
 
149
      private int animationStart;
 
150
      
 
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())) {
 
157
          animationStart++;
 
158
        }
 
159
      }
 
160
    }
 
161
 
 
162
    ListenForEvents listener = new ListenForEvents();
 
163
 
 
164
    // register a listener on the animation
 
165
    taskPane.addPropertyChangeListener(JXCollapsiblePane.ANIMATION_STATE_KEY,
 
166
      listener);
 
167
    taskPane.setAnimated(true);
 
168
    
 
169
    // expand the taskPane and...
 
170
    taskPane.setExpanded(true);
 
171
    // ...wait until listener has been notified
 
172
    while (!listener.expandedEventReceived) { Thread.sleep(100); }
 
173
    
 
174
    // collapse the taskPane and...
 
175
    // ...wait until listener has been notified
 
176
    taskPane.setExpanded(false);
 
177
    while (!listener.collapsedEventReceived) { Thread.sleep(100); }
 
178
    
 
179
    assertEquals(2, listener.animationStart);
 
180
  }
 
181
 
 
182
  public void testAddon() throws Exception {
 
183
    // move around all addons
 
184
    TestUtilities.cycleAddons(new JXTaskPane());
 
185
  }
 
186
 
 
187
  public void testIssue344() throws Exception {
 
188
    new JXTaskPane();
 
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));
 
193
  }
 
194
  
 
195
}