From 745dce13416927fa00d3be64391aedf8812f7d5a Mon Sep 17 00:00:00 2001 From: Hoda Amer Date: Fri, 9 Jul 2004 18:33:22 +0000 Subject: [PATCH] Bug Fixing --- core/org.eclipse.cdt.ui/ChangeLog | 3 +++ .../ui/wizards/NewWizardMessages.properties | 2 ++ .../cdt/ui/wizards/NewClassWizardPage.java | 21 ++++++++++++++++--- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 837c4ee4f5e..8ec23013e49 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,6 @@ +2004-07-09 Hoda Amer + Fix for PR 69510 : [C++ Class Wizard] error message in C++ Class Wizard if invoke Class Wizard from existing C++ class in C/C++ Project View + 2004-07-09 Alain Magloire Pr reported by Alex C. Follow the other views lead and for multiple selection diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/NewWizardMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/NewWizardMessages.properties index 721b4572fcc..4db2ace7343 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/NewWizardMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/NewWizardMessages.properties @@ -179,6 +179,8 @@ NewClassWizardPage.warning.BaseClassNotExists=Warning: Base class does not exist NewClassWizardPage.operations.getProjectClasses=Looking for classes in project NewClassWizardPage.error.NotAvailableForNonCppProjects= The wizard is not available for non C++ projects. +NewClassWizardPage.error.SelectedProjectError=Error in determining the selected project. +NewClassWizardPage.error.DefaultSourceFolderError=Error in determining the default source folder. NewClassWizardPage.getProjectClasses.exception.title=Exception NewClassWizardPage.getProjectClasses.exception.message=Unexpected exception. See log for details. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java index 5b6704314d1..28d6d26c4de 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java @@ -213,7 +213,13 @@ public class NewClassWizardPage extends WizardPage implements Listener { eSelection = null; defaultSourceFolder = null; StatusInfo status = new StatusInfo(); - status.setError(NewWizardMessages.getString("NewClassWizardPage.error.NotAvailableForNonCppProjects")); //$NON-NLS-1$ + if(!hasCppNature){ + status.setError(NewWizardMessages.getString("NewClassWizardPage.error.NotAvailableForNonCppProjects")); //$NON-NLS-1$ + }else if (fSelectedProject == null){ + status.setError(NewWizardMessages.getString("NewClassWizardPage.error.SelectedProjectError")); //$NON-NLS-1$ + } else { + status.setError(NewWizardMessages.getString("NewClassWizardPage.error.DefaultSourceFolderError")); //$NON-NLS-1$ + } updateStatus(status); } } @@ -497,7 +503,11 @@ public class NewClassWizardPage extends WizardPage implements Listener { Object selectedElement= selection.getFirstElement(); if (selectedElement instanceof IAdaptable) { IAdaptable adaptable= (IAdaptable) selectedElement; - resource= (IResource) adaptable.getAdapter(IResource.class); + if(adaptable instanceof ICElement){ + resource = ((ICElement)adaptable).getUnderlyingResource(); + }else { + resource= (IResource) adaptable.getAdapter(IResource.class); + } if (resource != null && resource instanceof IFile) resource= resource.getParent(); } @@ -510,7 +520,12 @@ public class NewClassWizardPage extends WizardPage implements Listener { Object selectedElement= selection.getFirstElement(); if (selectedElement instanceof IAdaptable) { IAdaptable adaptable= (IAdaptable) selectedElement; - IResource resource= (IResource) adaptable.getAdapter(IResource.class); + IResource resource = null; + if(adaptable instanceof ICElement){ + resource = ((ICElement)adaptable).getUnderlyingResource(); + }else { + resource= (IResource) adaptable.getAdapter(IResource.class); + } if (resource != null) { return resource.getProject(); }