/** * Copyright (c) 2009-2011, The HATS Consortium. All rights reserved. * This file is licensed under the terms of the Modified BSD License. */ package org.absmodels.abs.plugin.properties; import static org.absmodels.abs.plugin.util.Constants.MAVEN_IGNORE_TARGET_FOLDER; import static org.absmodels.abs.plugin.util.UtilityFunctions.getAbsNature; import static org.absmodels.abs.plugin.util.UtilityFunctions.syncPreferenceStore; import org.eclipse.core.resources.IProject; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.IPersistentPreferenceStore; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.dialogs.PropertyPage; /** * A Maven property page * @author pwong * */ public class MavenPropertyPage extends PropertyPage { private BooleanFieldEditor ignoreMavenTargerFolder; private IPersistentPreferenceStore prefstore; private IProject project; protected Control createContents(Composite parent) { project = (IProject) getElement(); GridLayout gridLayout = new GridLayout(1, false); parent.setLayout(gridLayout); prefstore = getAbsNature(project).getProjectPreferenceStore(); ignoreMavenTargerFolder = new BooleanFieldEditor( MAVEN_IGNORE_TARGET_FOLDER, "Ignore target folder for type checking", createContainer(parent)); ignoreMavenTargerFolder.setPreferenceStore(prefstore); ignoreMavenTargerFolder.load(); return parent; } private Composite createContainer(Composite parent) { Composite cont = new Composite(parent, SWT.NONE); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); cont.setLayoutData(gridData); return cont; } @Override protected void performDefaults() { ignoreMavenTargerFolder.loadDefault(); super.performDefaults(); } @Override public boolean performOk() { ignoreMavenTargerFolder.store(); syncPreferenceStore(prefstore); return super.performOk(); } }