From 279d77211d0aeec81ef24b400de81af6ccf2f578 Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Mon, 11 Apr 2016 10:25:43 +0300 Subject: [PATCH] Do not allow to create alias with invalid name (IDEA-154452) --- .../ArrangementRuleAliasesListEditor.java | 24 ++++++++++++++++++- .../openapi/ui/NamedItemsListEditor.java | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/match/tokens/ArrangementRuleAliasesListEditor.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/match/tokens/ArrangementRuleAliasesListEditor.java index 9a3397d2c6e7..ce64e1208b8a 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/match/tokens/ArrangementRuleAliasesListEditor.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/match/tokens/ArrangementRuleAliasesListEditor.java @@ -17,17 +17,22 @@ package com.intellij.application.options.codeStyle.arrangement.match.tokens; import com.intellij.application.options.codeStyle.arrangement.color.ArrangementColorsProvider; import com.intellij.openapi.options.UnnamedConfigurable; +import com.intellij.openapi.ui.InputValidator; +import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.NamedItemsListEditor; import com.intellij.openapi.ui.Namer; import com.intellij.openapi.util.Cloner; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Factory; -import com.intellij.psi.codeStyle.arrangement.std.StdArrangementRuleAliasToken; import com.intellij.psi.codeStyle.arrangement.std.ArrangementStandardSettingsManager; +import com.intellij.psi.codeStyle.arrangement.std.StdArrangementRuleAliasToken; import gnu.trove.Equality; +import org.jdom.Verifier; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import java.text.MessageFormat; import java.util.List; import java.util.Set; @@ -106,4 +111,21 @@ public class ArrangementRuleAliasesListEditor extends NamedItemsListEditor 0 && findByName(s) == null && Verifier.checkElementName(s) == null; + } + + @Override + public boolean canClose(String s) { + return checkInput(s); + } + }); + } } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/NamedItemsListEditor.java b/platform/platform-api/src/com/intellij/openapi/ui/NamedItemsListEditor.java index f06a5c712df0..3dee86032f73 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/NamedItemsListEditor.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/NamedItemsListEditor.java @@ -122,7 +122,7 @@ public abstract class NamedItemsListEditor extends MasterDetailsComponent { } @Nullable - private T findByName(String name) { + protected T findByName(String name) { for (T item : myItems) { if (Comparing.equal(name, myNamer.getName(item))) return item; }