コード例 #1
0
  @Override
  protected void buildDialog(
      Project project, PsiDirectory directory, CreateFileFromTemplateDialog.Builder builder) {
    builder
        .setTitle(NEW_HASKELL_FILE)
        .addKind("Empty module", HaskellIcons.FILE, "Haskell Module")
        .setValidator(
            new InputValidatorEx() {
              @Nullable
              @Override
              public String getErrorText(String inputString) {
                final String error = " is not a valid Haskell module name.";
                if (inputString.isEmpty()) {
                  return null;
                }
                if (VALID_MODULE_NAME_REGEX.matcher(inputString).matches()) {
                  return null;
                }
                return '\'' + inputString + '\'' + error;
              }

              @Override
              public boolean checkInput(String inputString) {
                return true;
              }

              @Override
              public boolean canClose(String inputString) {
                return getErrorText(inputString) == null;
              }
            });
  }