@Override
  protected void addBindings(final DataBindingContext dbc, final Realm realm) {
    dbc.bindValue(
        fSubmitTypeControl.getObservable(),
        createObservable(ConsolePreferences.PREF_HISTORYNAVIGATION_SUBMIT_TYPES));

    dbc.bindValue(
        SWTObservables.observeText(fCharLimitControl, SWT.Modify),
        createObservable(ConsolePreferences.PREF_CHARLIMIT),
        new UpdateValueStrategy()
            .setAfterGetValidator(
                new IntegerValidator(
                    10000, 1000000000, "Invalid char limit specified (10000-1000000000).")),
        null);
    dbc.bindValue(
        new ColorSelectorObservableValue(fColorInfoControl),
        createObservable(ConsolePreferences.PREF_COLOR_INFO));
    dbc.bindValue(
        new ColorSelectorObservableValue(fColorInputControl),
        createObservable(ConsolePreferences.PREF_COLOR_INPUT));
    dbc.bindValue(
        new ColorSelectorObservableValue(fColorOutputControl),
        createObservable(ConsolePreferences.PREF_COLOR_OUTPUT));
    dbc.bindValue(
        new ColorSelectorObservableValue(fColorErrorControl),
        createObservable(ConsolePreferences.PREF_COLOR_ERROR));
  }
  private Composite createInputOptions(final Composite pageComposite) {
    final Group group = new Group(pageComposite, SWT.NONE);
    group.setText("Input" + ':');
    group.setLayout(LayoutUtil.applyGroupDefaults(new GridLayout(), 1));

    {
      final Label label = new Label(group, SWT.NONE);
      label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
      label.setText("Include in history navigation (up/down):");

      fSubmitTypeControl = new SubmitTypeSelectionComposite(group);
      fSubmitTypeControl.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, true, true));
    }

    return group;
  }