OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [javax/] [swing/] [event/] [TreeSelectionEvent.java] - Blame information for rev 772

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 772 jeremybenn
/* TreeSelectionEvent.java --
2
   Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
 
39
package javax.swing.event;
40
 
41
import java.util.EventObject;
42
 
43
import javax.swing.tree.TreePath;
44
import javax.swing.tree.TreeSelectionModel;
45
 
46
/**
47
 * An event that carries information about a change to a
48
 * {@link TreeSelectionModel}.
49
 *
50
 * @see TreeSelectionListener
51
 *
52
 * @author Andrew Selkirk
53
 */
54
public class TreeSelectionEvent extends EventObject
55
{
56
 
57
  /**
58
   * The paths that have been added or removed from the selection.
59
   */
60
  protected TreePath[] paths;
61
 
62
  /**
63
   * Flags indicating if the paths were added (<code>true</code>) or removed
64
   * (<code>false</code>) from the selection.
65
   */
66
  protected boolean[] areNew;
67
 
68
  /**
69
   * The old lead selection path (may be <code>null</code>).
70
   */
71
  protected TreePath oldLeadSelectionPath;
72
 
73
  /**
74
   * The new lead selection path (may be <code>null</code>).
75
   */
76
  protected TreePath newLeadSelectionPath;
77
 
78
  /**
79
   * Creates a new <code>TreeSelectionEvent</code>.
80
   *
81
   * @param source  the source (usually a {@link TreeSelectionModel},
82
   *                <code>null</code> not permitted).
83
   * @param paths  an array of the paths that have been added to or removed
84
   *     from the selection.
85
   * @param areNew  a flag for each path where <code>true</code> indicates the
86
   *     corresponding path has been added to the selection and
87
   *     <code>false</code> indicates the path has been removed.
88
   * @param oldLeadSelectionPath  the old lead selection path (<code>null</code>
89
   *     permitted).
90
   * @param newLeadSelectionPath  the new lead selection path (<code>null</code>
91
   *     permitted).
92
   *
93
   * @throws IllegalArgumentException if <code>source</code> is
94
   *     <code>null</code>.
95
   */
96
  public TreeSelectionEvent(Object source, TreePath[] paths,
97
                            boolean[] areNew, TreePath oldLeadSelectionPath,
98
                            TreePath newLeadSelectionPath)
99
  {
100
    super(source);
101
    this.paths                                  = paths;
102
    this.areNew                                 = areNew;
103
    this.oldLeadSelectionPath   = oldLeadSelectionPath;
104
    this.newLeadSelectionPath   = newLeadSelectionPath;
105
  }
106
 
107
  /**
108
   * Creates a new <code>TreeSelectionEvent</code>.
109
   *
110
   * @param source  the event source (usually a {@link TreeSelectionModel},
111
   *     <code>null</code> not permitted).
112
   * @param path  the path.
113
   * @param isNew <code>true</code> indicates that <code>path</code> has been
114
   *     added to the selection, and <code>false</code> indicates that it has
115
   *     been removed.
116
   * @param oldLeadSelectionPath  the old lead selection path (<code>null</code>
117
   *     permitted).
118
   * @param newLeadSelectionPath  the new lead selection path (<code>null</code>
119
   *     permitted).
120
   *
121
   * @throws IllegalArgumentException if <code>source</code> is
122
   *     <code>null</code>.
123
   */
124
  public TreeSelectionEvent(Object source, TreePath path,
125
                            boolean isNew, TreePath oldLeadSelectionPath,
126
                            TreePath newLeadSelectionPath)
127
  {
128
    super(source);
129
    this.paths = new TreePath[]{path};
130
    this.areNew = new boolean[]{isNew};
131
    this.oldLeadSelectionPath   = oldLeadSelectionPath;
132
    this.newLeadSelectionPath   = newLeadSelectionPath;
133
  }
134
 
135
  /**
136
   * Returns the first path element.
137
   *
138
   * @return The first path element.
139
   *
140
   * @see #getPaths()
141
   */
142
  public TreePath getPath()
143
  {
144
    return paths[0];
145
  }
146
 
147
  /**
148
   * Returns an array of the paths that changed in the selection.
149
   *
150
   * @return The paths that changed in the selection.
151
   *
152
   * @see #isAddedPath(TreePath)
153
   */
154
  public TreePath[] getPaths()
155
  {
156
    return (TreePath[]) paths.clone();
157
  }
158
 
159
  /**
160
   * Returns <code>true</code> if the path returned by {@link #getPath()} has
161
   * been added to the selection, and <code>false</code> if it has been
162
   * removed.
163
   *
164
   * @return A boolean.
165
   *
166
   * @see #isAddedPath(int)
167
   */
168
  public boolean isAddedPath()
169
  {
170
    return areNew[0];
171
  }
172
 
173
  /**
174
   * Returns <code>true</code> if <code>path</code> has been added to the
175
   * selection, and <code>false</code> if the path has been removed from the
176
   * selection.
177
   *
178
   * @param path  the path to check.
179
   *
180
   * @return A flag indicating whether the path has been added to, or removed
181
   *     from, the selection.
182
   *
183
   * @throw IllegalArgumentException if <code>path</code> is not one of the
184
   *     paths in {@link #getPaths()}.
185
   *
186
   * @see #isAddedPath(int)
187
   */
188
  public boolean isAddedPath(TreePath path)
189
  {
190
    for (int i = paths.length - 1; i >= 0; i--)
191
      if (paths[i].equals(path))
192
        return areNew[i];
193
 
194
    throw new IllegalArgumentException("Unknown 'path' argument.");
195
  }
196
 
197
  /**
198
   * Returns <code>true</code> if the path at the specified index has been
199
   * added to the selection, and <code>false</code> if the path has been
200
   * removed from the selection.
201
   *
202
   * @param index  the path index.
203
   *
204
   * @return A flag indicating whether the path has been added to, or removed
205
   *     from, the selection.
206
   *
207
   * @since 1.3
208
   *
209
   * @see #isAddedPath(TreePath)
210
   */
211
  public boolean isAddedPath(int index)
212
  {
213
    return areNew[index];
214
  }
215
 
216
  /**
217
   * Returns the old lead selection path.
218
   *
219
   * @return The old lead selection path (possibly <code>null</code>).
220
   *
221
   * @see #getNewLeadSelectionPath()
222
   */
223
  public TreePath getOldLeadSelectionPath()
224
  {
225
    return oldLeadSelectionPath;
226
  }
227
 
228
  /**
229
   * Returns the new lead selection path.
230
   *
231
   * @return The new lead selection path (possibly <code>null</code>).
232
   *
233
   * @see #getOldLeadSelectionPath()
234
   */
235
  public TreePath getNewLeadSelectionPath()
236
  {
237
    return newLeadSelectionPath;
238
  }
239
 
240
  /**
241
   * Creates a shallow copy of this <code>TreeSelectionEvent</code>, replacing
242
   * the source with <code>source</code>.
243
   *
244
   * @param source  the new event source (<code>null</code> not permitted).
245
   *
246
   * @return A cloned event with another event source.
247
   *
248
   * @throws IllegalArgumentException if <code>source</code> is
249
   *     <code>null</code>.
250
   */
251
  public Object cloneWithSource(Object source)
252
  {
253
    return new TreeSelectionEvent (source, paths, areNew, oldLeadSelectionPath,
254
        newLeadSelectionPath);
255
  }
256
 
257
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.