[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] New Class Wizard - inclusion fix
|
Hello,
A fix for the incorrect inclusion problem in the New Class Wizard.
Thanks
Hoda Amer
Senior Software Engineer
Rational Software - IBM Software GroupIndex: model/org/eclipse/cdt/core/model/ICElement.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICElement.java,v
retrieving revision 1.10
diff -u -r1.10 ICElement.java
--- model/org/eclipse/cdt/core/model/ICElement.java 1 May 2003 19:46:41 -0000 1.10
+++ model/org/eclipse/cdt/core/model/ICElement.java 28 May 2003 16:30:01 -0000
@@ -274,7 +274,7 @@
* @exception CModelException if this element does not exist or if an
* exception occurs while accessing its underlying resource
*/
- IResource getUnderlyingResource() throws CModelException;
+ IResource getUnderlyingResource();
/**
* Returns the Corresponding resource for
Index: model/org/eclipse/cdt/internal/core/model/CElement.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElement.java,v
retrieving revision 1.10
diff -u -r1.10 CElement.java
--- model/org/eclipse/cdt/internal/core/model/CElement.java 4 Apr 2003 14:01:29 -0000 1.10
+++ model/org/eclipse/cdt/internal/core/model/CElement.java 28 May 2003 16:30:01 -0000
@@ -69,13 +69,9 @@
}
public IPath getPath() {
- try {
- IResource res = getUnderlyingResource();
- if (res != null)
- return res.getFullPath();
- } catch (CModelException e) {
- e.printStackTrace();
- }
+ IResource res = getUnderlyingResource();
+ if (res != null)
+ return res.getFullPath();
return new Path(getElementName());
}
@@ -84,13 +80,10 @@
}
public boolean isReadOnly () {
- try {
- IResource r = getUnderlyingResource();
- if (r != null) {
- return r.isReadOnly();
- }
- } catch (CModelException e) {
- }
+ IResource r = getUnderlyingResource();
+ if (r != null) {
+ return r.isReadOnly();
+ }
return false;
}
@@ -156,7 +149,7 @@
fEndLine = endLine;
}
- public IResource getUnderlyingResource() throws CModelException {
+ public IResource getUnderlyingResource() {
IResource res = getResource();
if (res == null) {
ICElement p = getParent();
Index: model/org/eclipse/cdt/internal/core/model/CElementInfo.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElementInfo.java,v
retrieving revision 1.4
diff -u -r1.4 CElementInfo.java
--- model/org/eclipse/cdt/internal/core/model/CElementInfo.java 27 Mar 2003 16:05:18 -0000 1.4
+++ model/org/eclipse/cdt/internal/core/model/CElementInfo.java 28 May 2003 16:30:01 -0000
@@ -7,10 +7,8 @@
import java.io.File;
-import org.eclipse.core.resources.IResource;
-
import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.core.resources.IResource;
/**
* Holds cached structure and properties for a C element.
@@ -140,11 +138,7 @@
protected boolean hasChanged () {
IResource r = null;
boolean b = false;
- try {
- r = getElement().getUnderlyingResource();
- } catch (CModelException e) {
- e.printStackTrace();
- }
+ r = getElement().getUnderlyingResource();
if (r != null && r.exists()) {
long modif = 0;
switch(r.getType()) {
Index: model/org/eclipse/cdt/internal/core/model/CModel.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModel.java,v
retrieving revision 1.1
diff -u -r1.1 CModel.java
--- model/org/eclipse/cdt/internal/core/model/CModel.java 27 Mar 2003 16:05:18 -0000 1.1
+++ model/org/eclipse/cdt/internal/core/model/CModel.java 28 May 2003 16:30:01 -0000
@@ -40,12 +40,7 @@
}
public IWorkspace getWorkspace() {
- try {
- return getUnderlyingResource().getWorkspace();
- } catch (CModelException e) {
- e.printStackTrace();
- }
- return null;
+ return getUnderlyingResource().getWorkspace();
}
public void copy(ICElement[] elements, ICElement[] containers, ICElement[] siblings,
Index: model/org/eclipse/cdt/internal/core/model/CProject.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CProject.java,v
retrieving revision 1.6
diff -u -r1.6 CProject.java
--- model/org/eclipse/cdt/internal/core/model/CProject.java 3 Apr 2003 04:28:03 -0000 1.6
+++ model/org/eclipse/cdt/internal/core/model/CProject.java 28 May 2003 16:30:02 -0000
@@ -37,12 +37,7 @@
}
public IProject getProject() {
- try {
- return getUnderlyingResource().getProject();
- } catch (CModelException e) {
- e.printStackTrace();
- }
- return null;
+ return getUnderlyingResource().getProject();
}
public ICElement findElement(IPath path) throws CModelException {
Index: model/org/eclipse/cdt/internal/core/model/SourceManipulation.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/SourceManipulation.java,v
retrieving revision 1.6
diff -u -r1.6 SourceManipulation.java
--- model/org/eclipse/cdt/internal/core/model/SourceManipulation.java 4 Apr 2003 14:01:29 -0000 1.6
+++ model/org/eclipse/cdt/internal/core/model/SourceManipulation.java 28 May 2003 16:30:02 -0000
@@ -137,7 +137,7 @@
/**
* @see ICElement
*/
- public IResource getUnderlyingResource() throws CModelException {
+ public IResource getUnderlyingResource() {
return getParent().getUnderlyingResource();
}
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.5
diff -u -r1.5 CElementAdapterFactory.java
--- src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java 27 Mar 2003 16:12:17 -0000 1.5
+++ src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java 28 May 2003 16:30:32 -0000
@@ -5,7 +5,6 @@
* All Rights Reserved.
*/
-import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.core.resources.IFile;
@@ -47,36 +46,33 @@
ICElement celem = (ICElement) element;
IResource res = null;
- try {
- if (IPropertySource.class.equals(key)) {
- 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 {
- res = celem.getResource();
- if (res != null) {
- return new ResourcePropertySource(res);
- }
+ if (IPropertySource.class.equals(key)) {
+ 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);
}
- return new CElementPropertySource(celem);
- } else if (IWorkspaceRoot.class.equals(key)) {
- res = celem.getUnderlyingResource();
- if (res != null)
- return res.getWorkspace().getRoot();
- } else if (IProject.class.equals(key)) {
+ } else {
res = celem.getResource();
- if (res != null)
- return res.getProject();
- } else if (IResource.class.equals(key)) {
- return celem.getResource();
- } else if (IWorkbenchAdapter.class.equals(key)) {
- return fgCWorkbenchAdapter;
+ if (res != null) {
+ return new ResourcePropertySource(res);
+ }
}
- } catch (CModelException e) {
+ return new CElementPropertySource(celem);
+ } else if (IWorkspaceRoot.class.equals(key)) {
+ res = celem.getUnderlyingResource();
+ if (res != null)
+ return res.getWorkspace().getRoot();
+ } else if (IProject.class.equals(key)) {
+ res = celem.getResource();
+ if (res != null)
+ return res.getProject();
+ } else if (IResource.class.equals(key)) {
+ return celem.getResource();
+ } else if (IWorkbenchAdapter.class.equals(key)) {
+ return fgCWorkbenchAdapter;
}
return null;
}
Index: src/org/eclipse/cdt/internal/ui/cview/CViewDropAdapter.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewDropAdapter.java,v
retrieving revision 1.3
diff -u -r1.3 CViewDropAdapter.java
--- src/org/eclipse/cdt/internal/ui/cview/CViewDropAdapter.java 29 Oct 2002 21:40:58 -0000 1.3
+++ src/org/eclipse/cdt/internal/ui/cview/CViewDropAdapter.java 28 May 2003 16:30:33 -0000
@@ -10,7 +10,6 @@
import java.util.Arrays;
import java.util.List;
-import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.core.resources.IContainer;
@@ -42,7 +41,8 @@
import org.eclipse.ui.part.PluginDropAdapter;
import org.eclipse.ui.part.ResourceTransfer;
import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;;
+import org.eclipse.ui.wizards.datatransfer.ImportOperation;
+;
/**
* Implements drop behaviour for drag and drop operations
@@ -368,10 +368,7 @@
Object obj = getCurrentTarget();
IResource res = null;
if (obj instanceof ICElement) {
- try {
- res = ((ICElement)obj).getUnderlyingResource();
- } catch (CModelException e) {
- }
+ res = ((ICElement)obj).getUnderlyingResource();
}
IContainer targetResource = getActualTarget(res);
String[] names = (String[]) data;
@@ -392,10 +389,7 @@
Object obj = getCurrentTarget();
IResource res = null;
if (obj instanceof ICElement) {
- try {
- res = ((ICElement)obj).getUnderlyingResource();
- } catch (CModelException e) {
- }
+ res = ((ICElement)obj).getUnderlyingResource();
}
IContainer targetResource = getActualTarget(res);
IResource[] sources = (IResource[]) data;
@@ -443,13 +437,10 @@
*/
protected IStatus validateTarget(Object target) {
if (target instanceof ICElement) {
- try {
- IResource r = ((ICElement)target).getUnderlyingResource();
- if (r == null)
- return info("Target Must Be Resource"); //$NON-NLS-1$
- target = r;
- } catch (CModelException e) {
- }
+ IResource r = ((ICElement)target).getUnderlyingResource();
+ if (r == null)
+ return info("Target Must Be Resource"); //$NON-NLS-1$
+ target = r;
}
if (!(target instanceof IResource)) {
return info("Target Must Be Resource"); //$NON-NLS-1$
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.5
diff -u -r1.5 CViewSorter.java
--- src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java 3 Apr 2003 04:29:43 -0000 1.5
+++ src/org/eclipse/cdt/internal/ui/cview/CViewSorter.java 28 May 2003 16:30:33 -0000
@@ -5,7 +5,6 @@
* All Rights Reserved.
*/
-import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IArchive;
import org.eclipse.cdt.core.model.IArchiveContainer;
@@ -54,10 +53,7 @@
return 40;
} else if (element instanceof ITranslationUnit) {
IResource res = null;
- try {
- res = ((ITranslationUnit)element).getUnderlyingResource();
- } catch (CModelException e) {
- }
+ res = ((ITranslationUnit)element).getUnderlyingResource();
if (res != null) {
String ext = res.getFileExtension();
if (ext != null) {
Index: src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java,v
retrieving revision 1.1
diff -u -r1.1 NewClassWizardPage.java
--- src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java 27 May 2003 21:33:02 -0000 1.1
+++ src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java 28 May 2003 16:30:33 -0000
@@ -16,6 +16,7 @@
import java.lang.reflect.InvocationTargetException;
import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.cdt.core.model.CModelException;
@@ -24,6 +25,7 @@
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IOpenable;
import org.eclipse.cdt.core.model.IParent;
+import org.eclipse.cdt.core.model.IStructure;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.internal.core.model.IWorkingCopy;
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
@@ -87,6 +89,8 @@
public class NewClassWizardPage extends WizardPage implements Listener {
// the page name
private final static String PAGE_NAME= "NewClassWizardPage";
+ private final String HEADER_EXT = ".h";
+ private final String BODY_EXT = ".cpp";
// the current resource selection
private IStructuredSelection currentSelection;
@@ -96,6 +100,10 @@
// cache of newly-created files
private ITranslationUnit parentHeaderTU = null;
private ITranslationUnit parentBodyTU = null;
+ // the created class element
+ private IStructure createdClass = null;
+
+ private ArrayList elementsOfTypeClassInProject = null;
// Controls
private StringDialogField fClassNameDialogField;
@@ -115,7 +123,6 @@
public NewClassWizardPage(IStructuredSelection selection) {
super(PAGE_NAME);
currentSelection = selection;
- eSelection = getSelectionCElement(currentSelection);
TypeFieldsAdapter adapter= new TypeFieldsAdapter();
@@ -160,7 +167,7 @@
public void init() {
fAccessButtons.setEnabled(false);
setPageComplete(false);
-
+ eSelection = getSelectionCElement(currentSelection);
}
// ----------------- Creating Controls --------------------
@@ -308,14 +315,14 @@
String text = fClassNameDialogField.getText();
if(!linkedResourceGroupForHeader.linkCreated()){
if (text.length() > 0) {
- linkedResourceGroupForHeader.setText(text + ".h");
+ linkedResourceGroupForHeader.setText(text + HEADER_EXT);
} else {
linkedResourceGroupForHeader.setText(text);
}
}
if(!linkedResourceGroupForBody.linkCreated()){
if (text.length() > 0) {
- linkedResourceGroupForBody.setText(text + ".cpp");
+ linkedResourceGroupForBody.setText(text + BODY_EXT);
} else{
linkedResourceGroupForBody.setText(text);
}
@@ -337,7 +344,7 @@
}
// --------------- Helper methods for creating controls -----
- private static ICElement getSelectionCElement(IStructuredSelection sel) {
+ private ICElement getSelectionCElement(IStructuredSelection sel) {
if (!sel.isEmpty() && sel instanceof IStructuredSelection) {
List list= ((IStructuredSelection)sel).toList();
if (list.size() == 1) {
@@ -368,35 +375,39 @@
}
}
+ private ArrayList getClassElementsInProject(){
+ return elementsOfTypeClassInProject;
+ }
+
private ArrayList findClassElementsInProject(){
- final ArrayList elementsOfTypeClassInProject = new ArrayList();
-
- IRunnableWithProgress runnable= new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- if (monitor == null) {
- monitor= new NullProgressMonitor();
- }
- monitor.beginTask("", 5); //$NON-NLS-1$
- try{
- if(eSelection != null){
- ICProject cProject = eSelection.getCProject();
- getChildrenOfTypeClass((IParent)cProject, elementsOfTypeClassInProject, monitor, 1);
+ if( elementsOfTypeClassInProject == null ){
+ elementsOfTypeClassInProject = new ArrayList();
+ IRunnableWithProgress runnable= new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ if (monitor == null) {
+ monitor= new NullProgressMonitor();
+ }
+ monitor.beginTask("", 5); //$NON-NLS-1$
+ try{
+ if(eSelection != null){
+ ICProject cProject = eSelection.getCProject();
+ getChildrenOfTypeClass((IParent)cProject, elementsOfTypeClassInProject, monitor, 1);
+ }
+ monitor.worked(5);
+ } finally{
+ monitor.done();
}
- monitor.worked(5);
- } finally{
- monitor.done();
}
+ };
+
+ try {
+ getWizard().getContainer().run(false, true, runnable);
+ } catch (InvocationTargetException e) {
+ } catch (InterruptedException e) {
+ }
+ finally {
}
- };
-
- try {
- getWizard().getContainer().run(false, true, runnable);
- } catch (InvocationTargetException e) {
- } catch (InterruptedException e) {
- }
- finally {
- }
-
+ }
return elementsOfTypeClassInProject;
}
@@ -418,24 +429,22 @@
}
// ------------- getter methods for dialog controls -------------
- public String getHeaderFileName(){
- return linkedResourceGroupForHeader.getText();
- }
- public String getBodyFileName(){
- return linkedResourceGroupForBody.getText();
- }
public String getNewClassName(){
return fClassNameDialogField.getText();
}
+
public String getBaseClassName(){
return fBaseClassDialogField.getText();
}
+
public boolean isVirtualDestructor(){
return fConstDestButtons.isSelected(1);
}
+
public boolean isInline(){
return fConstDestButtons.isSelected(0);
}
+
public String getAccess(){
if(fAccessButtons.isSelected(0))
return "public";
@@ -454,7 +463,14 @@
return parentBodyTU;
}
-
+ public IStructure getCreatedClassElement(){
+ return createdClass;
+ }
+
+ public IStructure getBaseClassElement(){
+
+ return null;
+ }
// -------------- Create a new Class ----------------------
public void createClass(IProgressMonitor monitor){
@@ -465,10 +481,10 @@
try{
String lineDelimiter= null;
- lineDelimiter= System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+ lineDelimiter= System.getProperty("line.separator", "\n");
- parentHeaderTU = createTranslationUnit(linkedResourceGroupForHeader, getHeaderFileName());
- parentBodyTU = createTranslationUnit(linkedResourceGroupForBody, getBodyFileName());
+ parentHeaderTU = createTranslationUnit(linkedResourceGroupForHeader);
+ parentBodyTU = createTranslationUnit(linkedResourceGroupForBody);
monitor.worked(1);
if(parentHeaderTU != null){
@@ -479,6 +495,7 @@
headerWC.reconcile();
headerWC.commit(true, monitor);
}
+ createdClass= (IStructure)headerWC.getElement(getNewClassName());
}
if(parentBodyTU != null){
String body = constructBodyFileContent(lineDelimiter);
@@ -498,7 +515,7 @@
}
- protected ITranslationUnit createTranslationUnit(LinkToFileGroup linkedGroup, String fileName){
+ protected ITranslationUnit createTranslationUnit(LinkToFileGroup linkedGroup){
ITranslationUnit createdUnit = null;
IFile createdFile = null;
createdFile= createNewFile(linkedGroup);
@@ -681,103 +698,108 @@
// ------------ Constructing File Contents -----------------
protected String constructHeaderFileContent(String lineDelimiter){
- StringBuffer text = new StringBuffer();
- boolean extendingBase = false;
- String baseClassName = getBaseClassName();
- if((baseClassName != null) && (baseClassName.length() > 0))
- {
- extendingBase = true;
- }
-
- if(extendingBase){
- text.append("#include \"");
- text.append(baseClassName);
- text.append('\"');
- text.append(lineDelimiter);
- text.append(lineDelimiter);
- }
- text.append("class ");
- text.append(getNewClassName());
- if(extendingBase){
- text.append(" : ");
- text.append(getAccess());
- text.append(" ");
- text.append(baseClassName);
- }
- text.append("{");
- text.append(lineDelimiter);
-
- text.append("public:");
- text.append(lineDelimiter);
- text.append(lineDelimiter);
-
- // constructor
- text.append('\t');
- text.append(getNewClassName());
- text.append("()");
- if(isInline()){
- text.append(" {};");
- text.append(lineDelimiter);
- }else {
- text.append(";");
- text.append(lineDelimiter);
- }
-
-
- // destructor
- text.append('\t');
- if(isVirtualDestructor()){
- text.append("virtual ");
- }
- text.append("~");
- text.append(getNewClassName());
- text.append("()");
- if(isInline()){
- text.append(" {};");
- text.append(lineDelimiter);
- }else {
- text.append(";");
- text.append(lineDelimiter);
- }
- text.append("};");
- text.append(lineDelimiter);
+ StringBuffer text = new StringBuffer();
+ boolean extendingBase = false;
+ String baseClassName = getBaseClassName();
+ String baseClassFileName = "";
+ if((baseClassName != null) && (baseClassName.length() > 0))
+ {
+ extendingBase = true;
+ ArrayList classElements = findClassElementsInProject();
+ ICElement baseClass = findInList(baseClassName, classElements);
+
+ if(baseClass != null){
+ baseClassFileName = baseClass.getUnderlyingResource().getName();
+ } else {
+ baseClassFileName = baseClassName + HEADER_EXT;
+ }
+ }
+
+ if(extendingBase){
+ text.append("#include \"");
+ text.append(baseClassFileName);
+ text.append('\"');
+ text.append(lineDelimiter);
+ text.append(lineDelimiter);
+ }
+ text.append("class ");
+ text.append(getNewClassName());
+ if(extendingBase){
+ text.append(" : ");
+ text.append(getAccess());
+ text.append(" ");
+ text.append(baseClassName);
+ }
+ text.append("{");
+ text.append(lineDelimiter);
+
+ text.append("public:");
+ text.append(lineDelimiter);
+ text.append(lineDelimiter);
+
+ // constructor
+ text.append('\t');
+ text.append(getNewClassName());
+ text.append("()");
+ if(isInline()){
+ text.append(" {};");
+ text.append(lineDelimiter);
+ }else {
+ text.append(";");
+ text.append(lineDelimiter);
+ }
+ // destructor
+ text.append('\t');
+ if(isVirtualDestructor()){
+ text.append("virtual ");
+ }
+ text.append("~");
+ text.append(getNewClassName());
+ text.append("()");
+ if(isInline()){
+ text.append(" {};");
+ text.append(lineDelimiter);
+ }else {
+ text.append(";");
+ text.append(lineDelimiter);
+ }
+ text.append("};");
+ text.append(lineDelimiter);
- return text.toString();
-
- }
-
- protected String constructBodyFileContent(String lineDelimiter){
- StringBuffer text = new StringBuffer();
- text.append("#include \"");
- text.append(getNewClassName());
- text.append("\"");
- text.append(lineDelimiter);
- text.append(lineDelimiter);
-
- if(isInline())
- return text.toString();
-
- // constructor
- text.append(getNewClassName());
- text.append("::");
- text.append(getNewClassName());
- text.append("()");
- text.append(lineDelimiter);
- text.append("{};");
- text.append(lineDelimiter);
-
- // destructor
- text.append(getNewClassName());
- text.append("::~");
- text.append(getNewClassName());
- text.append("()");
- text.append(lineDelimiter);
- text.append("{};");
- text.append(lineDelimiter);
-
- return text.toString();
- }
+ return text.toString();
+ }
+
+ protected String constructBodyFileContent(String lineDelimiter){
+ StringBuffer text = new StringBuffer();
+ text.append("#include \"");
+ text.append(getCreatedClassHeaderFile().getElementName());
+ text.append("\"");
+ text.append(lineDelimiter);
+ text.append(lineDelimiter);
+
+ if(isInline())
+ return text.toString();
+
+ // constructor
+ text.append(getNewClassName());
+ text.append("::");
+ text.append(getNewClassName());
+ text.append("()");
+ text.append(lineDelimiter);
+ text.append("{};");
+ text.append(lineDelimiter);
+
+ // destructor
+ text.append(getNewClassName());
+ text.append("::~");
+ text.append(getNewClassName());
+ text.append("()");
+ text.append(lineDelimiter);
+ text.append("{};");
+ text.append(lineDelimiter);
+ return text.toString();
+ }
// ------ validation --------
@@ -855,15 +877,29 @@
// class name must follow the C/CPP convensions
// if class does not exist, give warning
-// ArrayList elementsFound = findClassElementsInProject();
-// if(!foundInList(getBaseClassName(), elementsFound)){
-// status.setWarning(NewWizardMessages.getString("NewClassWizardPage.warning.BaseClassNotExists")); //$NON-NLS-1$
-// }
+ ArrayList elementsFound = findClassElementsInProject();
+ if(!foundInList(getBaseClassName(), elementsFound)){
+ status.setWarning(NewWizardMessages.getString("NewClassWizardPage.warning.BaseClassNotExists")); //$NON-NLS-1$
+ }
return status;
}
+
+ private ICElement findInList(String name, ArrayList elements){
+ Iterator i = elements.iterator();
+ while (i.hasNext()){
+ ICElement element = (ICElement)i.next();
+ if (name.equals(element.getElementName()))
+ return element;
+ }
+ return null;
+ }
+
private boolean foundInList(String name, ArrayList elements){
- return false;
+ if(findInList(name, elements) != null)
+ return true;
+ else
+ return false;
}
}