org.jfree.chart.title.Title Java Examples

The following examples show how to use org.jfree.chart.title.Title. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: JGenProg2017_00106_t.java    From coming with MIT License 6 votes vote down vote up
/**
 * Returns the nth legend for a chart, or <code>null</code>.
 * 
 * @param index  the legend index (zero-based).
 * 
 * @return The legend (possibly <code>null</code>).
 * 
 * @see #addLegend(LegendTitle)
 */
public LegendTitle getLegend(int index) {
    int seen = 0;
    Iterator iterator = this.subtitles.iterator();
    while (iterator.hasNext()) {
        Title subtitle = (Title) iterator.next();
        if (subtitle instanceof LegendTitle) {
            if (seen == index) {
                return (LegendTitle) subtitle;
            }
            else {
                seen++;   
            }
        }
    }
    return null;        
}
 
Example #2
Source File: JGenProg2017_00104_t.java    From coming with MIT License 6 votes vote down vote up
/**
 * Returns the nth legend for a chart, or <code>null</code>.
 * 
 * @param index  the legend index (zero-based).
 * 
 * @return The legend (possibly <code>null</code>).
 * 
 * @see #addLegend(LegendTitle)
 */
public LegendTitle getLegend(int index) {
    int seen = 0;
    Iterator iterator = this.subtitles.iterator();
    while (iterator.hasNext()) {
        Title subtitle = (Title) iterator.next();
        if (subtitle instanceof LegendTitle) {
            if (seen == index) {
                return (LegendTitle) subtitle;
            }
            else {
                seen++;   
            }
        }
    }
    return null;        
}
 
Example #3
Source File: JGenProg2017_00106_s.java    From coming with MIT License 6 votes vote down vote up
/**
 * Sets the title list for the chart (completely replaces any existing 
 * titles) and sends a {@link ChartChangeEvent} to all registered 
 * listeners.
 *
 * @param subtitles  the new list of subtitles (<code>null</code> not 
 *                   permitted).
 *                   
 * @see #getSubtitles()
 */
public void setSubtitles(List subtitles) {
    if (subtitles == null) {
        throw new NullPointerException("Null 'subtitles' argument.");
    }
    setNotify(false);
    clearSubtitles();
    Iterator iterator = subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        if (t != null) {
            addSubtitle(t);
        }
    }
    setNotify(true);  // this fires a ChartChangeEvent
}
 
Example #4
Source File: JGenProg2017_00127_s.java    From coming with MIT License 6 votes vote down vote up
/**
 * Sets the title list for the chart (completely replaces any existing 
 * titles) and sends a {@link ChartChangeEvent} to all registered 
 * listeners.
 *
 * @param subtitles  the new list of subtitles (<code>null</code> not 
 *                   permitted).
 *                   
 * @see #getSubtitles()
 */
public void setSubtitles(List subtitles) {
    if (subtitles == null) {
        throw new NullPointerException("Null 'subtitles' argument.");
    }
    setNotify(false);
    clearSubtitles();
    Iterator iterator = subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        if (t != null) {
            addSubtitle(t);
        }
    }
    setNotify(true);  // this fires a ChartChangeEvent
}
 
Example #5
Source File: Cardumen_00193_s.java    From coming with MIT License 6 votes vote down vote up
/**
 * Returns the nth legend for a chart, or <code>null</code>.
 * 
 * @param index  the legend index (zero-based).
 * 
 * @return The legend (possibly <code>null</code>).
 * 
 * @see #addLegend(LegendTitle)
 */
public LegendTitle getLegend(int index) {
    int seen = 0;
    Iterator iterator = this.subtitles.iterator();
    while (iterator.hasNext()) {
        Title subtitle = (Title) iterator.next();
        if (subtitle instanceof LegendTitle) {
            if (seen == index) {
                return (LegendTitle) subtitle;
            }
            else {
                seen++;   
            }
        }
    }
    return null;        
}
 
Example #6
Source File: JGenProg2017_00127_s.java    From coming with MIT License 6 votes vote down vote up
/**
 * Returns the nth legend for a chart, or <code>null</code>.
 * 
 * @param index  the legend index (zero-based).
 * 
 * @return The legend (possibly <code>null</code>).
 * 
 * @see #addLegend(LegendTitle)
 */
public LegendTitle getLegend(int index) {
    int seen = 0;
    Iterator iterator = this.subtitles.iterator();
    while (iterator.hasNext()) {
        Title subtitle = (Title) iterator.next();
        if (subtitle instanceof LegendTitle) {
            if (seen == index) {
                return (LegendTitle) subtitle;
            }
            else {
                seen++;   
            }
        }
    }
    return null;        
}
 
Example #7
Source File: JGenProg2017_003_t.java    From coming with MIT License 6 votes vote down vote up
/**
 * Sets the title list for the chart (completely replaces any existing 
 * titles) and sends a {@link ChartChangeEvent} to all registered 
 * listeners.
 *
 * @param subtitles  the new list of subtitles (<code>null</code> not 
 *                   permitted).
 *                   
 * @see #getSubtitles()
 */
public void setSubtitles(List subtitles) {
    if (subtitles == null) {
        throw new NullPointerException("Null 'subtitles' argument.");
    }
    setNotify(false);
    clearSubtitles();
    Iterator iterator = subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        if (t != null) {
            addSubtitle(t);
        }
    }
    setNotify(true);  // this fires a ChartChangeEvent
}
 
Example #8
Source File: JFreeChart.java    From openstock with GNU General Public License v3.0 6 votes vote down vote up
/**
 * Sets the title list for the chart (completely replaces any existing
 * titles) and sends a {@link ChartChangeEvent} to all registered
 * listeners.
 *
 * @param subtitles  the new list of subtitles (<code>null</code> not
 *                   permitted).
 *
 * @see #getSubtitles()
 */
public void setSubtitles(List subtitles) {
    if (subtitles == null) {
        throw new NullPointerException("Null 'subtitles' argument.");
    }
    setNotify(false);
    clearSubtitles();
    Iterator iterator = subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        if (t != null) {
            addSubtitle(t);
        }
    }
    setNotify(true);  // this fires a ChartChangeEvent
}
 
Example #9
Source File: JFreeChart.java    From openstock with GNU General Public License v3.0 6 votes vote down vote up
/**
 * Returns the nth legend for a chart, or <code>null</code>.
 *
 * @param index  the legend index (zero-based).
 *
 * @return The legend (possibly <code>null</code>).
 *
 * @see #addLegend(LegendTitle)
 */
public LegendTitle getLegend(int index) {
    int seen = 0;
    Iterator iterator = this.subtitles.iterator();
    while (iterator.hasNext()) {
        Title subtitle = (Title) iterator.next();
        if (subtitle instanceof LegendTitle) {
            if (seen == index) {
                return (LegendTitle) subtitle;
            }
            else {
                seen++;
            }
        }
    }
    return null;
}
 
Example #10
Source File: JGenProg2015_000_s.java    From coming with MIT License 6 votes vote down vote up
/**
 * Sets the title list for the chart (completely replaces any existing 
 * titles) and sends a {@link ChartChangeEvent} to all registered 
 * listeners.
 *
 * @param subtitles  the new list of subtitles (<code>null</code> not 
 *                   permitted).
 *                   
 * @see #getSubtitles()
 */
public void setSubtitles(List subtitles) {
    if (subtitles == null) {
        throw new NullPointerException("Null 'subtitles' argument.");
    }
    setNotify(false);
    clearSubtitles();
    Iterator iterator = subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        if (t != null) {
            addSubtitle(t);
        }
    }
    setNotify(true);  // this fires a ChartChangeEvent
}
 
Example #11
Source File: JFreeChart.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Sets the title list for the chart (completely replaces any existing
 * titles) and sends a {@link ChartChangeEvent} to all registered
 * listeners.
 *
 * @param subtitles  the new list of subtitles (<code>null</code> not
 *                   permitted).
 *
 * @see #getSubtitles()
 */
public void setSubtitles(List subtitles) {
    if (subtitles == null) {
        throw new NullPointerException("Null 'subtitles' argument.");
    }
    setNotify(false);
    clearSubtitles();
    Iterator iterator = subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        if (t != null) {
            addSubtitle(t);
        }
    }
    setNotify(true);  // this fires a ChartChangeEvent
}
 
Example #12
Source File: JFreeChart.java    From ccu-historian with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Adds a subtitle at a particular position in the subtitle list, and sends
 * a {@link ChartChangeEvent} to all registered listeners.
 *
 * @param index  the index (in the range 0 to {@link #getSubtitleCount()}).
 * @param subtitle  the subtitle to add (<code>null</code> not permitted).
 *
 * @since 1.0.6
 */
public void addSubtitle(int index, Title subtitle) {
    if (index < 0 || index > getSubtitleCount()) {
        throw new IllegalArgumentException(
                "The 'index' argument is out of range.");
    }
    ParamChecks.nullNotPermitted(subtitle, "subtitle");
    this.subtitles.add(index, subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #13
Source File: StandardChartTheme.java    From buffer_bci with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Applies the attributes of this theme to the specified title.
 *
 * @param title  the title.
 */
protected void applyToTitle(Title title) {
    if (title instanceof TextTitle) {
        TextTitle tt = (TextTitle) title;
        tt.setFont(this.largeFont);
        tt.setPaint(this.subtitlePaint);
    }
    else if (title instanceof LegendTitle) {
        LegendTitle lt = (LegendTitle) title;
        if (lt.getBackgroundPaint() != null) {
            lt.setBackgroundPaint(this.legendBackgroundPaint);
        }
        lt.setItemFont(this.regularFont);
        lt.setItemPaint(this.legendItemPaint);
        if (lt.getWrapper() != null) {
            applyToBlockContainer(lt.getWrapper());
        }
    }
    else if (title instanceof PaintScaleLegend) {
        PaintScaleLegend psl = (PaintScaleLegend) title;
        psl.setBackgroundPaint(this.legendBackgroundPaint);
        ValueAxis axis = psl.getAxis();
        if (axis != null) {
            applyToValueAxis(axis);
        }
    }
    else if (title instanceof CompositeTitle) {
        CompositeTitle ct = (CompositeTitle) title;
        BlockContainer bc = ct.getContainer();
        List blocks = bc.getBlocks();
        Iterator iterator = blocks.iterator();
        while (iterator.hasNext()) {
            Block b = (Block) iterator.next();
            if (b instanceof Title) {
                applyToTitle((Title) b);
            }
        }
    }
}
 
Example #14
Source File: Cardumen_003_t.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a chart subtitle, and notifies registered listeners that the chart 
 * has been modified.
 *
 * @param subtitle  the subtitle (<code>null</code> not permitted).
 * 
 * @see #getSubtitle(int)
 */
public void addSubtitle(Title subtitle) {
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #15
Source File: Cardumen_00141_s.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a chart subtitle, and notifies registered listeners that the chart 
 * has been modified.
 *
 * @param subtitle  the subtitle (<code>null</code> not permitted).
 * 
 * @see #getSubtitle(int)
 */
public void addSubtitle(Title subtitle) {
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #16
Source File: Cardumen_003_t.java    From coming with MIT License 5 votes vote down vote up
/**
 * Clones the object, and takes care of listeners.
 * Note: caller shall register its own listeners on cloned graph.
 * 
 * @return A clone.
 * 
 * @throws CloneNotSupportedException if the chart is not cloneable.
 */
public Object clone() throws CloneNotSupportedException {
    JFreeChart chart = (JFreeChart) super.clone();

    chart.renderingHints = (RenderingHints) this.renderingHints.clone();
    // private boolean borderVisible;
    // private transient Stroke borderStroke;
    // private transient Paint borderPaint;

    if (this.title != null) {
        chart.title = (TextTitle) this.title.clone();
        chart.title.addChangeListener(chart);
    }

    chart.subtitles = new ArrayList();
    for (int i = 0; i < getSubtitleCount(); i++) {
        Title subtitle = (Title) getSubtitle(i).clone();
        chart.subtitles.add(subtitle);
        subtitle.addChangeListener(chart);
    }

    if (this.plot != null) {
        chart.plot = (Plot) this.plot.clone();
        chart.plot.addChangeListener(chart);
    }

    chart.progressListeners = new EventListenerList();
    chart.changeListeners = new EventListenerList();
    return chart;
}
 
Example #17
Source File: StandardChartTheme.java    From ccu-historian with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Applies the attributes of this theme to the specified block.
 *
 * @param b  the block.
 */
protected void applyToBlock(Block b) {
    if (b instanceof Title) {
        applyToTitle((Title) b);
    }
    else if (b instanceof LabelBlock) {
        LabelBlock lb = (LabelBlock) b;
        lb.setFont(this.regularFont);
        lb.setPaint(this.legendItemPaint);
    }
}
 
Example #18
Source File: JFreeChart.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Clones the object, and takes care of listeners.
 * Note: caller shall register its own listeners on cloned graph.
 * 
 * @return A clone.
 * 
 * @throws CloneNotSupportedException if the chart is not cloneable.
 */
public Object clone() throws CloneNotSupportedException {
    JFreeChart chart = (JFreeChart) super.clone();

    chart.renderingHints = (RenderingHints) this.renderingHints.clone();
    // private boolean borderVisible;
    // private transient Stroke borderStroke;
    // private transient Paint borderPaint;

    if (this.title != null) {
        chart.title = (TextTitle) this.title.clone();
        chart.title.addChangeListener(chart);
    }

    chart.subtitles = new ArrayList();
    for (int i = 0; i < getSubtitleCount(); i++) {
        Title subtitle = (Title) getSubtitle(i).clone();
        chart.subtitles.add(subtitle);
        subtitle.addChangeListener(chart);
    }

    if (this.plot != null) {
        chart.plot = (Plot) this.plot.clone();
        chart.plot.addChangeListener(chart);
    }

    chart.progressListeners = new EventListenerList();
    chart.changeListeners = new EventListenerList();
    return chart;
}
 
Example #19
Source File: jKali_0052_t.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a subtitle at a particular position in the subtitle list, and sends
 * a {@link ChartChangeEvent} to all registered listeners.
 * 
 * @param index  the index (in the range 0 to {@link #getSubtitleCount()}).
 * @param subtitle  the subtitle to add (<code>null</code> not permitted).
 * 
 * @since 1.0.6
 */
public void addSubtitle(int index, Title subtitle) {
    if (index < 0 || index > getSubtitleCount()) {
        throw new IllegalArgumentException(
                "The 'index' argument is out of range.");
    }
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(index, subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #20
Source File: StandardChartTheme.java    From ECG-Viewer with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Applies the attributes of this theme to the specified block.
 *
 * @param b  the block.
 */
protected void applyToBlock(Block b) {
    if (b instanceof Title) {
        applyToTitle((Title) b);
    }
    else if (b instanceof LabelBlock) {
        LabelBlock lb = (LabelBlock) b;
        lb.setFont(this.regularFont);
        lb.setPaint(this.legendItemPaint);
    }
}
 
Example #21
Source File: JFreeChart.java    From buffer_bci with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Clears all subtitles from the chart and sends a {@link ChartChangeEvent}
 * to all registered listeners.
 *
 * @see #addSubtitle(Title)
 */
public void clearSubtitles() {
    Iterator iterator = this.subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        t.removeChangeListener(this);
    }
    this.subtitles.clear();
    fireChartChanged();
}
 
Example #22
Source File: Cardumen_00193_s.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a chart subtitle, and notifies registered listeners that the chart 
 * has been modified.
 *
 * @param subtitle  the subtitle (<code>null</code> not permitted).
 * 
 * @see #getSubtitle(int)
 */
public void addSubtitle(Title subtitle) {
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #23
Source File: Cardumen_00241_s.java    From coming with MIT License 5 votes vote down vote up
/**
 * Clones the object, and takes care of listeners.
 * Note: caller shall register its own listeners on cloned graph.
 * 
 * @return A clone.
 * 
 * @throws CloneNotSupportedException if the chart is not cloneable.
 */
public Object clone() throws CloneNotSupportedException {
    JFreeChart chart = (JFreeChart) super.clone();

    chart.renderingHints = (RenderingHints) this.renderingHints.clone();
    // private boolean borderVisible;
    // private transient Stroke borderStroke;
    // private transient Paint borderPaint;

    if (this.title != null) {
        chart.title = (TextTitle) this.title.clone();
        chart.title.addChangeListener(chart);
    }

    chart.subtitles = new ArrayList();
    for (int i = 0; i < getSubtitleCount(); i++) {
        Title subtitle = (Title) getSubtitle(i).clone();
        chart.subtitles.add(subtitle);
        subtitle.addChangeListener(chart);
    }

    if (this.plot != null) {
        chart.plot = (Plot) this.plot.clone();
        chart.plot.addChangeListener(chart);
    }

    chart.progressListeners = new EventListenerList();
    chart.changeListeners = new EventListenerList();
    return chart;
}
 
Example #24
Source File: JGenProg2017_00106_s.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a subtitle at a particular position in the subtitle list, and sends
 * a {@link ChartChangeEvent} to all registered listeners.
 * 
 * @param index  the index (in the range 0 to {@link #getSubtitleCount()}).
 * @param subtitle  the subtitle to add (<code>null</code> not permitted).
 * 
 * @since 1.0.6
 */
public void addSubtitle(int index, Title subtitle) {
    if (index < 0 || index > getSubtitleCount()) {
        throw new IllegalArgumentException(
                "The 'index' argument is out of range.");
    }
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(index, subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #25
Source File: Cardumen_00241_t.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a subtitle at a particular position in the subtitle list, and sends
 * a {@link ChartChangeEvent} to all registered listeners.
 * 
 * @param index  the index (in the range 0 to {@link #getSubtitleCount()}).
 * @param subtitle  the subtitle to add (<code>null</code> not permitted).
 * 
 * @since 1.0.6
 */
public void addSubtitle(int index, Title subtitle) {
    if (index < 0 || index > getSubtitleCount()) {
        throw new IllegalArgumentException(
                "The 'index' argument is out of range.");
    }
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(index, subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #26
Source File: StandardChartTheme.java    From ECG-Viewer with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Applies the attributes of this theme to the specified title.
 *
 * @param title  the title.
 */
protected void applyToTitle(Title title) {
    if (title instanceof TextTitle) {
        TextTitle tt = (TextTitle) title;
        tt.setFont(this.largeFont);
        tt.setPaint(this.subtitlePaint);
    }
    else if (title instanceof LegendTitle) {
        LegendTitle lt = (LegendTitle) title;
        if (lt.getBackgroundPaint() != null) {
            lt.setBackgroundPaint(this.legendBackgroundPaint);
        }
        lt.setItemFont(this.regularFont);
        lt.setItemPaint(this.legendItemPaint);
        if (lt.getWrapper() != null) {
            applyToBlockContainer(lt.getWrapper());
        }
    }
    else if (title instanceof PaintScaleLegend) {
        PaintScaleLegend psl = (PaintScaleLegend) title;
        psl.setBackgroundPaint(this.legendBackgroundPaint);
        ValueAxis axis = psl.getAxis();
        if (axis != null) {
            applyToValueAxis(axis);
        }
    }
    else if (title instanceof CompositeTitle) {
        CompositeTitle ct = (CompositeTitle) title;
        BlockContainer bc = ct.getContainer();
        List blocks = bc.getBlocks();
        Iterator iterator = blocks.iterator();
        while (iterator.hasNext()) {
            Block b = (Block) iterator.next();
            if (b instanceof Title) {
                applyToTitle((Title) b);
            }
        }
    }
}
 
Example #27
Source File: Cardumen_0077_s.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a chart subtitle, and notifies registered listeners that the chart 
 * has been modified.
 *
 * @param subtitle  the subtitle (<code>null</code> not permitted).
 * 
 * @see #getSubtitle(int)
 */
public void addSubtitle(Title subtitle) {
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #28
Source File: JFreeChart.java    From ECG-Viewer with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Adds a subtitle at a particular position in the subtitle list, and sends
 * a {@link ChartChangeEvent} to all registered listeners.
 *
 * @param index  the index (in the range 0 to {@link #getSubtitleCount()}).
 * @param subtitle  the subtitle to add (<code>null</code> not permitted).
 *
 * @since 1.0.6
 */
public void addSubtitle(int index, Title subtitle) {
    if (index < 0 || index > getSubtitleCount()) {
        throw new IllegalArgumentException(
                "The 'index' argument is out of range.");
    }
    ParamChecks.nullNotPermitted(subtitle, "subtitle");
    this.subtitles.add(index, subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #29
Source File: JGenProg2017_00104_s.java    From coming with MIT License 5 votes vote down vote up
/**
 * Adds a chart subtitle, and notifies registered listeners that the chart 
 * has been modified.
 *
 * @param subtitle  the subtitle (<code>null</code> not permitted).
 * 
 * @see #getSubtitle(int)
 */
public void addSubtitle(Title subtitle) {
    if (subtitle == null) {
        throw new IllegalArgumentException("Null 'subtitle' argument.");
    }
    this.subtitles.add(subtitle);
    subtitle.addChangeListener(this);
    fireChartChanged();
}
 
Example #30
Source File: Cardumen_0077_t.java    From coming with MIT License 5 votes vote down vote up
/**
 * Clears all subtitles from the chart and sends a {@link ChartChangeEvent}
 * to all registered listeners.
 * 
 * @see #addSubtitle(Title)
 */
public void clearSubtitles() {
    Iterator iterator = this.subtitles.iterator();
    while (iterator.hasNext()) {
        Title t = (Title) iterator.next();
        t.removeChangeListener(this);
    }
    this.subtitles.clear();
    fireChartChanged();
}