package rocks.inspectit.ui.rcp.model;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
import org.eclipse.ui.progress.IElementCollector;
import rocks.inspectit.ui.rcp.repository.RepositoryDefinition;
/**
* Abstract class of a deferred composite type where the sub tree is only initialized if it is
* requested.
*
* @author Patrice Bouillet
*
*/
public abstract class DeferredComposite extends Composite implements IDeferredWorkbenchAdapter {
/**
* {@inheritDoc}
*/
@Override
public abstract void fetchDeferredChildren(Object object, IElementCollector collector, IProgressMonitor monitor);
/**
* Sets the repository definition.
*
* @param repositoryDefinition
* the repository definition.
*/
public abstract void setRepositoryDefinition(RepositoryDefinition repositoryDefinition);
/**
* Returns the repository definition.
*
* @return the repository definition.
*/
public abstract RepositoryDefinition getRepositoryDefinition();
/**
* {@inheritDoc}
*/
@Override
public boolean isContainer() {
return true;
}
/**
* {@inheritDoc}
*/
@Override
public Object[] getChildren(Object object) {
return super.getChildren().toArray();
}
/**
* {@inheritDoc}
*/
@Override
public Object getParent(Object object) {
return super.getParent();
}
/**
* {@inheritDoc}
*/
@Override
public ImageDescriptor getImageDescriptor(Object object) {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public String getLabel(Object object) {
return super.getName();
}
/**
* {@inheritDoc}
*/
@Override
public ISchedulingRule getRule(Object object) {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public String toString() {
return getName();
}
}