/[svn]/jsampler/trunk/src/org/jsampler/view/AbstractTreeModel.java
ViewVC logotype

Annotation of /jsampler/trunk/src/org/jsampler/view/AbstractTreeModel.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2200 - (hide annotations) (download)
Sun Jul 3 22:01:16 2011 UTC (12 years, 9 months ago) by iliev
File size: 3435 byte(s)
* added support for exporting effects to LSCP script
* Sampler Browser (work in progress): initial
  implementation of sampler channels

1 iliev 2200 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4     * Copyright (C) 2011 Grigor Iliev <grigor@grigoriliev.com>
5     *
6     * This file is part of JSampler.
7     *
8     * JSampler is free software; you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License version 2
10     * as published by the Free Software Foundation.
11     *
12     * JSampler is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with JSampler; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20     * MA 02111-1307 USA
21     */
22     package org.jsampler.view;
23    
24     import java.util.ArrayList;
25     import java.util.Vector;
26     import javax.swing.event.TreeModelEvent;
27     import javax.swing.event.TreeModelListener;
28     import javax.swing.tree.TreeModel;
29     import javax.swing.tree.TreeNode;
30    
31     /**
32     *
33     * @author Grigor Iliev
34     */
35     public abstract class AbstractTreeModel implements TreeModel {
36     private ArrayList<TreeModelListener> listeners = new ArrayList<TreeModelListener>();
37    
38    
39    
40     // Tree model methods
41     @Override
42     public void
43     addTreeModelListener(TreeModelListener l) {
44     listeners.add(l);
45     }
46    
47     @Override
48     public void
49     removeTreeModelListener(TreeModelListener l) {
50     listeners.remove(l);
51     }
52    
53     @Override
54     public boolean
55     isLeaf(Object node) { return ((TreeNode)node).isLeaf(); }
56    
57     @Override
58     public Object
59     getChild(Object parent, int index) {
60     return ((TreeNode)parent).getChildAt(index);
61     }
62    
63     @Override
64     public int
65     getChildCount(Object parent) {
66     return ((TreeNode)parent).getChildCount();
67     }
68    
69     @Override
70     public int
71     getIndexOfChild(Object parent, Object child) {
72     if(parent == null || child == null) return -1;
73     return ((TreeNode)parent).getIndex((TreeNode)child);
74     }
75     //////////
76    
77     protected Object[]
78     getPathToRoot(TreeNode node) {
79     Vector v = new Vector();
80    
81     while(node != null) {
82     v.insertElementAt(node, 0);
83     if(node == getRoot()) break;
84     node = node.getParent();
85     }
86    
87     return v.toArray(new Object[v.size()]);
88     }
89    
90     protected void
91     fireNodeInserted(TreeNode node, int index) {
92     Object[] path = getPathToRoot(node.getParent());
93    
94     int[] idxs = { index };
95     Object[] objs = { node };
96     TreeModelEvent e = new TreeModelEvent(this, path, idxs, objs);
97     for(TreeModelListener l : listeners) {
98     l.treeNodesInserted(e);
99     }
100     }
101    
102     protected void
103     fireNodeChanged(TreeNode node, int index) {
104     Object[] path = getPathToRoot(node.getParent());
105     int[] idxs = { index };
106     Object[] objs = { node };
107     TreeModelEvent e = new TreeModelEvent(this, path, idxs, objs);
108     for(TreeModelListener l : listeners) {
109     l.treeNodesChanged(e);
110     }
111     }
112    
113     protected void
114     fireNodeRemoved(TreeNode parent, TreeNode node, int index) {
115     Object[] path = getPathToRoot(parent);
116     int[] idxs = { index };
117     Object[] objs = { node };
118     TreeModelEvent e = new TreeModelEvent(this, path, idxs, objs);
119     for(int i = listeners.size() - 1; i >=0; i--) {
120     listeners.get(i).treeNodesRemoved(e);
121     }
122     }
123    
124     protected void
125     fireNodeStructureChanged(TreeNode node) {
126     Object[] path = getPathToRoot(node);
127     Object[] objs = { node };
128     TreeModelEvent e = new TreeModelEvent(this, path);
129     for(TreeModelListener l : listeners) {
130     l.treeStructureChanged(e);
131     }
132     }
133     }

  ViewVC Help
Powered by ViewVC