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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2200 - (show annotations) (download)
Sun Jul 3 22:01:16 2011 UTC (12 years, 8 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 /*
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