wiki:FRAME_SIZE_R0

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

--

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

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

The frames size is the width and hight of the frame. In default mode they are the measurements of the frame content. The frame should be able to calculate its size in different modes (including paddings, border and/or margins). A frame could even be bigger than the page. In that case the frames parts which are outside the page`s range will be clipped out and wont be seen in reader mode. In author mode however all frames should be seen in whole.

Task requirements

  • The frame should have properties describing width and hight.
  • Those properties should be equal or grater than 0.
  • The frame should be able to set and get its size in all modes.

Task result

The result of this task is source code.

Implementation idea

  • Create width and hight value properties in the Frame.
  • Create enums for modes if needed.

How to demo

  • Create frame with concrete width and height and check if they are correct.

Design

In the Frame class:

  • Rename the size() property which is used for the size of the frames rectangle in default mode to contentSize() for more clearance.
  • Create the method ImmSize getSize(BoundMode mode). Using the BoundMode enum it should calculate the size of the frame rectangle in the given mode.

  • Create the method setSize(BoundMode mode, ImmSize size). It could use the BoundModes setSize() method to calculate the size to be set to content according to the mode in which the new size is given.
  • TestFrameSize demonstrates the use of those frame bounds functionalities in different modes.

trunk/sophie2-platform/modules/org.sophie2.base.model.book/src/test/java/org/sophie2/base/model/book/TestFrameSize.java?rev=992

Implementation

trunk/sophie2-platform/modules//org.sophie2.base.model.book/src/main/java/org/sophie2/base/model/book/Frame.java?rev=997

Testing

Comments

(Write comments for this or later revisions here.)