From 33113f4c283cf184480e33c47c4a7fb89e289d32 Mon Sep 17 00:00:00 2001 From: Gregory Shrago Date: Fri, 4 Jun 2010 19:00:35 +0400 Subject: [PATCH] turn default xml UI off if more than one place defined --- .../inject/AbstractLanguageInjectionSupport.java | 9 +++++---- .../inject/xml/XmlLanguageInjectionSupport.java | 15 ++++++--------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/AbstractLanguageInjectionSupport.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/AbstractLanguageInjectionSupport.java index eeb554824b18..6f9d4b9b401a 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/AbstractLanguageInjectionSupport.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/AbstractLanguageInjectionSupport.java @@ -87,7 +87,7 @@ public abstract class AbstractLanguageInjectionSupport extends LanguageInjection public void actionPerformed(AnActionEvent e) { if (!ApplicationManagerEx.getApplicationEx().isInternal()) return; final BaseInjection originalInjection = producer.create(); - final BaseInjection newInjection = showInjectionUI(project, originalInjection.copy()); + final BaseInjection newInjection = showDefaultInjectionUI(project, originalInjection.copy()); if (newInjection != null) { originalInjection.copyFrom(newInjection); originalInjection.initializePlaces(true); @@ -103,8 +103,8 @@ public abstract class AbstractLanguageInjectionSupport extends LanguageInjection @Override public void actionPerformed(AnActionEvent e) { final BaseInjection injection = new BaseInjection(support.getId()); - injection.setDisplayName("New "+support.getId()+" Injection"); - final BaseInjection newInjection = showInjectionUI(project, injection); + injection.setDisplayName("New "+ StringUtil.capitalize(support.getId())+" Injection"); + final BaseInjection newInjection = showDefaultInjectionUI(project, injection); if (newInjection != null) { consumer.consume(injection); } @@ -113,7 +113,8 @@ public abstract class AbstractLanguageInjectionSupport extends LanguageInjection } @Nullable - private static BaseInjection showInjectionUI(Project project, BaseInjection injection) { + protected static BaseInjection showDefaultInjectionUI(Project project, BaseInjection injection) { + if (!ApplicationManagerEx.getApplicationEx().isInternal()) return null; final BaseInjectionPanel panel = new BaseInjectionPanel(injection, project); panel.reset(); final DialogBuilder builder = new DialogBuilder(project); diff --git a/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjectionSupport.java b/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjectionSupport.java index 6f146a87582f..18a6142b84eb 100644 --- a/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjectionSupport.java +++ b/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjectionSupport.java @@ -124,12 +124,11 @@ public class XmlLanguageInjectionSupport extends AbstractLanguageInjectionSuppor final Project project = host.getProject(); final BaseInjection originalInjection = injections.get(0); final BaseInjection xmlInjection = createFrom(originalInjection, host); - if (xmlInjection == null) return false; - final AbstractTagInjection newInjection = showInjectionUI(project, xmlInjection); + final BaseInjection newInjection = + xmlInjection == null? showDefaultInjectionUI(project, originalInjection.copy()) : showInjectionUI(project, xmlInjection); if (newInjection != null) { - newInjection.mergeOriginalPlacesFrom(originalInjection, true); Configuration.getInstance().replaceInjectionsWithUndo( - project, Collections.singletonList(xmlInjection), + project, Collections.singletonList(newInjection), Collections.singletonList(originalInjection), Collections.emptyList()); } @@ -137,7 +136,7 @@ public class XmlLanguageInjectionSupport extends AbstractLanguageInjectionSuppor } @Nullable - private AbstractTagInjection showInjectionUI(final Project project, final BaseInjection xmlInjection) { + private static AbstractTagInjection showInjectionUI(final Project project, final BaseInjection xmlInjection) { final DialogBuilder builder = new DialogBuilder(project); final AbstractInjectionPanel panel; if (xmlInjection instanceof XmlTagInjection) { @@ -169,6 +168,8 @@ public class XmlLanguageInjectionSupport extends AbstractLanguageInjectionSuppor @Nullable private static BaseInjection createFrom(final BaseInjection injection, final PsiLanguageInjectionHost host) { + if (injection.getInjectionPlaces().size() > 1) return null; + final PsiElement element; AbstractTagInjection result; if (host instanceof XmlText) { @@ -217,10 +218,6 @@ public class XmlLanguageInjectionSupport extends AbstractLanguageInjectionSuppor result.setTagNamespace(StringUtil.notNullize(pair1.second)); } else continue; - // for debugging - //result.initializePlaces(false); - //if (!place.getText().equals(result.getInjectionPlaces().get(0).getText())) { - //} break; } }