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 */ 022package csheets.ext.deptree; 023 024import javax.swing.tree.DefaultMutableTreeNode; 025import javax.swing.tree.DefaultTreeModel; 026 027import csheets.core.Cell; 028import csheets.core.Spreadsheet; 029import csheets.core.formula.Reference; 030import csheets.ui.ctrl.UIController; 031 032/** 033 * A mutable tree node containing a reference. The addresses that the reference 034 * points to are added as child nodes. 035 * @author Einar Pehrson 036 */ 037@SuppressWarnings("serial") 038public class ReferenceNode extends DefaultMutableTreeNode { 039 040 /** 041 * Creates a new reference node. 042 * @param reference the reference of the node 043 * @param treeModel the data model to which the node belongs 044 * @param uiController the user interface controller 045 */ 046 public ReferenceNode(Reference reference, Spreadsheet spreadsheet, 047 DefaultTreeModel treeModel, UIController uiController) { 048 super(reference); 049 050 // Adds children 051 for (Cell cell : reference.getCells()) 052 add(new PrecedentsNode(cell, treeModel, uiController)); 053 } 054}