wiki:FRAME_BORDERS_R0

Version 20 (modified by Tanya, 16 years ago) (diff)

--

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

Error: Macro TicketQuery(summary=FRAME_BORDERS_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 FrameBorder is the model for the outer field surrounding the frame content. It is placed between the margins and the content (see the picture). FrameBorders could differ for left, right, top or bottom border. The FrameBorder could have different width and color. It might be realized in different styles. (box, shadow, 3D, repetition of a certain picture, etc.)

Task requirements

  • Frame borders should have width. It should be number equal or greater than 0.
  • Frame borders should have color.

Task result

The result of this task is source code.

Implementation idea

  • Create class FrameBorder extending ProObject with required properties.
  • Add FrameBorder border property to the Frame
  • Create enums for different property options if needed.

How to demo

  • Create and show Frames with different borders.

Design

  • Create org.sophie2.base.model.book.BorderProperties class

The new class should extend BaseProObject class and have all needed properties for the borders definition:

  • width()
  • color()
  • Create package org.sophie2.base.model.book.Border class

The new class should extend BaseProObject class and have four properties for the left, right, bottom and top borders:

  • BorderProperties left()
  • BorderProperties right()
  • BorderProperties bottom()
  • BorderProperties top()
  • Add Border border property to the Frame
  • The demo test org.sophie2.base.model.book.BordersTets.java tests creation and changing of frames with different borders.

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.)