[[BackLinksMenu]] [[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|)]] = 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. [[BR]] * 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)[[BR]] * 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. == Related == - == 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. [[Image(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 = [[Include(wiki:UNPLANNED_BASE_MODEL_FRAME_CONTENT_R0_LOG)]]