mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
turn default xml UI off if more than one place defined
This commit is contained in:
+5
-4
@@ -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);
|
||||
|
||||
+6
-9
@@ -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.<PsiElement>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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user