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

Subversion Repositories openrisc

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 772 jeremybenn
/* DefaultListModel.java --
2
   Copyright (C) 2002, 2004, 2005  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
package javax.swing;
39
 
40
import java.util.Enumeration;
41
import java.util.Vector;
42
 
43
/**
44
 * The default implementation of {@link AbstractListModel}, used by
45
 * {@link javax.swing.JList} and similar objects as the model of a list of
46
 * values. The implementation is based on an underlying {@link
47
 * java.util.Vector}.
48
 *
49
 * @author Andrew Selkirk
50
 * @author Graydon Hoare (graydon@redhat.com)
51
 */
52
 
53
public class DefaultListModel extends AbstractListModel
54
{
55
  private static final long serialVersionUID = 2315945659722172272L;
56
 
57
  /**
58
   * The vector of elements in this list model.
59
   */
60
  private Vector elements = new Vector();
61
 
62
  /**
63
   * Gets an element of the list at the provided index.
64
   *
65
   * @param index The index of the element to get
66
   *
67
   * @return The object at the given index
68
   *
69
   * @throws ArrayIndexOutOfBoundsException If the provided index is
70
   *     outside the bounds of the list <code>[0, size())</code>
71
   */
72
  public Object elementAt(int index)
73
  {
74
    return elements.elementAt(index);
75
  }
76
 
77
  /**
78
   * Convert the list to a string representation.
79
   *
80
   * @return A string representation of the list
81
   */
82
  public String toString()
83
  {
84
    return elements.toString();
85
  }
86
 
87
  /**
88
   * Gets the first index of a particular element in the list.
89
   *
90
   * @param element The element to search for
91
   *
92
   * @return The first index in the list at which an object
93
   *     <code>obj</code> exists such that <code>obj.equals(element)</code> is
94
   *     <code>true</code>; if no such object exists, the method returns
95
   *     <code>-1</code>
96
   */
97
  public int indexOf(Object element)
98
  {
99
    return elements.indexOf(element);
100
  }
101
 
102
  /**
103
   * Gets the first index of a particular element in a list which occurs
104
   * <em>at or after</em> a particular index.
105
   *
106
   * @param element The element to search for
107
   * @param startIndex The index to begin searching at
108
   *
109
   * @return The first index in the list, greater than or equal to
110
   *     <code>startIndex</code>, at which an object <code>obj</code> exists
111
   *     such that <code>obj.equals(element)</code> is <code>true</code>; if no
112
   *     such object exists, the method returns <code>-1</code>
113
   */
114
  public int indexOf(Object element, int startIndex)
115
  {
116
    return elements.indexOf(element, startIndex);
117
  }
118
 
119
  /**
120
   * Gets the last index of a particular element in the list.
121
   *
122
   * @param element The element to search for
123
   *
124
   * @return The last index in the list at which an object
125
   *     <code>obj</code> exists such that <code>obj.equals(element)</code> is
126
   *     <code>true</code>; if no such object exists, the method returns
127
   *     <code>-1</code>
128
   */
129
  public int lastIndexOf(Object element)
130
  {
131
    return elements.lastIndexOf(element);
132
  }
133
 
134
  /**
135
   * Gets the last index of a particular element in a list which occurs
136
   * <em>at or before</em> a particular index.
137
   *
138
   * @param element The element to search for
139
   * @param endIndex The index to finish searching at
140
   *
141
   * @return The last index in the list, less than to or equal to
142
   *     <code>endIndexIndex</code>, at which an object <code>obj</code> exists
143
   *     such that <code>obj.equals(element)</code> is <code>true</code>; if no
144
   *     such object exists, the method returns <code>-1</code>
145
   */
146
  public int lastIndexOf(Object element, int endIndex)
147
  {
148
    return elements.lastIndexOf(element, endIndex);
149
  }
150
 
151
  /**
152
   * Gets the list element at a particular index.
153
   *
154
   * @param index The index to get the list value at
155
   *
156
   * @return The list value at the provided index
157
   *
158
   * @throws ArrayIndexOutOfBoundsException If the provided index is
159
   *     outside the bounds of the list <code>[0, size())</code>
160
   */
161
  public Object get(int index)
162
  {
163
    return elements.get(index);
164
  }
165
 
166
  /**
167
   * Sets the list element at a particular index.
168
   *
169
   * @param index The list index at which to set a value
170
   * @param element The value to set at the specified index
171
   *
172
   * @return The value previously held at the specified index
173
   *
174
   * @throws ArrayIndexOutOfBoundsException If the provided index is
175
   *     outside the bounds of the list <code>[0, size())</code>
176
   */
177
  public Object set(int index, Object element)
178
  {
179
    Object result;
180
    result = elements.set(index, element);
181
    fireContentsChanged(this, index, index);
182
    return result;
183
  }
184
 
185
  /**
186
   * Inserts an element at a particular index in the list. Each element at
187
   * index <code>i >= index</code> is shifted to position <code>i + 1</code>.
188
   * If <code>index</code> is equal to <code>size()</code>, this is
189
   * equivalent to appending an element to the array. Any
190
   * <code>index</code> greater than <code>size()</code> is illegal.
191
   *
192
   * @param index The index to insert the element at
193
   * @param element The element to insert at the index
194
   *
195
   * @throws ArrayIndexOutOfBoundsException If the provided index is
196
   *     outside the bounds <code>[0, size()]</code>
197
   */
198
  public void add(int index, Object element)
199
  {
200
    elements.add(index, element);
201
    fireIntervalAdded(this, index, index);
202
  }
203
 
204
  /**
205
   * Inserts an element at the end of the list. This is equivalent to
206
   * calling <code>list.add(list.size(), element)</code>.
207
   *
208
   * @param element The element to add to the list
209
   */
210
  public void addElement(Object element)
211
  {
212
    int s = elements.size();
213
    elements.add(element);
214
    fireIntervalAdded(this, s, s);
215
  }
216
 
217
  /**
218
   * Gets the number of elements in the list.
219
   *
220
   * @return The number of elements in the list
221
   */
222
  public int size()
223
  {
224
    return elements.size();
225
  }
226
 
227
  /**
228
   * Gets an array containing the elements of the list.
229
   *
230
   * @return An array of the objects in the list, in the order they occur
231
   *     in the list
232
   */
233
  public Object[] toArray()
234
  {
235
    return elements.toArray();
236
  }
237
 
238
  /**
239
   * Determines whether a particular element is a member of the list.
240
   *
241
   * @param element The element to search for
242
   *
243
   * @return <code>true</code> if <code>element</code> is a member of the
244
   *     list, otherwise <code>false</code>
245
   */
246
  public boolean contains(Object element)
247
  {
248
    return elements.contains(element);
249
  }
250
 
251
  /**
252
   * Copies the list into a provided array. The provided array must be at
253
   * least as large as the list.
254
   *
255
   * @param array The array to copy the list into
256
   *
257
   * @throws IndexOutOfBoundsException if the array is too small to hold the
258
   *     elements of the list
259
   */
260
  public void copyInto(Object[] array)
261
  {
262
    elements.copyInto(array);
263
  }
264
 
265
  /**
266
   * Erases all the elements of the list, setting the list's size to 0.
267
   */
268
  public void clear()
269
  {
270
    int s = elements.size();
271
    if (s > 0)
272
    {
273
      elements.clear();
274
      fireIntervalRemoved(this, 0, s - 1);
275
    }
276
  }
277
 
278
  /**
279
   * Removes the element at a particular index from the list.
280
   *
281
   * @param index The index of the element to remove
282
   *
283
   * @return The value at the index, which has been removed from the list
284
   *
285
   * @throws ArrayIndexOutOfBoundsException If the provided index is
286
   *     outside the bounds of the list <code>[0, size())</code>
287
   */
288
  public Object remove(int index)
289
  {
290
    Object result;
291
    result = elements.remove(index);
292
    fireIntervalRemoved(this, index, index);
293
    return result;
294
  }
295
 
296
  /**
297
   * Determines whether the list is empty.
298
   *
299
   * @return <code>true</code> if the list is empty, otherwise
300
   *     <code>false</code>
301
   */
302
  public boolean isEmpty()
303
  {
304
    return elements.isEmpty();
305
  }
306
 
307
  /**
308
   * Returns an {@link java.util.Enumeration} over the elements of the list.
309
   *
310
   * @return A new enumeration which iterates over the list
311
   */
312
  public Enumeration<?> elements()
313
  {
314
    return elements.elements();
315
  }
316
 
317
  /**
318
   * Sets the capacity of the list to be equal to its size. The list's capacity
319
   * is the number of elements it can hold before it needs to be reallocated.
320
   * The list's size is the number of elements it currently holds.
321
   */
322
  public void trimToSize()
323
  {
324
    elements.trimToSize();
325
  }
326
 
327
  /**
328
   * Ensures that the list's capacity is at least equal to
329
   * <code>size</code>. The list's capacity is the number of elements it
330
   * can hold before it needs to be reallocated.
331
   *
332
   * @param size The capacity to ensure the list can hold
333
   */
334
  public void ensureCapacity(int size)
335
  {
336
    elements.ensureCapacity(size);
337
  }
338
 
339
  /**
340
   * Sets the size of the list to a particular value. If the specified size
341
   * is greater than the current size, the values at the excess list
342
   * indices are set to <code>null</code>.  If the specified size is less
343
   * than the current size, the excess elements are removed from the list.
344
   *
345
   * @param size The new size to set the list to
346
   */
347
  public void setSize(int size)
348
  {
349
    int oldSize = elements.size();
350
    elements.setSize(size);
351
    if (oldSize < size)
352
      {
353
        fireIntervalAdded(this, oldSize, size - 1);
354
      }
355
    else if (oldSize > size)
356
      {
357
        this.fireIntervalRemoved(this, size, oldSize - 1);
358
      }
359
  }
360
 
361
  /**
362
   * Gets the capacity of the list. The list's capacity is the number of
363
   * elements it can hold before it needs to be reallocated.
364
   *
365
   * @return The capacity of the list
366
   */
367
  public int capacity()
368
  {
369
    return elements.capacity();
370
  }
371
 
372
  /**
373
   * Gets the first element in the list.
374
   *
375
   * @return The first element in the list
376
   */
377
  public Object firstElement()
378
  {
379
    return elements.firstElement();
380
  }
381
 
382
  /**
383
   * Gets the last element in the list.
384
   *
385
   * @return The last element in the list
386
   */
387
  public Object lastElement()
388
  {
389
    return elements.lastElement();
390
  }
391
 
392
  /**
393
   * Sets the list element at a particular index.
394
   *
395
   * @param element The value to set at the specified index
396
   * @param index The list index at which to set a value
397
   *
398
   * @throws ArrayIndexOutOfBoundsException If the provided index is
399
   *     outside the bounds of the list <code>[0, size())</code>
400
   */
401
  public void setElementAt(Object element, int index)
402
  {
403
    elements.setElementAt(element, index);
404
    fireContentsChanged(this, index, index);
405
  }
406
 
407
  /**
408
   * Removes the element at a particular index from the list.
409
   *
410
   * @param index The index of the element to remove
411
   *
412
   * @throws ArrayIndexOutOfBoundsException If the provided index is
413
   *     outside the bounds of the list <code>[0, size())</code>
414
   */
415
  public void removeElementAt(int index)
416
  {
417
    elements.remove(index);
418
    fireIntervalRemoved(this, index, index);
419
  }
420
 
421
  /**
422
   * Inserts an element at a particular index in the list. Each element at
423
   * index <code>i >= index</code> is shifted to position <code>i + 1</code>.
424
   * If <code>index</code> is equal to <code>size()</code>, this is
425
   * equivalent to appending an element to the array. Any
426
   * <code>index</code> greater than <code>size()</code> is illegal.
427
   *
428
   * @param element The element to insert at the index
429
   * @param index The index to insert the element at
430
   *
431
   * @throws ArrayIndexOutOfBoundsException If the provided index is
432
   *     outside the bounds <code>[0, size()]</code>
433
   */
434
  public void insertElementAt(Object element, int index)
435
  {
436
    elements.insertElementAt(element, index);
437
    fireIntervalAdded(this, index, index);
438
  }
439
 
440
  /**
441
   * Removes the first occurrence of a particular element in the list. If the
442
   * element does not exist in the list, nothing happens.
443
   *
444
   * @param element The element to remove
445
   *
446
   * @return <code>true</code> if the element existed in the list (and was
447
   *     removed), <code>false</code> otherwise
448
   */
449
  public boolean removeElement(Object element)
450
  {
451
    int index;
452
    index = elements.indexOf(element);
453
    if (index != -1)
454
      {
455
        elements.remove(index);
456
        fireIntervalRemoved(this, index, index);
457
        return true;
458
      }
459
    return false;
460
  }
461
 
462
  /**
463
   * Remove all elements in the list.
464
   */
465
  public void removeAllElements()
466
  {
467
    int size;
468
    size = size();
469
    if (size > 0)
470
      {
471
        elements.clear();
472
        fireIntervalRemoved(this, 0, size - 1);
473
      }
474
  }
475
 
476
  /**
477
   * Remove all elements between <code>startIndex</code> and
478
   * <code>endIndex</code> inclusive.
479
   *
480
   * @param startIndex The first index in the range to remove
481
   * @param endIndex The last index in the range to remove
482
   *
483
   * @throws ArrayIndexOutOfBoundsException if either index is outside the
484
   *     valid range of indices for this list <code>[0, size())</code>
485
   * @throws IllegalArgumentException if <code>startIndex &gt; endIndex</code>
486
   */
487
  public void removeRange(int startIndex, int endIndex)
488
  {
489
    int index;
490
    if (startIndex > endIndex)
491
      throw new IllegalArgumentException();
492
    for (index = endIndex; index >= startIndex; index--)
493
      elements.remove(index);
494
    fireIntervalRemoved(this, startIndex, endIndex);
495
  }
496
 
497
  /**
498
   * Gets the size of the list.
499
   *
500
   * @return The number of elements currently in the list
501
   */
502
  public int getSize()
503
  {
504
    return elements.size();
505
  }
506
 
507
  /**
508
   * Gets the list element at a particular index.
509
   *
510
   * @param index The index to get the list value at
511
   *
512
   * @return The list value at the provided index
513
   *
514
   * @throws ArrayIndexOutOfBoundsException If the provided index is
515
   *     outside the bounds of the list <code>[0, size())</code>
516
   */
517
  public Object getElementAt(int index)
518
  {
519
    return elements.get(index);
520
  }
521
}

powered by: WebSVN 2.1.0

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