[[BackLinksMenu]] [[TicketQuery(summary=BASE_DND_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 == * This task is about the Drag'N'Drop base implementation. Sophie 2.0 should be able to provide a relatively complex DnD behavior. == Task requirements == * * Think of the following scenarios of a DND functionalities: * DnD for resources: * media resources - audio, video, images etc. (may include things like flash in a later revision). * text resources - txt, rtf. * html resources. * content - text content should be processes when dragged to a text frame for example. * DnD into UI components: * text frames - should be able to process text dragging and dropping. * image frames - should be able to accept DnD of image content. * media frames - should be able to accept DnD of media files. * palletes: * Resource palette: * Should process dropping of files. * User should be able to drag files outside Sophie 2.0. * Same applies to Page templates palette, Plug-in palette, Books palette, Pages palette, Book templates palette etc. * Things should be dragged into palettes and out of, or just transfer things from one palette to another (from Page palette to Page templates palette should create a template for the page that is dragged and dropped in the templates palette.) . * work areas - should process dragging of frame templates, resources (resulting in creating an appropriate frame). * books desktop - should process creating a book from a template by dropping that template, should be able to export a book template by dragging it to the book templates. * All of the things mentioned should be made possible. The person should decide on whether some library should be used or another one should be written. * provide a way to actually test the drag and drop functionalities. * implement at least 3 DnD scenarios from the table that follows. * A description in a wiki page should be created, explaining how to use the library and how things work. * Examine the following table => http://spreadsheets.google.com/ccc?key=p-0Oq38E1aysuTs69KE68Nw&hl=en * decide what could added. * decide if there is something to remove. * Unit test for the base implementation. == Task result == * source code == Implementation idea == * review DnD library in java. * research for some other library. * design the final library that we are going to use - it may be something existing or something that is newly created and uses something existing. == Related == * [wiki:AUTHOR_PAGE_WORK_AREA_R0] - should be responsible for processing drag and drop events. * [wiki:READER_PAGE_WORK_AREA_R0] - should be responsible for processing drag and drop events. == How to demo == * Execute the Unit tests. * Execute the three scenarios that have been implemented. = Design = = 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.)