diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/filewizard/AbstractFileCreationWizardPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/filewizard/AbstractFileCreationWizardPage.java index 5f9d9bd4872..e968ea48337 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/filewizard/AbstractFileCreationWizardPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/filewizard/AbstractFileCreationWizardPage.java @@ -100,7 +100,7 @@ public abstract class AbstractFileCreationWizardPage extends NewElementWizardPag * that the file creation wizard has just been * created. */ - private boolean isFirstTime = false; + private boolean isFirstTime = true; private Template[] fTemplates; @@ -128,9 +128,6 @@ public abstract class AbstractFileCreationWizardPage extends NewElementWizardPag fSourceFolderStatus = STATUS_OK; fNewFileStatus = STATUS_OK; fLastFocusedField = 0; - - isFirstTime = true; - } // -------- UI Creation --------- @@ -458,7 +455,11 @@ public abstract class AbstractFileCreationWizardPage extends NewElementWizardPag public void focusGained(FocusEvent e) { fLastFocusedField = this.fieldID; - doStatusUpdate(); + if (isFirstTime) { + isFirstTime = false; + return; + } + doStatusUpdate(); } public void focusLost(FocusEvent e) { @@ -547,10 +548,6 @@ public abstract class AbstractFileCreationWizardPage extends NewElementWizardPag fSourceFolderStatus = sourceFolderChanged(); } if (fieldChanged(fields, NEW_FILE_ID)) { - if( isFirstTime ){ - isFirstTime = false; - return; - } fNewFileStatus = fileNameChanged(); } doStatusUpdate(); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassCreationWizardPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassCreationWizardPage.java index 9b5a4448011..c2c60916f4c 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassCreationWizardPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassCreationWizardPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2007 QNX Software Systems and others. + * Copyright (c) 2004, 2008 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -911,6 +911,10 @@ public class NewClassCreationWizardPage extends NewElementWizardPage { public void focusGained(FocusEvent e) { if (fLastFocusedField != this.fieldID) { fLastFocusedField = this.fieldID; + if( isFirstTime ) { + isFirstTime = false; + return; + } doStatusUpdate(); } } @@ -1340,10 +1344,6 @@ public class NewClassCreationWizardPage extends NewElementWizardPage { fNamespaceStatus = namespaceChanged(); } if (fieldChanged(fields, CLASS_NAME_ID)) { - if( isFirstTime ) { - isFirstTime = false; - return; - } fClassNameStatus = classNameChanged(); } if (fieldChanged(fields, BASE_CLASSES_ID)) { @@ -1374,21 +1374,23 @@ public class NewClassCreationWizardPage extends NewElementWizardPage { // do the last focused field first IStatus lastStatus = getLastFocusedStatus(); + final boolean isClassNameWarning = fClassNameStatus.getSeverity() == IStatus.WARNING; // status of all used components - IStatus[] status = new IStatus[] { - // give priority to file-level warnings over - // class name warnings - (fHeaderFileStatus != lastStatus && fClassNameStatus == lastStatus) ? fHeaderFileStatus : STATUS_OK, - (fSourceFileStatus != lastStatus && fClassNameStatus == lastStatus) ? fSourceFileStatus : STATUS_OK, - + IStatus[] status = new IStatus[] { lastStatus, (fSourceFolderStatus != lastStatus) ? fSourceFolderStatus : STATUS_OK, - (fHeaderFileStatus != lastStatus) ? fHeaderFileStatus : STATUS_OK, - (fSourceFileStatus != lastStatus) ? fSourceFileStatus : STATUS_OK, (fNamespaceStatus != lastStatus) ? fNamespaceStatus : STATUS_OK, + + // give priority to file-level warnings over + // class name warnings + (fHeaderFileStatus != lastStatus && isClassNameWarning) ? fHeaderFileStatus : STATUS_OK, + (fSourceFileStatus != lastStatus && isClassNameWarning) ? fSourceFileStatus : STATUS_OK, + (fClassNameStatus != lastStatus) ? fClassNameStatus : STATUS_OK, (fBaseClassesStatus != lastStatus) ? fBaseClassesStatus : STATUS_OK, (fMethodStubsStatus != lastStatus) ? fMethodStubsStatus : STATUS_OK, + (fSourceFileStatus != lastStatus) ? fSourceFileStatus : STATUS_OK, + (fHeaderFileStatus != lastStatus) ? fHeaderFileStatus : STATUS_OK, }; // the mode severe status will be displayed and the ok button enabled/disabled.