From 80a638020b32b8a80d8227c093d8e164ab9c66f7 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 8 Sep 2009 22:38:54 +0400 Subject: [PATCH] copy profiles (IDEADEV-36992) --- .../codeInspection/ui/InspectionToolsConfigurable.form | 18 +++++++++++++----- .../codeInspection/ui/InspectionToolsConfigurable.java | 13 +++++++++++++ .../ui/SingleInspectionProfilePanel.java | 18 ++++++++++-------- 3 files changed, 36 insertions(+), 13 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.form b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.form index 605f80e6c5..5acbc3a008 100644 --- a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.form +++ b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.form @@ -3,7 +3,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -64,12 +64,20 @@ - + + + + + + + + + diff --git a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.java b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.java index 9263a6bc9e..fa452635d1 100644 --- a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.java +++ b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/InspectionToolsConfigurable.java @@ -61,6 +61,7 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable imple private JButton myImportButton; private JButton myExportButton; private JCheckBox myShareProfileCheckBox; + private JButton myCopyButton; private ArrayList myDeletedProfiles = new ArrayList(); protected final InspectionProfileManager myProfileManager; @@ -149,6 +150,17 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable imple } }); + myCopyButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + final InspectionProfileImpl model = (InspectionProfileImpl)SingleInspectionProfilePanel.createNewProfile(0, getSelectedObject(), myWholePanel, ""); + if (model != null) { + addProfile((InspectionProfileImpl)model.getModifiableModel()); + myDeletedProfiles.remove(model.getName()); + myDeleteButton.setEnabled(true); + } + } + }); + myProjectProfileManager = projectProfileManager; myProfileManager = profileManager; } @@ -156,6 +168,7 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable imple private void addProfile(InspectionProfileImpl model) { final String modelName = model.getName(); final SingleInspectionProfilePanel panel = new SingleInspectionProfilePanel(myProjectProfileManager, modelName, model); + panel.reset(); myPanel.add(modelName, panel); if (!myPanels.containsKey(modelName)) { ((DefaultComboBoxModel)myProfiles.getModel()).addElement(model); diff --git a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/SingleInspectionProfilePanel.java b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/SingleInspectionProfilePanel.java index c290a84424..8a7e7f0158 100644 --- a/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/SingleInspectionProfilePanel.java +++ b/platform/lang-impl/src/com/intellij/profile/codeInspection/ui/SingleInspectionProfilePanel.java @@ -237,20 +237,22 @@ public class SingleInspectionProfilePanel extends JPanel { } InspectionProfileImpl inspectionProfile = new InspectionProfileImpl(profileName, InspectionToolRegistrar.getInstance(), profileManager); - inspectionProfile.initInspectionTools(); - final ModifiableModel profileModifiableModel = inspectionProfile.getModifiableModel(); if (initValue == -1) { + inspectionProfile.initInspectionTools(); + ModifiableModel profileModifiableModel = inspectionProfile.getModifiableModel(); final InspectionProfileEntry[] profileEntries = profileModifiableModel.getInspectionTools(null); for (InspectionProfileEntry entry : profileEntries) { profileModifiableModel.disableTool(entry.getShortName(), (NamedScope)null); } + profileModifiableModel.setLocal(true); + return profileModifiableModel; + } else if (initValue == 0) { + inspectionProfile.copyFrom(selectedProfile); + inspectionProfile.setName(profileName); + inspectionProfile.initInspectionTools(); + return inspectionProfile; } - else if (initValue == 1) { - profileModifiableModel.resetToBase(); - } - profileModifiableModel.setName(profileName); - profileModifiableModel.setLocal(true); - return profileModifiableModel; + return null; } public void filterTree(String filter) { -- 2.11.4.GIT