import java.util.Iterator;
import java.util.List;
+import net.sourceforge.phpdt.internal.core.JavaProject;
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.runtime.CoreException;
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