} else {
node = (Node) fxmlLoader.load(fxmlLoader.getLocation().openStream());
}
} catch (final IOException e) {
throw new CoreRuntimeException(FXML_NODE_DOESNT_EXIST.getText(fxmlPath), e);
}
final FXMLController<M, ?> fxmlController = (FXMLController<M, ?>) fxmlLoader.getController();
// It's tolerated to have a null controller for an fxml node
if (fxmlController != null) {
// The fxml controller must extends AbstractFXMLController
if (!error && !(fxmlLoader.getController() instanceof AbstractFXMLController)) {
throw new CoreRuntimeException(BAD_FXML_CONTROLLER_ANCESTOR.getText(fxmlLoader.getController().getClass().getCanonicalName()));
}
// Link the View component with the fxml controller
fxmlController.setModel(model);
}