ciao andbin!

intanto grazie per la risposta.

c'è una cosa che non ho ben capito però.
questa sarebbe la sottoclasse concreta:
codice:
public class ControllerAuthor extends ControllerAuthorEditor<Author> {

    private Service service;
    private ReadJson jsonRead;
    private Stage stage;

    @FXML
    private BorderPane aePane;

    @FXML
    private ComboBox<Author> comboAE;

    @FXML
    public void initialize() {
        jsonRead = new ReadJson();
        service = new Service();
        TypeToken<List<Author>> token = getToken();
        try {
            List<Author> list = jsonRead.readJson(new File(UrlAndPath.JSON_AUTORI), token);
            ObservableList<Author> oList = FXCollections.observableArrayList(list);
            comboAE.setItems(oList);
            comboAE.setCellFactory(new ComboListCell<Author>());
            new KeyComboListener(comboAE);
        } catch (IOException e) {
            GenericDialog.showDialog(e.getMessage(), Alert.AlertType.ERROR);
        }
    }

    private Stage getStage() {
        stage = (Stage) aePane.getScene().getWindow();
        return stage;
    }

    @FXML
    private void escPressed(KeyEvent event) {
        if (event.getCode() == KeyCode.ESCAPE) {
            getStage();
            stage.close();
        }
    }

    @Override
    protected TypeToken<List<Author>> getToken() {
        return new TypeToken<List<Author>>() {
        };
    }
}
suppongo che debba spostare anche altri metodi nella superclasse, sennò non cambia nulla da come stavo prima, o sbaglio??
ad esempio il metodo getStage(), o l'evento escPressed.
sennò ne avrei una copia identica per sottoclasse editor.