/***********************************************************************
 * Copyright (c) 2004 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * Actuate Corporation - initial API and implementation
 ***********************************************************************/

package org.eclipse.birt.chart.ui.swt.interfaces;

import java.util.Collection;

/**
 * This class provides an abstraction layer for retrieval of plugin/configuration settings associated with the user
 * interface
 * 
 * @author Actuate Corporation
 */
public interface IUIExtensions
{

    /**
     * This method returns a collection of org.eclipse.birt.chart.ui.swt.interfaces.ISheet objects which are used to add
     * entries into the navigation tree in the Chart Designer and associate a property sheet with each.
     * 
     * @return Collection of ISheet instances registered to extend the Chart Designer UI
     */
    public Collection getUISheetExtensions();

    /**
     * This method returns a collection of org.eclipse.birt.chart.ui.swt.interfaces.IChartType objects that are used to
     * add entries (Chart types, subtypes etc.) to the Chart selector UI.
     * 
     * @return Collection of IChartType instances registered to extend the Chart Selector UI
     */
    public Collection getUIChartTypeExtensions();

    /**
     * This method returns a collection of org.eclipse.birt.chart.ui.swt.interfaces.IChangeListener objects that listen
     * for changes to the model and accordingly call methods to add or remove sheets from the Chart Designer UI.
     * 
     * @return Collection of IChangeListener instances registered process model change events and update the UI.
     */
    public Collection getUIListeners();
}