package regexgolf2.ui.modules; import java.io.IOException; import javafx.beans.property.ReadOnlyObjectProperty; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Node; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.scene.layout.AnchorPane; import regexgolf2.ui.util.JavafxUtil; import com.google.java.contract.Ensures; public class ModulesUI { @FXML private AnchorPane _savedChallengesPane; @FXML private AnchorPane _challengeGeneratorPane; @FXML private Tab _savedChallengesTab; @FXML private Tab _challengeGeneratorTab; private final TabPane _rootNode; public ModulesUI() throws IOException { FXMLLoader loader = new FXMLLoader(getClass().getResource("ModulesUI.fxml")); loader.setController(this); _rootNode = loader.load(); assert _savedChallengesPane != null; assert _challengeGeneratorPane != null; } public Tab getSavedChallengesTab() { return _savedChallengesTab; } public Tab getChallengeGeneratorTab() { return _challengeGeneratorTab; } public Tab getSelectedTab() { return _rootNode.getSelectionModel().getSelectedItem(); } public ReadOnlyObjectProperty<Tab> selectedTabProperty() { return _rootNode.getSelectionModel().selectedItemProperty(); } public void setChallengeRepoPanelContent(Node content) { JavafxUtil.setAsContent(content, _savedChallengesPane); } public void setChallengeGeneratorPanel(Node content) { JavafxUtil.setAsContent(content, _challengeGeneratorPane); } @Ensures("result != null") public Node getUINode() { return _rootNode; } }