X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/preferences/PHPProjectPropertyPage.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/preferences/PHPProjectPropertyPage.java new file mode 100644 index 0000000..2f3ba51 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/preferences/PHPProjectPropertyPage.java @@ -0,0 +1,102 @@ +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(); + } + +}