Changes between Version 17 and Version 18 of COMMENT_FRAMES_R0


Ignore:
Timestamp:
07/07/09 16:09:10 (16 years ago)
Author:
kyli
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • COMMENT_FRAMES_R0

    v17 v18  
    7676 
    7777= Design = 
    78 ^(Describe your design here.)^ 
     78=== Model === 
     79 * In a new module '''org.sophie2.extra.comment''': 
     80  * Create class '''CommentFrameContent''' extending FrameContent, which represents out new frame content. Nothing special here.. 
     81  * Create class '''CommentContentProvider''' implementing FrameContentProvider, which registers as extension and provides the new frame content. 
     82  * Create class '''CommentThreadProxy''' extending Resource, which is intented to be the CommentContent's main resource. It must keep information enough for locating the remote resource and for updating from it. Some manipulation abilities are needed - add comment, delete comment, etc. 
     83  * Create class '''Comment''' extending BaseProObject, which represents a single user comment. It is not a resource, since comments do not live by themselves. A comment consists of author name, date of creation, text body and a list of replies, which are also comments. This model allows as many responses as we need, simulating something like a forum. 
     84  * Create class '''CommentThread''' extending Resource, which holds a list of comments. This is actually the resource referred by the CommentThreadProxy. It can live on the server and the proxy has to deal with it. The server also needs special care for this one. Since we still do not have resource versioning, it should have a lastUpdated() property, adding ability to compare two different threads. It must allow adding, deleting and location comments. 
     85 * In '''org.sophie2.base.connectivity:  
     86  * Create interface '''CommentManager'''. Its implementations must be able to add / delete / get comments, create / delete / get threads. Both implementations should be in org.sophie2.main.ws_connector and in org.sophie2.server.core. 
     87 * In '''org.sophie2.server.webservices''': 
     88  * Create class CommentWebService, which listens for and responds to requests related to comments. These include getThread, postComment, getThreadDate. 
     89=== Persistence === 
     90 * CommentThreadPersister, CommentThreadProxyPersister, CommentPersister and CommentContentPersister are needed. Their implementation will not be discussed, since it should not be different from any other persister. 
     91 
     92=== View === 
     93 * Create class '''CommentContentView'''extending FrameContentView, which visualizes the model. It must hold a CompositeSceneElement, containing of a HotTextSceneELement (for the thread text, properly formatted), SwingSceneElement (for the input form and the Post button). Navigation buttons (scroll bar) must be attached to this view. They will be created in separate classes and will extend ContentManipulationView. 
     94 * Create class '''CommentContentViewProvider''' which registers the new view as extension.  
     95 * Create classes '''CommentPropertiesHaloButton'''  and '''CommentPropertiesHud''' which will be responsible for comment frame configuring (server URL, thread location, refresh interval). 
     96 * Create class '''InsertCommentItem''' which will represent a menuItem for inserting a comment frame. 
     97 
    7998 
    8099= Implementation =