001    /*
002     * Copyright (c) 2005 Einar Pehrson, Malin Johansson and Sofia Nilsson
003     *
004     * This file is part of
005     * CleanSheets Extension for Dependency Trees
006     *
007     * CleanSheets Extension for Dependency Trees is free software; you can
008     * redistribute it and/or modify it under the terms of the GNU General Public
009     * License as published by the Free Software Foundation; either version 2 of
010     * the License, or (at your option) any later version.
011     *
012     * CleanSheets Extension for Dependency Trees is distributed in the hope that
013     * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
014     * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
015     * See the GNU General Public License for more details.
016     *
017     * You should have received a copy of the GNU General Public License
018     * along with CleanSheets Extension for Dependency Trees; if not, write to the
019     * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020     * Boston, MA  02111-1307  USA
021     */
022    package csheets.ext.deptree;
023    
024    import csheets.core.Cell;
025    import csheets.ui.ctrl.SelectionEvent;
026    import csheets.ui.ctrl.UIController;
027    
028    /**
029     * A tree displaying the precedents of a cell.
030     * @author Einar Pehrson
031     */
032    @SuppressWarnings("serial")
033    public class PrecedentsTree extends DependencyTree {
034    
035            /**
036             * Creates a mew precedents tree.
037             * @param uiController the user interface controller
038             */
039            public PrecedentsTree(UIController uiController) {
040                    super(uiController);
041            }
042    
043            public void selectionChanged(SelectionEvent event) {
044                    Cell cell = event.getCell();
045                    if (event.isCellChanged())
046                            if (cell != null) {
047                                    CellNode node = new PrecedentsNode(cell, treeModel, uiController);
048                                    node.populate();
049                                    treeModel.setRoot(node);
050                            } else
051                                    treeModel.setRoot(null);
052            }
053    }