01: //THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: //CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: //BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: //FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: //OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: //INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: //LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: //OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: //LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: //NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: //EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: //POSSIBILITY OF SUCH DAMAGE.
13: //
14: //Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.metaboss.applications.designstudio.designtree;
16:
17: import java.awt.event.ActionEvent;
18: import java.awt.event.ActionListener;
19:
20: import javax.swing.JTree;
21: import javax.swing.Timer;
22: import javax.swing.tree.DefaultTreeModel;
23: import javax.swing.tree.TreeNode;
24: import javax.swing.tree.TreePath;
25:
26: public class DesignTreeDelayedNodeExpander implements ActionListener {
27: private JTree mTree = null;
28: private Timer mTimer = null;
29: private TreeNode mNodeToExpand = null;
30:
31: public DesignTreeDelayedNodeExpander(JTree pTree) {
32: mTree = pTree;
33: mTimer = new Timer(1000, this );
34: mTimer.stop();
35: }
36:
37: public void scheduleToExpandNode(TreeNode pTreeNode) {
38: if (mNodeToExpand != pTreeNode) {
39: mNodeToExpand = pTreeNode;
40: mTimer.restart();
41: }
42: }
43:
44: public void stop() {
45: mNodeToExpand = null;
46: mTimer.stop();
47: }
48:
49: public void actionPerformed(ActionEvent e) {
50: mTimer.stop();
51: if (mNodeToExpand != null) {
52: DefaultTreeModel lModel = (DefaultTreeModel) mTree
53: .getModel();
54: mTree.expandPath(new TreePath(lModel
55: .getPathToRoot(mNodeToExpand)));
56: mNodeToExpand = null;
57: }
58: }
59: }
|