001/*
002 * Copyright (c) 2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: berkley $'
006 * '$Date: 2010-04-28 00:12:36 +0000 (Wed, 28 Apr 2010) $' 
007 * '$Revision: 24000 $'
008 * 
009 * Permission is hereby granted, without written agreement and without
010 * license or royalty fees, to use, copy, modify, and distribute this
011 * software and its documentation for any purpose, provided that the above
012 * copyright notice and the following two paragraphs appear in all copies
013 * of this software.
014 *
015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
019 * SUCH DAMAGE.
020 *
021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
026 * ENHANCEMENTS, OR MODIFICATIONS.
027 *
028 */
029
030package org.kepler.reporting.roml;
031
032import java.util.ArrayList;
033import java.util.List;
034
035import javax.swing.tree.DefaultMutableTreeNode;
036import javax.swing.tree.DefaultTreeModel;
037
038import org.kepler.reporting.rio.DynamicReportItem;
039import org.kepler.reporting.rio.Item;
040
041import ptolemy.kernel.util.NamedObj;
042
043public class ItemsOfInterest {
044
045        private DefaultTreeModel model;
046        
047        public ItemsOfInterest() {
048                DefaultMutableTreeNode root = new DefaultMutableTreeNode();
049                model = new DefaultTreeModel(root);
050        }
051                
052        public DefaultTreeModel getReportItems() {
053                return model;
054        }
055        
056        public void add(Item obj) {
057                ((DefaultMutableTreeNode)model.getRoot()).add(new DefaultMutableTreeNode(obj));
058                model.reload();
059        }
060        
061        public List<Item> getReportItemsAsList() {
062                Object parent = this.getReportItems().getRoot();
063                int childrenCnt = this.getReportItems().getChildCount(parent);
064                List<Item> retList = new ArrayList<Item>();
065                for (int i = 0; i < childrenCnt; i++) {
066                        retList.add((Item) ((DefaultMutableTreeNode) this.getReportItems().getChild(parent, i)).getUserObject());
067                }
068                return retList;
069        }
070        
071        private void usage() {
072                
073                ItemsOfInterest ioi = new ItemsOfInterest();
074                ioi.add(new DynamicReportItem(new NamedObj().getFullName()));
075        }
076        
077}