package rtt.ui.content;
import org.eclipse.swt.graphics.Image;
import rtt.core.manager.Manager;
import rtt.ui.model.RttProject;
public interface IContent {
/**
* Returns a text that describes the content.
* @return content text
*/
String getText();
/**
* Returns a tool tip text.
* @return a tool tip
*/
String getToolTip();
/**
* Returns a image for the content.
* @return content image
*/
Image getImage();
/**
* Returns a parent content if existing, otherwise null.
* @return the parent
*/
IContent getParent();
/**
* Returns true, if content has children
* @return true, if any children.
*/
boolean hasChildren();
/**
* Returns an array of all children, if no
* children exists an empty array will be returned
*
* @return an array of children
*/
IContent[] getChildren();
/**
* Returns the content for the given class.
* If no content will be found, null will be returned.
*
* @param clazz a class object, which should be searched.
* @return a instance of the class
*/
<T> T getContent(Class<T> clazz);
/**
* Returns the rtt project to the given content.
* @return a rtt project
*/
RttProject getProject();
void reload(ReloadInfo info, Manager manager);
void notifyChanges();
}