/*******************************************************************************
* Copyright (C) 2003-2007, 2013, Guillaume Brocker
*
* 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:
* Guillaume Brocker - Initial API and implementation
*
******************************************************************************/
package eclox.ui.editor.editors;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.widgets.FormToolkit;
/**
* Defines the interface of doxyfile editors.
*
* @author gbrocker
*/
public interface IEditor {
/**
* Adds the given listener to the collectgion of listener who will be notified
* when the editor gets changed.
*
* @param listener the listener to register
*
* @see removeListener
*/
void addListener( IEditorListener listener );
/**
* Commits any changes made in the editor.
*/
public void commit();
/**
* Creates the editor contents.
*
* @param parent the composite control that will contain the editor controls
* @param formToolkit the form toolkit to use for the control creation
*/
void createContent(Composite parent, FormToolkit formToolkit);
/**
* Asks the editor if it wants to grow vertically to grad all available space.
*
* @return a boolean telling if the editor wants to grab the available vertical space
*/
boolean grabVerticalSpace();
/**
* Asks the editor to dispose its controls.
*/
void dispose();
/**
* Tells if the editor is dirty.
*
* @return true or false
*/
public boolean isDirty();
/**
* Tells if the editor is stale, after the underlying setting has changed.
*
* @return true or false
*/
public boolean isStale();
/**
* Refreshes the editor if is stale. The editor is expected to updates
* its state using the data of the underlying model.
*/
public void refresh();
/**
* Removes the given listener from the collection of registered listeners.
*
* @param listener the listener to un-register
*
* @see addListener
*/
public void removeListener( IEditorListener listener );
/**
* Enables or disables the receiver.
*
* @param enabled the new enabled state
*/
void setEnabled(boolean enabled);
/**
* Makes the editor installs the focus on the right widget.
*/
void setFocus();
}