package regexgolf2.controllers;
import javafx.beans.property.ReadOnlyBooleanProperty;
import javafx.beans.property.ReadOnlyObjectProperty;
import regexgolf2.model.SolvableChallenge;
import com.google.java.contract.Ensures;
/**
* This Interface can be implemented by Controllers to indicate that they
* contain one or more Challenges. The Interface also includes a BooleanProperty
* that indicates if the Challenge should be editable.
*/
public interface ChallengeContainer
{
/**
* A Property that contains the currently selected or only challenge in this
* ChallengeContainer. The property may contain null.
*/
@Ensures("result != null")
public ReadOnlyObjectProperty<SolvableChallenge> challengeProperty();
/**
* This Property should inicate if the challenge should be editable.
*/
@Ensures("result != null")
public ReadOnlyBooleanProperty editableProperty();
}