Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] fixes for 47571, 48774

This patch fixes the "resolved location can be blanked" and "Error if Create C++ Class with no name" bugs in the class wizard.

-Chris
Index: src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java,v
retrieving revision 1.8
diff -u -r1.8 LinkToFileGroup.java
--- src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java	24 Jun 2004 13:56:05 -0000	1.8
+++ src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java	24 Jun 2004 15:27:29 -0000
@@ -62,6 +62,7 @@
 	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 @@
 					resolveVariable();
 					if (listener != null)
 						listener.handleEvent(new Event());
-					dialogFieldChanged();
+					if (!preventDialogFieldChanged)
+						dialogFieldChanged();
 				}
 			};
 			linkButton.addSelectionListener(selectionListener);
@@ -139,9 +141,11 @@
 	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 @@
 					resolveVariable();
 					if (listener != null)
 						listener.handleEvent(new Event());
-					dialogFieldChanged();
+					if (!preventDialogFieldChanged)
+						dialogFieldChanged();
 				}
 			});
 			if (initialLinkTarget != null)
@@ -279,7 +284,8 @@
 		}					
 		if (selection != null) {
 			linkTargetField.setText(selection);
-			dialogFieldChanged();
+			if (!preventDialogFieldChanged)
+				dialogFieldChanged();
 		}
 	}
 	/**
@@ -300,7 +306,8 @@
 			if (variableNames != null && variableNames.length == 1)
 			{
 				linkTargetField.setText(variableNames[0]);
-				dialogFieldChanged();
+				if (!preventDialogFieldChanged)
+					dialogFieldChanged();
 			}
 		}
 	}
@@ -338,7 +345,8 @@
 		initialLinkTarget = target;
 		if (linkTargetField != null && linkTargetField.isDisposed() == false) {
 			linkTargetField.setText(target);
-			dialogFieldChanged();
+			if (!preventDialogFieldChanged)
+				dialogFieldChanged();
 		}
 	}
 	/**
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.22
diff -u -r1.22 NewClassWizardPage.java
--- src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java	24 Jun 2004 13:56:05 -0000	1.22
+++ src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java	24 Jun 2004 15:27:29 -0000
@@ -189,6 +189,7 @@
 		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 @@
 
 	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$
@@ -421,6 +422,21 @@
 						status.setError(NewWizardMessages.getString("NewClassWizardPage.error.NoHeaderFile")); //$NON-NLS-1$
 					else
 						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);
 				}
 			}
 		}

Back to the top