diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 8e2a5ffda33..cde2c1a717e 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,5 +1,7 @@ 2004-06-24 Chris Wiebe Fix for PR 48783 : [New Class Wizard] Err Create C++ Class with "Link to File" checkbox selected + Fix for PR 47571 : [New Class Wizard] resolved location can be blanked + Fix for PR 48774 : [New Class Wizard] Error if Create C++ Class with no name 2004-06-23 Tanya Wolff Fix for bugs 66134,66145 diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java index 62be2c8cb6e..82e8cfbc7a7 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java @@ -62,6 +62,7 @@ public class LinkToFileGroup extends StringButtonDialogField { protected Button variablesButton; private Label resolvedPathLabelText; private Label resolvedPathLabelData; + private boolean preventDialogFieldChanged = false; public LinkToFileGroup(IStringButtonAdapter adapter, Listener listener) { super(adapter); @@ -124,7 +125,8 @@ public class LinkToFileGroup extends StringButtonDialogField { resolveVariable(); if (listener != null) listener.handleEvent(new Event()); - dialogFieldChanged(); + if (!preventDialogFieldChanged) + dialogFieldChanged(); } }; linkButton.addSelectionListener(selectionListener); @@ -139,9 +141,11 @@ public class LinkToFileGroup extends StringButtonDialogField { public void setText(String text) { fText= text; if (isOkToUse(linkTargetField)) { + preventDialogFieldChanged = true; linkTargetField.setText(text); + preventDialogFieldChanged = false; } - dialogFieldChanged(); +// dialogFieldChanged(); } public Text getTextControl(Composite parent){ @@ -155,7 +159,8 @@ public class LinkToFileGroup extends StringButtonDialogField { resolveVariable(); if (listener != null) listener.handleEvent(new Event()); - dialogFieldChanged(); + if (!preventDialogFieldChanged) + dialogFieldChanged(); } }); if (initialLinkTarget != null) @@ -279,7 +284,8 @@ public class LinkToFileGroup extends StringButtonDialogField { } if (selection != null) { linkTargetField.setText(selection); - dialogFieldChanged(); + if (!preventDialogFieldChanged) + dialogFieldChanged(); } } /** @@ -300,7 +306,8 @@ public class LinkToFileGroup extends StringButtonDialogField { if (variableNames != null && variableNames.length == 1) { linkTargetField.setText(variableNames[0]); - dialogFieldChanged(); + if (!preventDialogFieldChanged) + dialogFieldChanged(); } } } @@ -338,7 +345,8 @@ public class LinkToFileGroup extends StringButtonDialogField { initialLinkTarget = target; if (linkTargetField != null && linkTargetField.isDisposed() == false) { linkTargetField.setText(target); - dialogFieldChanged(); + if (!preventDialogFieldChanged) + dialogFieldChanged(); } } /** 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 52ee2e684ed..12454cdd966 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 @@ -189,6 +189,7 @@ public class NewClassWizardPage extends WizardPage implements Listener { linkedResourceGroupForBody.setLabelText(NewWizardMessages.getString("NewClassWizardPage.files.body")); //$NON-NLS-1$ fClassNameStatus= new StatusInfo(); + ((StatusInfo)fClassNameStatus).setError(NewWizardMessages.getString("NewClassWizardPage.error.EnterClassName")); //$NON-NLS-1$ fBaseClassStatus= new StatusInfo(); fLinkedResourceGroupForHeaderStatus= new StatusInfo(); fLinkedResourceGroupForBodyStatus= new StatusInfo(); @@ -400,9 +401,9 @@ public class NewClassWizardPage extends WizardPage implements Listener { IStatus linkedResourceGroupChanged(LinkToFileGroup linkedGroup, boolean isHeader) { StatusInfo status = new StatusInfo(); - String text = linkedGroup.getText(); if (linkedGroup.linkCreated()) { // must not be empty + String text = linkedGroup.getText(); if (text == null || text.length() == 0) { if (isHeader) status.setError(NewWizardMessages.getString("NewClassWizardPage.error.EnterHeaderFile")); //$NON-NLS-1$ @@ -423,6 +424,21 @@ public class NewClassWizardPage extends WizardPage implements Listener { status.setError(NewWizardMessages.getString("NewClassWizardPage.error.NoBodyFile")); //$NON-NLS-1$ } } + } else { + String text = fClassNameDialogField.getText(); + if (isHeader) { + if (text.length() > 0) { + linkedGroup.setText(text + HEADER_EXT); + } else { + linkedGroup.setText(text); + } + } else { + if (text.length() > 0) { + linkedGroup.setText(text + BODY_EXT); + } else{ + linkedGroup.setText(text); + } + } } return status; }