diff --git a/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportConfigurableBase.java b/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportConfigurableBase.java index ff38f83b4972..5a1e983b4d59 100644 --- a/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportConfigurableBase.java +++ b/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportConfigurableBase.java @@ -51,9 +51,27 @@ public class FrameworkSupportConfigurableBase extends FrameworkSupportConfigurab myFrameworkSupportProvider = frameworkSupportProvider; myFrameworkSupportModel = model; myVersions = versions; + myDescriptionLabel.setText(versionLabelText); + myVersionComboBox.setRenderer(new ListCellRendererWrapper() { + @Override + public void customize(JList list, Object value, int index, boolean selected, boolean hasFocus) { + if (value instanceof FrameworkVersion) { + setText(((FrameworkVersion)value).getVersionName()); + } + } + }); + myVersionComboBox.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + fireFrameworkVersionChanged(); + } + }); + updateAvailableVersions(versions); + } + + protected void updateAvailableVersions(List versions) { if (versions.size() > 0) { - myDescriptionLabel.setText(versionLabelText); String maxValue = ""; + ((DefaultComboBoxModel)myVersionComboBox.getModel()).removeAllElements(); FrameworkVersion defaultVersion = versions.get(versions.size() - 1); for (FrameworkVersion version : versions) { myVersionComboBox.addItem(version); @@ -65,32 +83,25 @@ public class FrameworkSupportConfigurableBase extends FrameworkSupportConfigurab defaultVersion = version; } } - myVersionComboBox.setPrototypeDisplayValue(maxValue + "_"); - myVersionComboBox.setRenderer(new ListCellRendererWrapper() { - @Override - public void customize(JList list, Object value, int index, boolean selected, boolean hasFocus) { - if (value instanceof FrameworkVersion) { - setText(((FrameworkVersion)value).getVersionName()); - } - } - }); myVersionComboBox.setSelectedItem(defaultVersion); - myVersionComboBox.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - fireFrameworkVersionChanged(); - } - }); + myVersionComboBox.setPrototypeDisplayValue(maxValue + "_"); } - if (versions.size() < 2) { - myDescriptionLabel.setVisible(false); - myVersionComboBox.setVisible(false); - } + final boolean hasMoreThanOneVersion = versions.size() >= 2; + myDescriptionLabel.setVisible(hasMoreThanOneVersion); + myVersionComboBox.setVisible(hasMoreThanOneVersion); } public JComponent getComponent() { return myVersions.size() > 1 ? myMainPanel : null; } + + protected void reloadVersions(List frameworkVersions) { + myVersions.clear(); + for (FrameworkVersion version : frameworkVersions) { + myVersions.add(version); + } + } @NotNull public List getVersions() {