Changes between Version 31 and Version 32 of COMMENT_FRAMES_R0


Ignore:
Timestamp:
09/20/09 18:12:13 (16 years ago)
Author:
kyli
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • COMMENT_FRAMES_R0

    v31 v32  
    9191  * '''ScrollDownView''', '''ScrollUpView''' - They just extend ContentManipulationView. 
    9292 
    93  
    94 === model === 
    95  * In a new module '''org.sophie2.extra.comment''': 
    96   * Create class '''CommentFrameContent''' extending FrameContent, which represents out new frame content. Nothing special here.. 
    97   * Create class '''CommentContentProvider''' implementing FrameContentProvider, which registers as extension and provides the new frame content. 
    98   * 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. 
    99   * 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. 
    100   * 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. 
    101  * In '''org.sophie2.base.connectivity''':  
    102   * 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. 
    103  * In '''org.sophie2.server.webservices''': 
    104   * Create class CommentWebService, which listens for and responds to requests related to comments. These include getThread, postComment, getThreadDate. 
    105 === Persistence === 
    106  * CommentThreadPersister, CommentThreadProxyPersister, CommentPersister and CommentContentPersister are needed. Their implementation will not be discussed, since it should not be different from any other persister. 
    107  
    108 === View === 
    109  * 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. 
    110  * Create class '''CommentContentViewProvider''' which registers the new view as extension.  
    111  * Create classes '''CommentPropertiesHaloButton'''  and '''CommentPropertiesHud''' which will be responsible for comment frame configuring (server URL, thread location, refresh interval). 
    112  * Create class '''InsertCommentItem''' which will represent a menuItem for inserting a comment frame. 
    113  
    114 === Logic === 
    115  * Create class '''CommentLogic''' implementing OperationDef, which handles events for scrolling and inserting frame. It must be registered as extension in order to start working.  [[BR]] 
    116  
    117 Some ugly class diagram: [[BR]] 
    118 [[Image(Comment Frames.png)]] 
    119 [[BR]] 
    120  
    121 Some unit tests : [http://sophie2.org/trac/browser/branches/private/kyli/comment/sophie2-platform/modules/org.sophie2.server/src/test/java/org/sophie2/server/comment/CommentWebServiceTest.java CommentWebServiceTest], [http://sophie2.org/trac/browser/branches/private/kyli/comment/sophie2-platform/modules/org.sophie2.extra.comment/src/test/java/org/sophie2/extra/comment/model/CommentThreadTest.java CommentThreadTest] and [http://sophie2.org/trac/browser/branches/private/kyli/comment/sophie2-platform/modules/org.sophie2.extra.comment/src/test/java/org/sophie2/extra/comment/persist/CommentPersistenceTest.java CommentPersistenceTest]. They are not linked with their changesets, since they had no separate changesets. These are just prototypes, will be improved during the implementation. 
    122  
    12393= Implementation = 
    12494^(Describe and link the implementation results here (from the wiki or the repository).)^