// Path: idea/src/main/java/io/t28/json2java/idea/Json2JavaBundle.java
// public class Json2JavaBundle extends AbstractBundle {
//     private static final String BUNDLE = "messages.Json2Java4IdeaBundle";
// 
//     public Json2JavaBundle() {
//         super(BUNDLE);
//     }
// 
//     @Nonnull
//     public static Json2JavaBundle getInstance() {
//         return new Json2JavaBundle();
//     }
// 
//     @Nonnull
//     @CheckReturnValue
//     public String message(@Nonnull @PropertyKey(resourceBundle = BUNDLE) String key, @Nonnull Object... objects) {
//         return getMessage(key, objects);
//     }
// }
// 
// Path: idea/src/main/java/io/t28/json2java/idea/validator/NullValidator.java
// public class NullValidator implements InputValidator {
//     @Override
//     public boolean checkInput(@Nullable String text) {
//         return false;
//     }
// 
//     @Override
//     public boolean canClose(@Nullable String text) {
//         return false;
//     }
// }


import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.intellij.json.JsonFileType;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.CaretModel;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.editor.EditorSettings;
import com.intellij.openapi.editor.colors.EditorColors;
import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.InputValidator;
import com.intellij.openapi.ui.InputValidatorEx;
import com.intellij.openapi.ui.ValidationInfo;
import io.t28.json2java.idea.Json2JavaBundle;
import io.t28.json2java.idea.validator.NullValidator;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jooq.lambda.tuple.Tuple;
import javax.annotation.CheckReturnValue;
import javax.annotation.Nonnull;
import javax.swing.Action;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;

        @Override
        protected void doAction(ActionEvent e) {
            if (isEnabled()) {
                actionListener.onSettings(NewClassDialog.this);
            }
        }
    }

    public interface ActionListener {
        default void onOk(@Nonnull NewClassDialog dialog) {
        }

        default void onCancel(@Nonnull NewClassDialog dialog) {
        }

        default void onFormat(@Nonnull NewClassDialog dialog) {
        }

        default void onSettings(@Nonnull NewClassDialog dialog) {
        }
    }

    public static class Builder {
        private final Project project;
        private final Json2JavaBundle bundle;
        private InputValidator nameValidator;
        private InputValidator jsonValidator;
        private ActionListener actionListener;

// Path: idea/src/main/java/io/t28/json2java/idea/Json2JavaBundle.java
// public class Json2JavaBundle extends AbstractBundle {
//     private static final String BUNDLE = "messages.Json2Java4IdeaBundle";
// 
//     public Json2JavaBundle() {
//         super(BUNDLE);
//     }
// 
//     @Nonnull
//     public static Json2JavaBundle getInstance() {
//         return new Json2JavaBundle();
//     }
// 
//     @Nonnull
//     @CheckReturnValue
//     public String message(@Nonnull @PropertyKey(resourceBundle = BUNDLE) String key, @Nonnull Object... objects) {
//         return getMessage(key, objects);
//     }
// }
// 
// Path: idea/src/main/java/io/t28/json2java/idea/validator/NullValidator.java
// public class NullValidator implements InputValidator {
//     @Override
//     public boolean checkInput(@Nullable String text) {
//         return false;
//     }
// 
//     @Override
//     public boolean canClose(@Nullable String text) {
//         return false;
//     }
// }


// Path: idea/src/main/java/io/t28/json2java/idea/view/NewClassDialog.java
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.intellij.json.JsonFileType;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.CaretModel;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.editor.EditorSettings;
import com.intellij.openapi.editor.colors.EditorColors;
import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.InputValidator;
import com.intellij.openapi.ui.InputValidatorEx;
import com.intellij.openapi.ui.ValidationInfo;
import io.t28.json2java.idea.Json2JavaBundle;
import io.t28.json2java.idea.validator.NullValidator;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jooq.lambda.tuple.Tuple;
import javax.annotation.CheckReturnValue;
import javax.annotation.Nonnull;
import javax.swing.Action;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;


        @Override
        protected void doAction(ActionEvent e) {
            if (isEnabled()) {
                actionListener.onSettings(NewClassDialog.this);
            }
        }
    }

    public interface ActionListener {
        default void onOk(@Nonnull NewClassDialog dialog) {
        }

        default void onCancel(@Nonnull NewClassDialog dialog) {
        }

        default void onFormat(@Nonnull NewClassDialog dialog) {
        }

        default void onSettings(@Nonnull NewClassDialog dialog) {
        }
    }

    public static class Builder {
        private final Project project;
        private final Json2JavaBundle bundle;
        private InputValidator nameValidator;
        private InputValidator jsonValidator;
        private ActionListener actionListener;

        private Builder(@NotNull Project project, @Nonnull Json2JavaBundle bundle) {