wiki:FRAME_INSETS_R0

Version 9 (modified by mira, 16 years ago) (diff)

--

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

Error: Macro TicketQuery(summary=FRAME_INSETS_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

Overview

Frame insets are the fields surrounding the frame content in the order - padding, border, margins. (see the picture trunk/sophie2-platform/doc/spec-diagrams/FrameBounds.png) They could differ in width for left, right, top and bottom.

Task requirements

  • There should be common way of keeping the four widths.
  • There should be common way of setting the same width for left, right, top and bottom.
  • There should be common way of setting four different widths.
  • (Optional, if there is time) There should be communal hud for setting the insets.

Task result

The result of this task is source code.

Implementation idea

  • Create class Insets for the four properties - left, right, bottom, top.
  • Create methods for setting and getting the insets.
  • Create communal hud for setting the insets.

How to demo

  • Create inset with only one value for width and check if it is set to all four.
  • Check if the user set values (through the hud) are correctly set to the insets.

Design

Create org.sophie2.base.model.book.InsetsProp class

  • The new class should extend BaseProObject class and have four properties for the left, right, bottom and top widths:
    • Float left()
    • Float right()
    • Float bottom()
    • Float top()
  • InsetsProp should have 3 constructors:
    • default - setting all four widths to 0
    • with one Float argument width - setting all four widths to width
    • with four different arguments - setting top(), left(), bottom(), right() widths in this order.

Implementation

(Implementation results should be described and linked here (from the wiki or the repository))

Testing

Comments

(Write comments for this or later revisions here.)