1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / preferences / PHPProjectPropertyPage.java
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 (file)
index 0000000..2f3ba51
--- /dev/null
@@ -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();
+       }
+
+}