From 3fec8b1c2d2c3942c823b9625a84f2a3b97608ff Mon Sep 17 00:00:00 2001 From: "Kirill.Safonov" Date: Fri, 23 Sep 2011 17:48:50 +0400 Subject: [PATCH] new Flex project configuration: modifiable model --- .../openapi/roots/ui/configuration/ModuleEditor.java | 4 ++-- .../projectRoot/ModuleStructureConfigurable.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java index 83b98d2cf4b5..12109f52bfef 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java @@ -362,7 +362,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { try { final Object result = method.invoke(myDelegateTable, unwrapParams(params)); if (result instanceof Library) { - return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Library.class}, + return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{result instanceof LibraryEx ? LibraryEx.class : Library.class}, new LibraryInvocationHandler((Library)result)); } else if (result instanceof LibraryTable.ModifiableModel) { @@ -374,7 +374,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { for (int idx = 0; idx < libraries.length; idx++) { Library library = libraries[idx]; libraries[idx] = - (Library)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Library.class}, + (Library)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{library instanceof LibraryEx ? LibraryEx.class : Library.class}, new LibraryInvocationHandler(library)); } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java index 4d7359ab4b49..e9c1f6fe0281 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java @@ -345,15 +345,16 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple roots.add(myRoot); checkApply(roots, ProjectBundle.message("rename.message.prefix.module"), ProjectBundle.message("rename.module.title")); - if (myContext.myModulesConfigurator.isModified()) { - myContext.myModulesConfigurator.apply(); - } - + // let's apply extensions first, since they can write to/commit modifiable models for (final ModuleStructureExtension extension : ModuleStructureExtension.EP_NAME.getExtensions()) { if (extension.isModified()) { extension.apply(); } } + + if (myContext.myModulesConfigurator.isModified()) { + myContext.myModulesConfigurator.apply(); + } } public boolean isModified() {