mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Combined C/C++ conversion wizards
This commit is contained in:
parent
7b0abedd4f
commit
a8d882febe
16 changed files with 241 additions and 500 deletions
|
@ -1,3 +1,21 @@
|
|||
|
||||
2002-11-13 Judy Green
|
||||
|
||||
*src/org/eclipse/cdt/core/CCProjectNature.java
|
||||
added configure() to overwrite CNatures implementation which adds a default CBuilder.
|
||||
We now check that a project having a CCNature added already has a CNature
|
||||
Throws a CoreException if not.
|
||||
|
||||
*src/org/eclipse/cdt/core/CCorePlugin.java
|
||||
Added a static va CDT_PROJECT_NATURE_ID_MISMATCH to indicate the condition
|
||||
described above in configure()
|
||||
|
||||
Cleaned up the convert methods to ensure that extra calls to add a
|
||||
CBuilder are not called.
|
||||
|
||||
|
||||
|
||||
|
||||
2002-11-13 Alain Magloire
|
||||
|
||||
* src/.../internal/core/CBuilder.java (invokeMake):
|
||||
|
|
|
@ -8,6 +8,8 @@ package org.eclipse.cdt.core;
|
|||
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 class CCProjectNature extends CProjectNature {
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ public class CCorePlugin extends Plugin {
|
|||
|
||||
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 @@ public class CCorePlugin extends Plugin {
|
|||
*
|
||||
* @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 @@ public class CCorePlugin extends Plugin {
|
|||
// 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.
|
||||
|
@ -280,6 +259,26 @@ public class CCorePlugin extends Plugin {
|
|||
*/
|
||||
|
||||
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,11 +287,38 @@ public class CCorePlugin extends Plugin {
|
|||
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, boolean addMakeBuilder)
|
||||
throws CoreException{
|
||||
if ((projectHandle == null) || (monitor == null) || (projectID == null)){
|
||||
return;
|
||||
}
|
||||
createCProject(projectHandle.getDescription(), projectHandle, monitor, projectID);
|
||||
// now add C++ nature
|
||||
convertProjectFromCtoCC(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
|
||||
|
@ -303,13 +329,7 @@ public class CCorePlugin extends Plugin {
|
|||
|
||||
public void convertProjectToCC(IProject projectHandle, IProgressMonitor monitor, String projectID)
|
||||
throws CoreException{
|
||||
if ((projectHandle == null) || (monitor == null) || (projectID == null)){
|
||||
return;
|
||||
}
|
||||
createCProject(projectHandle.getDescription(), projectHandle, monitor, projectID);
|
||||
// now add C++ nature
|
||||
convertProjectFromCtoCC(projectHandle, monitor);
|
||||
addDefaultCBuilder(projectHandle, monitor);
|
||||
this.convertProjectToCC(projectHandle, monitor, projectID, true);
|
||||
}
|
||||
|
||||
public ICBuilder[] getBuilders(IProject project) throws CoreException {
|
||||
|
|
|
@ -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/ConvertSimpleToCCStdMakeProjectWizardPage.java
|
||||
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertCtoCCStdMakeProjectWizardPage.java
|
||||
*src/org/eclipse/cdt/ui/wizards/conversion/ConvertSimpleToCStdMakeProjectWizardPage.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):
|
||||
|
|
|
@ -28,17 +28,9 @@ StdCCWizard.description=Create a new C++ project
|
|||
ConversionWizard.name=Convert a project's nature
|
||||
ConversionWizard.description=Convert a project's nature
|
||||
|
||||
#Convert Simple Project to C
|
||||
SimpleToCStdMakeConversionWizard.name=Convert to a C Project
|
||||
SimpleToCStdMakeConversionWizard.description=Convert a project's nature to C
|
||||
|
||||
#Convert Simple Project to C++
|
||||
SimpleToCCStdMakeConversionWizard.name=Convert to a C++ Project
|
||||
SimpleToCCStdMakeConversionWizard.description=Convert a project's nature to C++
|
||||
|
||||
#Convert C to C++
|
||||
CtoCCConversionWizard.name=Convert to a C++ Project
|
||||
CtoCCConversionWizard.description=Convert a project's nature from C to C++
|
||||
#Convert Standard Make C/C++
|
||||
StdMakeConversionWizard.name=Convert to a C or C++ Project
|
||||
StdMakeConversionWizard.description=Convert a project's nature to C or C/C++
|
||||
|
||||
NewFileWizard.name=File
|
||||
NewFileCreationWizard.description=Create a file
|
||||
|
|
|
@ -159,17 +159,17 @@
|
|||
%StdCWizard.description
|
||||
</description>
|
||||
</wizard>
|
||||
<!-- For C Conversion Wizards -->
|
||||
<!-- For C Conversion Wizard -->
|
||||
<wizard
|
||||
name="%SimpleToCStdMakeConversionWizard.name"
|
||||
name="%StdMakeConversionWizard.name"
|
||||
icon="icons/full/ctool16/newcc_app.gif"
|
||||
category="org.eclipse.cdt.ui.newCWizards"
|
||||
class="org.eclipse.cdt.ui.wizards.conversion.SimpleToCStdMakeConversionWizard"
|
||||
class="org.eclipse.cdt.ui.wizards.conversion.ConvertToStdMakeConversionWizard"
|
||||
project="true"
|
||||
finalPerspective="org.eclipse.cdt.ui.CPerspective"
|
||||
id="org.eclipse.cdt.ui.wizards.SimpleToCStdMakeConversionWizard">
|
||||
id="org.eclipse.cdt.ui.wizards.ConvertToStdMakeConversionWizard">
|
||||
<description>
|
||||
%SimpleToCStdMakeConversionWizard.description
|
||||
%StdMakeConversionWizard.description
|
||||
</description>
|
||||
</wizard>
|
||||
<!-- For C++ Wizards -->
|
||||
|
@ -189,28 +189,17 @@
|
|||
%StdCCWizard.description
|
||||
</description>
|
||||
</wizard>
|
||||
<!-- For C++ Conversion Wizard -->
|
||||
<wizard
|
||||
name="%CtoCCConversionWizard.name"
|
||||
icon="icons/full/ctool16/newc_app.gif"
|
||||
category="org.eclipse.cdt.ui.newCCWizards"
|
||||
class="org.eclipse.cdt.ui.wizards.conversion.CtoCCConversionWizard"
|
||||
project="true"
|
||||
finalPerspective="org.eclipse.cdt.ui.CPerspective"
|
||||
id="org.eclipse.cdt.ui.wizards.CtoCCConversionWizard">
|
||||
<description>
|
||||
%CtoCCConversionWizard.description
|
||||
</description>
|
||||
</wizard>
|
||||
<wizard
|
||||
name="%SimpleToCCStdMakeConversionWizard.name"
|
||||
name="%StdMakeConversionWizard.name"
|
||||
icon="icons/full/ctool16/newcc_app.gif"
|
||||
category="org.eclipse.cdt.ui.newCCWizards"
|
||||
class="org.eclipse.cdt.ui.wizards.conversion.SimpleToCCStdMakeConversionWizard"
|
||||
class="org.eclipse.cdt.ui.wizards.conversion.ConvertToStdMakeConversionWizard"
|
||||
project="true"
|
||||
finalPerspective="org.eclipse.cdt.ui.CPerspective"
|
||||
id="org.eclipse.cdt.ui.wizards.SimpleToCCStdMakeConversionWizard">
|
||||
id="org.eclipse.cdt.ui.wizards.ConvertToStdMakeConversionWizard">
|
||||
<description>
|
||||
%SimpleToCCStdMakeConversionWizard.description
|
||||
%StdMakeConversionWizard.description
|
||||
</description>
|
||||
</wizard>
|
||||
</extension>
|
||||
|
|
|
@ -92,20 +92,10 @@ ConversionWizard.description=Select project(s) for conversion
|
|||
ConversionWizard.title=Add a C++ Nature to project(s)
|
||||
ConversionWizard.projectlist=Candidates for conversion
|
||||
|
||||
# Convert from Simple to C
|
||||
SimpleToCStdMakeConversionWizard.windowTitle=Convert Projects to C
|
||||
SimpleToCStdMakeConversionWizard.description=Select project(s) for conversion
|
||||
SimpleToCStdMakeConversionWizard.title=Add a C Nature to selected project(s)
|
||||
|
||||
# Convert from Simple to C++
|
||||
SimpleToCCStdMakeConversionWizard.windowTitle=Convert Projects to C++
|
||||
SimpleToCCStdMakeConversionWizard.description=Select Project(s) for conversion
|
||||
SimpleToCCStdMakeConversionWizard.title=Add a C++ Nature to selected project(s)
|
||||
|
||||
# Convert from C to C++
|
||||
CtoCCConversionWizard.windowTitle=Convert C Projects to C++
|
||||
CtoCCConversionWizard.description=Select C Project(s) for conversion
|
||||
CtoCCConversionWizard.title=Add a C++ Nature to project(s)
|
||||
# Convert to C/C++
|
||||
StdMakeConversionWizard.windowTitle=Convert Projects to C or C/C++
|
||||
StdMakeConversionWizard.description=Select project(s) for conversion
|
||||
StdMakeConversionWizard.title=Add a C or C++ Nature to selected project(s)
|
||||
|
||||
TabFolderPage=Tab Folder Page
|
||||
TabFolderPage.title=Project
|
||||
|
|
|
@ -87,9 +87,6 @@ public abstract class StdMakeProjectWizard extends CProjectWizard {
|
|||
if (settingsBlock != null) {
|
||||
settingsBlock.doRun(newProject, new SubProgressMonitor(monitor, 1));
|
||||
}
|
||||
|
||||
// Set the Default C Builder to make this a StdMakeProject.
|
||||
CCorePlugin.getDefault().addDefaultCBuilder(newProject, new SubProgressMonitor(monitor, 1));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -149,7 +149,7 @@ public abstract class ConversionWizard
|
|||
*
|
||||
* i.e. <br>
|
||||
*<pre>
|
||||
* mainPage = new ConvertSimpleToCStdMakeProjectWizardPage(getPrefix());
|
||||
* mainPage = new ConvertToStdMakeProjectWizardPage(getPrefix());
|
||||
* addPage(mainPage);
|
||||
*</pre>
|
||||
*
|
||||
|
|
|
@ -1,94 +0,0 @@
|
|||
package org.eclipse.cdt.ui.wizards.conversion;
|
||||
|
||||
/*
|
||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import org.eclipse.cdt.core.CCProjectNature;
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.CProjectNature;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
||||
/**
|
||||
*
|
||||
* ConvertCtoCCStdMakeProjectWizardPage
|
||||
* Standard main page for a wizard that converts a project's nature from C to C++.
|
||||
* This conversion is one way in that the project cannot be converted back from a C++ project to a C project.
|
||||
*
|
||||
* @author Judy N. Green
|
||||
* @since Aug 6, 2002
|
||||
*<p>
|
||||
* Example useage:
|
||||
* <pre>
|
||||
* mainPage = new ConvertCtoCCStdMakeProjectWizardPage("CtoCCConvertProjectPage");
|
||||
* mainPage.setTitle("Project Conversion");
|
||||
* mainPage.setDescription("Convert a project's nature from C to C++.");
|
||||
* </pre>
|
||||
* </p>
|
||||
*/
|
||||
public class ConvertCtoCCStdMakeProjectWizardPage extends ConvertProjectWizardPage {
|
||||
|
||||
private static final String WZ_TITLE = "CtoCCConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "CtoCCConversionWizard.description"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* Constructor for ConvertCtoCCStdMakeProjectWizardPage.
|
||||
* @param pageName
|
||||
*/
|
||||
public ConvertCtoCCStdMakeProjectWizardPage(String pageName) {
|
||||
super(pageName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzTitleResource returns the correct Title Label for this class
|
||||
* overriding the default in the superclass.
|
||||
*/
|
||||
protected String getWzTitleResource(){
|
||||
return CUIPlugin.getResourceString(WZ_TITLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzDescriptionResource returns the correct description
|
||||
* Label for this class overriding the default in the superclass.
|
||||
*/
|
||||
protected String getWzDescriptionResource(){
|
||||
return CUIPlugin.getResourceString(WZ_DESC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method isCandidate returns projects that have
|
||||
* a "C" Nature but do not have a "C++" Nature
|
||||
*
|
||||
* @param project
|
||||
* @return boolean
|
||||
*/
|
||||
public boolean isCandidate(IProject project) {
|
||||
try {
|
||||
if (project.hasNature(CProjectNature.C_NATURE_ID)
|
||||
&& !project.hasNature(CCProjectNature.CC_NATURE_ID))
|
||||
return true;
|
||||
} catch (CoreException e) {
|
||||
CUIPlugin.log(e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method convertProject adds a C++ Nature to those projects
|
||||
* that were selected by the user.
|
||||
*
|
||||
* @param project
|
||||
* @param monitor
|
||||
* @param projectID
|
||||
* @throws CoreException
|
||||
*/
|
||||
public void convertProject(IProject project, IProgressMonitor monitor, String projectID)
|
||||
throws CoreException {
|
||||
|
||||
CCorePlugin.getDefault().convertProjectFromCtoCC(project, monitor, projectID);
|
||||
}
|
||||
}
|
|
@ -7,15 +7,17 @@ package org.eclipse.cdt.ui.wizards.conversion;
|
|||
*/
|
||||
import java.util.Vector;
|
||||
|
||||
import org.eclipse.cdt.core.CCProjectNature;
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.CProjectNature;
|
||||
import org.eclipse.cdt.internal.ui.util.SWTUtil;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
|
||||
import org.eclipse.jface.viewers.CheckboxTableViewer;
|
||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||
import org.eclipse.jface.viewers.IStructuredContentProvider;
|
||||
|
@ -26,8 +28,12 @@ import org.eclipse.jface.viewers.TableLayout;
|
|||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.jface.viewers.ViewerSorter;
|
||||
import org.eclipse.jface.wizard.WizardPage;
|
||||
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.DisposeEvent;
|
||||
import org.eclipse.swt.events.DisposeListener;
|
||||
import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.events.SelectionListener;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
|
@ -37,7 +43,6 @@ import org.eclipse.swt.widgets.Event;
|
|||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.Table;
|
||||
|
||||
import org.eclipse.ui.ISharedImages;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
|
@ -66,6 +71,11 @@ public abstract class ConvertProjectWizardPage
|
|||
public static final String KEY_CONVERTING = "ConvertionWizard.converting";
|
||||
private static final String PROJECT_LIST = "ConversionWizard.projectlist";
|
||||
|
||||
protected boolean convertToC = false;
|
||||
protected boolean convertToCC = true;
|
||||
protected Button cRadioButton;
|
||||
protected Button ccRadioButton;
|
||||
|
||||
// The Main widget containing the table and its list of condidate open projects
|
||||
protected CheckboxTableViewer tableViewer;
|
||||
|
||||
|
@ -126,7 +136,35 @@ public abstract class ConvertProjectWizardPage
|
|||
*
|
||||
*/
|
||||
protected void addToMainPage(Composite container){
|
||||
// by default do nothing
|
||||
|
||||
// Add convert to C or C/C++ buttons
|
||||
Composite area = ControlFactory.createGroup(container, "Convert to C or C/C++", 2);
|
||||
|
||||
|
||||
SelectionListener cListener = new SelectionAdapter() {
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
convertToC = cRadioButton.getSelection();
|
||||
convertToCC = ccRadioButton.getSelection();
|
||||
validatePage();
|
||||
}
|
||||
};
|
||||
cRadioButton = ControlFactory.createRadioButton(area,
|
||||
"C Project",
|
||||
"C ",
|
||||
cListener);
|
||||
cRadioButton.setSelection(convertToC);
|
||||
ccRadioButton = ControlFactory.createRadioButton(area,
|
||||
"C/C++ Project",
|
||||
"C++",
|
||||
cListener);
|
||||
ccRadioButton.setSelection(convertToCC);
|
||||
|
||||
area.addDisposeListener(new DisposeListener() {
|
||||
public void widgetDisposed(DisposeEvent event) {
|
||||
cRadioButton = null;
|
||||
ccRadioButton = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -445,7 +483,36 @@ public abstract class ConvertProjectWizardPage
|
|||
* @param projectID
|
||||
* @throws CoreException
|
||||
*/
|
||||
public abstract void convertProject(IProject project,
|
||||
IProgressMonitor monitor, String projectID)
|
||||
throws CoreException;
|
||||
public void convertProject(IProject project,
|
||||
IProgressMonitor monitor,
|
||||
String projectID)
|
||||
throws CoreException{
|
||||
// Add the correct nature
|
||||
if (convertToC) {
|
||||
if (!project.hasNature(CProjectNature.C_NATURE_ID)){
|
||||
addCNature(project, monitor, true);
|
||||
} else {
|
||||
if (project.hasNature(CCProjectNature.CC_NATURE_ID)){
|
||||
// remove the C++ nature
|
||||
CCProjectNature.removeCCNature(project, monitor);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (convertToCC && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
|
||||
addCCNature(project, monitor, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
protected void addCNature(IProject project, IProgressMonitor monitor, boolean addMakeBuilder) throws CoreException{
|
||||
CCorePlugin.getDefault().convertProjectToC(project, monitor, CCorePlugin.getDefault().PLUGIN_ID + ".make", addMakeBuilder); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
protected void addCCNature(IProject project, IProgressMonitor monitor, boolean addMakeBuilder) throws CoreException{
|
||||
if (project.hasNature(CProjectNature.C_NATURE_ID)) {
|
||||
CCorePlugin.getDefault().convertProjectFromCtoCC(project, monitor); //$NON-NLS-1$
|
||||
} else {
|
||||
CCorePlugin.getDefault().convertProjectToCC(project, monitor, CCorePlugin.getDefault().PLUGIN_ID + ".make", addMakeBuilder); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,96 +0,0 @@
|
|||
package org.eclipse.cdt.ui.wizards.conversion;
|
||||
|
||||
/*
|
||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import org.eclipse.cdt.core.CCProjectNature;
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
||||
/**
|
||||
*
|
||||
* ConvertSimpleToCCStdMakeProjectWizardPage
|
||||
* Standard main page for a wizard that adds a C++ project Nature to a project with no nature associated with it.
|
||||
* This conversion is one way in that the project cannot be converted back (i.e have the nature removed).
|
||||
*
|
||||
* @author Judy N. Green
|
||||
* @since Aug 6, 2002
|
||||
*<p>
|
||||
* Example useage:
|
||||
* <pre>
|
||||
* mainPage = new ConvertSimpleToCCStdMakeProjectWizardPage("UKtoCCConvertProjectPage");
|
||||
* mainPage.setTitle("Project Conversion");
|
||||
* mainPage.setDescription("Add C++ a Nature to a project.");
|
||||
* </pre>
|
||||
* </p>
|
||||
*/
|
||||
public class ConvertSimpleToCCStdMakeProjectWizardPage extends ConvertSimpleToCStdMakeProjectWizardPage {
|
||||
|
||||
private static final String WZ_TITLE = "SimpleToCCStdMakeConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "SimpleToCCStdMakeConversionWizard.description"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* Constructor for ConvertSimpleToCCStdMakeProjectWizardPage.
|
||||
* @param pageName
|
||||
*/
|
||||
public ConvertSimpleToCCStdMakeProjectWizardPage(String pageName) {
|
||||
super(pageName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzTitleResource returns the correct Title Label for this class
|
||||
* overriding the default in the superclass.
|
||||
*/
|
||||
protected String getWzTitleResource(){
|
||||
return CUIPlugin.getResourceString(WZ_TITLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzDescriptionResource returns the correct description
|
||||
* Label for this class overriding the default in the superclass.
|
||||
*/
|
||||
protected String getWzDescriptionResource(){
|
||||
return CUIPlugin.getResourceString(WZ_DESC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method isCandidate returns projects that have
|
||||
* neither a "C" Nature nor a "C++" Nature
|
||||
*
|
||||
* @param project
|
||||
* @return boolean
|
||||
*/
|
||||
public boolean isCandidate(IProject project) {
|
||||
boolean noCNature = super.isCandidate(project);
|
||||
boolean noCCNature = false;
|
||||
|
||||
try {
|
||||
noCCNature = !project.hasNature(CCProjectNature.CC_NATURE_ID);
|
||||
} catch (CoreException e) {
|
||||
noCCNature = true;
|
||||
}
|
||||
return noCNature && noCCNature;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method convertProject adds a C++ Nature and default make builder
|
||||
* to those projects that were selected by the user.
|
||||
*
|
||||
* @param project
|
||||
* @param monitor
|
||||
* @param projectID
|
||||
* @throws CoreException
|
||||
*/
|
||||
public void convertProject(IProject project, IProgressMonitor monitor, String projectID)
|
||||
throws CoreException {
|
||||
if (!project.isOpen()){
|
||||
project.open(monitor);
|
||||
}
|
||||
CCorePlugin.getDefault().convertProjectToCC(project, monitor, projectID);
|
||||
}
|
||||
}
|
|
@ -11,27 +11,27 @@ import org.eclipse.cdt.ui.CUIPlugin;
|
|||
* This wizard provides a method by which the user can
|
||||
* add a C nature to a project that previously had no nature associated with it.
|
||||
*/
|
||||
public class SimpleToCStdMakeConversionWizard extends ConversionWizard {
|
||||
public class ConvertToStdMakeConversionWizard extends ConversionWizard {
|
||||
|
||||
private static final String WZ_TITLE = "SimpleToCStdMakeConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "SimpleToCStdMakeConversionWizard.description"; //$NON-NLS-1$
|
||||
private static final String PREFIX= "SimpleToCStdMakeConversionWizard"; //$NON-NLS-1$
|
||||
private static final String WZ_TITLE = "ConvertToStdMakeConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "ConvertToStdMakeConversionWizard.description"; //$NON-NLS-1$
|
||||
private static final String PREFIX= "ConvertToStdMakeConversionWizard"; //$NON-NLS-1$
|
||||
|
||||
private static final String WINDOW_TITLE = "SimpleToCStdMakeConversionWizard.windowTitle";//$NON-NLS-1$
|
||||
private static final String WINDOW_TITLE = "ConvertToStdMakeConversionWizard.windowTitle";//$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* SimpleToCStdMakeConversionWizard Wizard constructor
|
||||
* ConvertToStdMakeConversionWizard Wizard constructor
|
||||
*/
|
||||
public SimpleToCStdMakeConversionWizard() {
|
||||
public ConvertToStdMakeConversionWizard() {
|
||||
this(getWindowTitleResource(), getWzDescriptionResource());
|
||||
}
|
||||
/**
|
||||
* SimpleToCStdMakeConversionWizard Wizard constructor
|
||||
* ConvertToStdMakeConversionWizard Wizard constructor
|
||||
*
|
||||
* @param title
|
||||
* @param desc
|
||||
*/
|
||||
public SimpleToCStdMakeConversionWizard(String title, String desc) {
|
||||
public ConvertToStdMakeConversionWizard(String title, String desc) {
|
||||
super(title, desc);
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ public class SimpleToCStdMakeConversionWizard extends ConversionWizard {
|
|||
* @see Wizard#createPages
|
||||
*/
|
||||
public void addPages() {
|
||||
mainPage = new ConvertSimpleToCStdMakeProjectWizardPage(getPrefix());
|
||||
mainPage = new ConvertToStdMakeProjectWizardPage(getPrefix());
|
||||
|
||||
addPage(mainPage);
|
||||
}
|
|
@ -5,16 +5,15 @@ package org.eclipse.cdt.ui.wizards.conversion;
|
|||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.CCProjectNature;
|
||||
import org.eclipse.cdt.core.CProjectNature;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
||||
/**
|
||||
*
|
||||
* ConvertSimpleToCStdMakeProjectWizardPage
|
||||
* ConvertToStdMakeProjectWizardPage
|
||||
* Standard main page for a wizard that adds a C project Nature to a project with no nature associated with it.
|
||||
* This conversion is one way in that the project cannot be converted back (i.e have the nature removed).
|
||||
*
|
||||
|
@ -23,22 +22,22 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
|||
*<p>
|
||||
* Example useage:
|
||||
* <pre>
|
||||
* mainPage = new ConvertSimpleToCStdMakeProjectWizardPage("UKtoCConvertProjectPage");
|
||||
* mainPage = new ConvertToStdMakeProjectWizardPage("ConvertProjectPage");
|
||||
* mainPage.setTitle("Project Conversion");
|
||||
* mainPage.setDescription("Add C a Nature to a project.");
|
||||
* mainPage.setDescription("Add C or C++ a Nature to a project.");
|
||||
* </pre>
|
||||
* </p>
|
||||
*/
|
||||
public class ConvertSimpleToCStdMakeProjectWizardPage extends ConvertProjectWizardPage {
|
||||
public class ConvertToStdMakeProjectWizardPage extends ConvertProjectWizardPage {
|
||||
|
||||
private static final String WZ_TITLE = "SimpleToCStdMakeConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "SimpleToCStdMakeConversionWizard.description"; //$NON-NLS-1$
|
||||
private static final String WZ_TITLE = "StdMakeConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "StdMakeConversionWizard.description"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* Constructor for ConvertSimpleToCStdMakeProjectWizardPage.
|
||||
* Constructor for ConvertToStdMakeProjectWizardPage.
|
||||
* @param pageName
|
||||
*/
|
||||
public ConvertSimpleToCStdMakeProjectWizardPage(String pageName) {
|
||||
public ConvertToStdMakeProjectWizardPage(String pageName) {
|
||||
super(pageName);
|
||||
}
|
||||
|
||||
|
@ -60,7 +59,7 @@ public class ConvertSimpleToCStdMakeProjectWizardPage extends ConvertProjectWiza
|
|||
|
||||
/**
|
||||
* Method isCandidate returns projects that have
|
||||
* no "C" Nature, but are Projects in the Eclipse sense.
|
||||
* no "C" or "C++" Nature, but are Projects in the Eclipse sense.
|
||||
*
|
||||
* @param project
|
||||
* @return boolean
|
||||
|
@ -68,28 +67,11 @@ public class ConvertSimpleToCStdMakeProjectWizardPage extends ConvertProjectWiza
|
|||
public boolean isCandidate(IProject project) {
|
||||
boolean noCNature = false;
|
||||
try {
|
||||
noCNature = !project.hasNature(CProjectNature.C_NATURE_ID);
|
||||
noCNature = !project.hasNature(CProjectNature.C_NATURE_ID)
|
||||
|| !project.hasNature(CCProjectNature.CC_NATURE_ID);
|
||||
} catch (CoreException e) {
|
||||
noCNature = true;
|
||||
}
|
||||
return noCNature;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method convertProject adds a C Nature and default make builder
|
||||
* to those projects that were selected by the user.
|
||||
*
|
||||
* @param project
|
||||
* @param monitor
|
||||
* @param projectID
|
||||
* @throws CoreException
|
||||
*/
|
||||
public void convertProject(IProject project, IProgressMonitor monitor, String projectID)
|
||||
throws CoreException {
|
||||
|
||||
CCorePlugin.getDefault().convertProjectToC(project, monitor, projectID);
|
||||
if (!project.isOpen()){
|
||||
project.open(monitor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
package org.eclipse.cdt.ui.wizards.conversion;
|
||||
|
||||
/*
|
||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
/**
|
||||
* This wizard provides a method by which the user can
|
||||
* change the nature of their projects.
|
||||
*/
|
||||
public class CtoCCConversionWizard extends ConversionWizard {
|
||||
|
||||
private static final String WZ_TITLE = "CtoCCConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "CtoCCConversionWizard.description"; //$NON-NLS-1$
|
||||
private static final String PREFIX= "CtoCCConversionWizard"; //$NON-NLS-1$
|
||||
|
||||
private static final String WINDOW_TITLE = "CtoCCConversionWizard.windowTitle";//$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* CtoCCConversion Wizard constructor
|
||||
*/
|
||||
public CtoCCConversionWizard() {
|
||||
this(getWindowTitleResource(), getWzDescriptionResource());
|
||||
}
|
||||
/**
|
||||
* CtoCCConversion Wizard constructor
|
||||
*
|
||||
* @param title
|
||||
* @param desc
|
||||
*/
|
||||
public CtoCCConversionWizard(String title, String desc) {
|
||||
super(title, desc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzDescriptionResource, allows Wizard description label value
|
||||
* to be changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getWzDescriptionResource() {
|
||||
return CUIPlugin.getResourceString(WZ_DESC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzTitleResource, allows Wizard description label value
|
||||
* to be changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getWzTitleResource() {
|
||||
return CUIPlugin.getResourceString(WZ_TITLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWindowTitleResource, allows Wizard Title label value to be
|
||||
* changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getWindowTitleResource() {
|
||||
|
||||
return CUIPlugin.getResourceString(WINDOW_TITLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getPrefix, allows prefix value to be changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getPrefix() {
|
||||
return PREFIX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method addPages adds our C to C++ conversion Wizard page.
|
||||
*
|
||||
* @see Wizard#createPages
|
||||
*/
|
||||
public void addPages() {
|
||||
mainPage = new ConvertCtoCCStdMakeProjectWizardPage(getPrefix());
|
||||
|
||||
addPage(mainPage);
|
||||
}
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
package org.eclipse.cdt.ui.wizards.conversion;
|
||||
|
||||
/*
|
||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
/**
|
||||
* This wizard provides a method by which the user can
|
||||
* add a C++ nature to a project that previously had no nature associated with it.
|
||||
*/
|
||||
public class SimpleToCCStdMakeConversionWizard extends ConversionWizard {
|
||||
|
||||
private static final String WZ_TITLE = "SimpleToCCStdMakeConversionWizard.title"; //$NON-NLS-1$
|
||||
private static final String WZ_DESC = "SimpleToCCStdMakeConversionWizard.description"; //$NON-NLS-1$
|
||||
private static final String PREFIX= "SimpleToCCStdMakeConversionWizard"; //$NON-NLS-1$
|
||||
|
||||
private static final String WINDOW_TITLE = "SimpleToCCStdMakeConversionWizard.windowTitle";//$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* SimpleToCCStdMakeConversionWizard Wizard constructor
|
||||
*/
|
||||
public SimpleToCCStdMakeConversionWizard() {
|
||||
this(getWindowTitleResource(), getWzDescriptionResource());
|
||||
}
|
||||
/**
|
||||
* SimpleToCCStdMakeConversionWizard Wizard constructor
|
||||
*
|
||||
* @param title
|
||||
* @param desc
|
||||
*/
|
||||
public SimpleToCCStdMakeConversionWizard(String title, String desc) {
|
||||
super(title, desc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzDescriptionResource, allows Wizard description label value
|
||||
* to be changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getWzDescriptionResource() {
|
||||
return CUIPlugin.getResourceString(WZ_DESC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWzTitleResource, allows Wizard description label value
|
||||
* to be changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getWzTitleResource() {
|
||||
return CUIPlugin.getResourceString(WZ_TITLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getWindowTitleResource, allows Wizard Title label value to be
|
||||
* changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getWindowTitleResource() {
|
||||
|
||||
return CUIPlugin.getResourceString(WINDOW_TITLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getPrefix, allows prefix value to be changed by subclasses
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
protected static String getPrefix() {
|
||||
return PREFIX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method addPages adds our Simple to C++ conversion Wizard page.
|
||||
*
|
||||
* @see Wizard#createPages
|
||||
*/
|
||||
public void addPages() {
|
||||
mainPage = new ConvertSimpleToCCStdMakeProjectWizardPage(getPrefix());
|
||||
|
||||
addPage(mainPage);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue