blob: 144dad097a676acfff69f037f72447f8e1b1e513 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.debug.ui;
/**
* Optional extension for an {@link IDebugModelPresentation}. Dynamically controls
* whether labels are computed in a UI thread. The debug platform calls debug model
* presentation label related methods that do not implement this interface in a
* <b>non-UI</b> thread.
* <p>
* For example, some models may require at least one access in a UI thread to initialize
* an image registry at which point they may be able to provide labels in a non-UI
* thread.
* </p>
* <p>
* Clients implementing a debug model presentation should also implement
* this interface to control which thread labels are generated in.
* </p>
* @since 3.4
*/
public interface IDebugModelPresentationExtension extends IDebugModelPresentation {
/**
* Returns whether the UI thread is required to retrieve a label (text, image, font,
* foreground, background, etc.), for the specified element. When <code>true</code> is
* returned, label related methods will be called in the UI thread, otherwise methods
* may be called in a non-UI thread.
*
* @param element the element a label is to be retrieved for
* @return whether label related methods should be called on the UI thread
*/
public boolean requiresUIThread(Object element);
}