provide help for choosers when needed (generate toString now)

This commit is contained in:
Anna Kozlova
2014-11-19 14:01:18 +01:00
parent cd79a43917
commit 78e51d0db4
3 changed files with 28 additions and 19 deletions
@@ -267,16 +267,22 @@ public class MemberChooser<T extends ClassMember> extends DialogWrapper implemen
@Override
@NotNull
protected Action[] createActions() {
final List<Action> actions = new ArrayList<Action>();
actions.add(getOKAction());
if (myAllowEmptySelection) {
return new Action[]{getOKAction(), new SelectNoneAction(), getCancelAction()};
actions.add(new SelectNoneAction());
}
else {
return new Action[]{getOKAction(), getCancelAction()};
actions.add(getCancelAction());
if (getHelpId() != null) {
actions.add(getHelpAction());
}
return actions.toArray(new Action[actions.size()]);
}
@Override
protected void doHelpAction() {
if (getHelpId() == null) return;
super.doHelpAction();
}
protected void customizeOptionsPanel() {
@@ -83,32 +83,35 @@ public class GenerateToStringActionHandlerImpl extends EditorWriteActionHandler
final PsiElementClassMember[] dialogMembers = buildMembersToShow(clazz);
final MemberChooserBuilder<PsiElementClassMember> builder = new MemberChooserBuilder<PsiElementClassMember>(project);
final MemberChooserHeaderPanel header = new MemberChooserHeaderPanel(clazz);
builder.setHeaderPanel(header);
builder.allowEmptySelection(true);
builder.overrideAnnotationVisible(PsiUtil.isLanguageLevel5OrHigher(clazz));
builder.setTitle("Generate toString()");
logger.debug("Displaying member chooser dialog");
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
if (project.isDisposed()) return;
final MemberChooser<PsiElementClassMember> dialog = builder.createBuilder(dialogMembers);
dialog.setCopyJavadocVisible(false);
dialog.selectElements(dialogMembers);
header.setChooser(dialog);
dialog.show();
final MemberChooser<PsiElementClassMember> chooser =
new MemberChooser<PsiElementClassMember>(dialogMembers, true, true, project, PsiUtil.isLanguageLevel5OrHigher(clazz), header) {
@Nullable
@Override
protected String getHelpId() {
return "editing.altInsert.tostring";
}
};
chooser.setTitle("Generate toString()");
if (DialogWrapper.OK_EXIT_CODE == dialog.getExitCode()) {
Collection<PsiMember> selectedMembers = GenerationUtil.convertClassMembersToPsiMembers(dialog.getSelectedElements());
chooser.setCopyJavadocVisible(false);
chooser.selectElements(dialogMembers);
header.setChooser(chooser);
chooser.show();
if (DialogWrapper.OK_EXIT_CODE == chooser.getExitCode()) {
Collection<PsiMember> selectedMembers = GenerationUtil.convertClassMembersToPsiMembers(chooser.getSelectedElements());
final TemplateResource template = header.getSelectedTemplate();
TemplatesManager.getInstance().setDefaultTemplate(template);
if (template.isValidTemplate()) {
GenerateToStringWorker.executeGenerateActionLater(clazz, editor, selectedMembers, template,
dialog.isInsertOverrideAnnotation());
chooser.isInsertOverrideAnnotation());
}
else {
HintManager.getInstance().showErrorHint(editor, "toString() template '" + template.getFileName() + "' is invalid");
@@ -201,7 +204,7 @@ public class GenerateToStringActionHandlerImpl extends EditorWriteActionHandler
}
public String getHelpTopic() {
return null; // TODO:
return "editing.altInsert.tostring.settings";
}
@Override
@@ -42,7 +42,7 @@ public class GenerateToStringConfigurable implements Configurable {
}
public String getHelpTopic() {
return null;
return "editing.altInsert.tostring.settings";
}
public JComponent createComponent() {