下面列出了javax.swing.event.ListDataEvent#INTERVAL_REMOVED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void fireChange (ListDataEvent ev) {
if (list.getListenerCount () == 0) {
return ;
}
Object[] arr = list.getListenerList ();
for (int i = arr.length - 1; i >= 0; i -= 2) {
ListDataListener l = (ListDataListener)arr[i];
switch (ev.getType ()) {
case ListDataEvent.CONTENTS_CHANGED: l.contentsChanged (ev); break;
case ListDataEvent.INTERVAL_ADDED: l.intervalAdded (ev); break;
case ListDataEvent.INTERVAL_REMOVED: l.intervalRemoved (ev); break;
default:
throw new IllegalArgumentException ("Unknown type: " + ev.getType ());
}
}
}
private void fireListDataEvent(int type, int index1, int index2) {
ListDataEvent event = new ListDataEvent(this, type, index1, index2);
for (ListDataListener listener : dataListeners) {
switch (type) {
case ListDataEvent.CONTENTS_CHANGED: {
listener.contentsChanged(event);
break;
}
case ListDataEvent.INTERVAL_ADDED: {
listener.intervalAdded(event);
break;
}
case ListDataEvent.INTERVAL_REMOVED: {
listener.intervalRemoved(event);
break;
}
}
}
}
protected void fireListDataListeners(ListDataEvent event) {
for (ListDataListener listener : listDataListeners) {
switch (event.getType()) {
case ListDataEvent.CONTENTS_CHANGED:
listener.contentsChanged(event);
break;
case ListDataEvent.INTERVAL_ADDED:
listener.intervalAdded(event);
break;
case ListDataEvent.INTERVAL_REMOVED:
listener.intervalRemoved(event);
break;
default:
throw new IllegalArgumentException("Unsupported event: "
+ event);
}
}
}
@Override
public void removeTab(int index) {
TabData[] td = new TabData[]{(TabData) list.get(index)};
list.remove(index);
ComplexListDataEvent lde = new ComplexListDataEvent(this,
ListDataEvent.INTERVAL_REMOVED,
index, index);
lde.setAffectedItems(td);
fireIntervalRemoved(lde);
}
/**
* Remove a range of tabs from <code>start</code> up to <i>and including</i>
* <code>finish</code>.
*/
@Override
public void removeTabs(int start, int end) {
java.util.List affected = new ArrayList(list.subList(start, end));
if (start == end) {
list.remove(start);
} else {
list.removeRange(start, end);
}
ComplexListDataEvent lde = new ComplexListDataEvent(this,
ListDataEvent.INTERVAL_REMOVED,
start, end);
lde.setAffectedItems((TabData[]) affected.toArray(new TabData[0]));
fireIntervalRemoved(lde);
}
/** Notifies removal of inteval from (inclusive) to (exclusive) and
* updates its structures.
*
* !!! as a side effect updates size !!!
*
* @return s - number of removals
*/
private void notifyRemoval (int from, int to) {
ListDataEvent ev = new ListDataEvent (
this, ListDataEvent.INTERVAL_REMOVED, from, to - 1
);
removeInterval (external, from, to);
int cnt = to - from;
size -= cnt;
regenerateCheckedBitSet ();
fireChange (ev);
}
/**
* Removes an entry from the model.
*
* @param key the key
*/
public void removeDataElement(final Object key)
{
final int idx = findDataElementIndex(key);
if (idx == -1)
{
return;
}
this.data.remove(idx);
final ListDataEvent evt = new ListDataEvent
(this, ListDataEvent.INTERVAL_REMOVED, idx, idx);
fireListDataEvent(evt);
}
/**
* Removes all entries from the model.
*/
public void clear()
{
final int size = getSize();
this.data.clear();
final ListDataEvent evt = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, 0, size - 1);
fireListDataEvent(evt);
}
@Override
protected ListDataEvent createListDataEvent() {
int minIndex = removedElements.firstKey();
int maxIndex = removedElements.lastKey();
// I'm not entirely sure how ListDataListeners expected to hear about
// removals?
// Is this one event sufficient?
return new ListDataEvent(getSource(), ListDataEvent.INTERVAL_REMOVED,
minIndex, maxIndex);
}
public void removeInstance(ObjInstance instance) {
int index = instances.indexOf(instance);
if(index == -1)
return;
instances.remove(instance);
ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, index, index);
for(ListDataListener l : listeners) {
l.intervalRemoved(event);
}
}
/**
* Removes an entry from the model.
*
* @param key the key
*/
public void removeDataElement( final K key ) {
final int idx = findDataElementIndex( key );
if ( idx == -1 ) {
return;
}
data.remove( idx );
final ListDataEvent evt = new ListDataEvent
( this, ListDataEvent.INTERVAL_REMOVED, idx, idx );
fireListDataEvent( evt );
}
private void fireEventDeleted(int item) {
ListDataEvent e = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, item, item);
for (ListDataListener l : listener)
l.contentsChanged(e);
}
public void remove( final int index ) {
data.remove( index );
final ListDataEvent evt = new ListDataEvent( this, ListDataEvent.INTERVAL_REMOVED, index, index );
fireListDataEvent( evt );
}