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