JetBrains/intellij-community — pull request #174 by dbk2 (2014-04-17 08:31:40+00:00)
Title: IDEA-51438 Maven: Allow explicit disabling of profiles

It adds support of explicit disabling of maven profiles using 3-state check boxes:
1. Check: Profile explicitly enabled
2. Light check: Profile activated by default
3. Uncheck: Profile deactivated (explicitly disabled)
States are switched in following order: default -> uncheck -> check -> default
3-state check boxes available both in maven project tree and in select profiles dialog of import project wizard.
For inactive by default profiles it works as before using 2-state check boxes.

Summary of changes:
- introduce MavenExplicitProfiles class which stores both enabled and disabled profiles and bypass it through all necessary API calls instead of collection of only enabled profiles.
- adjust ToggleProfileAction and SelectProfilesStep logic to handle 3 states of profiles.
- extend ElementsChooser implementation to support custom element marks in chooser instead of 2 state boolean. Extended implementation placed in MultiStateElementsChooser and ElementsChooser is its specialization for boolean state. API was not changed, but extended.

Some maven tests were failed, but they failed without my changes too:
Test Maven: 963 total, 32 failed, 931 passed