/*******************************************************************************
* Copyright (c) 2012 VMware, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* VMware, Inc. - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.maven.internal.ui;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.dialogs.PropertyPage;
import org.springframework.ide.eclipse.core.SpringCorePreferences;
import org.springframework.ide.eclipse.maven.MavenCorePlugin;
/**
* @author Christian Dupuis
*/
public class MavenPreferencePage extends PropertyPage {
private IProject project;
private Button automaticallyUpdateDependenciesButton;
private boolean modified = false;
private boolean automaticallyUpdateDependencies;
protected Control createContents(Composite parent) {
Font font = parent.getFont();
Composite parentComposite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
parentComposite.setLayout(layout);
parentComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
parentComposite.setFont(font);
initialize();
automaticallyUpdateDependenciesButton = new Button(parentComposite, SWT.CHECK);
automaticallyUpdateDependenciesButton.setText("Automatically update dependencies from Maven pom.xml");
automaticallyUpdateDependenciesButton.setSelection(automaticallyUpdateDependencies);
automaticallyUpdateDependenciesButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
modified = true;
}
});
return parentComposite;
}
private void initialize() {
project = (IProject) getElement().getAdapter(IResource.class);
noDefaultAndApplyButton();
setDescription("Automatically update project configuration and dependency based on Maven pom.xml");
if (project != null) {
automaticallyUpdateDependencies = SpringCorePreferences.getProjectPreferences(project,
MavenCorePlugin.PLUGIN_ID).getBoolean(MavenCorePlugin.AUTOMATICALLY_UPDATE_DEPENDENCIES_KEY,
MavenCorePlugin.AUTOMATICALLY_UPDATE_DEPENDENCIES_DEFAULT);
}
else {
automaticallyUpdateDependencies = MavenCorePlugin.AUTOMATICALLY_UPDATE_DEPENDENCIES_DEFAULT;
}
}
public boolean performOk() {
if (!modified) {
return true;
}
SpringCorePreferences.getProjectPreferences(project, MavenCorePlugin.PLUGIN_ID).putBoolean(
MavenCorePlugin.AUTOMATICALLY_UPDATE_DEPENDENCIES_KEY,
automaticallyUpdateDependenciesButton.getSelection());
return true;
}
}