diff --git a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/EditLibraryDialog.java b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/EditLibraryDialog.java index e2849053078e..3192e9acaa26 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/EditLibraryDialog.java +++ b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/EditLibraryDialog.java @@ -41,7 +41,8 @@ public class EditLibraryDialog extends DialogWrapper { super(parent, true); mySettings = settings; myLibraryEditor = libraryEditor; - myLibraryRootsComponent = LibraryRootsComponent.createComponent(libraryEditor); + myLibraryRootsComponent = new LibraryRootsComponent(null, libraryEditor); + myLibraryRootsComponent.resetProperties(); Disposer.register(getDisposable(), myLibraryRootsComponent); @@ -63,6 +64,7 @@ public class EditLibraryDialog extends DialogWrapper { @Override protected void doOKAction() { myLibraryEditor.setName(myNameAndLevelPanel.getLibraryName()); + myLibraryRootsComponent.applyProperties(); if (myLibraryEditor instanceof NewLibraryEditor) { mySettings.setNewLibraryLevel(myNameAndLevelPanel.getLibraryLevel()); } diff --git a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java index 9c95ff739ef4..4cbbc8a6dbfb 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java +++ b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryOptionsPanel.java @@ -19,8 +19,8 @@ import com.intellij.openapi.application.Result; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; -import com.intellij.openapi.roots.ui.configuration.ProjectStructureDialogCellAppearanceUtils; import com.intellij.openapi.roots.ui.configuration.libraries.NewLibraryConfiguration; +import com.intellij.openapi.roots.ui.configuration.ProjectStructureDialogCellAppearanceUtils; import com.intellij.openapi.roots.ui.configuration.libraryEditor.ExistingLibraryEditor; import com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor; import com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor; diff --git a/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/CustomLibraryDescriptionImpl.java b/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/CustomLibraryDescriptionImpl.java index b3b49964aae7..ee766ef0384c 100644 --- a/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/CustomLibraryDescriptionImpl.java +++ b/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/CustomLibraryDescriptionImpl.java @@ -22,9 +22,9 @@ import com.intellij.ide.IdeBundle; import com.intellij.openapi.fileChooser.FileChooser; import com.intellij.openapi.fileChooser.FileChooserDescriptor; import com.intellij.openapi.roots.OrderRootType; +import com.intellij.openapi.roots.ui.configuration.libraries.NewLibraryConfiguration; import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription; import com.intellij.openapi.roots.ui.configuration.libraries.LibraryDownloadDescription; -import com.intellij.openapi.roots.ui.configuration.libraries.NewLibraryConfiguration; import com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor; import com.intellij.openapi.util.Condition; import com.intellij.openapi.vfs.VirtualFile; diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/LibraryRootsComponentForm.form b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/LibraryRootsComponentForm.form index 88a7a26bf53c..e394db950bef 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/LibraryRootsComponentForm.form +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/LibraryRootsComponentForm.form @@ -1,6 +1,6 @@
diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java index 7adcb4b39c34..211cb7933cb3 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectStructureConfigurable.java @@ -340,12 +340,12 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se } public ActionCallback selectProjectGeneralSettings(final boolean requestFocus) { - Place place = new Place().putPath(CATEGORY, myProjectConfig); + Place place = createPlaceFor(myProjectConfig); return navigateTo(place, requestFocus); } public ActionCallback select(@Nullable final String moduleToSelect, String tab, final boolean requestFocus) { - Place place = new Place().putPath(CATEGORY, myModulesConfig); + Place place = createPlaceFor(myModulesConfig); if (moduleToSelect != null) { final Module module = ModuleManager.getInstance(myProject).findModuleByName(moduleToSelect); assert module != null; @@ -355,7 +355,7 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se } public ActionCallback select(@Nullable final Facet facetToSelect, final boolean requestFocus) { - Place place = new Place().putPath(CATEGORY, myModulesConfig); + Place place = createPlaceFor(myModulesConfig); if (facetToSelect != null) { place = place.putPath(ModuleStructureConfigurable.TREE_OBJECT, facetToSelect); } @@ -363,19 +363,19 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se } public ActionCallback select(@NotNull Sdk sdk, final boolean requestFocus) { - Place place = new Place().putPath(CATEGORY, myJdkListConfig); + Place place = createPlaceFor(myJdkListConfig); place.putPath(BaseStructureConfigurable.TREE_NAME, sdk.getName()); return navigateTo(place, requestFocus); } public ActionCallback selectProjectOrGlobalLibrary(@NotNull Library library, boolean requestFocus) { - Place place = new Place().putPath(CATEGORY, getConfigurableFor(library)); + Place place = createPlaceFor(getConfigurableFor(library)); place.putPath(BaseStructureConfigurable.TREE_NAME, library.getName()); return navigateTo(place, requestFocus); } public ActionCallback select(@Nullable Artifact artifact, boolean requestFocus) { - Place place = new Place().putPath(CATEGORY, myArtifactsStructureConfigurable); + Place place = createPlaceFor(myArtifactsStructureConfigurable); if (artifact != null) { place.putPath(BaseStructureConfigurable.TREE_NAME, artifact.getName()); } @@ -385,11 +385,11 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se public ActionCallback select(@NotNull LibraryOrderEntry libraryOrderEntry, final boolean requestFocus) { final Library lib = libraryOrderEntry.getLibrary(); if (lib == null || lib.getTable() == null) { - Place place = new Place().putPath(CATEGORY, myModulesConfig); + Place place = createPlaceFor(myModulesConfig); place.putPath(BaseStructureConfigurable.TREE_OBJECT, libraryOrderEntry.getOwnerModule()); return navigateTo(place, requestFocus); } - Place place = new Place().putPath(CATEGORY, getConfigurableFor(lib)); + Place place = createPlaceFor(getConfigurableFor(lib)); place.putPath(BaseStructureConfigurable.TREE_NAME, libraryOrderEntry.getLibraryName()); return navigateTo(place, requestFocus); } @@ -400,6 +400,9 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se JComponent detailsContent = myDetails.getTargetComponent(); if (mySelectedConfigurable != toSelect) { + if (mySelectedConfigurable instanceof BaseStructureConfigurable) { + ((BaseStructureConfigurable)mySelectedConfigurable).onStructureUnselected(); + } saveSideProportion(); removeSelected(); @@ -424,6 +427,10 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se if (toSelect instanceof DetailsComponent.Facade) { ((DetailsComponent.Facade)toSelect).getDetailsComponent().setBannerMinHeight(myToolbarComponent.getPreferredSize().height); } + + if (toSelect instanceof BaseStructureConfigurable) { + ((BaseStructureConfigurable)toSelect).onStructureSelected(); + } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/impl/LibraryPresentationManagerImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/impl/LibraryPresentationManagerImpl.java index e8e1e76f9cc1..b7aa1cb9d5ae 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/impl/LibraryPresentationManagerImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/impl/LibraryPresentationManagerImpl.java @@ -58,6 +58,10 @@ public class LibraryPresentationManagerImpl extends LibraryPresentationManager { @Override public Icon getCustomIcon(@NotNull Library library, StructureConfigurableContext context) { + final LibraryType> type = ((LibraryEx)library).getType(); + if (type != null) { + return type.getIcon(); + } final List