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 83edaebb21d3..0d06c9fb1632 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 @@ -125,10 +125,7 @@ public class LibraryOptionsPanel implements Disposable { public void run() { if (!myDisposed) { showSettingsPanel(libraryDescription, baseDirectoryPath, versionFilter, showDoNotCreateOption, versions); - LibraryDownloadSettings settings = mySettings.getDownloadSettings(); - if (settings != null) { - onVersionChanged(settings.getVersion()); - } + onVersionChanged(getPresentableVersion()); } } }); @@ -141,7 +138,28 @@ public class LibraryOptionsPanel implements Disposable { } } - protected void onVersionChanged(FrameworkLibraryVersion version) { + @Nullable + private String getPresentableVersion() { + switch (myButtonEnumModel.getSelected()) { + case DOWNLOAD: + LibraryDownloadSettings settings = mySettings.getDownloadSettings(); + if (settings != null) { + return settings.getVersion().getVersionNumber(); + } + break; + case USE_LIBRARY: + LibraryEditor item = myLibraryComboBoxModel.getSelectedItem(); + if (item instanceof ExistingLibraryEditor) { + return item.getName(); + } + break; + default: + return null; + } + return null; + } + + protected void onVersionChanged(@Nullable String version) { } public JPanel getSimplePanel() { @@ -176,6 +194,7 @@ public class LibraryOptionsPanel implements Disposable { @Override public void actionPerformed(ActionEvent e) { updateState(); + onVersionChanged(getPresentableVersion()); } }); @@ -208,6 +227,7 @@ public class LibraryOptionsPanel implements Disposable { myButtonEnumModel.setSelected(Choice.USE_LIBRARY); } updateState(); + onVersionChanged(getPresentableVersion()); } }); myExistingLibraryComboBox.setRenderer(new ColoredListCellRenderer() { diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportOptionsComponent.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportOptionsComponent.java index 8237baf4538e..1b5c3b9404c8 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportOptionsComponent.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportOptionsComponent.java @@ -100,7 +100,7 @@ public class FrameworkSupportOptionsComponent { myLibraryOptionsPanel = new LibraryOptionsPanel(description, myModel.getBaseDirectoryForLibrariesPath(), createLibraryVersionFilter(), container, !myConfigurable.isOnlyLibraryAdded()) { @Override - protected void onVersionChanged(FrameworkLibraryVersion version) { + protected void onVersionChanged(@Nullable String version) { if (myFrameworkVersionComponent == null) { myModel.setSelectedLibraryVersion(provider.getId(), version); } diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworksTree.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworksTree.java index 6dcd22561e80..dc2cecdd5422 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworksTree.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworksTree.java @@ -16,7 +16,6 @@ package com.intellij.ide.util.newProjectWizard; import com.intellij.framework.FrameworkOrGroup; -import com.intellij.framework.PresentableVersion; import com.intellij.ide.util.newProjectWizard.impl.FrameworkSupportModelBase; import com.intellij.ui.CheckboxTree; import com.intellij.ui.CheckedTreeNode; @@ -114,9 +113,9 @@ public class FrameworksTree extends CheckboxTree { getTextRenderer().append(node.getTitle(), attributes); if (node.isChecked()) { FrameworkOrGroup object = node.getUserObject(); - PresentableVersion version = myModel.getPresentableVersion(object.getId()); + String version = myModel.getFrameworkVersion(object.getId()); if (version != null) { - getTextRenderer().append(" (" + version.getVersionNumber() + ")", SimpleTextAttributes.GRAYED_ATTRIBUTES); + getTextRenderer().append(" (" + version + ")", SimpleTextAttributes.GRAYED_ATTRIBUTES); } } getTextRenderer().setIcon(node.getIcon()); diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelBase.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelBase.java index 3ac7333ce294..745329802529 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelBase.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelBase.java @@ -17,10 +17,8 @@ package com.intellij.ide.util.newProjectWizard.impl; import com.intellij.facet.impl.ui.libraries.FrameworkLibraryProvider; import com.intellij.framework.FrameworkVersion; -import com.intellij.framework.PresentableVersion; import com.intellij.framework.addSupport.FrameworkSupportInModuleProvider; import com.intellij.framework.addSupport.FrameworkVersionListener; -import com.intellij.framework.library.FrameworkLibraryVersion; import com.intellij.ide.util.frameworkSupport.FrameworkSupportConfigurable; import com.intellij.ide.util.frameworkSupport.FrameworkSupportModel; import com.intellij.ide.util.frameworkSupport.FrameworkSupportModelListener; @@ -55,7 +53,7 @@ public abstract class FrameworkSupportModelBase extends UserDataHolderBase imple private final Map mySettingsMap = new HashMap(); private final Map myOptionsComponentsMap = new HashMap(); private final Map mySelectedVersions = new HashMap(); - private final Map myLibraryVersions = new HashMap(); + private final Map myFrameworkVersions = new HashMap(); private FrameworkLibraryProvider myLibraryProvider; public FrameworkSupportModelBase(final @Nullable Project project, @Nullable ModuleBuilder builder, @NotNull LibrariesContainer librariesContainer) { @@ -205,13 +203,13 @@ public abstract class FrameworkSupportModelBase extends UserDataHolderBase imple return myLibrariesContainer; } - public void setSelectedLibraryVersion(String id, FrameworkLibraryVersion version) { - myLibraryVersions.put(id, version); + public void setSelectedLibraryVersion(String id, String version) { + myFrameworkVersions.put(id, version); myVersionEventDispatcher.getMulticaster().versionChanged(getSelectedVersion(id)); } - public PresentableVersion getPresentableVersion(String id) { + public String getFrameworkVersion(String id) { FrameworkVersion version = mySelectedVersions.get(id); - return version == null ? myLibraryVersions.get(id) : version; + return version == null ? myFrameworkVersions.get(id) : version.getVersionNumber(); } }