1 /* -*- Mode: JDE; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- 2 * 3 * This file is part of the debugger and core tools for the AspectJ(tm) 4 * programming language; see http://aspectj.org 5 * 6 * The contents of this file are subject to the Mozilla Public License 7 * Version 1.1 (the "License"); you may not use this file except in 8 * compliance with the License. You may obtain a copy of the License at 9 * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. 10 * 11 * Software distributed under the License is distributed on an "AS IS" basis, 12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 13 * for the specific language governing rights and limitations under the 14 * License. 15 * 16 * The Original Code is AspectJ. 17 * 18 * The Initial Developer of the Original Code is Xerox Corporation. Portions 19 * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation. 20 * All Rights Reserved. 21 */ 22 23 package org.aspectj.debugger.gui; 24 25 import javax.swing.JTree; 26 import javax.swing.event.TreeWillExpandListener; 27 import javax.swing.event.TreeExpansionEvent; 28 import javax.swing.tree.TreePath; 29 import javax.swing.tree.ExpandVetoException; 30 31 class NoCollapsingRootExpansionListener implements TreeWillExpandListener { 32 33 private JTree tree; 34 35 public NoCollapsingRootExpansionListener(JTree tree) { 36 this.tree = tree; 37 } 38 39 public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException { 40 TreePath path = event.getPath(); 41 Object root = tree.getModel().getRoot(); 42 Object first = path.getPathComponent(0); 43 Object last = path.getLastPathComponent(); 44 if (last.equals(root)) { 45 throw new ExpandVetoException(event); 46 } 47 } 48 49 public void treeWillExpand(TreeExpansionEvent event) { 50 } 51 } 52