Proposal for improving nested controller interaction in JavaFX 2.2 (original) (raw)

Greg Brown greg.x.brown at oracle.com
Wed Feb 22 07:51:14 PST 2012


now that I think about it, I wonder if it might make more sense to map nested controller instances directly to including controller fields, like we do with namespace values.

FYI, I have prototyped this and I think it works well. Here's what my primary scene controller looks like now:

public class PrimarySceneController extends Controller { @FXML private Scene scene; // the scene associated with this controller @FXML private Scene dialogScene; // the dialog scene @FXML private DialogSceneController dialogSceneController; // the dialog scene's controller @FXML private ChoiceBox contactChoiceBox; // choice box of contacts to edit

…

@FXML
protected void handleEditButtonAction() {
    // Get the selected contact
    Contact contact = contactChoiceBox.getSelectionModel().getSelectedItem();
    
    // Populate the dialog with the contact information
    dialogSceneController.setContact(contact);
    
    // Show the dialog
    Stage dialogStage = new Stage();
    dialogStage.setScene(dialogScene);
    dialogStage.initOwner(scene.getWindow());
    dialogStage.initModality(Modality.APPLICATION_MODAL);
    dialogStage.show();

    …
}

}

The controller for the include is automatically mapped by the loader to the dialogSceneController field, so it is typed and readily available in my button's action handler.

G



More information about the openjfx-dev mailing list