/** * 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.MAUDE_PATH; 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.DirectoryFieldEditor; 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; /** * Property page for project specific ABS properties concerning Maude execution. * @author tfischer */ public class MaudePropertyPage extends PropertyPage { private DirectoryFieldEditor maudeSourcePath; private IProject project; private IPersistentPreferenceStore prefstore = null; @Override protected Control createContents(Composite parent) { project = (IProject)getElement(); GridLayout gridLayout = new GridLayout(1, false); parent.setLayout(gridLayout); Composite maudeSourcePathContainer = new Composite(parent, SWT.NONE); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); maudeSourcePathContainer.setLayoutData(gridData); prefstore = getAbsNature(project).getProjectPreferenceStore(); maudeSourcePath = new DirectoryFieldEditor(MAUDE_PATH, "Maude Source Path", maudeSourcePathContainer); maudeSourcePath.setPreferenceStore(prefstore); maudeSourcePath.load(); return parent; } @Override protected void performDefaults() { maudeSourcePath.loadDefault(); super.performDefaults(); } @Override public boolean performOk() { maudeSourcePath.store(); syncPreferenceStore(prefstore); return super.performOk(); } }