wiki:PAGE_STRUCTURE_PALETTE_R0

Version 19 (modified by deyan, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=PAGE_STRUCTURE_PALETTE_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

(Give as much as possible of the needed information for designing and implementing the task in the following sections.)

Overview

The page structure palette shows a tree of all the objects on a current page.

Task requirements

  • Create a Page Structure palette in the Pages tab, which is in the left flap.
  • Create a tree, according to the following requirements:
  • The root node of the displayed tree should be the current page.
  • Children nodes:
    • Non grouped frames (display the name, for example "Frame A"; in brackets frame type;)
      • Properties
        • Resource name and/or id
        • Size
        • Location
      • Links
        • Trigger:Action:Target
      • Anchors (future)
    • Top-level groups (display the name, in brackets the type "Group")
      • Groups are represented as a tree of frames and subgroups.
  • Children nodes can be hidden and shown by a plus located in front of the corresponding parent node
  • Children are arranged by their Z-order, starting from highest (front-most).
  • When the user selects something on the page it is selected in that tree and vice versa.
  • When the user switches to another page/book, the palette is automatically updated.
  • Optional - An element can be dragged up and down changing its Z order.
  • A scroll bar is available in case of long tree structure.

Task result

Source code

Implementation idea

Page structure palette looks like this:

Selected element is the dark gray one and when selected the corresponding frame on the page is selected too. Left mouse button click on the selected element makes it editable and the element can be renamed. After changing the name by pressing enter or by clicking somewhere else the new name is accepted. Renaming of selected element can be achieved by pressing F2 instead of second left mouse button click. While dragging the dragged element can be dropped between two sibling elements or as first or last one. If the element is dropped somewhere else the drag and drop is canceled. His last position is taken by the element which was before it if the element is dragged upwards, and its position is taken by the element which was after it if the element is dragged downwards.

PAGE_STRUCTURE_DISPLAYING_R0
PAGE_STRUCTURE_EDITING_R0

How to demo

  1. Open the page structure palette.
  2. Insert a new text frame and show it in the tree.
  3. Insert a new image frame and show it in the tree.
  4. Drag the text frame to the highest position in the palette list and show that it is displayed over the image frame in the page.
  5. Rename the text frame in the palette and show how its title in the page also changes.

Design

(Describe your design here.)

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)

Attachments