Bug 539919 - Package name completely focused in package creation dialog
- add new setFocus() method to StringFieldDialog that takes a
boolean which determines if entire field will be selected by
default or not when focused
- change setFocus() method in NewPackageWizardPage to call the
new StringFieldDialog setFocus(boolean) method with false
Change-Id: Iedf1098c85b0d15dfb51a64c906f48980cccf015
Signed-off-by: Jeff Johnston <jjohnstn@redhat.com>
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/dialogfields/StringDialogField.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/dialogfields/StringDialogField.java
index 0c1ba50..7359bee 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/dialogfields/StringDialogField.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/dialogfields/StringDialogField.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ * Red Hat Inc. - add setting to specify focus selection - Bug 539919
*******************************************************************************/
package org.eclipse.jdt.internal.ui.wizards.dialogfields;
@@ -35,12 +36,13 @@
private Text fTextControl;
private ModifyListener fModifyListener;
private IContentAssistProcessor fContentAssistProcessor;
+ private boolean selectAllByDefault= true;
public StringDialogField() {
super();
fText= ""; //$NON-NLS-1$
}
-
+
public void setContentAssistProcessor(IContentAssistProcessor processor) {
fContentAssistProcessor= processor;
if (fContentAssistProcessor != null && isOkToUse(fTextControl)) {
@@ -87,6 +89,11 @@
// ------- focus methods
+ public boolean setFocus(boolean selectAllByDefault) {
+ this.selectAllByDefault= selectAllByDefault;
+ return setFocus();
+ }
+
/*
* @see DialogField#setFocus
*/
@@ -94,11 +101,17 @@
public boolean setFocus() {
if (isOkToUse(fTextControl)) {
fTextControl.setFocus();
- fTextControl.setSelection(0, fTextControl.getText().length());
+ if (selectAllByDefault) {
+ fTextControl.setSelection(0, fTextControl.getText().length());
+ } else {
+ // Leave selection at end of text control contents
+ // Bug 539919 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=539919
+ fTextControl.setSelection(fTextControl.getText().length());
+ }
}
return true;
}
-
+
// ------- ui creation
/**
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewPackageWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewPackageWizardPage.java
index f6b6e8b..505c7b4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewPackageWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewPackageWizardPage.java
@@ -134,7 +134,7 @@
PackageFieldAdapter adapter= new PackageFieldAdapter();
- fPackageDialogField= new StringDialogField();
+ fPackageDialogField= new StringDialogField();
fPackageDialogField.setDialogFieldListener(adapter);
fPackageDialogField.setLabelText(NewWizardMessages.NewPackageWizardPage_package_label);
@@ -244,7 +244,7 @@
* Sets the focus to the package name input field.
*/
protected void setFocus() {
- fPackageDialogField.setFocus();
+ fPackageDialogField.setFocus(false); // choose to not select all by default - Bug 539919
}