wiki:UNPLANNED_BASE_MODEL_FRAME_CONTENT_R0
Last modified 16 years ago Last modified on 12/02/08 20:22:02

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

Error: Macro TicketQuery(summary=UNPLANNED_BASE_MODEL_FRAME_CONTENT_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 concept of different types of frames is changed. Now we don't have text frame, movie frame, audio frame and so on. We just have a frame with a content. This frame content can be text, movie, audio and so on which means that the frame content contains a resource and tells how this resource is going to be visualized. Frame has one-to-one association with its content. But the frame content has many-to-many association with a resource in the book.

  • Frame Content Concept
    • Each frame has style and content.
    • Each frame has at most one content at a time.
    • The content of a frame is replaceable. For example if a frame has movie content then the same frame can change its content with image content.
    • Different kinds of content:
      • Text content
      • Audio content
      • Movie content
      • Image content
      • Browser content
      • Flash content
      • Pdf content
      • Comment content
    • Frame content can be non-defined or unsupported. The content is unsupported if it is created with non-present plug-in for example.

Task requirements

  • Create the basic hierarchy of the frame content.
  • The basic hierarchy should be in org.sophie2.base.model.book
  • Functionality and properties of frame content that the hierarchy should provide:
    • Frame content could be non-defined and unsupported.
      • (Optional)Unsupported
        • (Optional)If the frame content is created with non-present plug-in for example then it is unsupported.
    • Provide that Frame content should be:
      • replaceable
        • The user should be able to insert a frame without content and add it afterward or can change the content when he decides.
      • various kinds(text, audio, video, image, other)
  • Make basic implementation of the frame content hierarchy (unit tests included).

Task Result

  • The result should be source code.

Implementation idea

  • Basic hierarchy could be implemented with composition of the frame content in the frame.
  • Write source code.

-

How to demo

  • Show source code and run application.
  • Show unit tests and run them.
  • Answer if there are any questions.

Design

  • Basic hierarchy
    • Base Frame content class
      • (Optional if there is time)Derived classes for all the concrete contents. In this iteration at least for TextFrameContent and HtmlFrameContent.
      • Frame Content could have no more than one main resource and many secondary resources.
    • Class Frame composed with Frame Content.
      • The content should be value property of the Frame with default value - null. This is supposed to be non-defined frame content at least for now.

source:/trunk/sophie2-platform/modules/org.sophie2.messy/doc/FrameContent.png

Implementation

  • It is barely impossible to link the changes but the classes that should be reviewed are:
    • org.sophie2.base.model.book.FrameContent
    • org.sophie2.base.model.book.Frame
    • org.sophie2.base.model.book.FrameContentDemo
    • org.sophie2.base.model.book.FrameContentUnitTest

Testing

Log

Analyzing: Pav(done: 10m)
Review: 1.5 by Pap. I don't think that we should spend half of the effort for the whole task in just a wiki page with diagrams. The overview should be more informative. Requirements should be shhorter and better structured.
Analysis2: Tanya - done - 4h
Review: 3.5 by Pap.
Design: Tanya -done - 15m - The design was reused from the previous iteration.
Review: 2 by Pap. No tests are provided. I find it a bit vague.
Implementation:
Testing:
Comments: