Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] cdt ui

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.72
diff -u -r1.72 ChangeLog
--- ChangeLog	19 Mar 2003 20:21:39 -0000	1.72
+++ ChangeLog	27 Mar 2003 16:09:27 -0000
@@ -1,3 +1,32 @@
+2003-03-27 Alain Magloire
+
+	Some changes in the Core Model to make it closer to JDT, the hierarchy is now:
+	ICModel
+		ICProject
+			ICContainer
+				ITranslationUnit
+				IArchive
+				IBinary
+
+	We now adjust the code.
+
+	src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java
+	src/org/eclipse/cdt/internal/ui/BinaryPropertySource.java
+	src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java
+	src/org/eclipse/cdt/internal/ui/CElementImageProvider.java
+	src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java
+	src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java
+	src/org/eclipse/cdt/internal/ui/cview/CPatternFilter.java
+	src/org/eclipse/cdt/internal/ui/cview/CView.java
+	src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java
+	src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java
+	src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java
+	src/org/eclipse/cdt/internal/ui/editor/DocumentAdapter.java
+	src/org/eclipse/cdt/internal/ui/util/EditorUtility.java
+	src/org/eclipse/cdt/ui/CElementContentProvider.java
+	src/org/eclipse/cdt/ui/CElementLabelProvider.java
+	src/org/eclipse/cdt/ui/CUIPlugin.java
+
 2003-03-19 Alain Magloire
 
 	Patch From Amer Hoda, to use the Working Copy of ICElement use in
Index: src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java,v
retrieving revision 1.3
diff -u -r1.3 BaseCElementContentProvider.java
--- src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java	23 Sep 2002 16:44:44 -0000	1.3
+++ src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java	27 Mar 2003 16:09:30 -0000
@@ -8,19 +8,22 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.IArchive;
 import org.eclipse.cdt.core.model.IArchiveContainer;
+import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.IBinaryContainer;
+import org.eclipse.cdt.core.model.ICContainer;
 import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICFile;
+import org.eclipse.cdt.core.model.ICModel;
 import org.eclipse.cdt.core.model.ICProject;
 import org.eclipse.cdt.core.model.IParent;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
  
 /**
  * A base content provider for C elements. It provides access to the
@@ -33,11 +36,12 @@
  * <pre>
 C model (<code>ICModel</code>)
    C project (<code>ICProject</code>)
-      C Folder (<code>ICFolder</code>)
-      C File (<code>ICFile</code>)
+      C Container(folders) (<code>ICContainer</code>)
       Translation unit (<code>ITranslationUnit</code>)
       Binary file (<code>IBinary</code>)
       Archive file (<code>IArchive</code>)
+      Non C Resource file (<code>Object</code>)
+
  * </pre>
  */
 public class BaseCElementContentProvider implements ITreeContentProvider {
@@ -112,26 +116,18 @@
 	public Object[] getChildren(Object element) {
 		if (element instanceof ICElement) {
 			ICElement celement = (ICElement)element;		
-			if (celement.getElementType() == ICElement.C_FILE) {
+			if (celement instanceof ICModel) {
+				return  getCProjects((ICModel)celement);
+			} else if  (celement instanceof ICProject ) {
+				return getCProjectResources((ICProject)celement);
+			} else if (celement instanceof ICContainer) {
+				return getCResources((ICContainer)celement);
+			} else if (celement.getElementType() == ICElement.C_UNIT) {
 				if (fProvideMembers) {
 					return ((IParent)element).getChildren();
 				}
 			} else if (celement instanceof IParent) {
-				if  (celement instanceof ICProject ) {
-					ICElement[] children = ((IParent)celement).getChildren();
-					ArrayList list = new ArrayList(children.length);
-					for( int i = 0; i < children.length; i++ ) {
-						// Note, here we are starting the Archive and binary containers thread upfront.
-						if (children[i] instanceof IArchiveContainer || children[i] instanceof IBinaryContainer) {
-							if ( ((IParent)children[i]).getChildren().length == 0 ) {
-								continue;
-							}
-						}
-						list.add(children[i]);
-					}
-					return list.toArray();
-				} else
-					return (Object[])((IParent)celement).getChildren();
+				return (Object[])((IParent)celement).getChildren();
 			}
 		}
 		return getResources(element);
@@ -143,24 +139,26 @@
 	 */
 	public boolean hasChildren(Object element) {
 		if (fProvideMembers) {
-			if (element instanceof ICFile) {
-				ICFile cfile = (ICFile)element;
-				// assume TUs and binary files are never empty
-				if (cfile.isBinary() || cfile.isTranslationUnit() || cfile.isArchive()) {
-					return true;
-				}
+			// assume TUs and binary files are never empty
+			if (element instanceof IBinary || element instanceof ITranslationUnit || element instanceof IArchive) {
+				return true;
 			}
 		} else {
 			// don't allow to drill down into a compilation unit or class file
-			if (element instanceof ICFile || element instanceof IFile)
+			if (element instanceof ITranslationUnit || element instanceof IBinary || element instanceof IArchive) {
 				return false;
+			}
 		}
 			
 		if (element instanceof ICProject) {
 			ICProject cp= (ICProject)element;
 			if (!cp.getProject().isOpen()) {
 				return false;
-			}	
+			} else {
+				return true;	
+			}
+		} else if (element instanceof ICContainer) {
+			return true;
 		}
 		
 		if (element instanceof IParent) {
@@ -186,6 +184,36 @@
 		return null;
 	}
 	
+	protected Object[] getCProjects(ICModel cModel) {
+		return cModel.getCProjects();
+	}
+
+	protected Object[] getCProjectResources(ICProject cproject) {
+		Object[] objects = getCResources((ICContainer)cproject);
+		IArchiveContainer archives = cproject.getArchiveContainer(); 
+		if (archives.hasChildren()) {
+			objects = concatenate(objects, new Object[] {archives});
+		}
+		IBinaryContainer bins = cproject.getBinaryContainer(); 
+		if (bins.hasChildren()) {
+			objects = concatenate(objects, new Object[] {bins});
+		}
+		return objects;
+	}
+
+	protected Object[] getCResources(ICContainer container) {
+		Object[] objects = null;
+		Object[] children = container.getChildren();
+		try {
+			objects = container.getNonCResources();
+		} catch (CModelException e) {
+		}
+		if (objects == null) {
+			return children;
+		}
+		return concatenate(children, objects);
+	}
+
 	private Object[] getResources(Object resource) {
 		try {
 			if (resource instanceof IContainer) {
@@ -224,4 +252,18 @@
 		}
 		return true;
 	}
+
+
+	/**
+	 * Note: This method is for internal use only. Clients should not call this method.
+	 */
+	protected static Object[] concatenate(Object[] a1, Object[] a2) {
+		int a1Len = a1.length;
+		int a2Len = a2.length;
+		Object[] res = new Object[a1Len + a2Len];
+		System.arraycopy(a1, 0, res, 0, a1Len);
+		System.arraycopy(a2, 0, res, a1Len, a2Len); 
+		return res;
+	}
+
 }
Index: src/org/eclipse/cdt/internal/ui/BinaryPropertySource.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BinaryPropertySource.java,v
retrieving revision 1.3
diff -u -r1.3 BinaryPropertySource.java
--- src/org/eclipse/cdt/internal/ui/BinaryPropertySource.java	22 Nov 2002 16:32:54 -0000	1.3
+++ src/org/eclipse/cdt/internal/ui/BinaryPropertySource.java	27 Mar 2003 16:09:30 -0000
@@ -5,14 +5,14 @@
  * All Rights Reserved.
  */
  
+import org.eclipse.cdt.core.model.IBinary;
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.jface.viewers.IBasicPropertyConstants;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.FilePropertySource;
+import org.eclipse.ui.views.properties.IPropertySource;
 import org.eclipse.ui.views.properties.PropertyDescriptor;
 
-import org.eclipse.cdt.core.model.IBinary;
-import org.eclipse.cdt.ui.*;
-
-public class BinaryPropertySource extends FilePropertySource {
+public class BinaryPropertySource implements IPropertySource {
 	
 	private final static String ELF_CPU= "CElementProperties.elf_cpu";
 	private final static String ELF_TEXT= "CElementProperties.elf_text";
@@ -78,8 +78,7 @@
 	}
 	
 	public BinaryPropertySource(IBinary bin) {
-		super(bin.getFile());
-		this.binary= bin;
+		binary= bin;
 	}
 
 	/**
@@ -95,14 +94,15 @@
 	 * @see IPropertySource#getPropertyValue
 	 */	
 	public Object getPropertyValue(Object name) {
-		if (element != null) {
-			Object returnValue = super.getPropertyValue(name);
-
-			if(returnValue != null)
-				return returnValue;
-		}
-
-		if (name.equals(ICElementPropertyConstants.P_ELF_CPU)) {
+//		if (element != null) {
+//			Object returnValue = super.getPropertyValue(name);
+//
+//			if(returnValue != null)
+//				return returnValue;
+//		}
+		if (name.equals(IBasicPropertyConstants.P_TEXT)) {
+			return binary.getElementName();
+		} else if (name.equals(ICElementPropertyConstants.P_ELF_CPU)) {
 			return binary.getCPU();
 		} else if (name.equals(ICElementPropertyConstants.P_ELF_TEXT)) {
 			return Long.toString(binary.getText());
@@ -143,12 +143,40 @@
 	 * Return the Property Descriptors for the file type.
 	 */
 	private void initializeBinaryDescriptors() {
-		IPropertyDescriptor[] superDescriptors = super.getPropertyDescriptors();
-		int superLength = superDescriptors.length;
-		IPropertyDescriptor[] binDescriptors = getInitialPropertyDescriptor();
-		int binLength = binDescriptors.length;
-		fgPropertyDescriptors = new IPropertyDescriptor[superLength + binLength];
-		System.arraycopy(superDescriptors, 0, fgPropertyDescriptors, 0, superLength);
-		System.arraycopy(binDescriptors, 0, fgPropertyDescriptors, superLength, binLength);
+//		IPropertyDescriptor[] superDescriptors = super.getPropertyDescriptors();
+//		int superLength = superDescriptors.length;
+//		IPropertyDescriptor[] binDescriptors = getInitialPropertyDescriptor();
+//		int binLength = binDescriptors.length;
+//		fgPropertyDescriptors = new IPropertyDescriptor[superLength + binLength];
+//		System.arraycopy(superDescriptors, 0, fgPropertyDescriptors, 0, superLength);
+//		System.arraycopy(binDescriptors, 0, fgPropertyDescriptors, superLength, binLength);
+		fgPropertyDescriptors = getInitialPropertyDescriptor();
 	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
+	 */
+	public Object getEditableValue() {
+		return this;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
+	 */
+	public boolean isPropertySet(Object id) {
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
+	 */
+	public void resetPropertyValue(Object id) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
+	 */
+	public void setPropertyValue(Object id, Object value) {
+	}
+
 }
Index: src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java,v
retrieving revision 1.4
diff -u -r1.4 CElementAdapterFactory.java
--- src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java	10 Jan 2003 18:38:47 -0000	1.4
+++ src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java	27 Mar 2003 16:09:30 -0000
@@ -8,8 +8,6 @@
 import org.eclipse.cdt.core.model.CModelException;
 import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICFile;
-import org.eclipse.cdt.core.model.ICResource;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -51,21 +49,17 @@
 		
 		try {
 			if (IPropertySource.class.equals(key)) {
-				if (celem.getElementType() == ICElement.C_FILE) {
-					if (celem instanceof IBinary) {
-						return new BinaryPropertySource((IBinary)celem);
-					}
-					IFile file = ((ICFile)celem).getFile();
-					if (file != null) {
-						return new FilePropertySource(file);
+				if (celem instanceof IBinary) {
+					return new BinaryPropertySource((IBinary)celem);				
+				} else if (celem.getElementType() == ICElement.C_UNIT) {
+					IResource file = celem.getResource();
+					if (file != null && file instanceof IFile) {
+						return new FilePropertySource((IFile)file);
 					}
 				} else {
-					try {
-						if ( celem instanceof ICResource ) {
-							res = ((ICResource)celem).getResource();
-							return new ResourcePropertySource(res);
-						}	
-					} catch (CModelException e) {
+					res = celem.getResource();
+					if (res != null) {
+						return new ResourcePropertySource(res);
 					}
 				}
 				return new CElementPropertySource(celem);
Index: src/org/eclipse/cdt/internal/ui/CElementImageProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CElementImageProvider.java,v
retrieving revision 1.5
diff -u -r1.5 CElementImageProvider.java
--- src/org/eclipse/cdt/internal/ui/CElementImageProvider.java	26 Mar 2003 16:02:58 -0000	1.5
+++ src/org/eclipse/cdt/internal/ui/CElementImageProvider.java	27 Mar 2003 16:09:31 -0000
@@ -5,22 +5,19 @@
  * All Rights Reserved.
  */
 
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
 import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICFile;
 import org.eclipse.cdt.core.model.ICProject;
 import org.eclipse.cdt.core.model.IMember;
 import org.eclipse.cdt.core.model.IMethodDeclaration;
 import org.eclipse.cdt.internal.ui.util.ImageDescriptorRegistry;
-import org.eclipse.cdt.ui.*;
+import org.eclipse.cdt.ui.CElementImageDescriptor;
+import org.eclipse.cdt.ui.CUIPlugin;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IAdaptable;
-
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.model.IWorkbenchAdapter;
 
@@ -96,9 +93,9 @@
 		if (element instanceof ICElement) {
 			descriptor= getCImageDescriptor((ICElement) element, flags);
 		}
-		if (descriptor == null && element instanceof ICFile) {
-			element = ((ICFile)element).getFile();
-		}
+//		if (descriptor == null && element instanceof ICFile) {
+//			element = ((ICFile)element).getFile();
+//		}
 		if (descriptor == null && element instanceof IAdaptable) {
 			descriptor= getWorkbenchImageDescriptor((IAdaptable) element, flags);
 		}
@@ -159,31 +156,30 @@
 	public ImageDescriptor getBaseImageDescriptor(ICElement celement, int renderFlags) {
 		int type = celement.getElementType();
 		switch (type) {
-			case ICElement.C_CONTAINER:
+			case ICElement.C_VCONTAINER:
 				return CPluginImages.DESC_OBJS_CONTAINER;
 
-			case ICElement.C_FILE:
-				ICFile cfile = (ICFile)celement;
-				if (cfile.isArchive()) {
-					return CPluginImages.DESC_OBJS_ARCHIVE;
-				} else if (cfile.isBinary()) {
-					IBinary bin = (IBinary)cfile;
-					if (bin.isExecutable()) {
-						if (bin.hasDebug())
-							return CPluginImages.DESC_OBJS_CEXEC_DEBUG;
-						return CPluginImages.DESC_OBJS_CEXEC;
-					} else if (bin.isSharedLib()) {
-						return CPluginImages.DESC_OBJS_SHLIB;
-					} else if (bin.isCore()) {
-						return CPluginImages.DESC_OBJS_CORE;
-					}
-					return CPluginImages.DESC_OBJS_BINARY;
-				} else if (cfile.isTranslationUnit()) {
-					return CPluginImages.DESC_OBJS_TUNIT;
+			case ICElement.C_BINARY: {
+				IBinary bin = (IBinary)celement;
+				if (bin.isExecutable()) {
+					if (bin.hasDebug())
+						return CPluginImages.DESC_OBJS_CEXEC_DEBUG;
+					return CPluginImages.DESC_OBJS_CEXEC;
+				} else if (bin.isSharedLib()) {
+					return CPluginImages.DESC_OBJS_SHLIB;
+				} else if (bin.isCore()) {
+					return CPluginImages.DESC_OBJS_CORE;
 				}
-				break;
+				return CPluginImages.DESC_OBJS_BINARY;
+			}
+	
+			case ICElement.C_ARCHIVE:
+				return CPluginImages.DESC_OBJS_ARCHIVE;
+
+			case ICElement.C_UNIT:
+				return CPluginImages.DESC_OBJS_TUNIT;
 				
-			case ICElement.C_FOLDER:
+			case ICElement.C_CCONTAINER:
 				return DESC_OBJ_FOLDER;
 			
 			case ICElement.C_PROJECT:
@@ -241,10 +237,10 @@
 	
 	public ImageDescriptor getCElementImageDescriptor(int type) {
 		switch (type) {
-			case ICElement.C_CONTAINER:
+			case ICElement.C_VCONTAINER:
 				return CPluginImages.DESC_OBJS_CONTAINER;
 
-			case ICElement.C_FILE:
+			case ICElement.C_UNIT:
 				return CPluginImages.DESC_OBJS_TUNIT;
 
 			case ICElement.C_STRUCT:
Index: src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java,v
retrieving revision 1.4
diff -u -r1.4 ErrorTickAdornmentProvider.java
--- src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java	4 Feb 2003 20:00:45 -0000	1.4
+++ src/org/eclipse/cdt/internal/ui/ErrorTickAdornmentProvider.java	27 Mar 2003 16:09:32 -0000
@@ -7,11 +7,10 @@
 
 import org.eclipse.cdt.core.model.ICElement;
 import org.eclipse.cdt.core.model.ICModelMarker;
-import org.eclipse.cdt.core.model.ICResource;
 import org.eclipse.cdt.core.model.ISourceRange;
 import org.eclipse.cdt.core.model.ISourceReference;
 import org.eclipse.cdt.core.model.ITranslationUnit;
-import org.eclipse.cdt.ui.*;
+import org.eclipse.cdt.ui.CUIPlugin;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
@@ -41,10 +40,10 @@
 				int type= element.getElementType();
 				switch (type) {
 					case ICElement.C_PROJECT:
-					case ICElement.C_FOLDER:
-						return getErrorTicksFromMarkers(((ICResource)element).getResource(), IResource.DEPTH_INFINITE, null);
-					case ICElement.C_FILE:
-						return getErrorTicksFromMarkers(((ICResource)element).getResource(), IResource.DEPTH_ONE, null);
+					case ICElement.C_CCONTAINER:
+						return getErrorTicksFromMarkers(element.getResource(), IResource.DEPTH_INFINITE, null);
+					case ICElement.C_UNIT:
+						return getErrorTicksFromMarkers(element.getResource(), IResource.DEPTH_ONE, null);
 					case ICElement.C_FUNCTION:
 					case ICElement.C_CLASS:
 					case ICElement.C_UNION:
Index: src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java,v
retrieving revision 1.3
diff -u -r1.3 CStructureCreator.java
--- src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java	6 Feb 2003 20:48:31 -0000	1.3
+++ src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java	27 Mar 2003 16:09:32 -0000
@@ -64,7 +64,7 @@
 			
 		Document doc= new Document(s != null ? s : "");
 				
-		CNode root= new CNode(null, ICElement.C_FILE, "root", doc, 0, 0);		
+		CNode root= new CNode(null, ICElement.C_UNIT, "root", doc, 0, 0);		
 				
 		DocumentInputStream is= new DocumentInputStream(doc);
 		IStructurizerCallback callback= new CNodeTreeConstructor(root, doc);
Index: src/org/eclipse/cdt/internal/ui/cview/CPatternFilter.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CPatternFilter.java,v
retrieving revision 1.2
diff -u -r1.2 CPatternFilter.java
--- src/org/eclipse/cdt/internal/ui/cview/CPatternFilter.java	29 Oct 2002 21:40:58 -0000	1.2
+++ src/org/eclipse/cdt/internal/ui/cview/CPatternFilter.java	27 Mar 2003 16:09:33 -0000
@@ -17,7 +17,7 @@
 import org.eclipse.cdt.internal.ui.util.StringMatcher;
 import org.eclipse.cdt.ui.CUIPlugin;
 
-import org.eclipse.cdt.core.model.ICFolder;
+import org.eclipse.cdt.core.model.ICContainer;
 import org.eclipse.cdt.core.model.ICProject;
 
 public class CPatternFilter extends ViewerFilter {
@@ -108,7 +108,7 @@
 
 		// Only apply the rule for Projects and folders. 
 		if (parentElement instanceof ICProject
-			|| parentElement instanceof ICFolder) {
+			|| parentElement instanceof ICContainer) {
 			if (resource != null) {
 				String name = resource.getName();
 				StringMatcher[] testMatchers = getMatchers();
Index: src/org/eclipse/cdt/internal/ui/cview/CView.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java,v
retrieving revision 1.15
diff -u -r1.15 CView.java
--- src/org/eclipse/cdt/internal/ui/cview/CView.java	20 Feb 2003 21:15:19 -0000	1.15
+++ src/org/eclipse/cdt/internal/ui/cview/CView.java	27 Mar 2003 16:09:36 -0000
@@ -14,8 +14,7 @@
 import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.IBinaryContainer;
 import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICFile;
-import org.eclipse.cdt.core.model.ICRoot;
+import org.eclipse.cdt.core.model.ICModel;
 import org.eclipse.cdt.core.model.IParent;
 import org.eclipse.cdt.core.resources.MakeUtil;
 import org.eclipse.cdt.internal.ui.StandardCElementLabelProvider;
@@ -263,7 +262,7 @@
                 
 		public void treeExpanded(TreeExpansionEvent event) {
 			final Object element= event.getElement();
-			if (element instanceof ICFile) {
+			if (element instanceof IParent) {
 				//viewer.refresh (element);
 				Control ctrl= viewer.getControl();
 				if (ctrl != null && !ctrl.isDisposed()) {
@@ -447,7 +446,7 @@
 		else
 			initFilterFromPreferences();
 
-		viewer.setInput (CoreModel.getDefault().getCRoot());
+		viewer.setInput (CoreModel.getDefault().getCModel());
 
 		MenuManager menuMgr= new MenuManager("#PopupMenu"); //$NON-NLS-1$
 		menuMgr.setRemoveAllWhenShown(true);
@@ -967,7 +966,7 @@
 				ICElement celement = (ICElement)o;
 				IResource res  = (IResource)celement.getAdapter(IResource.class);
 				if (res != null) {
-					if (celement.getElementType() == ICElement.C_CONTAINER) {   
+					if (celement.getElementType() == ICElement.C_VCONTAINER) {   
 						ICElement parent = celement.getParent();
 						IResource proj = (IResource)parent.getAdapter(IResource.class);
 						if (celement instanceof IArchiveContainer)
@@ -993,7 +992,7 @@
 	void updateTitle () {
 		Object input= getViewer().getInput();
 		String viewName= getConfigurationElement().getAttribute("name"); //$NON-NLS-1$
-		if (input == null || (input instanceof ICRoot)) {
+		if (input == null || (input instanceof ICModel)) {
 			setTitle(viewName);
 			setTitleToolTip(""); //$NON-NLS-1$
 		} else {
Index: src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java,v
retrieving revision 1.1
diff -u -r1.1 CViewDragAdapter.java
--- src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java	26 Jun 2002 20:55:44 -0000	1.1
+++ src/org/eclipse/cdt/internal/ui/cview/CViewDragAdapter.java	27 Mar 2003 16:09:37 -0000
@@ -9,6 +9,8 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.ICElement;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.viewers.ISelection;
@@ -22,11 +24,6 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.part.ResourceTransfer;
 
-import org.eclipse.cdt.core.model.CModelException;
-import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICFile;
-import org.eclipse.cdt.core.model.ICFolder;
-
 /**
  * Implements drag behaviour when items are dragged out of the
  * resource navigator.
@@ -102,7 +99,15 @@
 		IStructuredSelection selection = (IStructuredSelection)selectionProvider.getSelection();
 		for (Iterator i = selection.iterator(); i.hasNext();) {
 			Object next = i.next();
-			if (!(next instanceof ICFile || next instanceof ICFolder)) {
+			IResource res = null;
+			if (next instanceof ICElement) {
+				ICElement celement = (ICElement)next;
+				try {
+					res = celement.getResource();
+				} catch (CModelException e) {
+				}
+			}
+			if (res == null) {
 				event.doit = false;
 				return;
 			}
Index: src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java,v
retrieving revision 1.3
diff -u -r1.3 CViewSorter.java
--- src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java	23 Jan 2003 16:50:06 -0000	1.3
+++ src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java	27 Mar 2003 16:09:37 -0000
@@ -9,17 +9,20 @@
 import org.eclipse.cdt.core.model.CoreModel;
 import org.eclipse.cdt.core.model.IArchive;
 import org.eclipse.cdt.core.model.IArchiveContainer;
+import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.IBinaryContainer;
+import org.eclipse.cdt.core.model.ICContainer;
 import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICFile;
-import org.eclipse.cdt.core.model.ICFolder;
+import org.eclipse.cdt.core.model.ICModel;
 import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.core.model.ICRoot;
 import org.eclipse.cdt.core.model.IFunction;
 import org.eclipse.cdt.core.model.IFunctionDeclaration;
 import org.eclipse.cdt.core.model.IInclude;
 import org.eclipse.cdt.core.model.IMacro;
+import org.eclipse.cdt.core.model.IMethod;
+import org.eclipse.cdt.core.model.IMethodDeclaration;
 import org.eclipse.cdt.core.model.INamespace;
+import org.eclipse.cdt.core.model.ITranslationUnit;
 import org.eclipse.cdt.core.model.IUsing;
 import org.eclipse.cdt.core.model.IVariable;
 import org.eclipse.cdt.core.model.IVariableDeclaration;
@@ -38,7 +41,7 @@
 public class CViewSorter extends ViewerSorter { 
 	
 	public int category (Object element) {
-		if (element instanceof ICRoot) {
+		if (element instanceof ICModel) {
 			return 0;
 		} else if (element instanceof ICProject) {
 			return 10;
@@ -46,12 +49,12 @@
 			return 20;
 		} else if (element instanceof IArchiveContainer) {
 			return 30;
-		} else if (element instanceof ICFolder) {
+		} else if (element instanceof ICContainer) {
 			return 40;
-		} else if (element instanceof ICFile) {
+		} else if (element instanceof ITranslationUnit) {
 			IResource res = null;
 			try {
-				res = ((ICFile)element).getUnderlyingResource();
+				res = ((ITranslationUnit)element).getUnderlyingResource();
 			} catch (CModelException e) {
 			}
 			if (res != null) {
@@ -66,7 +69,7 @@
 					String[] sources = CoreModel.getDefault().getSourceExtensions();
 					for (int i = 0; i < sources.length; i++) {
 						if (ext.equals(sources[i])) {
-							return 44;
+							return 47;
 						}
 					}					
 					return 48;
@@ -82,40 +85,44 @@
 			return 80;
 		} else if (element instanceof IUsing) {
 			return 90;
-		} else if (element instanceof IFunctionDeclaration) {
+		} else if (element instanceof IFunctionDeclaration && ! (element instanceof IFunction)) {
 			return 100;
-		} else if (element instanceof IVariableDeclaration) {
+		} else if (element instanceof IMethodDeclaration && !(element instanceof IMethod)) {
 			return 110;
+		} else if (element instanceof IVariableDeclaration) {
+			return 120;
 		} else if (element instanceof IVariable) {
 			String name = ((ICElement)element).getElementName();
 			if (name.startsWith("__")) {
-				return 112;
+				return 122;
 			}
 			if (name.charAt(0) == '_') {
-				return 114;
+				return 124;
 			}
-			return 120;
+			return 130;
 		} else if (element instanceof IFunction) {
 			String name = ((ICElement)element).getElementName();
 			if (name.startsWith("__")) {
-				return 122;
+				return 132;
 			}
 			if (name.charAt(0) == '_') {
-				return 124;
+				return 134;
 			}
-			return 130;
+			return 140;
 		} else if (element instanceof ICElement) {
 			String name = ((ICElement)element).getElementName();
 			if (name.startsWith("__")) {
-				return 132;
+				return 142;
 			}
 			if (name.charAt(0) == '_') {
-				return 134;
+				return 144;
 			}
-			return 140;
-		} else if (element instanceof IArchive) {
 			return 150;
+		} else if (element instanceof IArchive) {
+			return 160;
+		} else if (element instanceof IBinary) {
+			return 170;
 		}
-		return 80;
+		return 200;
 	}
 }
Index: src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java,v
retrieving revision 1.9
diff -u -r1.9 CDocumentProvider.java
--- src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java	19 Mar 2003 20:21:08 -0000	1.9
+++ src/org/eclipse/cdt/internal/ui/editor/CDocumentProvider.java	27 Mar 2003 16:09:38 -0000
@@ -11,9 +11,9 @@
 
 import org.eclipse.cdt.core.model.CModelException;
 import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.model.ICOpenable;
+import org.eclipse.cdt.core.model.IBuffer;
+import org.eclipse.cdt.core.model.IOpenable;
 import org.eclipse.cdt.core.model.ITranslationUnit;
-import org.eclipse.cdt.internal.core.model.IBuffer;
 import org.eclipse.cdt.internal.core.model.IBufferFactory;
 import org.eclipse.cdt.internal.core.model.IWorkingCopy;
 import org.eclipse.cdt.internal.ui.CStatusConstants;
@@ -111,7 +111,7 @@
 			return CDocumentProvider.this.createDocument(input);
 		}
 			
-		public IBuffer createBuffer(ICOpenable owner) {
+		public IBuffer createBuffer(IOpenable owner) {
 			try {
 				if (owner instanceof IWorkingCopy) {
 						
Index: src/org/eclipse/cdt/internal/ui/editor/DocumentAdapter.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/DocumentAdapter.java,v
retrieving revision 1.1
diff -u -r1.1 DocumentAdapter.java
--- src/org/eclipse/cdt/internal/ui/editor/DocumentAdapter.java	19 Mar 2003 20:21:08 -0000	1.1
+++ src/org/eclipse/cdt/internal/ui/editor/DocumentAdapter.java	27 Mar 2003 16:09:39 -0000
@@ -16,11 +16,11 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.cdt.core.model.BufferChangedEvent;
 import org.eclipse.cdt.core.model.CModelException;
-import org.eclipse.cdt.core.model.ICOpenable;
-import org.eclipse.cdt.internal.core.model.BufferChangedEvent;
-import org.eclipse.cdt.internal.core.model.IBuffer;
-import org.eclipse.cdt.internal.core.model.IBufferChangedListener;
+import org.eclipse.cdt.core.model.IBuffer;
+import org.eclipse.cdt.core.model.IBufferChangedListener;
+import org.eclipse.cdt.core.model.IOpenable;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -74,7 +74,7 @@
 			return 0;
 		}
 		
-		public ICOpenable getOwner() {
+		public IOpenable getOwner() {
 			return null;
 		}
 		
@@ -163,7 +163,7 @@
 		}
 	};
 
-	private ICOpenable fOwner;
+	private IOpenable fOwner;
 	private IDocument fDocument;
 	private DocumentSetCommand fSetCmd= new DocumentSetCommand();
 	private DocumentReplaceCommand fReplaceCmd= new DocumentReplaceCommand();
@@ -178,7 +178,7 @@
 	private IStatus fStatus;
 
 	
-	public DocumentAdapter(ICOpenable owner, IDocument document, ILineTracker lineTracker, CDocumentProvider provider, Object providerKey) {
+	public DocumentAdapter(IOpenable owner, IDocument document, ILineTracker lineTracker, CDocumentProvider provider, Object providerKey) {
 		
 			Assert.isNotNull(document);
 			Assert.isNotNull(lineTracker);
@@ -352,8 +352,8 @@
 	/**
 	 * @see org.eclipse.cdt.internal.core.model.IBuffer#getOwner()
 	 */
-	public ICOpenable getOwner() {
-		return (ICOpenable) fOwner;
+	public IOpenable getOwner() {
+		return (IOpenable) fOwner;
 	}
 
 	/**
Index: src/org/eclipse/cdt/internal/ui/util/EditorUtility.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/util/EditorUtility.java,v
retrieving revision 1.4
diff -u -r1.4 EditorUtility.java
--- src/org/eclipse/cdt/internal/ui/util/EditorUtility.java	4 Feb 2003 20:00:45 -0000	1.4
+++ src/org/eclipse/cdt/internal/ui/util/EditorUtility.java	27 Mar 2003 16:09:41 -0000
@@ -124,7 +124,11 @@
 		IStorage store = null;
 		Process objdump = null;
 		IPath path;
-		IFile file =  bin.getFile();
+		IResource file = null;
+		try {
+			file = bin.getResource();
+		} catch (CModelException e1) {
+		}
 		if (file == null)
 			return store;
 		path = file.getLocation();
Index: src/org/eclipse/cdt/ui/CElementContentProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CElementContentProvider.java,v
retrieving revision 1.2
diff -u -r1.2 CElementContentProvider.java
--- src/org/eclipse/cdt/ui/CElementContentProvider.java	24 Feb 2003 16:39:53 -0000	1.2
+++ src/org/eclipse/cdt/ui/CElementContentProvider.java	27 Mar 2003 16:09:42 -0000
@@ -13,15 +13,13 @@
 import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.ICElement;
 import org.eclipse.cdt.core.model.ICElementDelta;
-import org.eclipse.cdt.core.model.ICFile;
+import org.eclipse.cdt.core.model.ICModel;
 import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.core.model.ICRoot;
 import org.eclipse.cdt.core.model.IElementChangedListener;
 import org.eclipse.cdt.core.model.IParent;
 import org.eclipse.cdt.core.model.ITranslationUnit;
 import org.eclipse.cdt.internal.ui.BaseCElementContentProvider;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.jface.viewers.Viewer;
@@ -50,7 +48,7 @@
 		fViewer = (StructuredViewer)viewer;
 
 		if (oldInput == null && newInput != null) {
-			if (newInput instanceof ICRoot)
+			if (newInput instanceof ICModel)
 				CoreModel.getDefault().addElementChangedListener(this);
 		} else if (oldInput != null && newInput == null) {
 			CoreModel.getDefault().removeElementChangedListener(this);
@@ -103,22 +101,16 @@
 		if (kind == ICElementDelta.REMOVED) {
 			Object parent = getParent(element);
 			postRemove(element);
-			if (element instanceof ICFile) {
-				ICFile cfile = (ICFile)element;
-				if (updateContainer(cfile)) {
-					postRefresh(parent);
-				}
+			if (updateContainer(element)) {
+				postRefresh(parent);
 			}
 		}
 
 		if (kind == ICElementDelta.ADDED) {
 			Object parent= getParent(element);
 			postAdd(parent, element);
-			if (element instanceof ICFile) {
-				ICFile cfile = (ICFile)element;
-				if (updateContainer(cfile)) {
-					postRefresh(parent);
-				}
+			if (updateContainer(element)) {
+				postRefresh(parent);
 			}
 		}
 
@@ -141,50 +133,50 @@
 		}
 
 		// Make sure that containers are updated.
-		//if (element instanceof ICRoot) {
-		//	updateContainer((ICRoot)element);
+		//if (element instanceof ICModel) {
+		//	updateContainer((ICModel)element);
 		//}
 	}
 
-	private void updateContainer(ICRoot root) {
-		postRunnable(new Runnable() {
-			public void run () {
-				Control ctrl= fViewer.getControl();
-				if (ctrl != null && !ctrl.isDisposed()) {
-					IStructuredSelection s = (IStructuredSelection)fViewer.getSelection();
-					if (s.isEmpty())
-						return;
-					Object element = s.getFirstElement();
-					if (element instanceof ICProject) {
-						updateContainer((ICProject)element);
-					}
-				}
-			}
-		});
-	}
-
-	protected boolean updateContainer(ICProject cproject) {
-		IParent binContainer = cproject.getBinaryContainer();
-		IParent libContainer = cproject.getArchiveContainer();
-		if (binContainer != null) {
-			postContainerRefresh(binContainer, cproject);
-		}
-		if (libContainer != null) {
-			postContainerRefresh(libContainer, cproject);
-		}
-		return false;
-	}
+//	private void updateContainer(ICModel root) {
+//		postRunnable(new Runnable() {
+//			public void run () {
+//				Control ctrl= fViewer.getControl();
+//				if (ctrl != null && !ctrl.isDisposed()) {
+//					IStructuredSelection s = (IStructuredSelection)fViewer.getSelection();
+//					if (s.isEmpty())
+//						return;
+//					Object element = s.getFirstElement();
+//					if (element instanceof ICProject) {
+//						updateContainer((ICProject)element);
+//					}
+//				}
+//			}
+//		});
+//	}
+
+//	protected boolean updateContainer(ICProject cproject) {
+//		IParent binContainer = cproject.getBinaryContainer();
+//		IParent libContainer = cproject.getArchiveContainer();
+//		if (binContainer != null) {
+//			postContainerRefresh(binContainer, cproject);
+//		}
+//		if (libContainer != null) {
+//			postContainerRefresh(libContainer, cproject);
+//		}
+//		return false;
+//	}
 
-	private boolean updateContainer(ICFile cfile) {
+	private boolean updateContainer(ICElement cfile) {
 		IParent container = null;
 		ICProject cproject = null;
-		if (cfile.isBinary()) {
+		if (cfile instanceof IBinary) {
 			IBinary bin = (IBinary)cfile;
 			if (bin.isExecutable() || bin.isSharedLib()) {
 				cproject = bin.getCProject();
 				container = cproject.getBinaryContainer();
 			}
-		} else if (cfile.isArchive()) {
+		} else if (cfile instanceof IArchive) {
 			cproject = cfile.getCProject();
 			container = cproject.getArchiveContainer();
 		}
Index: src/org/eclipse/cdt/ui/CElementLabelProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CElementLabelProvider.java,v
retrieving revision 1.3
diff -u -r1.3 CElementLabelProvider.java
--- src/org/eclipse/cdt/ui/CElementLabelProvider.java	26 Mar 2003 16:02:58 -0000	1.3
+++ src/org/eclipse/cdt/ui/CElementLabelProvider.java	27 Mar 2003 16:09:42 -0000
@@ -7,7 +7,6 @@
  
 import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICFile;
 import org.eclipse.cdt.core.model.IFunctionDeclaration;
 import org.eclipse.cdt.core.model.IVariable;
 import org.eclipse.cdt.core.model.IVariableDeclaration;
@@ -109,11 +108,7 @@
 				return result;
 			}
 		}
-		if(element instanceof ICFile) {
-			//element = ((ICFile)element).getFile();
-		}
 		return fWorkbenchLabelProvider.getImage(element);
-
 	}
 
 	/**
Index: src/org/eclipse/cdt/ui/CUIPlugin.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java,v
retrieving revision 1.7
diff -u -r1.7 CUIPlugin.java
--- src/org/eclipse/cdt/ui/CUIPlugin.java	19 Mar 2003 20:21:29 -0000	1.7
+++ src/org/eclipse/cdt/ui/CUIPlugin.java	27 Mar 2003 16:09:43 -0000
@@ -145,7 +145,7 @@
 	/**
 	 * Returns the used document provider
 	 */
-	public CDocumentProvider getDocumentProvider() {
+	public synchronized CDocumentProvider getDocumentProvider() {
 		if (fDocumentProvider == null) {
 			fDocumentProvider = new CDocumentProvider();
 		}
@@ -156,7 +156,7 @@
 	 * Returns the working copy manager
 	 * @return IWorkingCopyManager
 	 */
-	public synchronized IWorkingCopyManager getWorkingCopyManager() {
+	public IWorkingCopyManager getWorkingCopyManager() {
 		return getDocumentProvider();
 	}
 



Back to the top