--- /dev/null
+package net.sourceforge.phpeclipse.preferences;
+
+import net.sourceforge.phpdt.internal.core.JavaProject;
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+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.swt.widgets.Label;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.ui.IWorkbenchPropertyPage;
+import org.eclipse.ui.dialogs.PropertyPage;
+
+public class PHPProjectPropertyPage extends PropertyPage implements
+ IWorkbenchPropertyPage {
+ protected PHPProjectLibraryPage projectsPage;
+
+ protected JavaProject workingProject;
+
+ public PHPProjectPropertyPage() {
+ }
+
+ protected Control createContents(Composite parent) {
+ noDefaultAndApplyButton();
+
+ workingProject = getPHPProject();
+ if (workingProject == null || !workingProject.getProject().isOpen())
+ return createClosedProjectPageContents(parent);
+
+ return createProjectPageContents(parent);
+ }
+
+ protected JavaProject getPHPProject() {
+ IAdaptable selectedElement = getElement();
+ if (selectedElement == null)
+ return null;
+
+ if (selectedElement instanceof JavaProject)
+ return (JavaProject) selectedElement;
+
+ if (selectedElement instanceof IProject) {
+ IProject simpleProject = (IProject) selectedElement;
+ try {
+ if (simpleProject.hasNature(PHPeclipsePlugin.PHP_NATURE_ID)) {
+ JavaProject phpProject = new JavaProject();
+ phpProject.setProject(simpleProject);
+ return phpProject;
+ }
+ } catch (CoreException e) {
+ PHPeclipsePlugin.log(e);
+ }
+ }
+
+ return null;
+ }
+
+ protected Control createClosedProjectPageContents(Composite parent) {
+ Label label = new Label(parent, SWT.NONE);
+ label.setText(PHPPreferencesMessages
+ .getString("PHPProjectPropertyPage.phpProjectClosed")); //$NON-NLS-1$
+
+ return label;
+ }
+
+ protected Control createProjectPageContents(Composite parent) {
+ TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
+ tabFolder.setLayout(new GridLayout());
+ tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
+ tabFolder.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ // tabChanged(e.item);
+ }
+ });
+
+ projectsPage = new PHPProjectLibraryPage(workingProject);
+ TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
+ tabItem.setText(PHPPreferencesMessages
+ .getString("PHPProjectLibraryPage.tabName")); //$NON-NLS-1$
+ // tabItem.setData(projectsPage);
+ tabItem.setControl(projectsPage.getControl(tabFolder));
+
+ return tabFolder;
+ }
+
+ public boolean performOk() {
+ try {
+ projectsPage.getWorkingProject().save();
+ } catch (CoreException e) {
+ PHPeclipsePlugin.log(e);
+ }
+ return super.performOk();
+ }
+
+}