Bug 491293 - [Quick Access] Make initial hint larger in result popup
The hint is now stored in a Text, placed on top of the result Table.
The Text is displayed only on need: as initial hint and for no results.
The hint text is now extended to be more descriptive.
Change-Id: I14df80729844072b25c18cc3546f71f37847e127
Signed-off-by: Patrik Suzzi <psuzzi@gmail.com>
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java
index 0082910..8cebb41 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/QuickAccessContents.java
@@ -10,7 +10,7 @@
* Tom Hochstein (Freescale) - Bug 393703 - NotHandledException selecting inactive command under 'Previous Choices' in Quick access
* Lars Vogel <Lars.Vogel@vogella.com> - Bug 472654, 491272, 491398
* Leung Wang Hei <gemaspecial@yahoo.com.hk> - Bug 483343
- * Patrik Suzzi <psuzzi@gmail.com> - Bug 491291, Bug 491529
+ * Patrik Suzzi <psuzzi@gmail.com> - Bug 491291, 491529, 491293
*******************************************************************************/
package org.eclipse.ui.internal.quickaccess;
@@ -136,14 +136,11 @@
if (table.getItemCount() > 0) {
table.setSelection(selectionIndex);
+ hideHintText();
} else if (filterTextEmpty) {
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(0, QuickAccessMessages.QuickAccess_StartTypingToFindMatches);
- item.setForeground(0, grayColor);
+ showHintText(QuickAccessMessages.QuickAccess_StartTypingToFindMatches, grayColor);
} else {
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(0, QuickAccessMessages.QuickAccessContents_NoMatchingResults);
- item.setForeground(0, grayColor);
+ showHintText(QuickAccessMessages.QuickAccessContents_NoMatchingResults, grayColor);
}
// update info as-you-type
@@ -592,6 +589,48 @@
});
}
+ private Text hintText;
+ private boolean displayHintText;
+
+ /** Create HintText as child of the given parent composite */
+ Text createHintText(Composite composite, int defaultOrientation) {
+ hintText = new Text(composite, SWT.FILL);
+ hintText.setOrientation(defaultOrientation);
+ displayHintText = true;
+ return hintText;
+ }
+
+ /** Hide the hint text */
+ void hideHintText() {
+ if (displayHintText) {
+ setHintTextToDisplay(false);
+ }
+ }
+
+ /** Show the hint text with the given color */
+ void showHintText(String text, Color color) {
+ hintText.setText(text);
+ if (color != null) {
+ hintText.setForeground(color);
+ }
+ if (!displayHintText) {
+ setHintTextToDisplay(true);
+ }
+ }
+
+ /**
+ * Sets hint text to be displayed and requests the layout
+ *
+ * @param toDisplay
+ */
+ private void setHintTextToDisplay(boolean toDisplay) {
+ GridData data = (GridData) hintText.getLayoutData();
+ data.exclude = !toDisplay;
+ hintText.setVisible(toDisplay);
+ hintText.requestLayout();
+ this.displayHintText = toDisplay;
+ }
+
/**
* Creates the table providing the contents for the quick access dialog
*
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java
index 1a1a494..27f0295 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java
@@ -12,7 +12,7 @@
* Brian de Alwis - Fix size computation to account for trim
* Markus Kuppe <bugs.eclipse.org@lemmster.de> - Bug 449485: [QuickAccess] "Widget is disposed" exception in errorlog during shutdown due to quickaccess.SearchField.storeDialog
* Elena Laskavaia <elaskavaia.cdt@gmail.com> - Bug 433746: [QuickAccess] SWTException on closing quick access shell
- * Patrik Suzzi <psuzzi@gmail.com> - Bug 488926, 491278, 491291, 491312
+ * Patrik Suzzi <psuzzi@gmail.com> - Bug 488926, 491278, 491291, 491312, 491293
******************************************************************************/
package org.eclipse.ui.internal.quickaccess;
import java.util.ArrayList;
@@ -223,6 +223,7 @@
shell.setBackground(shell.getDisplay().getSystemColor(SWT.COLOR_WHITE));
shell.setText(QuickAccessMessages.QuickAccess_EnterSearch); // just for debugging, not shown anywhere
GridLayoutFactory.fillDefaults().applyTo(shell);
+ quickAccessContents.createHintText(shell, Window.getDefaultOrientation());
table = quickAccessContents.createTable(shell, Window.getDefaultOrientation());
txtQuickAccess.addMouseListener(new MouseAdapter() {
@Override
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/messages.properties b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/messages.properties
index 01e3563..64065e1 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/messages.properties
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/messages.properties
@@ -7,7 +7,7 @@
#
# Contributors:
# IBM Corporation - initial API and implementation
-# Patrik Suzzi <psuzzi@gmail.com> - Bug 488926
+# Patrik Suzzi <psuzzi@gmail.com> - Bug 488926, 491293
###############################################################################
QuickAccess_Editors=Editors
QuickAccess_Views=Views
@@ -19,7 +19,7 @@
QuickAccess_Previous=Previous Choices
QuickAccess_Properties=Properties
QuickAccess_PressKeyToShowAllMatches=Press ''{0}'' to remove 5 result per category limit
-QuickAccess_StartTypingToFindMatches=Start typing...
+QuickAccess_StartTypingToFindMatches=Start typing to search commands and more...
QuickAccess_AvailableCategories=Available categories:
QuickAccess_EnterSearch=Quick Access
QuickAccess_TooltipDescription=Access commands and other items ({0})