protected void saveExecutable() {

    beforeSave();
    String selected = exes.getText();
    String executable = null;

    for (PHPexeItem exe : phpExes.getAllItems()) {
      if (exe.getName().equals(selected)) {
        executable = exe.getExecutable().getAbsolutePath();
      }
    }

    setValue(phpExecutable, executable);
    setValue(scriptToExecute, scriptField.getText());
    setValue(useScriptInsideProject, doUseScriptInsideProject());

    afterSave();
  }
  @Override
  protected void validateSettings(Key changedKey, String oldValue, String newValue) {

    StatusInfo status = new StatusInfo();

    if (phpExes.getAllItems().length == 0) {
      status =
          new StatusInfo(
              StatusInfo.WARNING,
              "No PHP executable configured. Dependencies cannot be managed properly.");
    }

    if (buttonGroup != null && buttonGroup.isSelected(1)) {
      if (!validateScript(scriptField.getText())) {
        status =
            new StatusInfo(
                StatusInfo.WARNING, "The selected file is not a valid php script/archive.");
      }
    }

    fContext.statusChanged(status);
  }