IDEA-56002 ability to disable "generate flex configuration" on maven project reimport

This commit is contained in:
Alexander Doroshko
2011-04-14 19:17:54 +04:00
parent a13bc0deb9
commit 06588c8a6c
7 changed files with 67 additions and 5 deletions
@@ -0,0 +1,13 @@
package org.jetbrains.idea.maven.project;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.openapi.project.Project;
public interface AdditionalMavenImportingSettings {
ExtensionPointName<AdditionalMavenImportingSettings> EP_NAME =
ExtensionPointName.create("org.jetbrains.idea.maven.additional.importing.settings");
UnnamedConfigurable createConfigurable(Project project);
}
@@ -17,38 +17,70 @@ package org.jetbrains.idea.maven.project;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
public class MavenImportingConfigurable implements SearchableConfigurable {
private final MavenImportingSettings myImportingSettings;
private final MavenImportingSettingsForm mySettingsForm = new MavenImportingSettingsForm(false);
private final List<UnnamedConfigurable> myAdditionalConfigurables;
public MavenImportingConfigurable(MavenImportingSettings importingSettings) {
public MavenImportingConfigurable(Project project, MavenImportingSettings importingSettings) {
myImportingSettings = importingSettings;
myAdditionalConfigurables = new ArrayList<UnnamedConfigurable>();
for (final AdditionalMavenImportingSettings additionalSettings : AdditionalMavenImportingSettings.EP_NAME.getExtensions()) {
myAdditionalConfigurables.add(additionalSettings.createConfigurable(project));
}
}
public JComponent createComponent() {
final JPanel panel = mySettingsForm.getAdditionalSettingsPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
for (final UnnamedConfigurable additionalConfigurable : myAdditionalConfigurables) {
panel.add(additionalConfigurable.createComponent());
}
return mySettingsForm.createComponent();
}
public void disposeUIResources() {
for (final UnnamedConfigurable additionalConfigurable : myAdditionalConfigurables) {
additionalConfigurable.disposeUIResources();
}
}
public boolean isModified() {
for (final UnnamedConfigurable additionalConfigurable : myAdditionalConfigurables) {
if (additionalConfigurable.isModified()) {
return true;
}
}
return mySettingsForm.isModified(myImportingSettings);
}
public void apply() throws ConfigurationException {
mySettingsForm.getData(myImportingSettings);
for (final UnnamedConfigurable additionalConfigurable : myAdditionalConfigurables) {
additionalConfigurable.apply();
}
}
public void reset() {
mySettingsForm.setData(myImportingSettings);
for (final UnnamedConfigurable additionalConfigurable : myAdditionalConfigurables) {
additionalConfigurable.reset();
}
}
@Nls
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="org.jetbrains.idea.maven.project.MavenImportingSettingsForm">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="12" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="13" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="20" y="20" width="550" height="419"/>
@@ -10,7 +10,7 @@
<children>
<vspacer id="5d738">
<constraints>
<grid row="11" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
<grid row="12" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<component id="9a961" class="javax.swing.JCheckBox" binding="mySeparateModulesDirCheckBox" default-binding="true">
@@ -165,9 +165,19 @@
<grid row="6" column="0" row-span="1" col-span="4" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<margin top="2" left="0" bottom="2" right="3"/>
<text value="Keep source and test &amp;folders on reimport"/>
</properties>
</component>
<grid id="d7645" binding="myAdditionalSettingsPanel" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="15" left="0" bottom="0" right="0"/>
<constraints>
<grid row="11" column="0" row-span="1" col-span="4" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children/>
</grid>
</children>
</grid>
<buttonGroups>
@@ -46,6 +46,8 @@ public class MavenImportingSettingsForm {
private JCheckBox myDownloadSourcesCheckBox;
private JCheckBox myDownloadDocsCheckBox;
private JPanel myAdditionalSettingsPanel;
public MavenImportingSettingsForm(boolean isImportStep) {
if (!isImportStep) {
mySearchRecursivelyCheckBox.setVisible(false);
@@ -136,4 +138,8 @@ public class MavenImportingSettingsForm {
public void updateData(WizardContext wizardContext) {
myProjectFormatPanel.updateData(wizardContext);
}
public JPanel getAdditionalSettingsPanel() {
return myAdditionalSettingsPanel;
}
}
@@ -47,7 +47,7 @@ public class MavenSettings implements SearchableConfigurable.Parent {
};
myChildren = new ArrayList<Configurable>();
myChildren.add(new MavenImportingConfigurable(MavenProjectsManager.getInstance(myProject).getImportingSettings()));
myChildren.add(new MavenImportingConfigurable(myProject, MavenProjectsManager.getInstance(myProject).getImportingSettings()));
myChildren.add(new MavenIgnoredFilesConfigurable(MavenProjectsManager.getInstance(myProject)));
myChildren.add(new MavenRunnerConfigurable(myProject, false) {
@@ -7,6 +7,7 @@
<extensionPoints>
<extensionPoint name="importer" interface="org.jetbrains.idea.maven.importing.MavenImporter"/>
<extensionPoint name="additional.importing.settings" interface="org.jetbrains.idea.maven.project.AdditionalMavenImportingSettings"/>
<extensionPoint name="archetypesProvider" interface="org.jetbrains.idea.maven.indices.MavenArchetypesProvider"/>
</extensionPoints>
@@ -66,7 +66,7 @@ public class MavenSettingsTest extends MavenTestCase {
public void testImportingSettings() throws Exception {
assertTrue(new MavenImportingSettings().equals(new MavenImportingSettings()));
MavenImportingConfigurable importingConfigurable = new MavenImportingConfigurable(new MavenImportingSettings());
MavenImportingConfigurable importingConfigurable = new MavenImportingConfigurable(myProject, new MavenImportingSettings());
importingConfigurable.reset();
assertFalse(importingConfigurable.isModified());
}