[[BackLinksMenu]] [[TicketQuery(summary=BASE_DND_R1, 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 revision of the task will introduce prototype drag and drop functionality. As well as support for more DndData that can be transferred in Sophie2.0 (see [wiki:BASE_DND_R0] for more information.) == Task requirements == * Supply base classes for drag and drop management. * Create a global drag and drop manager that will handle part of the drag and drop operations. The rest should be handled in the corresponding logic. * Create DndData implementations for resources. * After creating the drag and drop base classes: * provide implementation for drag and drop as well as cut/copy/paste of images using the already created ImageData. * provide implementation for drag and drop as well as cut/copy/paste of resources. * Create DndData implementation for resources - Frames would be enough for current revision. * Integrate the DndData implementation with the D'n'd and Clipboard managers. * Provide a diagram of the D'n'd manager. * Create a wiki page named BASE_DND, to serve as a reference for all drag and drop and cut/copy/paste functionality. It should have all the design of the base library, as well as the already implemented functionality. For example explaining the use cases that are implemented. == Task result == * source code. * wiki content with diagrams. == Implementation idea == * Create a DndManager class. It should be able to provide the interaction between VisualElements. * Create a FrameData class, that should represent a DndData for Frames. It would be difficult to create the hierarchy for all resources without having a use case implemented and the frame will be our starting point. * Create the diagram using netbeans and put it in the newly created page. Put also the wiki content of the previous revision of this task. == Related == * [wiki:BASE_DND_R0] == How to demo == * Use case 1: * Start sophie. * Drag and drop or cut/copy and paste an image frame from sophie2 to an image redactor. (for example gimp). * The image from the image frame should appear in the redactor. * Drag and drop or cut/copy and paste another image from the image redactor to sophie. * This should create a frame with an image content if dropped on the page. * This should change the current image of the image content if dropped on an image frame. * Use case 2: * Start sophie. * Create some frames. * Drag and drop or cut/copy and paste a frame resource from the resource palette to the page work area. * The corresponding frame should appear as a copy of the selected one. = Design = = Implementation = = Testing = ^(Place the testing results here.)^ = Comments = ^(Write comments for this or later revisions here.)