@Inject
 public OverwriteConfirmationDialog(StylesConfig styles) {
   initModality(Modality.WINDOW_MODAL);
   initStyle(StageStyle.UTILITY);
   setResizable(false);
   BorderPane containerPane = new BorderPane();
   containerPane.getStyleClass().addAll(Style.CONTAINER.css());
   containerPane.getStyleClass().addAll("-pdfsam-dialog", "-pdfsam-warning-dialog");
   containerPane.setCenter(dialogContent);
   HBox buttons =
       new HBox(
           buildButton(DefaultI18nContext.getInstance().i18n("Overwrite"), true),
           buildButton(DefaultI18nContext.getInstance().i18n("Cancel"), false));
   buttons.getStyleClass().add("-pdfsam-dialog-buttons");
   containerPane.setBottom(buttons);
   Scene scene = new Scene(containerPane);
   scene.getStylesheets().addAll(styles.styles());
   scene.setOnKeyReleased(new HideOnEscapeHandler(this));
   setScene(scene);
 }
  @Inject
  public PreferenceAppearencePane(
      @Named("localeCombo") PreferenceComboBox<LocaleKeyValueItem> localeCombo,
      @Named("themeCombo") PreferenceComboBox<KeyStringValueItem<String>> themeCombo,
      @Named("startupModuleCombo")
          PreferenceComboBox<KeyStringValueItem<String>> startupModuleCombo) {
    I18nContext i18n = DefaultI18nContext.getInstance();
    add(new Label(i18n.i18n("Language:")), 0, 0);
    for (Locale current : DefaultI18nContext.SUPPORTED_LOCALES) {
      localeCombo.getItems().add(new LocaleKeyValueItem(current));
    }
    localeCombo.setTooltip(new Tooltip(i18n.i18n("Set your preferred language (restart needed)")));
    localeCombo.setValue(new LocaleKeyValueItem(Locale.getDefault()));
    localeCombo
        .valueProperty()
        .addListener(
            (observable, oldValue, newValue) ->
                eventStudio().broadcast(new SetLocaleEvent(newValue.getKey())));
    localeCombo.setMaxWidth(Double.POSITIVE_INFINITY);
    setFillWidth(localeCombo, true);
    add(localeCombo, 1, 0);

    add(new Label(i18n.i18n("Theme:")), 0, 1);
    themeCombo.setTooltip(new Tooltip(i18n.i18n("Set your preferred theme (restart needed)")));
    themeCombo.setMaxWidth(Double.POSITIVE_INFINITY);
    setFillWidth(themeCombo, true);
    add(themeCombo, 1, 1);

    add(new Label(i18n.i18n("Startup module:")), 0, 2);
    startupModuleCombo.setTooltip(
        new Tooltip(i18n.i18n("Set the module to open at application startup (restart needed)")));
    startupModuleCombo.setMaxWidth(Double.POSITIVE_INFINITY);
    setFillWidth(startupModuleCombo, true);
    add(startupModuleCombo, 1, 2);

    getStyleClass().addAll(Style.CONTAINER.css());
    getStyleClass().addAll(Style.GRID.css());
  }
  @Inject
  public PreferenceThumbnailsPane(
      @Named("thumbnailsCombo") PreferenceComboBox<KeyStringValueItem<String>> thumbnailsCombo,
      @Named("highQualityThumbnails") PreferenceCheckBox highQualityThumbnails,
      @Named("thumbnailsSize") PreferenceIntTextField thumbSize) {
    I18nContext i18n = DefaultI18nContext.getInstance();

    highQualityThumbnails.setTooltip(
        new Tooltip(i18n.i18n("Generate high quality thumbnails (slower)")));
    highQualityThumbnails.getStyleClass().add("spaced-vitem");

    HBox second = new HBox(new Label(i18n.i18n("Size in px:")), thumbSize);
    second.getStyleClass().addAll(Style.HCONTAINER.css());
    second.getStyleClass().addAll(Style.VITEM.css());

    thumbnailsCombo.setTooltip(new Tooltip(i18n.i18n("Library used to generate thumbnails")));
    getChildren()
        .addAll(
            highQualityThumbnails,
            second,
            new Label(i18n.i18n("Thumbnails creator:")),
            thumbnailsCombo);
    getStyleClass().addAll(Style.CONTAINER.css());
  }