Changes between Version 8 and Version 9 of BASE_DND_R0


Ignore:
Timestamp:
05/20/09 12:00:24 (16 years ago)
Author:
peko
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BASE_DND_R0

    v8 v9  
    44= Analysis = 
    55== Overview == 
    6  * This task is about the Drag'N'Drop base implementation. Sophie 2.0 should be able to provide a relatively complex DnD behavior. 
     6 * This task is about the base Drag'N'Drop implementation. Sophie 2.0 should be able to provide a relatively complex DnD behavior. In addition the DND implementation should be consistent to behave properly with the Scene and VisualElements. What is more, the DND is tightly connected with the clipboard. 
     7 * The DND allows three main operations: 
     8  * COPY 
     9  * MOVE  
     10  * LINK 
     11 * While performing these operations the mouse cursor should change accordingly. Generally they are invoked by keyboard combinations that include the cntrl and shift keys. There is also a default operation that is invoked by just dragging without another key pressed. 
     12 * The clipboard allows the following operations: 
     13  * CUT 
     14  * COPY 
     15  * PASTE 
     16 * These are performed by keyboard combinations as follow: CUT - cntrl + x; COPY - cntrl + c; PASTE - cntrl + v; 
     17 * General requirements for all the revisions should combine the following things: 
     18  * DnD and Clipboard should allow the user to manipulate data and transfer it in and outside sophie. What is more, it should allow transfering data between several opened Sophies. 
     19   * For an overview of DnD transfers inside Sophie 2.0 you can use the following table:  http://spreadsheets.google.com/ccc?key=p-0Oq38E1aysuTs69KE68Nw&hl=en 
     20   * Another such table should be provided for the Clipboard behavior. 
     21 * DnD and Clipboard should be able to transfer the following things (some more may be added later): 
     22  * Strings 
     23  * Serialized objects 
     24  * Files 
     25  * Sophie Objects:  
     26   * Resourses - generally speaking. 
     27   * Frames (Image, Text, Media frames) 
     28   * Pages 
     29   * Embedded books 
     30   * etc. 
     31   * May include the buttons that are dragable (for resizing the Page, moving the Frame etc.) - this is optional since we already have some implementaion for dragging these buttons. 
    732 
    833== Task requirements == 
    9  * Think of the following scenarios of a DND functionalities: 
    10   * DnD for resources: 
    11    * media resources - audio, video, images etc. (may include things like flash in a later revision). 
    12    * text resources - txt, rtf. 
    13    * html resources. 
    14    * content - text content should be processes when dragged to a text frame for example. 
    15   * DnD into UI components: 
    16    * text frames - should be able to process text dragging and dropping. 
    17    * image frames - should be able to accept DnD of image content. 
    18    * media frames - should be able to accept DnD of media files. 
    19    * palletes: 
    20     * Resource palette: 
    21      * Should process dropping of files. 
    22      * User should be able to drag files outside Sophie 2.0. 
    23     * Same applies to Page templates palette, Plug-in palette, Books palette, Pages palette, Book templates palette etc. 
    24     * Things should be dragged into palettes and out of, or just transfer things from one palette to another  
    25 (from Page palette to Page templates palette should create a template  
    26 for the page that is dragged and dropped in the templates palette.) . 
    27    * work areas - should process dragging of frame templates, resources (resulting in creating an appropriate frame). 
    28    * 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. 
    29  * 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. 
    30   * provide a way to actually test the drag and drop functionalities. 
    31   * implement at least 3 DnD scenarios from the table that follows. 
    32  * A description in a wiki page should be created, explaining how to use the library and how things work. 
    33  * Examine the following table => http://spreadsheets.google.com/ccc?key=p-0Oq38E1aysuTs69KE68Nw&hl=en 
    34   * decide what could added. 
    35   * decide if there is something to remove. 
    36  * Unit test for the base implementation. 
     34 * For the current revision we will consider implementing a base Clipboard functionality. This include the following: 
     35  * base Clipboard library that support the clipboard operations. 
     36  * It should allow transfering plain text: 
     37   * from the text frame to the Clipboard. 
     38   * from the Clipboard into a text frame. 
     39   * from the Clipboard outside Sophie 2.0 - in another text control: 
     40    * for example into a browser or a text editor. 
     41   * Optional transfers (if there is time left): 
     42    * transfers of images from and to Sophie 2.0: 
     43     * this is connected with the Image frames. 
     44 * A module containing the base library should be created. 
     45 * Use cases from above should be implemented into other modules. 
     46 
    3747== Task result == 
    38  * source code 
     48 * source code: 
     49  * base library - a module 
     50  * implementation in other modules 
     51  * unit test for the base library. 
     52 * UML diagram 
     53 * Another table describing the Clipboard possible transfers. (see link above for such a table about the DnD transfers). 
    3954 
    40 == Implementation idea == 
    41  * review DnD library in java. 
    42  * research for some other library. 
    43  * 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. 
     55== Implementation Idea == 
     56 * Research how Clipboard works in Java. 
     57 * Define the behavior of Clipboard in Sophie 2.0 using the possible transfers table. 
     58 * Create the base library. 
    4459 
    4560== Related == 
     
    4762  * => http://asteasolutions.net/mediawiki/index.php/Sophie-JR-Research-Swing-Drag-And-Drop 
    4863  * => http://asteasolutions.net/mediawiki/index.php/Sophie-JR-Drag-and-drop-behaviour 
    49  * [wiki:AUTHOR_PAGE_WORK_AREA_R0] - should be responsible for processing drag and drop events. 
    50  * [wiki:READER_PAGE_WORK_AREA_R0] - should be responsible for processing drag and drop events. 
     64 * [wiki:AUTHOR_PAGE_WORK_AREA_R0] - should be responsible for processing clipboard operations. 
     65 * [wiki:READER_PAGE_WORK_AREA_R0] - should be responsible for processing clipboard operations. 
    5166 
    5267== How to demo == 
    53  * Execute the Unit tests. 
    54  * Execute the three scenarios that have been implemented. 
    55  
     68 * Open Sophie 2.0 
     69  * demostrate the scenarios described in the '''Task Requirements''' section. 
     70  
    5671= Design = 
    5772