INCLUDE,
TAGLIB,
ATTRIBUTE,
- VARIABLE,
- PARAMETER
+ VARIABLE
}
@NotNull final Template template,
boolean inSeparateCommand,
Map<String, String> predefinedVarValues,
- TemplateEditingListener listener);
+ @Nullable TemplateEditingListener listener);
public abstract void startTemplate(@NotNull Editor editor,
@NotNull Template template,
import com.intellij.psi.util.PsiElementFilter;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.containers.HashMap;
-import org.jetbrains.annotations.NonNls;
+import javax.swing.*;
import java.util.Map;
public class SaveAsTemplateAction extends AnAction {
- public static final @NonNls String JAVA_LANG_PACKAGE_PREFIX = "java.lang";
public void actionPerformed(AnActionEvent e) {
DataContext dataContext = e.getDataContext();
template.getTemplateContext().setEnabled(contextType, contextType.isInContext(fileType));
}
+ if (editTemplate(template, editor.getComponent(), true)) return;
+ templateSettings.addTemplate(template);
+ }
+
+ public static boolean editTemplate(TemplateImpl template, JComponent component, final boolean newTemplate) {
+
+ TemplateSettings templateSettings = TemplateSettings.getInstance();
String defaultShortcut = "";
if (templateSettings.getDefaultShortcutChar() == TemplateSettings.ENTER_CHAR) {
defaultShortcut = CodeInsightBundle.message("template.shortcut.enter");
Map<TemplateContextType, Boolean> context = template.createContext();
EditTemplateDialog dialog = new EditTemplateDialog(
- editor.getComponent(),
+ component,
CodeInsightBundle.message("dialog.edit.live.template.title"),
template,
templateSettings.getTemplateGroups(),
- defaultShortcut, options, context);
+ defaultShortcut, options, context, newTemplate);
dialog.show();
if (!dialog.isOK()) {
- return;
+ return true;
}
dialog.apply();
template.applyOptions(options);
template.applyContext(context);
- templateSettings.addTemplate(template);
templateSettings.setLastSelectedTemplateKey(template.getKey());
+ return false;
}
public void update(AnActionEvent e) {
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
import com.intellij.ui.IdeBorderFactory;
+import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
private static final String ENTER = CodeInsightBundle.message("template.shortcut.enter");
private final Map<TemplateOptionalProcessor, Boolean> myOptions;
private final Map<TemplateContextType, Boolean> myContext;
+ private final boolean myNewTemplate;
public EditTemplateDialog(Component parent, String title, TemplateImpl template, List<TemplateGroup> groups, String defaultShortcut,
- Map<TemplateOptionalProcessor, Boolean> options, Map<TemplateContextType, Boolean> context) {
+ Map<TemplateOptionalProcessor, Boolean> options,
+ Map<TemplateContextType, Boolean> context,
+ boolean newTemplate) {
super(parent, true);
myOptions = options;
myContext = context;
+ myNewTemplate = newTemplate;
setOKButtonText(CommonBundle.getOkButtonText());
setTitle(title);
myEditVariablesButton.setMaximumSize(myEditVariablesButton.getPreferredSize());
panel.add(myEditVariablesButton, gbConstraints);
- gbConstraints.weighty = 0;
- gbConstraints.gridwidth = 1;
- gbConstraints.gridy++;
- panel.add(createTemplateOptionsPanel(), gbConstraints);
+ JPanel templateOptionsPanel = createTemplateOptionsPanel();
+ JPanel contextPanel = createContextPanel();
+ if (myNewTemplate) {
+ gbConstraints.weighty = 0;
+ gbConstraints.gridwidth = 1;
+ gbConstraints.gridy++;
+ panel.add(templateOptionsPanel, gbConstraints);
- gbConstraints.gridx = 1;
- panel.add(createContextPanel(), gbConstraints);
+ gbConstraints.gridx = 1;
+ panel.add(contextPanel, gbConstraints);
+ }
myKeyField.getDocument().addDocumentListener(new com.intellij.ui.DocumentAdapter() {
protected void textChanged(javax.swing.event.DocumentEvent e) {
return panel;
}
+ @Nullable
protected JComponent createNorthPanel() {
+ if (!myNewTemplate) {
+ return null;
+ }
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbConstraints = new GridBagConstraints();
gbConstraints.insets = new Insets(4,4,4,4);
String oldGroupName = template.getGroupName();
EditTemplateDialog dialog = new EditTemplateDialog(this, CodeInsightBundle.message("dialog.edit.live.template.title"), template, getTemplateGroups(),
- (String)myExpandByCombo.getSelectedItem(), getOptions(template), getContext(template));
+ (String)myExpandByCombo.getSelectedItem(), getOptions(template), getContext(template), true);
dialog.show();
if (!dialog.isOK()) return;
myTemplateOptions.put(getKey(template), template.createOptions());
myTemplateContext.put(getKey(template), template.createContext());
EditTemplateDialog dialog = new EditTemplateDialog(this, CodeInsightBundle.message("dialog.add.live.template.title"), template, getTemplateGroups(),
- (String)myExpandByCombo.getSelectedItem(), getOptions(template), getContext(template));
+ (String)myExpandByCombo.getSelectedItem(), getOptions(template), getContext(template), true);
dialog.show();
if (!dialog.isOK()) return;
dialog.apply();
myTemplateOptions.put(getKey(template), getOptions(orTemplate));
myTemplateContext.put(getKey(template), getContext(orTemplate));
EditTemplateDialog dialog = new EditTemplateDialog(this, CodeInsightBundle.message("dialog.copy.live.template.title"), template, getTemplateGroups(),
- (String)myExpandByCombo.getSelectedItem(), getOptions(template), getContext(template));
+ (String)myExpandByCombo.getSelectedItem(), getOptions(template), getContext(template), true);
dialog.show();
if (!dialog.isOK()) return;