wiki:FRAME_BORDERS_R0

Version 34 (modified by mira, 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

  • Add Insets borderInsets() property for representing border insets into the Frame. They are used by the set/get Location and Size methods in the Frame.
  • Add java.awt.Color borderColor() property for representing border color into the Frame.
  • In the SceneColor class add a constructor taking a java.awt.Color for argument and converting it to SceneColor. Test for this constructor is added to the SceneColorTest.
  • Add two properties to the ShapeSceneElement
    • lineStyle() - the style to apply when drawing the shape`s outline. Also create LineStyle enum representing the different styles that can be drawn.
    • isFilled() - if it is true the shape should be filled with color.
  • Add drawShapeElement method to the SimpleSceneEngine for the shape elements drawing. It should draw them applying the outline and filling properties.
  • For the border scene element creation create BorderSceneElement class extending the DefaultSceneElement and implementing the ShapeSceneElement. This class is going to be used for representation of the frame border and computing the border to vertices. They will be representing a polygon to be filled and without any outline. This class would override the color() property so that the shape element color is computed from the borderColor().
  • Add BorderSceneElement border property to the FrameViewToDo class.
  • Add the border to the composite frameSceneElement.

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