@Nonnull
	protected GridPane createGrid() {
		GridPane content = new GridPane();
		ColumnConstraints col1 = new ColumnConstraints();
		ColumnConstraints col2 = new ColumnConstraints();
		col2.setFillWidth(true);
		col2.setHgrow(Priority.ALWAYS);
		col2.setHalignment(HPos.RIGHT);
		content.getColumnConstraints().addAll(col1, col2);
		content.setHgap(10);
		content.setVgap(5);

		// Decompile config
		Label decompileTitle = new BoundLabel(Lang.getBinding("service.decompile"));
		decompileTitle.getStyleClass().addAll(Styles.TEXT_UNDERLINED, Styles.TITLE_4);
		Label labelDecompiler = new BoundLabel(Lang.getBinding("java.decompiler"));
		Label labelTimeout = new BoundLabel(Lang.getBinding("service.ui.decompile-pane-config.timeout-seconds"));
		Spinner<Integer> spinTimeout = ObservableSpinner.intSpinner(config.getTimeoutSeconds(), 1, Integer.MAX_VALUE);
		spinTimeout.getStyleClass().add(Spinner.STYLE_CLASS_ARROWS_ON_RIGHT_HORIZONTAL);
		content.add(decompileTitle, 0, 0, 2, 1);
		content.add(labelDecompiler, 0, 1);
		content.add(fix(new ObservableComboBox<>(decompiler, new ArrayList<>(decompilerManager.getJvmDecompilers()))), 1, 1);
		content.add(labelTimeout, 0, 2);
		content.add(fix(spinTimeout), 1, 2);

		return content;
	}
@param toolsContainer
		Container to house tool buttons for display in the {@link Editor}.
@param config
		Containing {@link AbstractDecompilePane} config singleton.
@param decompiler
		Local decompiler implementation.
@param decompilerManager
		Manager to pull available {@link JvmDecompiler} instances from.
recaf-ui/src/main/java/software/coley/recaf/ui/pane/editing/AbstractDecompilerPaneConfigurator.java