Difference between revisions of "Specification search toolbar"
Robertzhou (talk | contribs) |
|||
(70 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | This page | + | This page is the current design of a search toolbar for OOo. (The specifications can be created using the [[Specification template]]) |
− | The Search tool bar is tool bar which will | + | The Search tool bar is a tool bar which will provide quick text searching. It includes highlighting all search occurrences, backwards searching, forward searching, case-matching, whole word matching, and a close button. It can be closed via the close button or by pressing a keyboard shortcut. |
Any discussion of the specification should happen in the maillist(discuss@ux.openoffice.org), or on the discussion pages. | Any discussion of the specification should happen in the maillist(discuss@ux.openoffice.org), or on the discussion pages. | ||
Line 8: | Line 8: | ||
= Search toolbar = | = Search toolbar = | ||
− | = | + | = Writer = |
{| border=1 cellspacing=0 cellpadding=5 | {| border=1 cellspacing=0 cellpadding=5 | ||
| Document - ID | | Document - ID | ||
| Specification Owner | | Specification Owner | ||
− | | Last Change | + | | Last Change - 2009-10-09 |
| Status | | Status | ||
|- | |- | ||
| | | | ||
− | | | + | | Carsten Driesner / Stefan Baltzer |
− | | 2009- | + | | 2009-09-10 |
− | | | + | | Late draft |
|- | |- | ||
| Conforms to | | Conforms to | ||
Line 26: | Line 26: | ||
|- | |- | ||
| Applies to | | Applies to | ||
− | | | + | | Writer |
| | | | ||
| | | | ||
Line 42: | Line 42: | ||
=== Abstract === | === Abstract === | ||
− | The Search tool bar is tool bar which will | + | The Search tool bar is a tool bar which will provide quick text searching. It includes highlighting all search occurrences, backwards searching, forward searching, case-matching, whole word matching, and a close button. It can be closed via the close button or by pressing a Keyboard shortcut. |
=== i-Team Members (The specification owner is part of the i-Team) === | === i-Team Members (The specification owner is part of the i-Team) === | ||
Line 53: | Line 53: | ||
|- | |- | ||
| User Experience | | User Experience | ||
− | | Jaron Kuppers (Jaron) | + | | Jaron Kuppers (Jaron) (not active on this project anymore) |
− | | jaronbaron | + | | jaronbaron@gmail.com |
|- | |- | ||
| Development | | Development | ||
− | | shizhoubo(robertzhou) | + | | shizhoubo(robertzhou),Carsten Driesner |
− | | | + | | robertzhou@openoffice.org, cd@openoffice.org |
|- | |- | ||
| Quality Assurance | | Quality Assurance | ||
− | | | + | | Li Meiying,Zhu Lihua,Stefan Baltzer |
− | | | + | | limeiying@redoffice.com,zhulihua@redoffice.com,sba@openoffice.org |
|- | |- | ||
| Documentation | | Documentation | ||
− | | | + | | |
− | | | + | | |
|} | |} | ||
Line 82: | Line 82: | ||
|- | |- | ||
| Development | | Development | ||
− | | | + | | Carsten Driesner |
− | | | + | | 2009-10-09 |
|- | |- | ||
| Quality Assurance | | Quality Assurance | ||
− | | | + | | Stefan Baltzer |
− | | | + | | 2009-10-09 |
|- | |- | ||
| Documentation | | Documentation | ||
Line 108: | Line 108: | ||
|- | |- | ||
| 1.0 | | 1.0 | ||
− | | | + | | First incomplete version |
| | | | ||
| 2009-04-23 | | 2009-04-23 | ||
+ | |- | ||
+ | | 1.1 | ||
+ | | Initial specification draft | ||
+ | | JK | ||
+ | | 2009-07-23 | ||
+ | |- | ||
+ | | 1.2 | ||
+ | | Edit | ||
+ | | SBA | ||
+ | | 2009-09-14 | ||
+ | |- | ||
+ | | 1.3 | ||
+ | | Edit | ||
+ | | SBA+CD | ||
+ | | 2009-10-08 | ||
|} | |} | ||
Line 121: | Line 136: | ||
| Description | | Description | ||
|- | |- | ||
− | | | + | | Search Tool bar |
− | | | + | | The Search Tool bar is a locked bar (similar to the status bar) and resides above the status bar |
+ | |- | ||
+ | | Title Label | ||
+ | | It describes what the search action is, in this case essentially “find” | ||
+ | |- | ||
+ | | Search text field | ||
+ | | A text field where users input the string that will be searched within the document | ||
+ | |- | ||
+ | | Search text | ||
+ | | The text entered in the search text field | ||
+ | |- | ||
+ | | Next Button | ||
+ | | A button which executes searching forward through the document | ||
+ | |- | ||
+ | | Previous Button | ||
+ | | A button which executes searching backward through the document | ||
+ | |- | ||
+ | | Search All Button | ||
+ | | A radio button which searches all the content of the document and highlights the search text | ||
+ | |- | ||
+ | | Match Case Check Box | ||
+ | | A check box that makes text searches case-sensitive | ||
+ | |- | ||
+ | | Whole Words Check Box | ||
+ | | A check box that matches the search text to entire words within the document (aka the search text must match delimited strings) | ||
+ | |- | ||
+ | | Dynamic Text Info | ||
+ | | A text label that gives different text information about the current search status | ||
|} | |} | ||
== Motivation == | == Motivation == | ||
− | The motivation for this feature is to enhance the speed of searching text | + | |
+ | The motivation for this feature is to enhance the speed of searching text and to avoid a dialog window hiding the content of the document. | ||
== User Scenarios == | == User Scenarios == | ||
− | + | Currently OpenOffice.org users must use the "Find & Replace" dialog to search text. When this dialog obscures the document content, the user must move it away with the mouse. | |
== Goals == | == Goals == | ||
− | The goal for OpenOffice.org 3. | + | The goal for OpenOffice.org 3.3 is to provide a tool bar which will provide quick text searching without hiding document content. It shall include forward and backwards searching, highlighting all search occurrences, case matching and whole word match |
== Requirements and Dependencies == | == Requirements and Dependencies == | ||
=== Requirements === | === Requirements === | ||
− | Provide a tool bar which gives users the possibility to apply frequently used commands without the | + | Provide a tool bar which gives users the possibility to apply frequently used search commands without using the Find & Replace dialog. |
=== Technical Dependencies === | === Technical Dependencies === | ||
− | Implementation of the search tool bar | + | Implementation of the search tool bar depends on the default search algorithms of the current Find & Replace dialog. It won't interfere with that dialog. |
== Competitive Analyses == | == Competitive Analyses == | ||
=== Google Chrome Browser=== | === Google Chrome Browser=== | ||
− | The Google Chrome Search tool bar (Figure 1 | + | The Google Chrome Search tool bar (Figure 1) is located below the address tool bar and can't be moved. The search tool bar can made visible by pressing Ctrl+F. It is very simple and only provides text searching and no case matching or whole word matching functionality. It includes backward and forward searching and a count of the found search text. The Search tool bar is organized into a number of buttons or labels which are horizontally arranged. |
[[Image:Chrome_Browser_1.JPG]] | [[Image:Chrome_Browser_1.JPG]] | ||
=== Mozilla Firefox Browser === | === Mozilla Firefox Browser === | ||
− | + | The Mozilla Firefox Search Tool bar (Figure 2) is located above the status bar and can't be moved. The Search tool bar can be made visible by pressing Ctrl+F. Once active, Ctrl-F makes cursor jump into search text field. It has a close button and can also be closed with <Esc> key. It is is organized into a number of buttons which are arranged horizontally. The mouse can be used to click the buttons and every button has a state. The situation “Search key not found” will change the search text box background to red, text gets white. At the same time, the dynamic text info on the right of the bar shows text “phrase not found” and a red icon (Stop symbol) appears. In other scenarios, info given in the dynamic text field are “Reached end of page, continued from top” or “Reached top of page, continued from bottom”. This takes place automatically.<br/> | |
− | |||
[[Image:Mozilla_browser_1.JPG]] | [[Image:Mozilla_browser_1.JPG]] | ||
+ | |||
+ | === Safari (Mac) === | ||
+ | * Missing | ||
+ | |||
+ | === MS Office === | ||
+ | * Missing | ||
== Detailed Specification == | == Detailed Specification == | ||
− | The OpenOffice Search Tool Bar(Figure3) shall be located | + | The OpenOffice Search Tool Bar (Figure3) shall be located above the status bar and will be immovable. It can made visible by pressing Ctrl+F1. It contains the common tool bar items including BUTTON_SYMBOLTEXT or BUTTON_SYMBOL. |
+ | |||
+ | === General === | ||
+ | * The search bar will be a standard tool bar and behaves like that wherever possible: | ||
+ | ** A rip-out handle when docked | ||
+ | ** A "close" option in the context menu when docked | ||
+ | ** A title bar and a closer when undocked | ||
+ | ** It can be switched on and off via menu view-toolbars | ||
− | [[Image: | + | === Position and visibility === |
+ | By default, the Search bar is located above the status bar at the bottom of the application window. It is invisible by default. Both settings (visibility and position) will be stored and re-used after office is closed and restarted. | ||
+ | |||
+ | === Search bar settings === | ||
+ | * Which ones are are kept (case, whole word, previous search strings) when bar is closed and re-opened? | ||
+ | * Due to privacy/security reasons, the search string combo box shall be emptied after office restart. | ||
+ | * Search bar settings are stored individually for each application module. | ||
+ | * For all new documents of an application module, the last settings are used. | ||
+ | |||
+ | === Shortcut behavior === | ||
+ | * When the search bar is not visible, pressing <Ctrl>+<F1> makes it visible and set the cursor focus into the text field. | ||
+ | * When the the search bar is already visible, AND the focus is in the document, pressing <Ctrl>+<F1> set the cursor focus into the text field. | ||
+ | * When the the search bar is already visible, AND the focus is on the search bar, pressing <Ctrl>+<F1> closes the search bar.<br/> | ||
+ | Problem: Tools-Customize, Tab “Keyboard” shows <Ctrl>+<F1> in gray. So this shortcut is already used for “context sensitive help” stuff on all platforms. Thus another shortcut must be taken. At times (looked at DEV300_m61). <Ctrl>+<Alt>+<F> or <Ctrl>+<Shift>+<F> are still available. | ||
+ | |||
+ | === Tool bar items === | ||
+ | |||
+ | [[Image:Search_Toolbar.png]] | ||
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | ||
Line 196: | Line 268: | ||
| | | | ||
|- | |- | ||
− | | | + | |} |
+ | |||
+ | === 1. "Find" Label === | ||
+ | |||
+ | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | ||
|- | |- | ||
− | | | + | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''Label''' || bgcolor="#dddddd" | '''Comment''' |
− | | | + | |- |
+ | | '''Label:''' | ||
+ | | Find | ||
+ | | EN-US | ||
+ | |} | ||
+ | |||
+ | The static text info only describes what the purpose of the tool bar is and what should be entered into the Search Text Field. The static text label is “Find.” It should support multilingual properties. | ||
+ | |||
+ | === 2. Search Text Field === | ||
+ | |||
+ | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | ||
+ | |- | ||
+ | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''State''' || bgcolor="#dddddd" | '''Comment''' | ||
+ | |- | ||
+ | | '''Enabled:''' | ||
+ | | When the search toolbar is enabled this control is also enabled | ||
+ | |- | ||
+ | | '''Disabled:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | | '''Read Only:''' | ||
+ | | No | ||
+ | | | ||
+ | |- | ||
+ | | '''Initial String:''' | ||
+ | | Blank space string | ||
+ | | | ||
|- | |- | ||
− | | | + | | '''String Preselected:''' |
− | | | + | | Yes |
+ | | | ||
|- | |- | ||
− | | ''' | + | | '''Caret Position:''' |
− | | < | + | | <0> |
| | | | ||
|- | |- | ||
− | | ''' | + | | '''Characters Not Allowed''' |
− | | | + | | None |
| | | | ||
|- | |- | ||
− | | ''' | + | | '''Echo characters (Password Field)''' |
− | | | + | | None |
| | | | ||
+ | |- | ||
+ | |''' TextField Label:''' | ||
+ | | <EN-US> | ||
+ | | Here is "Find" label | ||
|} | |} | ||
+ | * The Search Text Field is a combo box. | ||
+ | * The user inputs the search text string via keyboard or clipboard. | ||
+ | * The drop-down entries will show recent search strings from the current office session. The list is empty after office restart. | ||
+ | * When <Return> is pressed after the search string, the “Find next” function is called. | ||
+ | * When the search text field is empty, nothing happens after pressing <Enter> | ||
+ | * The color of text and text background won't change. | ||
− | === | + | === 3. "Next" Button === |
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | ||
|- | |- | ||
− | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | ''' | + | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''State''' || bgcolor="#dddddd" | '''Comment''' |
+ | |- | ||
+ | | '''Enabled:''' | ||
+ | | if there is any text in the Search Text Field | ||
+ | | | ||
+ | |- | ||
+ | | '''Disabled:''' | ||
+ | | if there is no text in the Search Text Field | ||
+ | | | ||
+ | |- | ||
+ | | '''On Click:''' | ||
+ | | Forward searches the current document for the search text | ||
+ | | | ||
+ | |- | ||
+ | | '''Other:''' | ||
+ | | None | ||
+ | | | ||
|- | |- | ||
− | | '''Label:''' | + | |'''Button Label:''' |
− | | | + | | <EN-US> |
− | + | | | |
− | |} | + | |} |
− | The | + | The “Next” button will be of SYMBOL_TEXT style. When triggered, the button forward searches the current document for the search text. After a search was made, the found text is selected. The focus stays in the search text field. |
− | === | + | === 4. "Previous" Button === |
+ | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | ||
+ | |- | ||
+ | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''State''' || bgcolor="#dddddd" | '''Comment''' | ||
+ | |- | ||
+ | | '''Enabled:''' | ||
+ | | if there is any text in the Search Text Field | ||
+ | | | ||
+ | |- | ||
+ | | '''Disabled:''' | ||
+ | | if there is no text in the Search Text Field | ||
+ | | | ||
+ | |- | ||
+ | | '''On Click:''' | ||
+ | | Backward searches the current document for the search text | ||
+ | | | ||
+ | |- | ||
+ | | '''Other:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | |'''Button Label:''' | ||
+ | | <EN-US> | ||
+ | | | ||
+ | |} | ||
− | The | + | The “previous” button will be of SYMBOL_TEXT type. When triggered, the button backward searches the current document for the search text. After a search was made, the found text is selected. The focus stays in the search text field. The arrows shall point “up” and “down” because that would be correct in Right-To-Left UI as well. |
− | === | + | === 5. "Search All" Button === |
− | + | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | |
+ | |- | ||
+ | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''State''' || bgcolor="#dddddd" | '''Comment''' | ||
+ | |- | ||
+ | | '''Enabled:''' | ||
+ | | if there is any text in the Search Text Field | ||
+ | | | ||
+ | |- | ||
+ | | '''Disabled:''' | ||
+ | | if there is no text in the Search Text Field | ||
+ | | | ||
+ | |- | ||
+ | | '''On Click:''' | ||
+ | | All instances of the search text, within the document, will be shown highlighted and selected | ||
+ | | | ||
+ | |- | ||
+ | | '''Other:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | |'''Button Label:''' | ||
+ | | <EN-US> | ||
+ | | | ||
+ | |} | ||
− | + | The Button is a tool bar item with SYMBOL_TEXT type. When triggered, all instances of the search text, within the document, will be shown highlighted and selected. The “search all button” will not need to change states. After a search was made, all occurrences of the search text are selected. The focus stays in the search text field. | |
− | + | === 6. "Match Case" CheckBox === | |
− | === | + | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" |
+ | |- | ||
+ | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''State''' || bgcolor="#dddddd" | '''Comment''' | ||
+ | |- | ||
+ | | '''Enabled:''' | ||
+ | | When the search toolbar is enabled, it is always enabled | ||
+ | | | ||
+ | |- | ||
+ | | '''Disabled:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | | '''Tristate:''' | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | '''Checked:''' | ||
+ | | Future text searches via the are case-sensitive | ||
+ | | | ||
+ | |- | ||
+ | | '''Other:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | |'''CheckBox Label:''' | ||
+ | | <EN-US> | ||
+ | | | ||
+ | |} | ||
− | The | + | The Match Case Check Box is a check box button. When the check box is in a true state, all text searches (next, previous, all) are case-sensitive. |
− | === | + | === 7. "Whole Word" CheckBox=== |
− | + | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | |
+ | |- | ||
+ | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''State''' || bgcolor="#dddddd" | '''Comment''' | ||
+ | |- | ||
+ | | '''Enabled:''' | ||
+ | | When the search toolbar is enabled, it is always enabled | ||
+ | | | ||
+ | |- | ||
+ | | '''Disabled:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | | '''Tristate:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | | '''Checked:''' | ||
+ | | searching text will match the whole word to find in the current document. | ||
+ | | | ||
+ | |- | ||
+ | | '''Other:''' | ||
+ | | None | ||
+ | | | ||
+ | |- | ||
+ | |'''CheckBox Label:''' | ||
+ | | <EN-US> | ||
+ | | | ||
+ | |} | ||
− | + | The Whole Word Button is a check box. When the check box is in a true state, text searches match the search text to delimited strings, as opposed to any occurrence of the search text string (i.e. as part of a word). | |
− | + | === 9. Dynamic Text Info === | |
+ | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #cccccc solid; border-collapse: collapse; width: 100%" | ||
+ | |- | ||
+ | | width="200" bgcolor="#dddddd" | '''Property''' || bgcolor="#dddddd" | '''Label''' || bgcolor="#dddddd" | '''Comment''' | ||
+ | |- | ||
+ | | '''Label:''' | ||
+ | | None, it is dynamic stirng, it show different message according to result of searching text | ||
+ | | | ||
+ | |} | ||
− | + | The Dynamic Text info is a dynamic text label. It states “phrase not found” in these scenarios: | |
+ | * “Find All” brings no results | ||
+ | * Next (+auto re-run from top) brings no results | ||
+ | * Previous (+auto re-run from end) brings no results | ||
+ | Note: See “Future tasks” for further enhancements this label could get. | ||
− | + | == Search behavior == | |
+ | * When the user enters text in the Search text field and hits <Return> | ||
+ | ** The focus will stay in in the Search text field | ||
+ | ** The forward search is triggered as though the user tabbed from to the Next button or hit it with the mouse | ||
+ | The search ends when a phrase is found. When nothing is found between current position and end of document, the search is re-launched from the top of the document and will go on until the start position in document. | ||
+ | …..similar for backward search..... | ||
+ | * Search order | ||
+ | ** Headings, Footers, Footnotes, Notes, Tables, Objects – All possible (esp. Notes, Objects)? | ||
− | + | * Search in Notes | |
+ | ** When searching through a document, the old F&R dialog has a notes check box that enables in notes. When checked, “Find All” and “Replace All” are disabled. Check what is possible... | ||
+ | ** When search bar is closed (Shortcut or Toolbar menu), the cursor jumps back into the document. | ||
− | + | == Accessibility == | |
− | + | * High contrast | |
+ | * Mouse control | ||
+ | * Keyboard control | ||
+ | * Voice over | ||
− | == | + | == Future Tasks == |
− | + | * Auto-completion or list box selection of previously used search strings | |
− | + | * Selection (and multiselection) within document is passed on to search field when search bar is called (see Firefox behavior) | |
− | + | * Search bar integration into Calc, Impress, Draw. (In first step, only Writer is supported to meet OOo 3.3 time line) | |
− | + | * A button which opens the traditional "Find & Replace" dialog. | |
+ | * Differentiate Dynamic Text Info. Note that the info text length is limited. | ||
+ | **Possible scenarios: | ||
+ | **Forward search reaches the end of the document: Dynamic text could state "reached the end of the document, continue from the top?" | ||
+ | **Backward search reaches the beginning of the document: Dynamic text could state "reached the top of the document, continue from end?" | ||
+ | **Find all, search finds # of occurrences of the search text: Dynamic text changed to "# times" | ||
+ | *Use default shortcut of old Find&Replace dialog (<Ctrl>+<F>) for the search bar. | ||
+ | *Support all other application modules (Calc, Impress, Draw, Database) | ||
== Notes == | == Notes == | ||
Line 278: | Line 540: | ||
== References == | == References == | ||
− | + | The current searching dialog in the OOo. | |
+ | The search toolbar of the Mozilla firefox. | ||
+ | |||
+ | |||
[[Category:Features]] | [[Category:Features]] |
Latest revision as of 08:56, 13 October 2009
This page is the current design of a search toolbar for OOo. (The specifications can be created using the Specification template)
The Search tool bar is a tool bar which will provide quick text searching. It includes highlighting all search occurrences, backwards searching, forward searching, case-matching, whole word matching, and a close button. It can be closed via the close button or by pressing a keyboard shortcut.
Any discussion of the specification should happen in the maillist(discuss@ux.openoffice.org), or on the discussion pages.
Search toolbar
Writer
Document - ID | Specification Owner | Last Change - 2009-10-09 | Status |
Carsten Driesner / Stefan Baltzer | 2009-09-10 | Late draft | |
Conforms to | |||
Applies to | Writer | ||
Task ID(s) | None | ||
Category | Feature |
Abstract
The Search tool bar is a tool bar which will provide quick text searching. It includes highlighting all search occurrences, backwards searching, forward searching, case-matching, whole word matching, and a close button. It can be closed via the close button or by pressing a Keyboard shortcut.
i-Team Members (The specification owner is part of the i-Team)
Name | E-mail Address | |
User Experience | Jaron Kuppers (Jaron) (not active on this project anymore) | jaronbaron@gmail.com |
Development | shizhoubo(robertzhou),Carsten Driesner | robertzhou@openoffice.org, cd@openoffice.org |
Quality Assurance | Li Meiying,Zhu Lihua,Stefan Baltzer | limeiying@redoffice.com,zhulihua@redoffice.com,sba@openoffice.org |
Documentation |
Approved for Implementation
Approved by | Date | |
User Experience | <Name> | <Date> |
Development | Carsten Driesner | 2009-10-09 |
Quality Assurance | Stefan Baltzer | 2009-10-09 |
Documentation | <Name> | <Date> |
String Review | <Name> | <Date> |
Document Change History
Rev. Level | Change | Initials | Date |
1.0 | First incomplete version | 2009-04-23 | |
1.1 | Initial specification draft | JK | 2009-07-23 |
1.2 | Edit | SBA | 2009-09-14 |
1.3 | Edit | SBA+CD | 2009-10-08 |
Glossary
Term | Description |
Search Tool bar | The Search Tool bar is a locked bar (similar to the status bar) and resides above the status bar |
Title Label | It describes what the search action is, in this case essentially “find” |
Search text field | A text field where users input the string that will be searched within the document |
Search text | The text entered in the search text field |
Next Button | A button which executes searching forward through the document |
Previous Button | A button which executes searching backward through the document |
Search All Button | A radio button which searches all the content of the document and highlights the search text |
Match Case Check Box | A check box that makes text searches case-sensitive |
Whole Words Check Box | A check box that matches the search text to entire words within the document (aka the search text must match delimited strings) |
Dynamic Text Info | A text label that gives different text information about the current search status |
Motivation
The motivation for this feature is to enhance the speed of searching text and to avoid a dialog window hiding the content of the document.
User Scenarios
Currently OpenOffice.org users must use the "Find & Replace" dialog to search text. When this dialog obscures the document content, the user must move it away with the mouse.
Goals
The goal for OpenOffice.org 3.3 is to provide a tool bar which will provide quick text searching without hiding document content. It shall include forward and backwards searching, highlighting all search occurrences, case matching and whole word match
Requirements and Dependencies
Requirements
Provide a tool bar which gives users the possibility to apply frequently used search commands without using the Find & Replace dialog.
Technical Dependencies
Implementation of the search tool bar depends on the default search algorithms of the current Find & Replace dialog. It won't interfere with that dialog.
Competitive Analyses
Google Chrome Browser
The Google Chrome Search tool bar (Figure 1) is located below the address tool bar and can't be moved. The search tool bar can made visible by pressing Ctrl+F. It is very simple and only provides text searching and no case matching or whole word matching functionality. It includes backward and forward searching and a count of the found search text. The Search tool bar is organized into a number of buttons or labels which are horizontally arranged.
Mozilla Firefox Browser
The Mozilla Firefox Search Tool bar (Figure 2) is located above the status bar and can't be moved. The Search tool bar can be made visible by pressing Ctrl+F. Once active, Ctrl-F makes cursor jump into search text field. It has a close button and can also be closed with <Esc> key. It is is organized into a number of buttons which are arranged horizontally. The mouse can be used to click the buttons and every button has a state. The situation “Search key not found” will change the search text box background to red, text gets white. At the same time, the dynamic text info on the right of the bar shows text “phrase not found” and a red icon (Stop symbol) appears. In other scenarios, info given in the dynamic text field are “Reached end of page, continued from top” or “Reached top of page, continued from bottom”. This takes place automatically.
Safari (Mac)
- Missing
MS Office
- Missing
Detailed Specification
The OpenOffice Search Tool Bar (Figure3) shall be located above the status bar and will be immovable. It can made visible by pressing Ctrl+F1. It contains the common tool bar items including BUTTON_SYMBOLTEXT or BUTTON_SYMBOL.
General
- The search bar will be a standard tool bar and behaves like that wherever possible:
- A rip-out handle when docked
- A "close" option in the context menu when docked
- A title bar and a closer when undocked
- It can be switched on and off via menu view-toolbars
Position and visibility
By default, the Search bar is located above the status bar at the bottom of the application window. It is invisible by default. Both settings (visibility and position) will be stored and re-used after office is closed and restarted.
Search bar settings
- Which ones are are kept (case, whole word, previous search strings) when bar is closed and re-opened?
- Due to privacy/security reasons, the search string combo box shall be emptied after office restart.
- Search bar settings are stored individually for each application module.
- For all new documents of an application module, the last settings are used.
Shortcut behavior
- When the search bar is not visible, pressing <Ctrl>+<F1> makes it visible and set the cursor focus into the text field.
- When the the search bar is already visible, AND the focus is in the document, pressing <Ctrl>+<F1> set the cursor focus into the text field.
- When the the search bar is already visible, AND the focus is on the search bar, pressing <Ctrl>+<F1> closes the search bar.
Problem: Tools-Customize, Tab “Keyboard” shows <Ctrl>+<F1> in gray. So this shortcut is already used for “context sensitive help” stuff on all platforms. Thus another shortcut must be taken. At times (looked at DEV300_m61). <Ctrl>+<Alt>+<F> or <Ctrl>+<Shift>+<F> are still available.
Tool bar items
Property | State | Comment |
Toolbar Name: | Search toolbar | |
搜索工具栏 | ||
Has Closer: | No | |
Style: | Icon/Text | |
Initial State: | Docked | |
Initial Docking Position: | Bottom, above the status bar | |
Initial Floating Position: | None | |
List in "View/Toolbars": | Yes | |
Is Context Sensitive: | No |
1. "Find" Label
Property | Label | Comment |
Label: | Find | EN-US |
The static text info only describes what the purpose of the tool bar is and what should be entered into the Search Text Field. The static text label is “Find.” It should support multilingual properties.
2. Search Text Field
Property | State | Comment |
Enabled: | When the search toolbar is enabled this control is also enabled | |
Disabled: | None | |
Read Only: | No | |
Initial String: | Blank space string | |
String Preselected: | Yes | |
Caret Position: | <0> | |
Characters Not Allowed | None | |
Echo characters (Password Field) | None | |
TextField Label: | <EN-US> | Here is "Find" label |
- The Search Text Field is a combo box.
- The user inputs the search text string via keyboard or clipboard.
- The drop-down entries will show recent search strings from the current office session. The list is empty after office restart.
- When <Return> is pressed after the search string, the “Find next” function is called.
- When the search text field is empty, nothing happens after pressing <Enter>
- The color of text and text background won't change.
3. "Next" Button
Property | State | Comment |
Enabled: | if there is any text in the Search Text Field | |
Disabled: | if there is no text in the Search Text Field | |
On Click: | Forward searches the current document for the search text | |
Other: | None | |
Button Label: | <EN-US> |
The “Next” button will be of SYMBOL_TEXT style. When triggered, the button forward searches the current document for the search text. After a search was made, the found text is selected. The focus stays in the search text field.
4. "Previous" Button
Property | State | Comment |
Enabled: | if there is any text in the Search Text Field | |
Disabled: | if there is no text in the Search Text Field | |
On Click: | Backward searches the current document for the search text | |
Other: | None | |
Button Label: | <EN-US> |
The “previous” button will be of SYMBOL_TEXT type. When triggered, the button backward searches the current document for the search text. After a search was made, the found text is selected. The focus stays in the search text field. The arrows shall point “up” and “down” because that would be correct in Right-To-Left UI as well.
5. "Search All" Button
Property | State | Comment |
Enabled: | if there is any text in the Search Text Field | |
Disabled: | if there is no text in the Search Text Field | |
On Click: | All instances of the search text, within the document, will be shown highlighted and selected | |
Other: | None | |
Button Label: | <EN-US> |
The Button is a tool bar item with SYMBOL_TEXT type. When triggered, all instances of the search text, within the document, will be shown highlighted and selected. The “search all button” will not need to change states. After a search was made, all occurrences of the search text are selected. The focus stays in the search text field.
6. "Match Case" CheckBox
Property | State | Comment |
Enabled: | When the search toolbar is enabled, it is always enabled | |
Disabled: | None | |
Tristate: | ||
Checked: | Future text searches via the are case-sensitive | |
Other: | None | |
CheckBox Label: | <EN-US> |
The Match Case Check Box is a check box button. When the check box is in a true state, all text searches (next, previous, all) are case-sensitive.
7. "Whole Word" CheckBox
Property | State | Comment |
Enabled: | When the search toolbar is enabled, it is always enabled | |
Disabled: | None | |
Tristate: | None | |
Checked: | searching text will match the whole word to find in the current document. | |
Other: | None | |
CheckBox Label: | <EN-US> |
The Whole Word Button is a check box. When the check box is in a true state, text searches match the search text to delimited strings, as opposed to any occurrence of the search text string (i.e. as part of a word).
9. Dynamic Text Info
Property | Label | Comment |
Label: | None, it is dynamic stirng, it show different message according to result of searching text |
The Dynamic Text info is a dynamic text label. It states “phrase not found” in these scenarios:
- “Find All” brings no results
- Next (+auto re-run from top) brings no results
- Previous (+auto re-run from end) brings no results
Note: See “Future tasks” for further enhancements this label could get.
Search behavior
- When the user enters text in the Search text field and hits <Return>
- The focus will stay in in the Search text field
- The forward search is triggered as though the user tabbed from to the Next button or hit it with the mouse
The search ends when a phrase is found. When nothing is found between current position and end of document, the search is re-launched from the top of the document and will go on until the start position in document. …..similar for backward search.....
- Search order
- Headings, Footers, Footnotes, Notes, Tables, Objects – All possible (esp. Notes, Objects)?
- Search in Notes
- When searching through a document, the old F&R dialog has a notes check box that enables in notes. When checked, “Find All” and “Replace All” are disabled. Check what is possible...
- When search bar is closed (Shortcut or Toolbar menu), the cursor jumps back into the document.
Accessibility
- High contrast
- Mouse control
- Keyboard control
- Voice over
Future Tasks
- Auto-completion or list box selection of previously used search strings
- Selection (and multiselection) within document is passed on to search field when search bar is called (see Firefox behavior)
- Search bar integration into Calc, Impress, Draw. (In first step, only Writer is supported to meet OOo 3.3 time line)
- A button which opens the traditional "Find & Replace" dialog.
- Differentiate Dynamic Text Info. Note that the info text length is limited.
- Possible scenarios:
- Forward search reaches the end of the document: Dynamic text could state "reached the end of the document, continue from the top?"
- Backward search reaches the beginning of the document: Dynamic text could state "reached the top of the document, continue from end?"
- Find all, search finds # of occurrences of the search text: Dynamic text changed to "# times"
- Use default shortcut of old Find&Replace dialog (<Ctrl>+<F>) for the search bar.
- Support all other application modules (Calc, Impress, Draw, Database)
Notes
None
References
The current searching dialog in the OOo. The search toolbar of the Mozilla firefox.