3636
3737import org .eclipse .m2e .core .MavenPlugin ;
3838import org .eclipse .m2e .core .internal .IMavenConstants ;
39- import org .eclipse .m2e .core .project .IProjectConfiguration ;
39+ import org .eclipse .m2e .core .internal .preferences .MavenPreferenceInitializer ;
40+ import org .eclipse .m2e .core .internal .project .ResolverConfigurationIO ;
4041import org .eclipse .m2e .core .project .IProjectConfigurationManager ;
4142import org .eclipse .m2e .core .project .ResolverConfiguration ;
4243import org .eclipse .m2e .core .ui .internal .Messages ;
44+ import org .eclipse .m2e .core .ui .internal .project .MavenUpdateConfigurationChangeListener ;
4345
4446
4547/**
@@ -52,6 +54,8 @@ public class MavenProjectPreferencePage extends PropertyPage {
5254
5355 private Button resolveWorspaceProjectsButton ;
5456
57+ private Button autoUpdateConfigurationButton ;
58+
5559// private Button includeModulesButton;
5660
5761 private Text selectedProfilesText ;
@@ -74,10 +78,18 @@ protected Control createContents(Composite parent) {
7478 selectedProfilesText .setLayoutData (new GridData (SWT .FILL , SWT .CENTER , true , false , 2 , 1 ));
7579
7680 resolveWorspaceProjectsButton = new Button (composite , SWT .CHECK );
77- GridData resolveWorspaceProjectsButtonData = new GridData (SWT .FILL , SWT .CENTER , true , false , 2 , 1 );
78- resolveWorspaceProjectsButton .setLayoutData (resolveWorspaceProjectsButtonData );
81+ resolveWorspaceProjectsButton .setLayoutData (new GridData (SWT .FILL , SWT .CENTER , true , false , 2 , 1 ));
7982 resolveWorspaceProjectsButton .setText (Messages .MavenProjectPreferencePage_btnResolve );
8083
84+ autoUpdateConfigurationButton = new Button (composite , SWT .CHECK );
85+ autoUpdateConfigurationButton .setLayoutData (new GridData (SWT .FILL , SWT .CENTER , true , false , 2 , 1 ));
86+ autoUpdateConfigurationButton .setText (Messages .MavenPreferencePage_autoUpdateProjectConfiguration );
87+ if (MavenUpdateConfigurationChangeListener .isAutoConfigurationUpdateDisabled ()) {
88+ autoUpdateConfigurationButton .setEnabled (false );
89+ String text = autoUpdateConfigurationButton .getText () + " (disabled in workspace preferences)" ;
90+ autoUpdateConfigurationButton .setText (text );
91+ }
92+
8193// includeModulesButton = new Button(composite, SWT.CHECK);
8294// GridData gd = new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1);
8395// gd.verticalIndent = 15;
@@ -100,16 +112,19 @@ protected Control createContents(Composite parent) {
100112
101113 init (getResolverConfiguration ());
102114
115+ boolean isAutoUpdate = ResolverConfigurationIO .isAutomaticallyUpdateConfiguration (getProject ());
116+ autoUpdateConfigurationButton .setSelection (isAutoUpdate );
117+
103118 return composite ;
104119 }
105120
106121 @ Override
107122 protected void performDefaults () {
108123 init (new ResolverConfiguration ());
124+ autoUpdateConfigurationButton .setSelection (MavenPreferenceInitializer .P_AUTO_UPDATE_CONFIGURATION_DEFAULT );
109125 }
110126
111- private void init (IProjectConfiguration configuration ) {
112-
127+ private void init (ResolverConfiguration configuration ) {
113128 resolveWorspaceProjectsButton .setSelection (configuration .isResolveWorkspaceProjects ());
114129// includeModulesButton.setSelection(configuration.shouldIncludeModules());
115130 selectedProfilesText .setText (configuration .getSelectedProfiles ());
@@ -130,11 +145,14 @@ public boolean performOk() {
130145 final ResolverConfiguration configuration = new ResolverConfiguration (getResolverConfiguration ());
131146 if (configuration .getSelectedProfiles ().equals (selectedProfilesText .getText ()) &&
132147// configuration.shouldIncludeModules()==includeModulesButton.getSelection() &&
133- configuration .isResolveWorkspaceProjects () == resolveWorspaceProjectsButton .getSelection ()) {
148+ configuration .isResolveWorkspaceProjects () == resolveWorspaceProjectsButton .getSelection ()
149+ && ResolverConfigurationIO .isAutomaticallyUpdateConfiguration (project ) == autoUpdateConfigurationButton
150+ .getSelection ()) {
134151 return true ;
135152 }
136153
137154 configuration .setResolveWorkspaceProjects (resolveWorspaceProjectsButton .getSelection ());
155+ ResolverConfigurationIO .setAutomaticallyUpdateConfiguration (project , autoUpdateConfigurationButton .getSelection ());
138156// configuration.setIncludeModules(includeModulesButton.getSelection());
139157 configuration .setSelectedProfiles (selectedProfilesText .getText ());
140158
@@ -165,9 +183,9 @@ public IStatus runInWorkspace(IProgressMonitor monitor) {
165183 return isSet ;
166184 }
167185
168- private IProjectConfiguration getResolverConfiguration () {
186+ private ResolverConfiguration getResolverConfiguration () {
169187 IProjectConfigurationManager projectManager = MavenPlugin .getProjectConfigurationManager ();
170- return projectManager .getProjectConfiguration (getProject ());
188+ return ( ResolverConfiguration ) projectManager .getProjectConfiguration (getProject ());
171189 }
172190
173191 private IProject getProject () {
0 commit comments