package com.aptana.editor.php.internal.ui.preferences; import org.eclipse.core.resources.IProject; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Link; import org.eclipse.ui.IWorkbenchPropertyPage; import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; import org2.eclipse.php.internal.core.PHPVersion; import com.aptana.editor.php.core.PHPVersionProvider; import com.aptana.editor.php.ui.preferences.PropertyAndPreferencePage; /** * The primary PHP development property page. * * @author Shalom Gibly <sgibly@aptana.com> */ public class PhpDevelopmentPage extends PropertyAndPreferencePage implements IWorkbenchPropertyPage { private static final String PROPERTY_PAGE_ID = "com.aptana.editor.php.PHPDevelopmentPage"; //$NON-NLS-1$ private PHPVersionConfigurationBlock fConfigurationBlock; /* * (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#createControl(org.eclipse.swt.widgets.Composite) */ @Override public void createControl(Composite parent) { IWorkbenchPreferenceContainer container = (IWorkbenchPreferenceContainer) getContainer(); fConfigurationBlock = new PHPVersionConfigurationBlock(getNewStatusChangedListener(), getProject(), container); super.createControl(parent); } /* * (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#performApply() */ @Override public void performApply() { if (fConfigurationBlock != null) { fConfigurationBlock.performApply(); } } /* * (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#performOk() */ public boolean performOk() { if (fConfigurationBlock != null) { if (!fConfigurationBlock.performOk()) { return false; } PHPVersionProvider.getInstance().notifyChange((IProject) getElement().getAdapter(IProject.class), PHPVersion.byAlias(fConfigurationBlock.getPHPVersionValue())); } return super.performOk(); } /* * (non-Javadoc) * @see com.aptana.editor.php.ui.preferences.PropertyAndPreferencePage#enableProjectSpecificSettings(boolean) */ @Override protected void enableProjectSpecificSettings(boolean useProjectSpecificSettings) { if (fConfigurationBlock != null) { fConfigurationBlock.useProjectSpecificSettings(useProjectSpecificSettings); } super.enableProjectSpecificSettings(useProjectSpecificSettings); } /* * (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#performDefaults() */ @Override protected void performDefaults() { super.performDefaults(); if (fConfigurationBlock != null) { fConfigurationBlock.performDefaults(); } } @Override protected Control createPreferenceContent(Composite composite) { return fConfigurationBlock.createContents(composite); } @Override public void doLinkActivated(Link link) { // TODO - For now, this one does nothing, since we don't display this page in the preferences. } @Override protected String getPreferencePageID() { // TODO - Hook this up once we have this page in the preferences too. return null; } /* * (non-Javadoc) * @see com.aptana.editor.php.ui.preferences.PropertyAndPreferencePage#isProjectPreferencePage() */ @Override protected boolean isProjectPreferencePage() { // TODO - For now, treat this page as a property page only return false; } /* * (non-Javadoc) * @see com.aptana.editor.php.ui.preferences.PropertyAndPreferencePage#offerLink() */ @Override protected boolean offerLink() { // TODO - For now, treat this page as a property page only return false; } @Override protected String getPropertyPageID() { return PROPERTY_PAGE_ID; } @Override protected boolean hasProjectSpecificOptions(IProject project) { return fConfigurationBlock.hasProjectSpecificOptions(project); } }