package rocks.inspectit.ui.rcp.editor.root;
import java.util.List;
import rocks.inspectit.shared.all.communication.DefaultData;
import rocks.inspectit.ui.rcp.editor.ISubView;
import rocks.inspectit.ui.rcp.editor.inputdefinition.InputDefinition;
import rocks.inspectit.ui.rcp.editor.preferences.IPreferencePanel;
/**
* Interface for all root editors.
*
* @author Patrice Bouillet
*
*/
public interface IRootEditor {
/**
* Refresh the view.
*/
void doRefresh();
/**
* Returns the sub view registered for this root editor.
*
* @return the sub view.
*/
ISubView getSubView();
/**
* Sets the current active sub view.
*
* @param subView
* The sub view.
*/
void setActiveSubView(ISubView subView);
/**
* Returns the current active sub view. One editor can only have one sub view child, but this
* child can act as a composite with other sub views contained in it. So this method returns the
* sub view which is currently active somewhere in one of the composite sub-view child elements
* (if there are any).
*
* @return The active sub view.
*/
ISubView getActiveSubView();
/**
* Returns the input definition for this view.
*
* @return The input definition.
*/
InputDefinition getInputDefinition();
/**
* This will set the data input of the view. Every view can initialize itself with some data
* (like live data from the server). This is only needed if some specific needs to be displayed.
*
* @param data
* The list of {@link DefaultData} objects.
*/
void setDataInput(List<? extends Object> data);
/**
* Returns the preference panel.
*
* @return The preference panel.
*/
IPreferencePanel getPreferencePanel();
}