package de.jigp.plugin.actions.menu;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.ui.InputValidator;
import com.intellij.openapi.ui.Messages;
import de.jigp.plugin.actions.generator.CancelActionException;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
public abstract class DetermineTargetClassChooser extends PsiInfrastructureHolder {
private List<String> defaultSuffixes;
public DetermineTargetClassChooser(String[] defaultSuffixes, DataContext dataContext) {
super(dataContext);
this.defaultSuffixes = Arrays.asList(defaultSuffixes);
}
public String invoke(String headlineText) throws CancelActionException {
InputValidator validator = new InputValidator() {
public boolean checkInput(String suffix) {
return canClose(suffix);
}
public boolean canClose(String suffix) {
return Pattern.matches("\\w+?", suffix);
}
};
String[] suffixes = (String[]) defaultSuffixes.toArray(new String[0]);
String targetClassSuffix = Messages.showEditableChooseDialog(headlineText + "\nEnter suffix for generated classes.",
"Suffix",
Messages.getQuestionIcon(),
suffixes,
defaultSuffixes.get(0),
validator);
if (targetClassSuffix == null){
throw new CancelActionException();
}
return targetClassSuffix;
}
public abstract String getDefaultTargetClassSuffix();
}