new version with WorkingCopy Management
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / preferences / PHPProjectLibraryPage.java
index 98d1cff..4a69135 100644 (file)
@@ -5,6 +5,10 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
+import net.sourceforge.phpdt.internal.core.JavaProject;
+import net.sourceforge.phpdt.internal.ui.preferences.PHPEditorPreferencePage;
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.runtime.CoreException;
@@ -24,124 +28,127 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbench; 
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.resourcesview.PHPProject; 
+import org.eclipse.ui.IWorkbench;
 
 public class PHPProjectLibraryPage {
-       protected PHPProject workingProject;
+  protected JavaProject workingProject;
 
-       protected PHPProjectLibraryPage(PHPProject theWorkingProject) {
-               super();
-               workingProject = theWorkingProject;
-       }
-
-       protected Control getControl(Composite parent) {
-               Composite composite = new Composite(parent, SWT.NONE);
-               composite.setLayout(new FillLayout());
-
-               Table projectsTable = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
-               projectsTable.setHeaderVisible(false);
-               projectsTable.setLinesVisible(false);
-               projectsTable.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-               TableColumn tableColumn = new TableColumn(projectsTable, SWT.NONE);
-               tableColumn.setWidth(200);
-               tableColumn.setText(PHPPreferencesMessages.getString("PHPProjectLibraryPage.project")); //$NON-NLS-1$
-
-               CheckboxTableViewer projectsTableViewer = new CheckboxTableViewer(projectsTable);
-               projectsTableViewer.addCheckStateListener(new ICheckStateListener() {
-                       public void checkStateChanged(CheckStateChangedEvent event) {
-                               projectCheckedUnchecked(event);
-                       }
-               });
-
-               projectsTableViewer.setContentProvider(getContentProvider());
-               projectsTableViewer.setLabelProvider(getLabelProvider());
-
-               projectsTableViewer.setInput(getWorkspaceProjects());
-               projectsTableViewer.setCheckedElements(workingProject.getReferencedProjects().toArray());
-
-               return composite;
-       }
-
-       protected void projectCheckedUnchecked(CheckStateChangedEvent event) {
-               IProject checkEventProject = (IProject) event.getElement();
-               if (event.getChecked())
-                       getWorkingProject().addLoadPathEntry(checkEventProject);
-               else
-                       getWorkingProject().removeLoadPathEntry(checkEventProject);
-       }
-
-       protected PHPProject getWorkingProject() {
-               return workingProject;
-       }
-
-       protected List getWorkspaceProjects() {
-               IWorkspaceRoot root = PHPeclipsePlugin.getWorkspace().getRoot();
-               return Arrays.asList(root.getProjects());
-       }
-
-       protected ITableLabelProvider getLabelProvider() {
-               ITableLabelProvider labelProvider = new ITableLabelProvider() {
-                       public Image getColumnImage(Object element, int columnIndex) {
-                               IWorkbench workbench= PHPeclipsePlugin.getDefault().getWorkbench();
-                               return workbench.getSharedImages().getImage(ISharedImages.IMG_OBJ_PROJECT);
-                       }
-
-                       public String getColumnText(Object element, int columnIndex) {
-                               if (element instanceof IProject)
-                                       return ((IProject) element).getName();
-
-                               return PHPPreferencesMessages.getString("PHPProjectLibraryPage.elementNotIProject"); //$NON-NLS-1$
-                       }
-
-                       public void addListener(ILabelProviderListener listener) {}
-
-                       public void dispose() {}
-
-                       public boolean isLabelProperty(Object element, String property) {
-                               return false;
-                       }
-
-                       public void removeListener(ILabelProviderListener listener) {}
-               };
-
-               return labelProvider;
-       }
-
-       protected IContentProvider getContentProvider() {
-               IStructuredContentProvider contentProvider = new IStructuredContentProvider() {
-                       protected List phpProjects;
-
-                       public Object[] getElements(Object inputElement) {
-                               return phpProjects.toArray();
-                       }
-
-                       public void dispose() {}
-
-                       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-                               phpProjects = new ArrayList();
-
-                               if (!(newInput instanceof List))
-                                       return;
-
-                               Iterator workspaceProjectsIterator = ((List) newInput).iterator();
-                               while (workspaceProjectsIterator.hasNext()) {
-                                       Object anObject = workspaceProjectsIterator.next();
-                                       if (anObject instanceof IProject) {
-                                               IProject project = (IProject) anObject;
-                                               if (project.getName() != workingProject.getProject().getName()) {
-                                                       try {
-                                                               if (project.hasNature(PHPeclipsePlugin.PHP_NATURE_ID))
-                                                                       phpProjects.add(project);
-                                                       } catch (CoreException e) {}
-                                               }
-                                       }
-                               }
-                       }
-               };
-
-               return contentProvider;
-       }
+  protected PHPProjectLibraryPage(JavaProject theWorkingProject) {
+    super();
+    workingProject = theWorkingProject;
+  }
+
+  protected Control getControl(Composite parent) {
+    Composite composite = new Composite(parent, SWT.NONE);
+    composite.setLayout(new FillLayout());
+
+    Table projectsTable = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
+    projectsTable.setHeaderVisible(false);
+    projectsTable.setLinesVisible(false);
+    projectsTable.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+
+    TableColumn tableColumn = new TableColumn(projectsTable, SWT.NONE);
+    tableColumn.setWidth(200);
+    tableColumn.setText(PHPPreferencesMessages.getString("PHPEditorPreferencePageLibraryPage.project")); //$NON-NLS-1$
+
+    CheckboxTableViewer projectsTableViewer = new CheckboxTableViewer(projectsTable);
+    projectsTableViewer.addCheckStateListener(new ICheckStateListener() {
+      public void checkStateChanged(CheckStateChangedEvent event) {
+        projectCheckedUnchecked(event);
+      }
+    });
+
+    projectsTableViewer.setContentProvider(getContentProvider());
+    projectsTableViewer.setLabelProvider(getLabelProvider());
+
+    projectsTableViewer.setInput(getWorkspaceProjects());
+    projectsTableViewer.setCheckedElements(workingProject.getReferencedProjects().toArray());
+
+    return composite;
+  }
+
+  protected void projectCheckedUnchecked(CheckStateChangedEvent event) {
+    IProject checkEventProject = (IProject) event.getElement();
+    if (event.getChecked())
+      getWorkingProject().addLoadPathEntry(checkEventProject);
+    else
+      getWorkingProject().removeLoadPathEntry(checkEventProject);
+  }
+
+  protected JavaProject getWorkingProject() {
+    return workingProject;
+  }
+
+  protected List getWorkspaceProjects() {
+    IWorkspaceRoot root = PHPeclipsePlugin.getWorkspace().getRoot();
+    return Arrays.asList(root.getProjects());
+  }
+
+  protected ITableLabelProvider getLabelProvider() {
+    ITableLabelProvider labelProvider = new ITableLabelProvider() {
+      public Image getColumnImage(Object element, int columnIndex) {
+        IWorkbench workbench = PHPeclipsePlugin.getDefault().getWorkbench();
+        return workbench.getSharedImages().getImage(ISharedImages.IMG_OBJ_PROJECT);
+      }
+
+      public String getColumnText(Object element, int columnIndex) {
+        if (element instanceof IProject)
+          return ((IProject) element).getName();
+
+        return PHPPreferencesMessages.getString("PHPEditorPreferencePageLibraryPage.elementNotIProject"); //$NON-NLS-1$
+      }
+
+      public void addListener(ILabelProviderListener listener) {
+      }
+
+      public void dispose() {
+      }
+
+      public boolean isLabelProperty(Object element, String property) {
+        return false;
+      }
+
+      public void removeListener(ILabelProviderListener listener) {
+      }
+    };
+
+    return labelProvider;
+  }
+
+  protected IContentProvider getContentProvider() {
+    IStructuredContentProvider contentProvider = new IStructuredContentProvider() {
+      protected List PHPEditorPreferencePages;
+
+      public Object[] getElements(Object inputElement) {
+        return PHPEditorPreferencePages.toArray();
+      }
+
+      public void dispose() {
+      }
+
+      public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+        PHPEditorPreferencePages = new ArrayList();
+
+        if (!(newInput instanceof List))
+          return;
+
+        Iterator workspaceProjectsIterator = ((List) newInput).iterator();
+        while (workspaceProjectsIterator.hasNext()) {
+          Object anObject = workspaceProjectsIterator.next();
+          if (anObject instanceof IProject) {
+            IProject project = (IProject) anObject;
+            if (project.getName() != workingProject.getProject().getName()) {
+              try {
+                if (project.hasNature(PHPeclipsePlugin.PHP_NATURE_ID))
+                  PHPEditorPreferencePages.add(project);
+              } catch (CoreException e) {
+              }
+            }
+          }
+        }
+      }
+    };
+
+    return contentProvider;
+  }
 }
\ No newline at end of file