namespace DelftTools.Utils.Editing
{
public interface IEditableObject
{
///
/// True if object is being edited (potentially in invalid state).
/// Note: When IsEditing is set to true, must not be null.
/// Note: When IsEditing is set to false, must not be null.
///
bool IsEditing { get; }
///
/// Is set to true if the last edit action was cancelled.
///
bool EditWasCancelled { get; }
///
/// Current edit action.
///
IEditAction CurrentEditAction { get; }
///
/// Start editing object with the named action.
/// Note: Object must assign to before is changed.
///
///
void BeginEdit(IEditAction action);
///
/// Submit changes to the datasource.
/// Postcondition: After call for last in stack, must be null and must be false.
///
void EndEdit();
///
/// Revert the changes.
///
void CancelEdit();
}
}