diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/AbstractPathOptionBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/AbstractPathOptionBlock.java
index 7ec3b45593d..07dc91c1f57 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/AbstractPathOptionBlock.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/AbstractPathOptionBlock.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which accompanies
- * this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElement.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElement.java
index d0994539934..35138261f78 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElement.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElement.java
@@ -510,7 +510,7 @@ public class CPElement {
elem.setAttribute(BASE, base);
elem.setExported(curr.isExported());
- if (project.exists()) {
+ if (project != null && project.exists()) {
elem.setIsMissing(isMissing);
}
return elem;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementFilter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementFilter.java
index 6a808fd6d5b..1e5942f55e5 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementFilter.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementFilter.java
@@ -1,3 +1,11 @@
+/*******************************************************************************
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors: QNX Software Systems - initial API and implementation
+ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import java.util.Arrays;
@@ -11,8 +19,8 @@ import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
/**
- * Viewer filter for archive selection dialogs. Archives are files with file
- * extension '.so', '.dll' and '.a'. The filter is not case sensitive.
+ * Viewer filter for archive selection dialogs. Archives are files with file extension '.so', '.dll' and '.a'. The filter is not
+ * case sensitive.
*/
public class CPElementFilter extends ViewerFilter {
@@ -22,10 +30,9 @@ public class CPElementFilter extends ViewerFilter {
/**
* @param excludedFiles
- * Excluded paths will not pass the filter. null
is
- * allowed if no files should be excluded.
+ * Excluded paths will not pass the filter. null
is allowed if no files should be excluded.
* @param recusive
- * Folders are only shown if, searched recursivly, contain an archive
+ * Folders are only shown if, searched recursivly, contain an archive
*/
public CPElementFilter(CPElement[] excludedElements, int kind, boolean exportedOnly) {
if (excludedElements != null) {
@@ -34,20 +41,19 @@ public class CPElementFilter extends ViewerFilter {
fKind = kind;
fExportedOnly = exportedOnly;
}
-
+
public CPElementFilter(int kind, boolean exportedOnly) {
this(null, kind, exportedOnly);
}
-
/*
* @see ViewerFilter#select
*/
public boolean select(Viewer viewer, Object parent, Object element) {
if (element instanceof CPElement) {
- if (((CPElement) element).getEntryKind() == fKind) {
+ if ( ((CPElement) element).getEntryKind() == fKind) {
if (fExcludes != null && !fExcludes.contains(element)) {
- if (fExportedOnly == true && !((CPElement) element).isExported()) {
+ if (fExportedOnly == true && ! ((CPElement) element).isExported()) {
return false;
}
return true;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementLabelProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementLabelProvider.java
index 51732748883..83c4a6dee51 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementLabelProvider.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementLabelProvider.java
@@ -16,7 +16,6 @@ import org.eclipse.cdt.internal.ui.CPluginImages;
import org.eclipse.cdt.internal.ui.util.ImageDescriptorRegistry;
import org.eclipse.cdt.ui.CElementImageDescriptor;
import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
@@ -29,7 +28,7 @@ import org.eclipse.ui.ide.IDE;
class CPElementLabelProvider extends LabelProvider {
- private String fNewLabel, fClassLabel, fCreateLabel;
+ private String fNewLabel, fCreateLabel;
private ImageDescriptor fIncludeIcon, fMacroIcon, fLibWSrcIcon, fLibIcon, fExtLibIcon, fExtLibWSrcIcon;
private ImageDescriptor fFolderImage, fOutputImage, fProjectImage, fContainerImage;
@@ -37,7 +36,6 @@ class CPElementLabelProvider extends LabelProvider {
public CPElementLabelProvider() {
fNewLabel = CPathEntryMessages.getString("CPListLabelProvider.new"); //$NON-NLS-1$
- fClassLabel = CPathEntryMessages.getString("CPListLabelProvider.classcontainer"); //$NON-NLS-1$
fCreateLabel = CPathEntryMessages.getString("CPListLabelProvider.willbecreated"); //$NON-NLS-1$
fRegistry = CUIPlugin.getImageDescriptorRegistry();
@@ -56,11 +54,11 @@ class CPElementLabelProvider extends LabelProvider {
public String getText(Object element) {
if (element instanceof CPElement) {
- return getCPListElementText((CPElement) element);
+ return getCPListElementText((CPElement)element);
} else if (element instanceof CPElementAttribute) {
- return getCPListElementAttributeText((CPElementAttribute) element);
+ return getCPListElementAttributeText((CPElementAttribute)element);
} else if (element instanceof IPathEntry) {
- return getCPListElementText(CPElement.createFromExisting((IPathEntry) element, null));
+ return getCPListElementText(CPElement.createFromExisting((IPathEntry)element, null));
}
return super.getText(element);
}
@@ -71,7 +69,7 @@ class CPElementLabelProvider extends LabelProvider {
String key = attrib.getKey();
if (key.equals(CPElement.SOURCEATTACHMENT)) {
buf.append(CPathEntryMessages.getString("CPListLabelProvider.source_attachment.label")); //$NON-NLS-1$
- IPath path = (IPath) attrib.getValue();
+ IPath path = (IPath)attrib.getValue();
if (path != null && !path.isEmpty()) {
buf.append(getPathString(path, path.getDevice() != null));
} else {
@@ -79,7 +77,7 @@ class CPElementLabelProvider extends LabelProvider {
}
} else if (key.equals(CPElement.SOURCEATTACHMENTROOT)) {
buf.append(CPathEntryMessages.getString("CPListLabelProvider.source_attachment_root.label")); //$NON-NLS-1$
- IPath path = (IPath) attrib.getValue();
+ IPath path = (IPath)attrib.getValue();
if (path != null && !path.isEmpty()) {
buf.append(path.toString());
} else {
@@ -88,7 +86,7 @@ class CPElementLabelProvider extends LabelProvider {
}
if (key.equals(CPElement.EXCLUSION)) {
buf.append(CPathEntryMessages.getString("CPListLabelProvider.exclusion_filter.label")); //$NON-NLS-1$
- IPath[] patterns = (IPath[]) attrib.getValue();
+ IPath[] patterns = (IPath[])attrib.getValue();
if (patterns != null && patterns.length > 0) {
for (int i = 0; i < patterns.length; i++) {
if (i > 0) {
@@ -106,47 +104,29 @@ class CPElementLabelProvider extends LabelProvider {
public String getCPListElementText(CPElement cpentry) {
IPath path = cpentry.getPath();
switch (cpentry.getEntryKind()) {
- case IPathEntry.CDT_LIBRARY:
- {
- IResource resource = cpentry.getResource();
- if (resource instanceof IContainer) {
- StringBuffer buf = new StringBuffer(path.makeRelative().toString());
- buf.append(' ');
- buf.append(fClassLabel);
- if (!resource.exists()) {
- buf.append(' ');
- if (cpentry.isMissing()) {
- buf.append(fCreateLabel);
- } else {
- buf.append(fNewLabel);
- }
- }
- return buf.toString();
- }
- // should not come here
- return path.makeRelative().toString();
- }
- case IPathEntry.CDT_PROJECT:
+ case IPathEntry.CDT_LIBRARY :
+ return path.makeRelative().toString();
+ case IPathEntry.CDT_PROJECT :
return path.lastSegment();
- case IPathEntry.CDT_INCLUDE:
+ case IPathEntry.CDT_INCLUDE :
{
- StringBuffer str = new StringBuffer(((IPath) cpentry.getAttribute(CPElement.INCLUDE)).toOSString());
- IPath base = (IPath) cpentry.getAttribute(CPElement.BASE_REF);
+ StringBuffer str = new StringBuffer( ((IPath)cpentry.getAttribute(CPElement.INCLUDE)).toOSString());
+ IPath base = (IPath)cpentry.getAttribute(CPElement.BASE_REF);
if (!base.isEmpty()) {
str.append(" - ("); //$NON-NLS-1$
str.append(base);
str.append(')');
} else {
- path = ((IPath) cpentry.getAttribute(CPElement.BASE)).addTrailingSeparator();
+ path = ((IPath)cpentry.getAttribute(CPElement.BASE)).addTrailingSeparator();
str.insert(0, path.toOSString());
}
return str.toString();
}
- case IPathEntry.CDT_MACRO:
+ case IPathEntry.CDT_MACRO :
{
- StringBuffer str = new StringBuffer((String) cpentry.getAttribute(CPElement.MACRO_NAME) + "=" //$NON-NLS-1$
- + (String) cpentry.getAttribute(CPElement.MACRO_VALUE));
- IPath base = (IPath) cpentry.getAttribute(CPElement.BASE_REF);
+ StringBuffer str = new StringBuffer((String)cpentry.getAttribute(CPElement.MACRO_NAME) + "=" //$NON-NLS-1$
+ + (String)cpentry.getAttribute(CPElement.MACRO_VALUE));
+ IPath base = (IPath)cpentry.getAttribute(CPElement.BASE_REF);
if (!base.isEmpty()) {
str.append('(');
str.append(base);
@@ -154,7 +134,7 @@ class CPElementLabelProvider extends LabelProvider {
}
return str.toString();
}
- case IPathEntry.CDT_CONTAINER:
+ case IPathEntry.CDT_CONTAINER :
try {
IPathEntryContainer container = CoreModel.getPathEntryContainer(cpentry.getPath(), cpentry.getCProject());
if (container != null) {
@@ -163,8 +143,8 @@ class CPElementLabelProvider extends LabelProvider {
} catch (CModelException e) {
}
return path.toString();
- case IPathEntry.CDT_SOURCE:
- case IPathEntry.CDT_OUTPUT:
+ case IPathEntry.CDT_SOURCE :
+ case IPathEntry.CDT_OUTPUT :
{
StringBuffer buf = new StringBuffer(path.makeRelative().toString());
IResource resource = cpentry.getResource();
@@ -178,7 +158,7 @@ class CPElementLabelProvider extends LabelProvider {
}
return buf.toString();
}
- default:
+ default :
// pass
}
return CPathEntryMessages.getString("CPListLabelProvider.unknown_element.label"); //$NON-NLS-1$
@@ -200,21 +180,21 @@ class CPElementLabelProvider extends LabelProvider {
private ImageDescriptor getCPListElementBaseImage(CPElement cpentry) {
switch (cpentry.getEntryKind()) {
- case IPathEntry.CDT_OUTPUT:
+ case IPathEntry.CDT_OUTPUT :
if (cpentry.getPath().segmentCount() == 1) {
return fProjectImage;
} else {
return fOutputImage;
}
- case IPathEntry.CDT_SOURCE:
+ case IPathEntry.CDT_SOURCE :
if (cpentry.getPath().segmentCount() == 1) {
return fProjectImage;
} else {
return fFolderImage;
}
- case IPathEntry.CDT_LIBRARY:
+ case IPathEntry.CDT_LIBRARY :
IResource res = cpentry.getResource();
- IPath path = (IPath) cpentry.getAttribute(CPElement.SOURCEATTACHMENT);
+ IPath path = (IPath)cpentry.getAttribute(CPElement.SOURCEATTACHMENT);
if (res == null) {
if (path == null || path.isEmpty()) {
return fExtLibIcon;
@@ -230,15 +210,15 @@ class CPElementLabelProvider extends LabelProvider {
} else {
return fFolderImage;
}
- case IPathEntry.CDT_PROJECT:
+ case IPathEntry.CDT_PROJECT :
return fProjectImage;
- case IPathEntry.CDT_CONTAINER:
+ case IPathEntry.CDT_CONTAINER :
return fContainerImage;
- case IPathEntry.CDT_INCLUDE:
+ case IPathEntry.CDT_INCLUDE :
return fIncludeIcon;
- case IPathEntry.CDT_MACRO:
+ case IPathEntry.CDT_MACRO :
return fMacroIcon;
- default:
+ default :
return null;
}
}
@@ -247,7 +227,7 @@ class CPElementLabelProvider extends LabelProvider {
public Image getImage(Object element) {
if (element instanceof CPElement) {
- CPElement cpentry = (CPElement) element;
+ CPElement cpentry = (CPElement)element;
ImageDescriptor imageDescriptor = getCPListElementBaseImage(cpentry);
if (imageDescriptor != null) {
if (cpentry.isMissing()) {
@@ -256,7 +236,7 @@ class CPElementLabelProvider extends LabelProvider {
return fRegistry.get(imageDescriptor);
}
} else if (element instanceof CPElementAttribute) {
- String key = ((CPElementAttribute) element).getKey();
+ String key = ((CPElementAttribute)element).getKey();
if (key.equals(CPElement.SOURCEATTACHMENT)) {
// return
// fRegistry.get(CPluginImages.DESC_OBJS_SOURCE_ATTACH_ATTRIB);
@@ -264,7 +244,7 @@ class CPElementLabelProvider extends LabelProvider {
return CPluginImages.get(CPluginImages.IMG_OBJS_EXCLUDSION_FILTER_ATTRIB);
}
} else if (element instanceof IPathEntry) {
- return getImage(CPElement.createFromExisting((IPathEntry) element, null));
+ return getImage(CPElement.createFromExisting((IPathEntry)element, null));
}
return null;
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDefaultPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDefaultPage.java
index 5f2f15043ca..eae9bf56f4d 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDefaultPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDefaultPage.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDescriptor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDescriptor.java
index 42443a85ced..c6abc365dd9 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDescriptor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerDescriptor.java
@@ -1,14 +1,15 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import org.eclipse.cdt.core.model.IPathEntry;
@@ -17,21 +18,29 @@ import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IPluginDescriptor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
-
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.graphics.Image;
public class CPathContainerDescriptor implements IContainerDescriptor {
+
private IConfigurationElement fConfigElement;
private static final String ATT_EXTENSION = "PathContainerPage"; //$NON-NLS-1$
private static final String ATT_ID = "id"; //$NON-NLS-1$
private static final String ATT_NAME = "name"; //$NON-NLS-1$
+ private static final String ATT_ICON = "icon"; //$NON-NLS-1$
private static final String ATT_PAGE_CLASS = "class"; //$NON-NLS-1$
+ private Image pageImage;
+
public CPathContainerDescriptor(IConfigurationElement configElement) throws CoreException {
super();
fConfigElement = configElement;
@@ -41,30 +50,63 @@ public class CPathContainerDescriptor implements IContainerDescriptor {
String pageClassName = configElement.getAttribute(ATT_PAGE_CLASS);
if (name == null) {
- throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0, "Invalid extension (missing name): " + id, null)); //$NON-NLS-1$
+ throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0, "Invalid extension (missing name): " + id, //$NON-NLS-1$
+ null));
}
if (pageClassName == null) {
- throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0, "Invalid extension (missing page class name): " + id, null)); //$NON-NLS-1$
+ throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0,
+ "Invalid extension (missing page class name): " + id, null)); //$NON-NLS-1$
}
}
public ICPathContainerPage createPage() throws CoreException {
- Object elem= CoreUtility.createExtension(fConfigElement, ATT_PAGE_CLASS);
+ Object elem = CoreUtility.createExtension(fConfigElement, ATT_PAGE_CLASS);
if (elem instanceof ICPathContainerPage) {
return (ICPathContainerPage) elem;
} else {
- String id= fConfigElement.getAttribute(ATT_ID);
- throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0, "Invalid extension (page not of type IClasspathContainerPage): " + id, null)); //$NON-NLS-1$
+ String id = fConfigElement.getAttribute(ATT_ID);
+ throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0,
+ "Invalid extension (page not of type IClasspathContainerPage): " + id, null)); //$NON-NLS-1$
}
}
public String getName() {
return fConfigElement.getAttribute(ATT_NAME);
}
-
+
+ public Image getImage() {
+ if (pageImage == null) {
+ String imageName = fConfigElement.getAttribute(ATT_ICON);
+ if (imageName != null) {
+ IExtension extension = fConfigElement.getDeclaringExtension();
+ IPluginDescriptor pd = extension.getDeclaringPluginDescriptor();
+ Image image = getImageFromPlugin(pd, imageName);
+ pageImage = image;
+ }
+ }
+ return pageImage;
+ }
+
+ public Image getImageFromPlugin(IPluginDescriptor pluginDescriptor, String subdirectoryAndFilename) {
+ URL installURL = pluginDescriptor.getInstallURL();
+ return getImageFromURL(installURL, subdirectoryAndFilename);
+ }
+
+ public Image getImageFromURL(URL installURL, String subdirectoryAndFilename) {
+ Image image = null;
+ try {
+ URL newURL = new URL(installURL, subdirectoryAndFilename);
+ ImageDescriptor desc = ImageDescriptor.createFromURL(newURL);
+ image = desc.createImage();
+ } catch (MalformedURLException e) {
+ } catch (SWTException e) {
+ }
+ return image;
+ }
+
public String getPageClass() {
return fConfigElement.getAttribute(ATT_PAGE_CLASS);
- }
+ }
public boolean canEdit(IPathEntry entry) {
String id = fConfigElement.getAttribute(ATT_ID);
@@ -76,19 +118,19 @@ public class CPathContainerDescriptor implements IContainerDescriptor {
}
public static IContainerDescriptor[] getDescriptors() {
- ArrayList containers= new ArrayList();
-
+ ArrayList containers = new ArrayList();
+
IExtensionPoint extensionPoint = Platform.getPluginRegistry().getExtensionPoint(CUIPlugin.PLUGIN_ID, ATT_EXTENSION);
if (extensionPoint != null) {
- IContainerDescriptor defaultPage= null;
- String defaultPageName= CPathContainerDefaultPage.class.getName();
-
+ IContainerDescriptor defaultPage = null;
+ String defaultPageName = CPathContainerDefaultPage.class.getName();
+
IConfigurationElement[] elements = extensionPoint.getConfigurationElements();
for (int i = 0; i < elements.length; i++) {
try {
- CPathContainerDescriptor curr= new CPathContainerDescriptor(elements[i]);
+ CPathContainerDescriptor curr = new CPathContainerDescriptor(elements[i]);
if (defaultPageName.equals(curr.getPageClass())) {
- defaultPage= curr;
+ defaultPage = curr;
} else {
containers.add(curr);
}
@@ -104,4 +146,4 @@ public class CPathContainerDescriptor implements IContainerDescriptor {
return (CPathContainerDescriptor[]) containers.toArray(new CPathContainerDescriptor[containers.size()]);
}
-}
+}
\ No newline at end of file
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerSelectionPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerSelectionPage.java
index be3c43f3fed..6986c5b5a3a 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerSelectionPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerSelectionPage.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
@@ -22,11 +21,12 @@ import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
/**
@@ -37,16 +37,27 @@ public class CPathContainerSelectionPage extends WizardPage {
private static final String DIALOGSTORE_CONTAINER_IDX= "index"; //$NON-NLS-1$
- private static class ClasspathContainerLabelProvider extends LabelProvider {
+ private static class CPathContainerLabelProvider extends LabelProvider {
public String getText(Object element) {
return ((IContainerDescriptor) element).getName();
}
+
+ public Image getImage(Object element) {
+ return ((IContainerDescriptor) element).getImage();
+ }
}
- private static class ClasspathContainerSorter extends ViewerSorter {
+ private static class CPathContainerSorter extends ViewerSorter {
+
+ public int category(Object element) {
+ if ( element instanceof ProjectContainerDescriptor) {
+ return 0;
+ }
+ return 1;
+ }
}
- private ListViewer fListViewer;
+ private TableViewer fListViewer;
private IContainerDescriptor[] fContainers;
private IDialogSettings fDialogSettings;
@@ -75,10 +86,10 @@ public class CPathContainerSelectionPage extends WizardPage {
* @see IDialogPage#createControl(Composite)
*/
public void createControl(Composite parent) {
- fListViewer= new ListViewer(parent, SWT.SINGLE | SWT.BORDER);
- fListViewer.setLabelProvider(new ClasspathContainerLabelProvider());
+ fListViewer= new TableViewer(parent, SWT.SINGLE | SWT.BORDER);
+ fListViewer.setLabelProvider(new CPathContainerLabelProvider());
fListViewer.setContentProvider(new ListContentProvider());
- fListViewer.setSorter(new ClasspathContainerSorter());
+ fListViewer.setSorter(new CPathContainerSorter());
fListViewer.setInput(Arrays.asList(fContainers));
fListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
@@ -95,10 +106,10 @@ public class CPathContainerSelectionPage extends WizardPage {
if (selectionIndex >= fContainers.length) {
selectionIndex= 0;
}
- fListViewer.getList().select(selectionIndex);
+ fListViewer.getTable().select(selectionIndex);
validatePage();
- setControl(fListViewer.getList());
- Dialog.applyDialogFont(fListViewer.getList());
+ setControl(fListViewer.getTable());
+ Dialog.applyDialogFont(fListViewer.getTable());
}
/**
@@ -135,7 +146,7 @@ public class CPathContainerSelectionPage extends WizardPage {
*/
public void setVisible(boolean visible) {
if (!visible && fListViewer != null) {
- fDialogSettings.put(DIALOGSTORE_CONTAINER_IDX, fListViewer.getList().getSelectionIndex());
+ fDialogSettings.put(DIALOGSTORE_CONTAINER_IDX, fListViewer.getTable().getSelectionIndex());
}
super.setVisible(visible);
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerWizard.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerWizard.java
index 499753025db..968b250e696 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerWizard.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathContainerWizard.java
@@ -1,10 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Common Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: IBM Corporation - initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
@@ -12,7 +12,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.IPathEntry;
import org.eclipse.cdt.internal.ui.util.ExceptionHandler;
import org.eclipse.cdt.internal.ui.util.PixelConverter;
@@ -33,8 +33,8 @@ public class CPathContainerWizard extends Wizard {
private IPathEntry[] fNewEntries;
private IPathEntry[] fContainerEntries;
private ICPathContainerPage fContainerPage;
- private ICProject fCurrProject;
- private IPathEntry[] fCurrClasspath;
+ private ICElement fCurrElement;
+ private IPathEntry[] fCurrCPath;
private CPathFilterPage fFilterPage;
private CPathContainerSelectionPage fSelectionWizardPage;
@@ -43,26 +43,26 @@ public class CPathContainerWizard extends Wizard {
/**
* Constructor for ClasspathContainerWizard.
*/
- public CPathContainerWizard(IPathEntry entryToEdit, ICProject currProject, IPathEntry[] currEntries) {
- this(entryToEdit, null, currProject, currEntries, -1);
+ public CPathContainerWizard(IPathEntry entryToEdit, ICElement currElement, IPathEntry[] currEntries) {
+ this(entryToEdit, null, currElement, currEntries, -1);
}
/**
* Constructor for ClasspathContainerWizard.
*/
- public CPathContainerWizard(IContainerDescriptor pageDesc, ICProject currProject, IPathEntry[] currEntries) {
- this(null, pageDesc, currProject, currEntries, -1);
+ public CPathContainerWizard(IContainerDescriptor pageDesc, ICElement currElement, IPathEntry[] currEntries) {
+ this(null, pageDesc, currElement, currEntries, -1);
}
- public CPathContainerWizard(IPathEntry entryToEdit, IContainerDescriptor pageDesc, ICProject currProject,
+ public CPathContainerWizard(IPathEntry entryToEdit, IContainerDescriptor pageDesc, ICElement currElement,
IPathEntry[] currEntries, int filterType) {
fEntryToEdit = entryToEdit;
fPageDesc = pageDesc;
fNewEntries = null;
fFilterType = filterType;
- fCurrProject = currProject;
- fCurrClasspath = currEntries;
+ fCurrElement = currElement;
+ fCurrCPath = currEntries;
}
public IPathEntry getEntriesParent() {
@@ -85,10 +85,9 @@ public class CPathContainerWizard extends Wizard {
public boolean performFinish() {
if (fContainerPage != null) {
if (fContainerPage.finish()) {
+ fContainerEntries = fContainerPage.getContainerEntries();
if (fFilterType != -1 && fFilterPage.isPageComplete()) {
fNewEntries = fFilterPage.getSelectedEntries();
- } else {
- fContainerEntries = fContainerPage.getContainerEntries();
}
return true;
}
@@ -126,7 +125,8 @@ public class CPathContainerWizard extends Wizard {
addPage(fContainerPage);
}
if (fFilterType != -1) {
- fFilterPage = new CPathFilterPage(fCurrProject, fFilterType);
+ fFilterPage = new CPathFilterPage(fCurrElement, fFilterType);
+ addPage(fFilterPage);
}
super.addPages();
}
@@ -144,7 +144,7 @@ public class CPathContainerWizard extends Wizard {
if (containerPage == null) {
containerPage = new CPathContainerDefaultPage();
}
- containerPage.initialize(fCurrProject, fCurrClasspath);
+ containerPage.initialize(fCurrElement.getCProject(), fCurrCPath);
containerPage.setSelection(fEntryToEdit);
containerPage.setWizard(this);
return containerPage;
@@ -162,9 +162,10 @@ public class CPathContainerWizard extends Wizard {
fContainerPage = getContainerPage(selected);
return fContainerPage;
} else if (page == fContainerPage) {
- if ( fContainerPage.getContainerEntries().length > 0 ) {
+ if ( fContainerPage.getContainerEntries().length > 0 && fContainerPage.getContainerEntries()[0] != null) {
fFilterPage.setParentEntry(fContainerPage.getContainerEntries()[0]);
}
+ return fFilterPage;
}
return super.getNextPage(page);
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.java
index 97b78c6aa75..5b485d3ea3e 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which accompanies
- * this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.properties
index 0d188134345..66bf9b731a2 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.properties
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathEntryMessages.properties
@@ -17,10 +17,40 @@ CPathsPropertyPage.unsavedchanges.button.save=Apply
CPathsPropertyPage.unsavedchanges.button.discard=Discard
CPathsPropertyPage.unsavedchanges.button.ignore=Apply Later
-
BuildPathsBlock.tab.libraries=&Libraries
-ProjectContainer.label=Project Path Entries
+
+# ------- CPathFilterPage-------
+
+CPathFilterPage.title=Container Paths
+CPathFilterPage.description=Select path which are to be contributed to the project.
+CPathFilterPage.label=C/C++ Container path:
+
+# ------- CPathContainerSelectionPage-------
+
+CPathContainerSelectionPage.title=Add Contributed
+CPathContainerSelectionPage.description=Select the library type to add.
+
+# ------- CPathContainerWizard-------
+
+CPathContainerWizard.pagecreationerror.title= Library Wizard
+CPathContainerWizard.pagecreationerror.message=Wizard page creation failed. Check log for details.
+
+# ------- CPathContainerDefaultPage-------
+
+CPathContainerDefaultPage.title=C/C++ Path Container
+CPathContainerDefaultPage.description=Edit the C/C++ container path. First segment is the container type.
+CPathContainerDefaultPage.path.label=&C/C++ path container path:
+CPathContainerDefaultPage.path.error.enterpath=Enter path.
+CPathContainerDefaultPage.path.error.invalidpath=Invalid path.
+CPathContainerDefaultPage.path.error.needssegment=Path needs at least one segment.
+CPathContainerDefaultPage.path.error.alreadyexists=Entry already exists.
+
+# -------- ProjectContainerPage ---------
+ProjectContainer.label=C/C++ Project Path Entries
+ProjectContainerPage.title=C/C++ Project Path Entries
+ProjectContainerPage.description=Select the C/C++ Project which contains path entries to be contributed to this project.
+ProjectContainerPage.label=C/C++ Projects:
# -------- ExtendingCPathBasePage ---------
ExtendingCPathBasePage.editSourcePaths=Edit Source Paths...
@@ -50,6 +80,10 @@ IncludeEntryPage.addExternal.title=Add External Include Path
IncludeEntryPage.addExternal.message=Include path:
IncludeEntryPage.ContainerDialog.new.title=Contributed Include Path Selection
IncludeEntryPage.ContainerDialog.edit.title=Contributed Include Path Selection
+IncludeEntryPage.fromWorkspaceDialog.new.title=New Include Path from Workspace
+IncludeEntryPage.fromWorkspaceDialog.new.description=Select a folder as a include path from the workspace.
+IncludeEntryPage.fromWorkspaceDialog.edit.title=Edit Include Path from Workspace
+IncludeEntryPage.fromWorkspaceDialog.edit.description=Select a folder as a include path from the workspace.
# ------- BuildPathsBlock -------
CPathsBlock.path.up.button=&Up
@@ -180,8 +214,6 @@ ExclusionPatternEntryDialog.ChooseExclusionPattern.description=&Choose a folder
# ------- CPListLabelProvider -------
CPListLabelProvider.new=(new)
-CPListLabelProvider.classcontainer=(class folder)
-CPListLabelProvider.twopart={0} - {1}
CPListLabelProvider.willbecreated=(will be created)
CPListLabelProvider.none=(None)
CPListLabelProvider.source_attachment.label=Source attachment:
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPage.java
index 8379ecf6365..806be89382a 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPage.java
@@ -1,11 +1,11 @@
-/*
- * Created on Apr 26, 2004
- *
- * Copyright (c) 2002,2003 QNX Software Systems Ltd.
+/*******************************************************************************
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors:
- * QNX Software Systems - Initial API and implementation
-***********************************************************************/
+ * Contributors: QNX Software Systems - initial API and implementation
+ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import java.util.Arrays;
@@ -13,9 +13,11 @@ import java.util.List;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IPathEntry;
import org.eclipse.cdt.core.model.IPathEntryContainer;
+import org.eclipse.cdt.internal.ui.CPluginImages;
import org.eclipse.cdt.internal.ui.viewsupport.ListContentProvider;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.core.resources.IProject;
@@ -23,9 +25,6 @@ import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
@@ -33,21 +32,24 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
-
public class CPathFilterPage extends WizardPage {
+
private final int fFilterType;
private CheckboxTableViewer viewer;
private IPathEntry fParentEntry;
private List fPaths;
- private ICProject fCProject;
-
- protected CPathFilterPage(ICProject cProject, int filterType) {
+ private ICElement fCElement;
+
+ protected CPathFilterPage(ICElement cElement, int filterType) {
super("CPathFilterPage"); //$NON-NLS-1$
+ setTitle(CPathEntryMessages.getString("CPathFilterPage.title")); //$NON-NLS-1$
+ setDescription(CPathEntryMessages.getString("CPathFilterPage.description")); //$NON-NLS-1$
+ setImageDescriptor(CPluginImages.DESC_WIZBAN_ADD_LIBRARY);
fFilterType = filterType;
- fCProject = cProject;
+ fCElement = cElement;
+ validatePage();
}
-
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
@@ -59,21 +61,13 @@ public class CPathFilterPage extends WizardPage {
GridData gd = new GridData();
gd.horizontalSpan = 2;
label.setLayoutData(gd);
- viewer =
- CheckboxTableViewer.newCheckList(
- container,
- SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+ viewer = CheckboxTableViewer.newCheckList(container, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
viewer.setContentProvider(new ListContentProvider());
viewer.setLabelProvider(new CPElementLabelProvider());
viewer.addCheckStateListener(new ICheckStateListener() {
+
public void checkStateChanged(CheckStateChangedEvent event) {
- // Prevent user to change checkbox states
- viewer.setChecked(event.getElement(), !event.getChecked());
- }
- });
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent e) {
- handleSelectionChanged((IStructuredSelection) e.getSelection());
+ validatePage();
}
});
viewer.addFilter(new CPElementFilter(fFilterType, true));
@@ -84,14 +78,12 @@ public class CPathFilterPage extends WizardPage {
setControl(container);
Dialog.applyDialogFont(container);
}
-
-
+
public void setVisible(boolean visible) {
if (fPaths != null) {
viewer.setInput(fPaths);
}
- }
- protected void handleSelectionChanged(IStructuredSelection selection) {
+ super.setVisible(visible);
}
public void setParentEntry(IPathEntry entry) {
@@ -107,15 +99,28 @@ public class CPathFilterPage extends WizardPage {
}
} else if (fParentEntry.getEntryKind() == IPathEntry.CDT_CONTAINER) {
try {
- IPathEntryContainer container = CoreModel.getPathEntryContainer(fParentEntry.getPath(), fCProject);
+ IPathEntryContainer container = CoreModel.getPathEntryContainer(fParentEntry.getPath(), fCElement.getCProject());
fPaths = Arrays.asList(container.getPathEntries());
} catch (CModelException e) {
}
}
}
-
- public IPathEntry[] getSelectedEntries() {
- return (IPathEntry[]) viewer.getCheckedElements();
+
+ /**
+ * Method validatePage.
+ */
+ private void validatePage() {
+ setPageComplete(getSelectedEntries().length > 0);
}
-}
+ public IPathEntry[] getSelectedEntries() {
+ if (viewer != null) {
+ Object[] paths = viewer.getCheckedElements();
+ IPathEntry[] entries = new IPathEntry[paths.length];
+ System.arraycopy(paths, 0, entries, 0, entries.length);
+ return entries;
+ }
+ return new IPathEntry[0];
+ }
+
+}
\ No newline at end of file
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPathPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPathPage.java
index fefc2a34c60..09a715c5b0e 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPathPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathFilterPathPage.java
@@ -1,11 +1,11 @@
-/*
- * Created on Apr 26, 2004
- *
- * Copyright (c) 2002,2003 QNX Software Systems Ltd.
+/*******************************************************************************
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors:
- * QNX Software Systems - Initial API and implementation
-***********************************************************************/
+ * Contributors: QNX Software Systems - initial API and implementation
+ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import org.eclipse.jface.wizard.Wizard;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathIncludeEntryPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathIncludeEntryPage.java
index f89f0310fbb..ab4414b4367 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathIncludeEntryPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathIncludeEntryPage.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which accompanies
- * this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
@@ -51,7 +50,7 @@ public class CPathIncludeEntryPage extends ExtendedCPathBasePage {
private static final int IDX_EDIT = 4;
private static final int IDX_REMOVE = 5;
- private static final String[] buttonLabel = new String[] {
+ private static final String[] buttonLabel = new String[]{
/* 0 */CPathEntryMessages.getString("IncludeEntryPage.addExternal"), //$NON-NLS-1$
/* 1 */CPathEntryMessages.getString("IncludeEntryPage.addFromWorkspace"), //$NON-NLS-1$
/* 2 */CPathEntryMessages.getString("IncludeEntryPage.addContributed"), null, //$NON-NLS-1$
@@ -65,23 +64,23 @@ public class CPathIncludeEntryPage extends ExtendedCPathBasePage {
protected void buttonPressed(int indx, List selected) {
switch (indx) {
- case IDX_ADD_USER:
+ case IDX_ADD_USER :
addInclude();
break;
- case IDX_ADD_WORKSPACE:
+ case IDX_ADD_WORKSPACE :
addFromWorkspace();
break;
- case IDX_ADD_CONTRIBUTED:
+ case IDX_ADD_CONTRIBUTED :
addContributed();
break;
- case IDX_EDIT:
+ case IDX_EDIT :
if (canEdit(selected)) {
- editInclude((CPElement) selected.get(0));
+ editInclude((CPElement)selected.get(0));
}
break;
- case IDX_REMOVE:
+ case IDX_REMOVE :
if (canRemove(selected)) {
- removeInclude((CPElement) selected.get(0));
+ removeInclude((CPElement)selected.get(0));
}
break;
}
@@ -109,7 +108,7 @@ public class CPathIncludeEntryPage extends ExtendedCPathBasePage {
protected boolean canEdit(List selected) {
if (!selected.isEmpty()) {
- return !isPathInheritedFromSelected((CPElement) selected.get(0));
+ return !isPathInheritedFromSelected((CPElement)selected.get(0));
}
return false;
}
@@ -130,7 +129,7 @@ public class CPathIncludeEntryPage extends ExtendedCPathBasePage {
newItem = dialog.getValue();
if (newItem != null && !newItem.equals("")) { //$NON-NLS-1$
List cplist = getPathList().getElements();
- ICElement element = (ICElement) getSelection().get(0);
+ ICElement element = (ICElement)getSelection().get(0);
CPElement newPath = new CPElement(element.getCProject(), IPathEntry.CDT_INCLUDE, element.getPath(),
element.getResource());
newPath.setAttribute(CPElement.INCLUDE, new Path(newItem));
@@ -166,7 +165,7 @@ public class CPathIncludeEntryPage extends ExtendedCPathBasePage {
}
protected CPElement[] openWorkspacePathEntryDialog(CPElement existing) {
- Class[] acceptedClasses = new Class[] { ICProject.class, IProject.class, IContainer.class, ICContainer.class};
+ Class[] acceptedClasses = new Class[]{ICProject.class, IProject.class, IContainer.class, ICContainer.class};
TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, existing == null);
ViewerFilter filter = new TypedViewerFilter(acceptedClasses);
@@ -191,16 +190,16 @@ public class CPathIncludeEntryPage extends ExtendedCPathBasePage {
if (dialog.open() == Window.OK) {
Object[] elements = dialog.getResult();
CPElement[] res = new CPElement[elements.length];
- ICElement element = (ICElement) getSelection().get(0);
+ ICElement element = (ICElement)getSelection().get(0);
for (int i = 0; i < res.length; i++) {
IProject project;
IPath includePath;
if (elements[i] instanceof IResource) {
- project = ((IResource) elements[i]).getProject();
- includePath = ((IResource) elements[i]).getProjectRelativePath();
+ project = ((IResource)elements[i]).getProject();
+ includePath = ((IResource)elements[i]).getProjectRelativePath();
} else {
- project = ((ICElement) elements[i]).getCProject().getProject();
- includePath = ((ICElement) elements[i]).getResource().getProjectRelativePath();
+ project = ((ICElement)elements[i]).getCProject().getProject();
+ includePath = ((ICElement)elements[i]).getResource().getProjectRelativePath();
}
res[i] = new CPElement(element.getCProject(), IPathEntry.CDT_INCLUDE, element.getPath(), element.getResource());
res[i].setAttribute(CPElement.BASE, project.getFullPath().makeRelative());
@@ -220,12 +219,13 @@ public class CPathIncludeEntryPage extends ExtendedCPathBasePage {
title = CPathEntryMessages.getString("IncludeEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
elem = existing.getPathEntry();
}
- CPathContainerWizard wizard = new CPathContainerWizard(elem, null, fCurrCProject, getRawClasspath(), IPathEntry.CDT_INCLUDE);
+ CPathContainerWizard wizard = new CPathContainerWizard(elem, null, (ICElement)getSelection().get(0), getRawClasspath(),
+ IPathEntry.CDT_INCLUDE);
wizard.setWindowTitle(title);
if (CPathContainerWizard.openWizard(getShell(), wizard) == Window.OK) {
IPathEntry parent = wizard.getEntriesParent();
IPathEntry[] elements = wizard.getEntries();
- IResource resource = ((ICElement) getSelection().get(0)).getResource();
+ IResource resource = ((ICElement)getSelection().get(0)).getResource();
if (elements != null) {
CPElement[] res = new CPElement[elements.length];
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathSymbolEntryPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathSymbolEntryPage.java
index 2315fe51af5..247914e1314 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathSymbolEntryPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPathSymbolEntryPage.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which accompanies
- * this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
@@ -47,15 +46,16 @@ public class CPathSymbolEntryPage extends ExtendedCPathBasePage {
addSymbol();
break;
case IDX_ADD_CONTRIBUTED :
+ addContributed();
break;
case IDX_EDIT :
if (canEdit(selected)) {
- editSymbol((CPElement) selected.get(0));
+ editSymbol((CPElement)selected.get(0));
}
break;
case IDX_REMOVE :
if (canRemove(selected)) {
- removeSymbol((CPElement) selected.get(0));
+ removeSymbol((CPElement)selected.get(0));
}
break;
}
@@ -73,7 +73,7 @@ public class CPathSymbolEntryPage extends ExtendedCPathBasePage {
protected boolean canEdit(List selected) {
if (!selected.isEmpty()) {
- return !isPathInheritedFromSelected((CPElement) selected.get(0));
+ return !isPathInheritedFromSelected((CPElement)selected.get(0));
}
return false;
}
@@ -105,7 +105,7 @@ public class CPathSymbolEntryPage extends ExtendedCPathBasePage {
symbol = dialog.getValue();
if (symbol != null && symbol.length() > 0) {
List cplist = getPathList().getElements();
- IResource resource = ((ICElement) getSelection().get(0)).getResource();
+ IResource resource = ((ICElement)getSelection().get(0)).getResource();
CPElement newPath = new CPElement(fCurrCProject, IPathEntry.CDT_MACRO, resource.getFullPath(), resource);
String name, value = ""; //$NON-NLS-1$
int index = symbol.indexOf("="); //$NON-NLS-1$
@@ -156,17 +156,18 @@ public class CPathSymbolEntryPage extends ExtendedCPathBasePage {
title = CPathEntryMessages.getString("SymbolEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
elem = existing.getPathEntry();
}
- CPathContainerWizard wizard = new CPathContainerWizard(elem, null, fCurrCProject, getRawClasspath(), IPathEntry.CDT_INCLUDE);
+ CPathContainerWizard wizard = new CPathContainerWizard(elem, null, (ICElement)getSelection().get(0), getRawClasspath(),
+ IPathEntry.CDT_MACRO);
wizard.setWindowTitle(title);
if (CPathContainerWizard.openWizard(getShell(), wizard) == Window.OK) {
IPathEntry parent = wizard.getEntriesParent();
IPathEntry[] elements = wizard.getEntries();
- IResource resource = ((ICElement) getSelection().get(0)).getResource();
+ IResource resource = ((ICElement)getSelection().get(0)).getResource();
if (elements != null) {
CPElement[] res = new CPElement[elements.length];
for (int i = 0; i < res.length; i++) {
res[i] = new CPElement(fCurrCProject, IPathEntry.CDT_MACRO, resource.getFullPath(), resource);
- res[i].setAttribute(CPElement.MACRO_NAME, ((IMacroEntry)elements[i]).getMacroName());
+ res[i].setAttribute(CPElement.MACRO_NAME, ((IMacroEntry)elements[i]).getMacroName());
res[i].setAttribute(CPElement.BASE_REF, parent.getPath());
}
return res;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternDialog.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternDialog.java
index e919c49892d..d18aab46488 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternDialog.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternDialog.java
@@ -1,13 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
+ * Contributors: QNX Software Systems - initial API and implementation
+ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import java.util.ArrayList;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternEntryDialog.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternEntryDialog.java
index ec33c1f2d82..2866cf731d8 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternEntryDialog.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExclusionPatternEntryDialog.java
@@ -1,10 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Common Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: IBM Corporation - initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExtendedCPathBasePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExtendedCPathBasePage.java
index 20f5eeedaba..97649dd49dc 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExtendedCPathBasePage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ExtendedCPathBasePage.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which accompanies
- * this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IContainerDescriptor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IContainerDescriptor.java
index 2fdf2f99669..6258921f0f4 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IContainerDescriptor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IContainerDescriptor.java
@@ -1,20 +1,22 @@
-/*
- * Created on Apr 27, 2004
- *
- * Copyright (c) 2002,2003 QNX Software Systems Ltd.
+/*******************************************************************************
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- ***********************************************************************/
+ * Contributors: QNX Software Systems - initial API and implementation
+ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import org.eclipse.cdt.core.model.IPathEntry;
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.swt.graphics.Image;
public interface IContainerDescriptor {
- public abstract ICPathContainerPage createPage() throws CoreException;
- public abstract String getName();
- public abstract boolean canEdit(IPathEntry entry);
+ public ICPathContainerPage createPage() throws CoreException;
+ public String getName();
+ public Image getImage();
+ public boolean canEdit(IPathEntry entry);
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsPropertyPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsPropertyPage.java
index 05f1593d0e8..4814910d4d4 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsPropertyPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsPropertyPage.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsTabBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsTabBlock.java
index 0aa34e187ea..cc201f93baf 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsTabBlock.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/IncludesSymbolsTabBlock.java
@@ -1,11 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2002, 2003, 2004 QNX Software Systems Ltd. and others. All
- * rights reserved. This program and the accompanying materials are made
- * available under the terms of the Common Public License v1.0 which accompanies
- * this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: QNX Software Systems - Initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/MultipleFolderSelectionDialog.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/MultipleFolderSelectionDialog.java
index 50de5233ecc..b607827e7fe 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/MultipleFolderSelectionDialog.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/MultipleFolderSelectionDialog.java
@@ -1,10 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Common Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: IBM Corporation - initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/NewSourceFolderDialog.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/NewSourceFolderDialog.java
index 0e7aa00e75b..76ebd595500 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/NewSourceFolderDialog.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/NewSourceFolderDialog.java
@@ -1,10 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Common Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/cpl-v10.html
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors: IBM Corporation - initial API and implementation
+ * Contributors: QNX Software Systems - initial API and implementation
******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerDescriptor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerDescriptor.java
index 90f8cb2d5c8..5e3d3c7e1d3 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerDescriptor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerDescriptor.java
@@ -1,16 +1,19 @@
-/*
- * Created on Apr 27, 2004
- *
- * Copyright (c) 2002,2003 QNX Software Systems Ltd.
+/*******************************************************************************
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors:
- * QNX Software Systems - Initial API and implementation
-***********************************************************************/
+ * Contributors: QNX Software Systems - initial API and implementation
+ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import org.eclipse.cdt.core.model.IPathEntry;
+import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.ide.IDE;
public class ProjectContainerDescriptor implements IContainerDescriptor {
private int fFilterType;
@@ -26,6 +29,11 @@ public class ProjectContainerDescriptor implements IContainerDescriptor {
public String getName() {
return CPathEntryMessages.getString("ProjectContainer.label"); //$NON-NLS-1$
}
+
+ public Image getImage() {
+ return CUIPlugin.getDefault().getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
+
+ }
public boolean canEdit(IPathEntry entry) {
return false;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerPage.java
index d14efde7a4d..78b81dada8e 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/ProjectContainerPage.java
@@ -1,25 +1,30 @@
-/***********************************************************************************************************************************
- * Created on Apr 27, 2004
+/*******************************************************************************
+ * Copyright (c) 2004 QNX Software Systems and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Copyright (c) 2002,2003 QNX Software Systems Ltd.
- *
- * Contributors: QNX Software Systems - Initial API and implementation
- **********************************************************************************************************************************/
+ * Contributors: QNX Software Systems - initial API and implementation
+ ******************************************************************************/
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IPathEntry;
import org.eclipse.cdt.internal.ui.CPluginImages;
-import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.cdt.internal.ui.util.SelectionUtil;
+import org.eclipse.cdt.internal.ui.viewsupport.ListContentProvider;
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.jface.wizard.WizardPage;
@@ -28,60 +33,14 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
public class ProjectContainerPage extends WizardPage implements ICPathContainerPage {
private int fFilterType;
- private CheckboxTableViewer viewer;
+ private TableViewer viewer;
private ICProject fCProject;
- private class WorkbenchCPathContentProvider extends WorkbenchContentProvider {
-
- public Object[] getChildren(Object element) {
- if (element instanceof ICProject) {
- try {
- IPathEntry[] entries = ((ICProject) element).getRawPathEntries();
- List list = new ArrayList(entries.length);
- for (int i = 0; i < entries.length; i++) {
- if (fFilterType == entries[i].getEntryKind() && entries[i].isExported()) {
- list.add(CPElement.createFromExisting(entries[i], (ICProject) element));
- }
- }
- return list.toArray();
- } catch (CModelException e) {
- CUIPlugin.getDefault().log(e);
- return new Object[0];
- }
- }
- return super.getChildren(element);
- }
-
- public boolean hasChildren(Object element) {
- if (element instanceof ICProject) {
- try {
- IPathEntry[] entries = ((ICProject) element).getRawPathEntries();
- for (int i = 0; i < entries.length; i++) {
- if (fFilterType == entries[i].getEntryKind() && entries[i].isExported()) {
- return true;
- }
- }
- } catch (CModelException e) {
- CUIPlugin.getDefault().log(e);
- return false;
- }
- }
- return super.hasChildren(element);
- }
-
- public Object getParent(Object element) {
- if (element instanceof CPElement) {
- return ((CPElement) element).getCProject().getProject();
- }
- return super.getParent(element);
- }
- }
-
protected ProjectContainerPage(int filterType) {
super("projectContainerPage"); //$NON-NLS-1$
setTitle(CPathEntryMessages.getString("ProjectContainerPage.title")); //$NON-NLS-1$
@@ -100,9 +59,16 @@ public class ProjectContainerPage extends WizardPage implements ICPathContainerP
}
public IPathEntry[] getContainerEntries() {
- return /*viewer != null ? (IPathEntry[]) viewer.getCheckedElements(): */new IPathEntry[0];
- }
+ if (viewer != null) {
+ ISelection selection = viewer.getSelection();
+ ICProject project = (ICProject)SelectionUtil.getSingleElement(selection);
+ if (project != null) {
+ return new IPathEntry[]{CoreModel.newProjectEntry(project.getPath())};
+ }
+ }
+ return new IPathEntry[0];
+ }
public void setSelection(IPathEntry containerEntry) {
if (containerEntry != null) {
viewer.setSelection(new StructuredSelection(containerEntry));
@@ -120,12 +86,13 @@ public class ProjectContainerPage extends WizardPage implements ICPathContainerP
GridData gd = new GridData();
gd.horizontalSpan = 2;
label.setLayoutData(gd);
- viewer = CheckboxTableViewer.newCheckList(container, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- viewer.setContentProvider(new WorkbenchCPathContentProvider());
- viewer.setLabelProvider(new CPElementLabelProvider());
- viewer.addCheckStateListener(new ICheckStateListener() {
+ viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- public void checkStateChanged(CheckStateChangedEvent event) {
+ viewer.setContentProvider(new ListContentProvider());
+ viewer.setLabelProvider(new WorkbenchLabelProvider());
+ viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ public void selectionChanged(SelectionChangedEvent event) {
validatePage();
}
});
@@ -136,13 +103,36 @@ public class ProjectContainerPage extends WizardPage implements ICPathContainerP
viewer.addFilter(new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement, Object element) {
- return true;
+ return !element.equals(fCProject);
}
});
setControl(container);
+ initializeView();
validatePage();
}
+ private void initializeView() {
+ List list = new ArrayList();
+ List current;
+ try {
+ current = Arrays.asList(fCProject.getRawPathEntries());
+ ICProject[] cProjects = CoreModel.getDefault().getCModel().getCProjects();
+ for (int i = 0; i < cProjects.length; i++) {
+ if (!cProjects[i].equals(fCProject) && !current.contains(CoreModel.newProjectEntry(cProjects[i].getPath()))) {
+ IPathEntry[] projEntries = cProjects[i].getRawPathEntries();
+ for (int j = 0; j < projEntries.length; j++) {
+ if (projEntries[j].getEntryKind() == fFilterType && projEntries[j].isExported()) {
+ list.add(cProjects[i]);
+ break;
+ }
+ }
+ }
+ }
+ } catch (CModelException e) {
+ }
+ viewer.setInput(list);
+ }
+
/**
* Method validatePage.
*/