All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.jface.viewers.IBaseLabelProvider Maven / Gradle / Ivy

/*******************************************************************************
 * Copyright (c) 2000, 2013 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jface.viewers;

/**
 * A label provider maps an element of the viewer's model to
 * an optional image and optional text string used to display
 * the element in the viewer's control.  Certain label providers
 * may allow multiple labels per element.
 * This is an "abstract interface", defining methods common
 * to all label providers, but does not actually define the methods
 * to get the label(s) for an element.  This interface should never
 * be directly implemented.
 * Most viewers will take either an ILabelProvider or
 * an ITableLabelProvider.
 * 

* A label provider must not be shared between viewers * since a label provider generally manages SWT resources (images), * which must be disposed when the viewer is disposed. * To simplify life cycle management, the current label provider * of a viewer is disposed when the viewer is disposed. *

*

* Label providers can be used outside the context of viewers wherever * images are needed. When label providers are used in this fashion * it is the responsibility of the user to ensure dispose * is called when the provider is no longer needed. *

* * @see ILabelProvider * @see ITableLabelProvider */ public interface IBaseLabelProvider { /** * Adds a listener to this label provider. * Has no effect if an identical listener is already registered. *

* Label provider listeners are informed about state changes * that affect the rendering of the viewer that uses this label provider. *

* * @param listener a label provider listener */ public void addListener(ILabelProviderListener listener); /** * Disposes of this label provider. When a label provider is * attached to a viewer, the viewer will automatically call * this method when the viewer is being closed. When label providers * are used outside of the context of a viewer, it is the client's * responsibility to ensure that this method is called when the * provider is no longer needed. */ public void dispose(); /** * Returns whether the label would be affected * by a change to the given property of the given element. * This can be used to optimize a non-structural viewer update. * If the property mentioned in the update does not affect the label, * then the viewer need not update the label. * * @param element the element * @param property the property * @return true if the label would be affected, * and false if it would be unaffected */ public boolean isLabelProperty(Object element, String property); /** * Removes a listener to this label provider. * Has no effect if an identical listener is not registered. * * @param listener a label provider listener */ public void removeListener(ILabelProviderListener listener); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy