Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Fixes to the Conversion wizards and supporting classes. part 2 CD T

cvs diff -N -u "ChangeLog"
  Index: ChangeLog
  ===================================================================
  RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
  retrieving revision 1.20
  diff -u -r1.20 ChangeLog
  --- ChangeLog	13 Nov 2002 18:50:41 -0000	1.20
  +++ ChangeLog	13 Nov 2002 20:37:12 -0000
  @@ -1,3 +1,38 @@
  +2002-11-13 Judy N. Green
  +	*/home/tools/org.eclipse.cdt.ui/plugin.properties
  +	*/home/tools/org.eclipse.cdt.ui/plugin.xml
  +	updated labels & wizards to use combined conversion wizard
  +	
  +	*src/org/eclipse/cdt/internal/ui/CPluginResources.properties
  +	updated labels
  +	
  +	*src/org/eclipse/cdt/ui/wizards/StdMakeProjectWizard.java
  +	No longer add builder in run method. it is being added in enough
other places 
  +
  +	*src/org/eclipse/cdt/ui/wizards/conversion/ConversionWizard.java
  +	updated reference to call combined conversion page
  +	
  +
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertProjectWizardPage.java
  +	Moved common c/c== conversion methods up to this shared class
  +	
  +	
  +	Added:
  +
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeConversionWizard.
java
  +
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeProjectWizardPage
.java
  +	Combined the C/C++ conversion wizards to this class
  +	
  +	Removed:
  +
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertSimpleToCCStdMakeProjectWi
zardPage.java
  +
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertCtoCCStdMakeProjectWizardP
age.java
  +
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertSimpleToCStdMakeProjectWiz
ardPage.java
  +
*src/org/eclipse/cdt/ui/wizards/conversion/CtoCCConversionWizard.java
  +
*src/org/eclipse/cdt/ui/wizards/conversion/SimpleToCCStdMakeConversionWizard
.java
  +	
  +	
  +	
  +	
  +	
  +
   2002-11-13 Alain Magloire
   
   	* src/.../internal/ui/editor/ProblemPainter.java (hasProblem):

Index: src/org/eclipse/cdt/core/CCProjectNature.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCProjectNature.java,v
retrieving revision 1.3
diff -u -r1.3 CCProjectNature.java
--- src/org/eclipse/cdt/core/CCProjectNature.java	30 Oct 2002 19:55:36 -0000	1.3
+++ src/org/eclipse/cdt/core/CCProjectNature.java	13 Nov 2002 18:26:55 -0000
@@ -8,6 +8,8 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 
 
 
@@ -22,5 +24,20 @@
 	public static void removeCCNature(IProject project, IProgressMonitor mon) throws CoreException {
 		removeNature(project, CC_NATURE_ID, mon);
 	}
+	
+	/**
+	 * Checks to ensure that a cnature already exists,
+	 * if not throw a CoreException. Does NOT add a default builder
+     * @see IProjectNature#configure
+     */
+    public void configure() throws CoreException {
+    	if (!getProject().hasNature(CProjectNature.C_NATURE_ID)){
+    		IStatus status = new Status(IStatus.ERROR, 
+    									CCorePlugin.PLUGIN_ID, 
+    									CCorePlugin.CDT_PROJECT_NATURE_ID_MISMATCH, 
+    									"project must have a cnature", null); // $NON_NLS
+    		throw new CoreException(status);
+    	}
+    }
 
 }
Index: src/org/eclipse/cdt/core/CCorePlugin.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java,v
retrieving revision 1.6
diff -u -r1.6 CCorePlugin.java
--- src/org/eclipse/cdt/core/CCorePlugin.java	26 Sep 2002 17:21:39 -0000	1.6
+++ src/org/eclipse/cdt/core/CCorePlugin.java	13 Nov 2002 18:26:55 -0000
@@ -36,6 +36,7 @@
 	
 	public static final int STATUS_CDTPROJECT_EXISTS = 1;
 	public static final int STATUS_CDTPROJECT_MISMATCH = 2;
+	public static final int CDT_PROJECT_NATURE_ID_MISMATCH = 3;
 	
 	public static final String PLUGIN_ID= "org.eclipse.cdt.core";
 
@@ -218,41 +219,19 @@
      * 
      * @param projectHandle
      * @param monitor
-     * @param projectID
      * @throws CoreException
      */
     
-    public void convertProjectFromCtoCC(IProject projectHandle, IProgressMonitor monitor, String projectID)
+    public void convertProjectFromCtoCC(IProject projectHandle, IProgressMonitor monitor)
     throws CoreException{
         if ((projectHandle != null) 
                 && projectHandle.hasNature(CCProjectNature.C_NATURE_ID)
                 && !projectHandle.hasNature(CCProjectNature.CC_NATURE_ID)) {
             // Add C++ Nature ... does not add duplicates        
             CCProjectNature.addCCNature(projectHandle, monitor);
-            
-            if(projectID != null){
-                mapCProjectOwner(projectHandle, projectID);
-            }
          } 
     }
-    /**
-     * Method convertProjectFromCtoCC converts
-     * a C Project to a C++ Project
-     * The newProject MUST, not be null, already have a C Nature 
-     * && must NOT already have a C++ Nature<br>
-     * This method does not map the project to an owner and should only
-     * be used when this mapping has already taken place.
-     * 
-     * @param projectHandle
-     * @param monitor
-     * @throws CoreException
-     */
-    
-    public void convertProjectFromCtoCC(IProject projectHandle, IProgressMonitor monitor)
-    throws CoreException{
-                
-        convertProjectFromCtoCC(projectHandle, monitor, null);
-    }
+ 
 	/**
 	 * Method addDefaultCBuilder adds the default C make builder
 	 * @param projectHandle
@@ -264,10 +243,10 @@
         // Set the Default C Builder.
         CProjectNature.addCBuildSpec(projectHandle, monitor);
     }
-    
+
     /**
      * Method to convert a project to a C nature 
-     * & default make builder
+     * & default make builder (Will always add a default builder)
      * All checks should have been done externally
      * (as in the Conversion Wizards). 
      * This method blindly does the conversion.
@@ -281,6 +260,26 @@
     
     public void convertProjectToC(IProject projectHandle, IProgressMonitor monitor, String projectID)
     throws CoreException{
+    	this.convertProjectToC(projectHandle, monitor, projectID, true);
+
+    }   
+    /**
+     * Method to convert a project to a C nature 
+     * & default make builder (if indicated)
+     * All checks should have been done externally
+     * (as in the Conversion Wizards). 
+     * This method blindly does the conversion.
+     * 
+     * @param project
+     * @param String targetNature
+     * @param monitor
+     * @param projectID
+     * @param addMakeBuilder
+     * @exception CoreException
+     */
+    
+    public void convertProjectToC(IProject projectHandle, IProgressMonitor monitor, String projectID, boolean addMakeBuilder)
+    throws CoreException{
         if ((projectHandle == null) || (monitor == null) || (projectID == null)){
             return;
         }
@@ -288,20 +287,23 @@
         IProjectDescription description = workspace.newProjectDescription(projectHandle.getName());
         description.setLocation(projectHandle.getFullPath());
         createCProject(description, projectHandle, monitor, projectID);
-        addDefaultCBuilder(projectHandle, monitor);
+        if (addMakeBuilder) {
+        	addDefaultCBuilder(projectHandle, monitor);
+        }
     }
     /**
      * Method to convert a project to a C++ nature 
-     * & default make builder, if it does not have one already
+     * & default make builder(if indicated), if it does not have one already
      * 
      * @param project
      * @param String targetNature
      * @param monitor
      * @param projectID
+     * @param addMakeBuilder
      * @exception CoreException
      */
     
-    public void convertProjectToCC(IProject projectHandle, IProgressMonitor monitor, String projectID)
+    public void convertProjectToCC(IProject projectHandle, IProgressMonitor monitor, String projectID, boolean addMakeBuilder)
     throws CoreException{
         if ((projectHandle == null) || (monitor == null) || (projectID == null)){
             return;
@@ -309,7 +311,25 @@
         createCProject(projectHandle.getDescription(), projectHandle, monitor, projectID);
         // now add C++ nature
         convertProjectFromCtoCC(projectHandle, monitor);
-        addDefaultCBuilder(projectHandle, monitor);
+        if (addMakeBuilder){
+        	addDefaultCBuilder(projectHandle, monitor);
+        }
+    }
+        /**
+     * Method to convert a project to a C++ nature 
+     * & default make builder,
+     * Note: Always adds the default Make builder
+     * 
+     * @param project
+     * @param String targetNature
+     * @param monitor
+     * @param projectID
+     * @exception CoreException
+     */
+    
+    public void convertProjectToCC(IProject projectHandle, IProgressMonitor monitor, String projectID)
+    throws CoreException{
+    	this.convertProjectToCC(projectHandle, monitor, projectID, true);
     }
     
 	public ICBuilder[] getBuilders(IProject project) throws CoreException {

Back to the top