WizardInputField (final String defaultValue) { return new WizardInputField<JTextField>(IJ_BASE_PACKAGE, defaultValue) { private final JTextField myField; { @NlsSafe final String value = PropertiesComponent.getInstance().getValue(IJ_BASE_PACKAGE, defaultValue); myField = new JTextField(value); } @Override public @NlsContexts.Label String getLabel() { return JavaBundle.message("base.package.parameter.wizard.label"); } @Override public JTextField getComponent() { return myField; } @Override public String getValue() { return myField.getText(); } @Override public Map<String, String> getValues() { HashMap<String, String> map = new HashMap<>(2); map.put(getId(), getValue()); map.put("IJ_BASE_PACKAGE_DIR", getValue().replace('.', '/')); map.put("IJ_BASE_PACKAGE_PREFIX", StringUtil.isEmpty(getValue()) ? "" : getValue() + "."); return map; } @Override public boolean validate() throws ConfigurationException { String value = getValue(); if (!StringUtil.isEmpty(value) && !PsiNameHelperImpl.getInstance().isQualifiedName(value)) { throw new ConfigurationException(JavaBundle.message("base.package.project.wizard.error.x.not.valid.package", value)); } PropertiesComponent.getInstance().setValue(IJ_BASE_PACKAGE, value); return true; } }; }