Notes2 Specification
Improved notes
Specification Status | |
Author | Mathias Bauer |
Last Change | |
Status | Preliminary Help |
Abstract
<START TYPING HERE>
Contents
- 1 Improved notes
- 1.1 Abstract
- 1.2 References
- 1.3 Contacts
- 1.4 Acronyms and Abbreviations
- 1.5 Detailed Specification
- 1.6 Migration
- 1.7 Configuration
- 1.8 File Format
- 1.9 Open Issues
References
Reference Document | Check | Location (URL) |
Specification Process Entry Check | [passed/failed] | n/a |
Product Requirement, RFE, Issue ID (required) | [available] | http://www.openoffice.org/issues/show_bug.cgi?id=6193 |
Product Concept Document | [not available] | |
Test case specification (required) | [available/not available] | <PLEASE ENTER LOCATION HERE> |
IDL Specification | [available/not available] | |
Software Specification Rules | n/a | n/a |
Other, e.g. references to related specs | http://wiki.services.openoffice.org/wiki/Notes2 |
Contacts
Role | Name | E-Mail Address |
Developer | Max Odendahl | <mod@openoffice.org> |
Quality Assurance | Éric Savary | <es@openoffice.org> |
Documentation | Uwe Fischer | <ufi@openoffice.org> |
User Experience | Christoph Noack | <christophnoack@openoffice.org> |
Acronyms and Abbreviations
Acronym / Abbreviation | Definition |
<WYSIWYG> | <What You See Is What You Get> |
Detailed Specification
General Aspects
Notes can be attached to any text in the document. For each note a reference point is added to the text that is stored as a character, very much the same like text fields. No content is displayed at that text position, notes will be shown as small windows in a side pane of the text. A graphical element will serve as an anchor that points to the text position of the note and a connector will connect the anchor with the corresponding text of the note.
Visibility of notes
In general notes will be visible in the print layout view of a text document but not in the print preview or the web layout view. The visibility can be switch on and off in "Tools - Options - Writer - View - Display", default is "On". TBD: the visibility of own notes or the notes of a particular author can be switched.
The Notes side pane
The Notes side pane is an area that is added to left or right side of the each displayed document page. It's height is the same as the page height and the witdh is TBD at a zoom level of 100%. It is considered to be an integral part of the document view. Thus it adds to the width to the document view so that the special zoom modes "Optimal", "Page width" or "Entire page" will need to consider it. As Writer centers its view it will center the combined width of document content and notes. For left-to-right text (GUI language), the side pane is located at the right side of the writer document. For right-to-left text (GUI language), the side pane is located at the left side of the writer document. Further defitions:
|
The note window
The window of a note displays the text of the note, the name of its author and the date of creation.
TBD: create new screenshots without the button.
The background of the note window in view mode shows a color gradient defined by a lighter starting color and a darker end color. In editing mode the background is a bulk color (the darker color of the two gradient colors). All used colors are chosen from a fixed set of colors. They are related to the color of the note anchor and connector.
TBD: mouse over effect
TBD: create new picture showing the colors
TBD: future task to assign colors to authors
Notes connector and anchor
At the text position where a note has been inserted a graphical element representing the note anchor is displayed. It is a triangle whose upper angle points to the anchor position. The anchor and the corresponding note window are connected with a line. The color of the line and the anchor are the "accent color" of the color triples shown above. If the note window has the focus the line is solid, otherwise dotted, the line width is 1px.
TBD: mouse over
Arrangement of notes on the notes side pane
The vertical position of a note places its content at nearly the same height as the text position of the anchor. If the necessary space to display a note is not available, the size and position of the note and also those of other notes will be adjusted in a way that the used space is as evenly distributed amongst them as possible. If the size of a notes window is too small to show the complete notes text scroll bars will be shown.
If the height of the side pane is not enough to display all notes even with the minimum height, some notes will not be displayed and scroll buttons will be shown at the top and bottom of the side pane of the page. The scroll buttons allow to shift the position of all notes up and down, thus leaving space for the prior invisible ones and moving out others instead. See the pictures below for further reference.
Working with Notes
Creating or Editing Notes
Please note that the subsequent text refers to the number of text lines representing the Notes User Data in default notes font size.
- Creation of Notes
- If a Note is created, the Notes Functionality must insert the newly created Note Window at a position given by the rules of “Distribution of Notes Windows in the Side Pane”.
- Example: refer to the graphic below, Example D, Step 1.2
- If a Note is created, the Notes Functionality must sets the height of the newly created Note Window to a value that makes it possible to insert three lines of Notes User Data without resizing the Notes Window. (newly created Note Window: does not contain any Note User Data)
- Rationale: If there is few space available (e.g. for one line of text), some users “fear” that this will not be enough and will initially entering some blank lines to get some more room. We prevent this by providing enough space right from the start.
- Example: refer to the graphic below, Example A, Step 1.2
- If a Note is created and the Note Window is not completely visible on the screen, the Notes Functionality must pan the view port area to completely show the Note Window inside the Writer Document window.
- Rationale: The user wants to see the newly created object.
- If a Note is created, the Notes Functionality must set the focus to the newly created Note Window and places the cursor inside the Note Window. (inside: the area reserved for the Notes User Data)
- Rationale: The user may want to just start typing.
- If a Note is created, the Notes Functionality must create the Notes Window with the obligatory elements shown in “Structure of the Notes Window”. (elements: e.g. Notes Property Data, option button)
- If the keyboard button ESC is pressed directly after creating a Note, the Notes Functionality must reverse the action of creating the Note. (directly after creating a note: e.g. the user did not leave the note or added any information; reverse: the state of the Document before creating the Note is restored)
- Rationale: The user may want to revert the action of an accidentally inserted Note.
- Please note: The reversion should be undo-able with the function Undo.
- If a Note is created, the Notes Functionality must insert the newly created Note Window at a position given by the rules of “Distribution of Notes Windows in the Side Pane”.
- Inserting or Editing Notes User Data
- If the user inserts Notes User Data in a Note Window and there is enough both free and visible space below the Notes Window, the Notes Functionality must expand the Notes Window to fit to the amount of Notes User Data. (visible: the space visible for the user; space: space in the Notes Side Pane; expands: expands the height downwards)
- Example: refer to the graphic below, Example B, Step 1.3
- If the user inserts Notes User Data in a small Note Window and there is neither enough and/or visible space available, then the Notes Functionality must... (small: the height of the Notes is adjusted for less than three lines of Notes User Data; visible: the space visible for the user; space: space in the Notes Side Pane)
- expand the Notes Window to fit to the amount of Notes User Data.
- Example: refer to the graphic below, Example C, Step 2.1
- pan the view port area to completely show the Note Window inside the Writer Document Window.
- Rationale: This is a very special case. If we want to keep the position of the other Notes Windows stable during editing, we have to chose this kind of implementation (overlap parts of the subsequent note). Anyway, we should wait for some feedback from the user base.
- expand the Notes Window to fit to the amount of Notes User Data.
- If less space is available for the Notes Window than it is required to completely display the Notes User Data and the Notes Window has normal size, the Notes Functionality must provide scrollbar functionality inside the Note Window. (space: space in the Notes Side Pane; normal size: the height of the Note Window fits to three lines of Notes User Data; scrollbar functionality: refer to “Design of the Scrollbars”)
- Example: refer to the graphic below, Example C, Step 2.3
- If the user inserts Notes User Data in a Note Window and there is enough both free and visible space below the Notes Window, the Notes Functionality must expand the Notes Window to fit to the amount of Notes User Data. (visible: the space visible for the user; space: space in the Notes Side Pane; expands: expands the height downwards)
The graphic shows:
Please note:
|
Open Points:
- What to do with notes bigger (e.g. higher) than the current ? I propose to not do any scrolling/panning if those notes get the focus (e.g. by viewing/editing). Then, the text cursor inside the Note Window should affect the scrolling behavior of the Document text and simultaneously the Notes Side Pane.
- Answer the question if the panning does annoy the user.
Realization: Realization required for first implementation of Notes.
Future work: At the moment we only focus on a static Notes Windows layout without any smooth animation and re-positioning. If animations were supported this would solve some problems and the described behavior should be revised.
Anchors
The Notes Functionality does provide a Notes Anchor to mark up the text portion which is related to the Notes Data. The kind of Notes Anchor depends on the status of Writer Document text selection when calling the command for inserting the Note.
- If the document has the focus and no document text is selected, then inserting causes the Notes Anchor to be dependent of the text next to the text cursor...
- If there is some kind of word or string, then the Notes Anchor Area will contain the whole word. (refer to Examples 1 ... 4)
- If no reasonable text can be detected next to the cursor, then a simple Note Anchor Point is inserted. (refer to Example 5)
- If the document has the focus and document text is selected, then inserting a note causes the Notes Anchor Area to span the current selection of the document text. (refer to Example 6)
In the following examples, symbols are used for the representation of other elements:
- Cursor is represented by |
- Anchor Area start is represented by >
- Anchor Area end is represented by <
- Anchor Point is represented by ^
- Text selection start is represented by [
- Text selection end is represented by ]
Example 1: The Notes Anchor Area for the text “This is some phone number 1030/73506|9495” would be “This is some phone number >1030/73506|9495<”.
Example 2: The Notes Anchor Area for the text “This is we|ird, isn't it?” would be “This is >we|ird<, isn't it?”
Example 3: The Notes Anchor Area for the text “This is weird|, isn't it?” would be “This is >weird|<, isn't it?”
Example 4: The Notes Anchor Area for the text “I do not think this is too good ..|.” would be “I do not think this is too good >..|.<”
Example 5 (with whitespaces): The Notes Anchor Area for the text “And then he said | nothing at all.” would be “And then he said ^| nothing at all.”.
Example 6: The Notes Anchor for such a selection “This is [some selected] text.” would be “This is >some selected< text.”.
Viewing Notes
(proposal will be provided soon)
If in doubt, draw the notes elements according to their document text position (document text position: considering the reading direction of the document language)
Editing Document Text
Editing the document text may have influence on the Notes in general.
Editing the document text has influence on the Notes Anchors:
- In general, the Notes Anchors keep their position relative to the document text.
- The size of the Notes Anchor Area is dependent on the the text it includes. If the user edits the document text, which is included in the Note Anchor Area then the Note Anchor Area will be adapted accordingly.
- If characters are deleted inside the Note Anchor Area, then the Notes Anchor Area is reduced accordingly. (refer to Example 1)
- If characters are added inside the Note Anchor Area, then the Notes Anchor Area is expanded accordingly. (refer to Example 2)
- If the Note Anchor Area is reduced from on character to “zero” characters, then the Note Anchor Area is converted to a Note Anchor Point at the same position.
- If the Notes Anchor Point is deleted (e.g. by using the backspace key), then the Note is deleted too. (Todo: If necessary, move this point to Deleting notes.)
- A Note Anchor Point behaves similar to a normal character in the document text. This behavior is similar to the current implementation of the Notes Anchor in OpenOffice.org Writer.
- Please note: The kind of Notes Anchor cannot be explicitly altered afterwards by the user.
Example 1: If the text “This is woonderful text.” is corrected to “This is wonderful text.” the Notes Anchor Area “This is >woonderful< text.” would be “This is >wonderful< text.”.
Example 2: If the text “This is wnderful text.” is corrected to “This is wonderful text.” the Notes Anchor Area “This is >wnderful< text.” would be “This is >wonderful< text.”.
Help | User Interface Element Templates | Example Spec
Migration
Old documents containing notes will works flawlessly with the new user interface.
Configuration
No configuration means are needed to use the new functionality.
Help | Configuration Table Template
File Format
A single file format change is needed that will be part of ODF 1.2.
Help | File Format Table Template
Open Issues
<State a bulleted list of issues Issue here>