/** * Aptana Studio * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions). * Please see the license.html included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.aptana.editor.php.internal.ui.preferences; import java.io.File; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IWorkbenchPropertyPage; import org.eclipse.ui.dialogs.PropertyPage; import com.aptana.editor.php.internal.builder.preferences.DependenciesManager; import com.aptana.editor.php.internal.builder.preferences.ProjectDependencies; /** * @author Pavel Petrochenko * @author Denis Denisenko */ public class PHPBuildpathPropertyPage extends PropertyPage implements IWorkbenchPropertyPage { private BuildPathEditingComposite bps; private IAdaptable project; /** * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) */ @Override protected Control createContents(Composite parent) { bps = new BuildPathEditingComposite(this, parent, SWT.NONE); initValues(); return bps; } private void initValues() { ProjectDependencies buildPath = DependenciesManager.getDependencies((IProject) project); bps.init(buildPath); } /** * {@inheritDoc} */ @Override public boolean performOk() { ProjectDependencies bp = new ProjectDependencies(); bps.fillResult(bp); DependenciesManager.setDependencies((IProject) project, bp); return true; } /** * @see org.eclipse.jface.preference.PreferencePage#performDefaults() */ @Override protected void performDefaults() { List<IResource> ps = new ArrayList<IResource>(); List<File> fs = new ArrayList<File>(); bps.init(ps, fs); super.performDefaults(); } /** * @see org.eclipse.ui.dialogs.PropertyPage#setElement(org.eclipse.core.runtime.IAdaptable) */ @Override public void setElement(IAdaptable element) { this.project = element; super.setElement(element); } }