/plugin-module-codegen-maven-client/src/main/java/com/atlassian/maven/plugins/amps/codegen/prompter/jira/ProjectTabPanelPrompter.java

https://bitbucket.org/mmeinhold/amps · Java · 71 lines · 53 code · 15 blank · 3 comment · 1 complexity · a1cabd5b81c36217e39e1f0edc9cfd4e MD5 · raw file

  1. package com.atlassian.maven.plugins.amps.codegen.prompter.jira;
  2. import com.atlassian.maven.plugins.amps.codegen.annotations.ModuleCreatorClass;
  3. import com.atlassian.maven.plugins.amps.codegen.prompter.AbstractModulePrompter;
  4. import com.atlassian.plugins.codegen.modules.PluginModuleLocation;
  5. import com.atlassian.plugins.codegen.modules.common.Label;
  6. import com.atlassian.plugins.codegen.modules.jira.ProjectTabPanelModuleCreator;
  7. import com.atlassian.plugins.codegen.modules.jira.TabPanelProperties;
  8. import com.atlassian.plugins.codegen.util.ClassnameUtil;
  9. import org.codehaus.plexus.components.interactivity.Prompter;
  10. import org.codehaus.plexus.components.interactivity.PrompterException;
  11. /**
  12. * @since 3.6
  13. */
  14. @ModuleCreatorClass(ProjectTabPanelModuleCreator.class)
  15. public class ProjectTabPanelPrompter extends AbstractModulePrompter<TabPanelProperties>
  16. {
  17. public ProjectTabPanelPrompter(Prompter prompter)
  18. {
  19. super(prompter);
  20. }
  21. @Override
  22. public TabPanelProperties promptForBasicProperties(PluginModuleLocation moduleLocation) throws PrompterException
  23. {
  24. TabPanelProperties props;
  25. boolean useGenericClass = promptForBoolean("Use " + ProjectTabPanelModuleCreator.GENERIC_CLASS + "?", "Y");
  26. if (useGenericClass)
  27. {
  28. props = new TabPanelProperties(ProjectTabPanelModuleCreator.FQ_GENERIC_CLASS);
  29. props.setModuleNameAndKey(promptNotBlank("Enter Plugin Module Name", "My Project Tab Panel"));
  30. suppressAdvancedNamePrompt();
  31. } else
  32. {
  33. String className = promptJavaClassname("Enter New Classname", "MyProjectTabPanel");
  34. String packageName = promptJavaPackagename("Enter Package Name", getDefaultBasePackage() + ".jira.tabpanels");
  35. String fqClass = ClassnameUtil.fullyQualifiedName(packageName, className);
  36. props = new TabPanelProperties(fqClass);
  37. }
  38. Label label = new Label(props.getModuleKey() + ".label", props.getModuleName());
  39. props.setLabel(label);
  40. props.setUseCustomClass(!useGenericClass);
  41. return props;
  42. }
  43. @Override
  44. public void promptForAdvancedProperties(TabPanelProperties props, PluginModuleLocation moduleLocation) throws PrompterException
  45. {
  46. props.setOrder(promptForInt("Order", 10));
  47. Label label = props.getLabel();
  48. String labelKey = promptNotBlank("Enter Label Key", props.getLabel()
  49. .getKey());
  50. String labelValue = promptNotBlank("Enter Label Value", props.getLabel()
  51. .getValue());
  52. label.setKey(labelKey);
  53. label.setValue(labelValue);
  54. props.addI18nProperty(labelKey, labelValue);
  55. }
  56. }