author | Jaroslav Tulach <jtulach@netbeans.org> |
Sat, 14 Jun 2008 09:54:22 +0200 | |
changeset 102 | 461397695234 |
permissions | -rw-r--r-- |
jtulach@102 | 1 |
package org.apidesign.javabeans.with; |
jtulach@102 | 2 |
|
jtulach@102 | 3 |
import java.util.ArrayList; |
jtulach@102 | 4 |
import java.util.List; |
jtulach@102 | 5 |
|
jtulach@102 | 6 |
public abstract class AbstractHighlightsContainer implements HighlightsContainer { |
jtulach@102 | 7 |
private List<HighlightsChangeListener> listeners = new ArrayList<HighlightsChangeListener>(); |
jtulach@102 | 8 |
|
jtulach@102 | 9 |
protected AbstractHighlightsContainer() { |
jtulach@102 | 10 |
} |
jtulach@102 | 11 |
|
jtulach@102 | 12 |
public abstract HighlightsSequence getHighlights(int startOffset, int endOffset); |
jtulach@102 | 13 |
|
jtulach@102 | 14 |
public final void addHighlightsChangeListener(HighlightsChangeListener listener) { |
jtulach@102 | 15 |
synchronized (listeners) { |
jtulach@102 | 16 |
listeners.add(listener); |
jtulach@102 | 17 |
} |
jtulach@102 | 18 |
} |
jtulach@102 | 19 |
|
jtulach@102 | 20 |
public final void removeHighlightsChangeListener(HighlightsChangeListener listener) { |
jtulach@102 | 21 |
synchronized (listeners) { |
jtulach@102 | 22 |
listeners.remove(listener); |
jtulach@102 | 23 |
} |
jtulach@102 | 24 |
} |
jtulach@102 | 25 |
|
jtulach@102 | 26 |
protected final void fireHighlightsChange(int changeStartOffset, int changeEndOffset) { |
jtulach@102 | 27 |
List<HighlightsChangeListener> targets; |
jtulach@102 | 28 |
|
jtulach@102 | 29 |
synchronized (listeners) { |
jtulach@102 | 30 |
targets = new ArrayList<HighlightsChangeListener>(listeners); |
jtulach@102 | 31 |
} |
jtulach@102 | 32 |
|
jtulach@102 | 33 |
if (targets.size() > 0) { |
jtulach@102 | 34 |
HighlightsChangeEvent evt = new HighlightsChangeEvent(this, changeStartOffset, changeEndOffset); |
jtulach@102 | 35 |
|
jtulach@102 | 36 |
for (HighlightsChangeListener l : targets) { |
jtulach@102 | 37 |
l.highlightChanged(evt); |
jtulach@102 | 38 |
} |
jtulach@102 | 39 |
} |
jtulach@102 | 40 |
} |
jtulach@102 | 41 |
} |