Notes2 Design NoteWindowDistribution

From Apache OpenOffice Wiki
Revision as of 15:24, 27 January 2008 by ChristophNoack (talk | contribs) (Moved "Distribution of Notes Windows in the Side Pane" from Notes2 page to this separate page.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

< Back to the Notes2 main page

Summary

This section covers the distribution of the Notes Windows in the Note Side Pane area during showing or editing Notes.

Rationale

In the best of all worlds, the note information will be placed in the direct neighborhood of the document text it refers to. It has been decided to use the Note Side Pane which does contain all Note Windows. To prevent overlaying the Note Windows or manual positioning of them, there is a need for an algorithm that distributes the Note Windows with respect to the user's needs.

Assumptions

  • Use of the Note Side Pane Notes2_Design_NotesSidePane
  • The document provides a clear information flow direction (OpenOffice.org Writer text flow).

Proposed Designs

Proposal "Simple Note Window Distribution"

General goals for the distribution of Note Windows:

  • Don't bother the user and let him concentrate on his work on the Writer document (e.g. prevent jumping windows, blinking, flickering)!
  • Show him/her as much information in the Note Windows as possible.
  • If the user moves or edits the Writer document (e.g. scrolling, inserting characters), try to keep the relative position of notes anchor and notes windows.
  • If necessary, move Note Windows if the text is moved too (e.g. inserting characters or scrolling the document).
  • If possible, minimize the distance between Note Anchor and corresponding Notes Window.
  • If it's necessary to ellipse the text or to show scrollbars, use a smart logic to minimize further user interaction (by e.g. manual scrolling in too many notes)!

Algorithm

  • Note Windows have a maximum size that can't be exceeded, of course they can be smaller if there content fits into the smaller size.
  • In case Note Windows overlap if they get their default positions and maximum size they will be moved downwards or upwards to avoid overlapping. All Notes anchored to a page should be evenly distributed on the page.
  • The layout algorithm is iterative and always starts with all Notes Windows on their default position. In case of conflicts (overlap) it should try to resolve them, starting with the top most of them:
    • move the upper Note Window upwards until the conflict is resolved, but not more than a maximum distance (maximum distance won't be an issue in the first iteration) and not above the page border
    • if this creates a new conflict move this Note Window down again until the new conflict is resolved again; now move the lower note of the former conflict downwards until the conflict is resolved, but not more than a maximum distance and not below the current page border (this can create a new conflict)
    • in case conflicts still exists repeat these steps
  • If not all conflicts can be resolved try to repeat this with a reduced maximum height for the Note Windows.


Proposal "Reduce Maximum Height of Note Window"

This proposal extends the proposal "Simple Note Window Distribution".

Some of our competitors just ignore the fact that the number of notes can exceed the available height of the document page (and therefore their implementation of the notes side pane.) The Note Windows simply disappear - an easy, but no robust design ;-)

It may be necessary to reduce the height of the Note Window to provide maximum space efficiency in the Side Pane. Therefore the size of the Note Windows could be reduced:

  • Use scrollbars inside the Notes Windows to access the complete Notes User Data: The intention is to reduce the size of the Notes Windows, so it will be possible to keep the smaller Notes Windows together and to minimize the distance to the Notes Anchors. It is assumed that the user will remember important Notes if e.g. only the first 3 lines of Notes User Data are shown due to space restrictions.
  • If the height of the Notes Windows falls below a defined minimum, then the Note Side Pane has to provide a mechanism that ensures sufficient space to show all Note Windows (e.g. expansion of the Note Side Pane).


Selected Design

  • The proposal "Simple Note Window Distribution" has been selected for implementation.
  • The proposal "Reduce Maximum Height of Note Window" will be used if there is a need to show a large number of Note Windows in the Notes Side Pane.

The Future: Instead of showing all the Notes, future implementations of the Notes functionality will make it possible to select the ones to be shown. Then, the user may be able to select "show all notes since my last editing" to get only those Notes Windows which were created, modified or which have a reply. This will improve the situation for the user.

Implementation

tbd

Code Changes

tbd

Outstanding Issues

tbd

Personal tools