IDEA-59314: If 'use library' option has _not_ been selected on facet adding to created module, don't attach pre-selected global library to module

This commit is contained in:
nik
2010-10-04 12:15:50 +04:00
parent 45de847b82
commit 0550409700
4 changed files with 34 additions and 23 deletions
@@ -128,7 +128,6 @@
<group name="myButtonGroup" bound="true">
<member id="4dbad"/>
<member id="a5b73"/>
<member id="46359"/>
<member id="f63e3"/>
</group>
</buttonGroups>
@@ -104,6 +104,7 @@ public class LibraryOptionsPanel {
return StringUtil.notNullize(name1).compareToIgnoreCase(StringUtil.notNullize(name2));
}
});
for (Library library : libraries) {
ExistingLibraryEditor libraryEditor = librariesContainer.getLibraryEditor(library);
if (libraryEditor == null) {
@@ -274,14 +275,23 @@ public class LibraryOptionsPanel {
}
public void apply() {
final Choice option = myButtonEnumModel.getSelected();
mySettings.setDownloadLibraries(option == Choice.DOWNLOAD);
final Object item = myExistingLibraryComboBox.getSelectedItem();
if (item instanceof ExistingLibraryEditor) {
if (option == Choice.USE_LIBRARY && item instanceof ExistingLibraryEditor) {
mySettings.setSelectedExistingLibrary(((ExistingLibraryEditor)item).getLibrary());
}
else if (item instanceof NewLibraryEditor) {
else {
mySettings.setSelectedExistingLibrary(null);
}
if (option == Choice.USE_LIBRARY && item instanceof NewLibraryEditor) {
mySettings.setNewLibraryEditor((NewLibraryEditor)item);
}
mySettings.setDownloadLibraries(myButtonEnumModel.getSelected() == Choice.DOWNLOAD);
else {
mySettings.setNewLibraryEditor(null);
}
}
public JComponent getMainPanel() {
@@ -124,9 +124,6 @@ public class AddSupportForFrameworksPanel implements Disposable {
applyLibraryOptionsForSelected();
myLastSelectedNode = selectedNode;
if (selectedNode != null) {
selectedNode.getLibraryCompositionOptionsPanel(myLibrariesContainer);
}
}
}
@@ -136,7 +133,7 @@ public class AddSupportForFrameworksPanel implements Disposable {
private void applyLibraryOptionsForSelected() {
if (myLastSelectedNode != null) {
final LibraryOptionsPanel optionsPanel = myLastSelectedNode.getLibraryCompositionOptionsPanel(myLibrariesContainer);
final LibraryOptionsPanel optionsPanel = myLastSelectedNode.getLibraryCompositionOptionsPanel();
if (optionsPanel != null) {
optionsPanel.apply();
}
@@ -195,14 +192,26 @@ public class AddSupportForFrameworksPanel implements Disposable {
}
private void addLibrariesOptionsPanel(FrameworkSupportNode node, JPanel librariesOptionsPanelWrapper, boolean addSeparator) {
final LibraryOptionsPanel libraryOptionsPanel = node.getLibraryCompositionOptionsPanel(myLibrariesContainer);
if (libraryOptionsPanel != null) {
final LibraryCompositionSettings libraryCompositionSettings = node.getLibraryCompositionSettings();
final LibraryOptionsPanel oldPanel = node.getLibraryCompositionOptionsPanel();
LibraryOptionsPanel newPanel = oldPanel;
if (oldPanel == null || !oldPanel.getSettings().equals(libraryCompositionSettings)) {
if (libraryCompositionSettings != null) {
newPanel = new LibraryOptionsPanel(libraryCompositionSettings, myLibrariesContainer, node.getConfigurable().getComponent() != null);
}
else {
newPanel = null;
}
}
node.setLibraryCompositionOptionsPanel(newPanel);
if (newPanel != null) {
if (addSeparator) {
JComponent separator = SeparatorFactory.createSeparator("Libraries", null);
separator.setBorder(IdeBorderFactory.createEmptyBorder(5, 0, 5, 5));
librariesOptionsPanelWrapper.add(BorderLayout.NORTH, separator);
}
librariesOptionsPanelWrapper.add(BorderLayout.CENTER, libraryOptionsPanel.getMainPanel());
librariesOptionsPanelWrapper.add(BorderLayout.CENTER, newPanel.getMainPanel());
}
}
@@ -22,7 +22,6 @@ import com.intellij.ide.util.frameworkSupport.*;
import com.intellij.ide.util.newProjectWizard.impl.FrameworkSupportModelImpl;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription;
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.Disposer;
@@ -88,20 +87,14 @@ public class FrameworkSupportNode extends CheckedTreeNode {
return description;
}
@Nullable
public LibraryOptionsPanel getLibraryCompositionOptionsPanel(LibrariesContainer librariesContainer) {
final LibraryCompositionSettings libraryCompositionSettings = getLibraryCompositionSettings();
if (myLibraryCompositionOptionsPanel == null || !myLibraryCompositionOptionsPanel.getSettings().equals(libraryCompositionSettings)) {
if (libraryCompositionSettings != null) {
myLibraryCompositionOptionsPanel = new LibraryOptionsPanel(libraryCompositionSettings, librariesContainer, myConfigurable.getComponent() != null);
}
else {
myLibraryCompositionOptionsPanel = null;
}
}
public LibraryOptionsPanel getLibraryCompositionOptionsPanel() {
return myLibraryCompositionOptionsPanel;
}
public void setLibraryCompositionOptionsPanel(LibraryOptionsPanel libraryCompositionOptionsPanel) {
myLibraryCompositionOptionsPanel = libraryCompositionOptionsPanel;
}
public void setConfigurableComponentEnabled(final boolean enable) {
JComponent component = getConfigurable().getComponent();
if (component != null) {