[[BackLinksMenu]] [[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|)]] = 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. == Related == * [source:trunk/sophie2-platform/doc/spec-diagrams/FrameBounds.png] * [wiki:FRAME_BOUNDS_R0] * [wiki:FRAME_SIZE_R0] * [wiki:FRAME_PADDING_R0] * [wiki:FRAME_MARGINS_R0] == 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.)