blob: 1c1b8ce35491218bdfefaae83e7a63f586b7d04b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
/*
* ShowChannel.java
* ------------------
*
* Part of the URY Presentation Suite
*
* V0.00 2011/03/21
*
* (C) 2011 URY Computing
*/
package uk.org.ury.common.show;
import java.util.ArrayList;
import java.util.List;
import javax.swing.AbstractListModel;
import uk.org.ury.common.show.item.ShowItem;
/**
* A channel of ShowItems in a show.
*
* @author Matt Windsor
*/
public class ShowChannel extends AbstractListModel {
/**
*
*/
private static final long serialVersionUID = -4651104185166068150L;
/* Items enqueued in channel. */
private List<ShowItem> items;
/**
* Constructs a new, empty channel.
*/
public ShowChannel() {
items = new ArrayList<ShowItem>();
}
/**
* Adds a new item to the channel.
*
* @param index
* The position at which to add the item.
*
* @param item
* The new item to add.
*
* @throws IllegalArgumentException
* if the item is null, the index is negative or the index is
* out of bounds.
*/
public void add(int index, ShowItem item) {
if (item == null)
throw new IllegalArgumentException("Item is null.");
if (index < 0 || index >= items.size())
throw new IllegalArgumentException("Index " + index
+ " out of bounds.");
items.add(index, item);
fireIntervalAdded(this, index, index);
}
/**
* Adds a new item to the end of the channel.
*
* @param item
* The new item to add.
*/
public void add(ShowItem item) {
if (item == null)
throw new IllegalArgumentException("Item is null.");
items.add(item);
fireIntervalAdded(this, items.size() - 1, items.size() - 1);
}
/**
* Retrieves an item from the channel.
*
* @param index
* The index of the item to retrieve from the channel.
*
* @return the item at the given index in the list.
*
* @throws IllegalArgumentException
* if the index is negative or overflowing.
*/
public ShowItem get(int index) {
if (index < 0 || index >= items.size())
throw new IllegalArgumentException("Index " + index
+ " out of bounds.");
return items.get(index);
}
/**
* List model retrieval wrapper for get.
*
* @param index
* The index of the item to retrieve from the channel.
*
* @return the item at the given index in the list.
*/
@Override
public Object getElementAt(int index) {
return get(index);
}
/**
* @return the size of the list.
*/
@Override
public int getSize() {
return items.size();
}
}
|