From 0a069fd70730080fa0ea4bcbf4212f30980a7340 Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 16 Aug 2011 13:45:10 +0400 Subject: [PATCH] fixed scrolling to selected node after opening Project Structure dialog --- .../ide/actions/ShowSettingsUtilImpl.java | 40 ++++++++++--------- .../android/sdk/AndroidSdkUtils.java | 11 +---- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java b/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java index 2b1986cc12c3..b5c530dfc65a 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/ShowSettingsUtilImpl.java @@ -24,6 +24,8 @@ import com.intellij.openapi.options.ex.*; import com.intellij.openapi.options.newEditor.OptionsEditorDialog; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; +import com.intellij.util.ui.update.Activatable; +import com.intellij.util.ui.update.UiNotifyConnector; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -143,35 +145,37 @@ public class ShowSettingsUtilImpl extends ShowSettingsUtil { } public boolean editConfigurable(Project project, String dimensionServiceKey, Configurable configurable) { - return editConfigurable(project, configurable, dimensionServiceKey, null); + return editConfigurable(null, project, configurable, dimensionServiceKey, null); } public boolean editConfigurable(Project project, Configurable configurable, Runnable advancedInitialization) { - return editConfigurable(project, configurable, createDimensionKey(configurable), advancedInitialization); - } - - private static boolean editConfigurable(Project project, Configurable configurable, final String dimensionKey, Runnable advancedInitialization) { - SingleConfigurableEditor editor = new SingleConfigurableEditor(project, configurable, dimensionKey); - if (advancedInitialization != null) { - advancedInitialization.run(); - } - editor.show(); - return editor.isOK(); + return editConfigurable(null, project, configurable, createDimensionKey(configurable), advancedInitialization); } public boolean editConfigurable(Component parent, Configurable configurable) { return editConfigurable(parent, configurable, null); } - public boolean editConfigurable(final Component parent, final Configurable configurable, final Runnable advancedInitialization) { - return editConfigurable(parent, configurable, createDimensionKey(configurable), advancedInitialization); + public boolean editConfigurable(final Component parent, final Configurable configurable, @Nullable final Runnable advancedInitialization) { + return editConfigurable(parent, null, configurable, createDimensionKey(configurable), advancedInitialization); } - private static boolean editConfigurable(final Component parent, final Configurable configurable, final String dimensionKey, - final Runnable advancedInitialization) { - SingleConfigurableEditor editor = new SingleConfigurableEditor(parent, configurable, dimensionKey); + private static boolean editConfigurable(final @Nullable Component parent, @Nullable Project project, final Configurable configurable, final String dimensionKey, + @Nullable final Runnable advancedInitialization) { + SingleConfigurableEditor editor; + if (parent != null) { + editor = new SingleConfigurableEditor(parent, configurable, dimensionKey); + } + else { + editor = new SingleConfigurableEditor(project, configurable, dimensionKey); + } if (advancedInitialization != null) { - advancedInitialization.run(); + new UiNotifyConnector.Once(editor.getContentPane(), new Activatable.Adapter() { + @Override + public void showNotify() { + advancedInitialization.run(); + } + }); } editor.show(); return editor.isOK(); @@ -184,6 +188,6 @@ public class ShowSettingsUtilImpl extends ShowSettingsUtil { } public boolean editConfigurable(Component parent, String dimensionServiceKey,Configurable configurable) { - return editConfigurable(parent, configurable, dimensionServiceKey, null); + return editConfigurable(parent, null, configurable, dimensionServiceKey, null); } } diff --git a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java index 0e444c579761..a9ab5e4a94d9 100644 --- a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java +++ b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java @@ -22,15 +22,13 @@ import com.android.sdklib.SdkManager; import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; -import com.intellij.openapi.options.ShowSettingsUtil; -import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.projectRoots.*; import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil; import com.intellij.openapi.roots.JavadocOrderRootType; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable; +import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.JarFileSystem; import com.intellij.openapi.vfs.LocalFileSystem; @@ -373,11 +371,6 @@ public class AndroidSdkUtils { } public static void openModuleDependenciesConfigurable(final Module module) { - final ProjectStructureConfigurable projectStructureConfigurable = ProjectStructureConfigurable.getInstance(module.getProject()); - ShowSettingsUtil.getInstance().editConfigurable(module.getProject(), projectStructureConfigurable, new Runnable() { - public void run() { - projectStructureConfigurable.select(module.getName(), ProjectBundle.message("modules.classpath.title"), true); - } - }); + ProjectSettingsService.getInstance(module.getProject()).openModuleDependenciesSettings(module, null); } }