Abstract:
A method simplified drag and drop operations of display icons. This method calculates a projected path for an icon based on the past movement of the icon. The method highlights the “best fit” target icon as the mouse pointer moves across the screen. As the mouse pointer moves, or changes direction, the “best fit” target icon can change, with the current best-fit icon being highlighted. In addition to highlighting the target icon, a line or arrow from the mouse pointer to the target icon is maintained. The line presents the predicted path in a very noticeable, visual way. As the best-fit target icon changes, the line is re-drawn to point to the current best-fit icon. Regardless of how the target icon is visually indicated, releasing the mouse button will cause the drop operation to be completed “into” target. Completion of the drop could be instantaneous, or could be rendered with animation of some sort to indicate moving from the source to the target.

Description:
FIELD OF THE INVENTION 
       [0001]    This invention relates to a method and system for moving and storing files in a computing environment and particular, this invention refers to a method and system for predicting a destination location for a file transfer during a drag and drop operation based on the dragging movement of a file toward a potential drop or file storage location. 
       BACKGROUND OF THE INVENTION 
       [0002]    Computing technology experiences constant changes. Efforts are ongoing to develop technology that faster and more efficient. One aspect area technology designed to aid computer users is to have more functions that the user can perform with visual aids. One such visual aid in the computing world is the graphical user interface (GUI). A graphical user interface (GUI) is a type of user interface which allows people to interact with a computer and computer-controlled devices which employ graphical icons, visual indicators or special graphical elements called “widgets”, along with text labels or text navigation to represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements. 
         [0003]    In graphical computing, a desktop environment (DE, sometimes desktop manager) offers a graphical user interface (GUI) to the computer. A DE typically provides icons, windows, toolbars, folders, wallpapers, and abilities like drag and drop. As a whole, the particularities of design and function of a desktop environment endow it with a distinctive look and feel. The desktop environments for the popular proprietary operating systems Microsoft Windows and Mac OS X are, in their intended use, relatively unalterable. This imposes a consistent user experience. However, there are alternative themes and third-party software that can completely change both the appearance of common interface elements (such as windows, buttons and icons) and the interface model itself. In Windows, this is accomplished by replacing the default Explorer shell. On systems running the X Window System (typically Unix-like systems), the desktop environment is much more flexible. In this context, a DE typically consists of a window manager (such as Metacity or KWin), a file manager (such as Konqueror or Nautilus), a set of themes, and programs and libraries for managing the desktop. All of these individual modules can be exchanged and individually configured to achieve a unique combination, but most desktop environments provide a default configuration that requires minimal user input. 
         [0004]    In GUI environments, the mouse, which controls a cursor illustrated on the computer screen, is the primary instrument used to manipulate icons and issue commands. In addition, files are handled basically with the use of a mouse, and almost all operations can be performed with the mouse. In an operating system based on a GUI environment, for example, in Windows (trademark of Microsoft Corporation, U.S.A., registered in the United States and other countries), file handling by means of drag-and-drop is available. 
         [0005]    In GUI environments, a drag and drop procedure is often implemented to transfer a file to particular folder. A drag and drop operation might require using a mouse to navigate significant real estate across the display (or even multiple displays). For example, dragging an icon from the lower right corner to an upper left trashcan might require moving the mouse several inches. For a person with limited mobility, this might be challenging. The problem can be even more significant when multiple displays are used to create a larger extended desktop (more mouse pointer movement is required). 
         [0006]    A selected file may be dragged and dropped onto an icon of a folder on the desktop or in a file tree. Also, dropping the selected file onto an icon representing a folder permits the dragged file to be copied/moved to that folder. Although this drag and drop technique simplifies the transfer of files, this technique also involves risks such as a user having to navigate passed various desktop icons or the user accidentally dropping or transferring the file to the wrong folder. 
         [0007]    Other attempts have been made to improve GUI technology with regard to navigating through a desktop. U.S. Pat. No. 6,362,842, to Tahara et al, describes an invention which displays a GUI picture, including an icon/window and a pointer (cursor) of a mouse or the like in a display screen of a computer. The invention predicts an icon, which the user is selecting, based on the moving speed and the direction of movement of the pointer. It displays a tool tip or the like which indicate the function of the icon. This invention also predicts an operation which the user is effecting on the window based on the moving speed of the pointer and a distance between the pointer and a window, changes the display of the pointer from a conventional arrow head during the movement to a bidirectional arrow head appearing in changing the size of the window, for example, depending on the prediction, and further assists an operation to change the size of the window in response to clicking by the user. 
         [0008]    U.S. Patent application 20040095390 to Andreas Arning et al, describes a method of performing a drag-and-drop operation of an object onto a container of a set of containers. The method comprises selecting the object, dragging and dropping of the selected object onto a first container of the set of containers and predicting a second container of the set of containers to which the object is assigned. If the second container is different from the first object, outputting of a warning signal. 
         [0009]    Although some techniques exist related to predicting the selection of the icons on a desktop, there remains a need for a method and system that predicts the drop location of a file or icon during a dragging operation. 
       SUMMARY OF THE INVENTION 
       [0010]    In the present invention, when an icon dragging operation is started, there is a determination of the direction of the drag or moving icon. From the direction of the dragging movement, there is a prediction of the path of the drag icon and an identification of the icon(s) that is closest to this predicted drag path. This identified icon is viewed as a potential target or drop icon. The identified drop icon is visibly indicated to the user. If this identified target/drop icon is the intended destination of the dragging operation, the user has the option to select that target icon. If this selection is made, it is detected and the method of the present invention immediately drops the moving/drag icon into the target icon location thereby completing the drag and drop operation. If during the movement of the dragged icon, the movement of the drag icon deviates from the predicted path at the point of the deviation, the present invention detects the deviation and calculates a new predicted path. If during the movement of the dragged icon, it passes the identified target icon location before selecting that target icon, then the present invention also detects the deviation and calculates a new predicted path. This method also identifies the closest icon to the newly predicted path. This identified icon would become the new target icon. 
     
    
     
       DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1  is a pictorial representation of a personal computing device, which may be used in implementation of the present invention. 
           [0012]      FIG. 2   a  is a view of a typical display desktop screen of a computing device having multiple icons. 
           [0013]      FIG. 2   b  is a view of a desktop screen of a computing device showing a grid with coordinates that identify specific locations of icons on the desktop screen. 
           [0014]      FIG. 3  is a general illustration of the concept of the present invention. 
           [0015]      FIG. 4  is a flow diagram of the general steps in the implementation of the method of the present invention. 
           [0016]      FIG. 5  is a flow diagram of the implementation of the method of the present invention when multiple target icons are identified. 
           [0017]      FIG. 6  is a flow diagram of the implementation of the method of the present invention that identifies the icon type of the dragging icon. 
           [0018]      FIG. 7  is a flow diagram of the implementation of the method of the present invention that crops the dragging icon onto a target icon. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0019]    The present invention provides a method and system to predict locations during a drag and drop operation. With this invention, a user could execute a drag and drop operation without the need to drag the icon completely to the drop location. This step of this invention enables a user to interact with the computing screen that contains various desktop icons. 
         [0020]    The device used to display the icons is a computing device similar to the device illustrated in  FIG. 1 . Shown in  FIG. 1  is a pictorial representation of computing device  100  which may be used in implementation of the present invention. Although the invention is described in terms of the device illustrated in  FIG. 1 , other types of electronic devices capable of transmitting and receiving information can be used in the implementation of the present invention. As seen in  FIG. 1 , data processing system  100  includes processor  110  that preferably includes a graphics processor, memory device and central processor (not shown). Coupled to processor  110  is video display  120  which may be implemented utilizing either a color or monochromatic monitor, in a manner well known in the art. Also coupled to processor  110  is keyboard  130 . Keyboard  130  preferably comprises a standard computer keyboard, which is coupled to the processor by means of cable  140 . Also coupled to processor  110  is a graphical pointing device, such as mouse  150 . Mouse  150  is coupled to processor  110 , in a manner well known in the art, via cable  160 . As is shown, mouse  150  may include left button  170 , and right button  180 , each of which may be depressed, or “clicked”, to provide command and control signals to data processing system  100 . While the disclosed embodiment of the present invention utilizes a mouse, those skilled in the art will appreciate that any graphical pointing device such as a light pen or touch sensitive screen may be utilized to implement the method and apparatus of the present invention. Upon reference to the foregoing, those skilled in the art will appreciate that data processing system  100  may be implemented utilizing a personal computer. 
         [0021]      FIG. 2   a  is a computer display screen  200  containing multiple computer icons such as  202 ,  204  and  206 . On typical computer displays, a computer icon is a small pictogram. An icon is an operation picture that correlates to an operation of a computer. Modern computers now can handle bitmapped graphics on the display terminal, so the icons are widely implemented to assist users. Icons may represent a file, folder, application or device on a computer operating system. In modern usage today, the icon can represent anything that the users want it to: any macro command or process, mood-signaling, or any other indicator. User friendliness also demands error-free operation, where the icons are distinct from each other, self explanatory, and easily visible under all possible user setups. 
         [0022]      FIG. 2   b  illustrates icons on a computer screen with a grid background. This grid facilitates the ability to identify a specific location of an icon on the screen. Points  208  and  210  indicate specific coordinates on the grid. In this approach, the location of each icon can be determined based on grid coordinates. 
         [0023]      FIG. 3  is an illustration of the concept of the present invention. In this concept, a user wants to drag a “My file” icon  300 . When the movement of the icon begins, the present invention can initially track the icon movement. From the initial movements of the icon  300 , there can be a calculation of a projective path  302  of movement for the icon. From this projected path, there can be prediction a drop icon  304 . The prediction of the drop icon can be based on the icon that is closest to the projected path  302 . In determining the projected path of a moving or drag icon, the present invention can store information about the initial icon movement and identify a pattern of movement from this information. From this pattern, there can be a projection of future icon movement, which is the projected path. The grid coordinates can be used to identify a particular movement pattern. The predicted drop icon can be based on an icon that is foremost in or closest to the projected path. 
         [0024]    As shown, even though there is primary projected target or drop icon, there can be multiple icons  306  and  308  that are approximately the same distance from the projected path  302 . As the user moves the drag icon along the projected path  302 , the user could easily select an icon that is in close proximity to the projected path. This approximate distance can be within an established threshold distance from the projected path. Any icon that is in this threshold distance of the projected path could be a potential target or drop icon. In the situation of multiple icons, the present invention can indicate alternate projected paths  310  and  312  in addition to the projected path  302 . The indication of the alternate paths, done with dotted lines from the drag icon to the multiple icons in FIG.  3 , alerts the user to other possible icon destinations. Further, if the user desires to drop the drag icon at icon  306  Folder B, the user could deviate from the projected path  302  to path  310 . This change of direction of the drop icon would cause the path to Folder B to become the primary projected path. Folder B could be illuminated or highlighted as the new target icon. At this point, if icon  306  is the desired drop icon, the user has the option to immediately select that icon before the drag icon reaches that drop icon location. However, if the drop icon moves passed the paths for icons  306  and  308  without deviation, drop icon  304  can remain highlighted as the primary icon. As with icon  306 , when this icon is highlighted, at that point, the user has the option to select that icon before the drag icon  300  reaches the drop icon location. 
         [0025]      FIG. 4  shows a general description of the method of the present invention. An initial step  400  can be to establish coordinate location for icons on a display screen. These coordinates can be used in determining the direction of icon movement. The coordinates of each icon can be temporarily stored in a memory location that is linked to the display screen. The current position of the icons can be constantly monitored. Step  402  would detect any movement of an icon. As the icon moves passed at least coordinate points, step  404  can begin to calculate a projected path for the icon. The calculations would result from changes in the horizontal and vertical coordinates. The pattern of coordinate changes is used to predict the path for movement of the icon. With predicted path of movement, step  406  can identify any icons that are closest to the projected path of the moving icon. These icons are target icons. This identification of target icons can be based on the proximity of the icon coordinates to the coordinates of the projected moving icon path. Step  408  would distinctively display the closest icon on the screen. This display could be by illuminating the target icon. 
         [0026]    As the drag icon moves across the screen, it is possible for the drag icon to move passed the target icon or for the drag icon to deviate from the projected path. During the movement of the drag icon, the present invention monitors this icon movement. As part of this monitoring, step  410  makes a determination of whether the drag icon has moved passed the target icon location. If the determination is that the drag icon has not moved passed the target icon, step  412  makes a determination of whether the drag icon movement has deviated from the previously projected path. In some cases, the drag icon may move toward an icon that is not the projected target icon. If the movement of the drag icon is still on the initially projected path, at this point, the method continues to monitor the movement of the drag icon in step  414 . At this point, the method continues to monitor the movement of the drag icon and returns to step  408 . 
         [0027]    Referring back to step  410 , if the determination is that the drag icon has moved passed the target icon, then the method moves to step  416 , which calculates a new projected path for the drag icon. When the drag icon moves passed the target icon, the process of calculating a new target icon in step  416  would be similar to the process in step  404 . After the calculation of a new projected path in step  416 , the method moves to step  406 . 
         [0028]    As previously mentioned, in step  410  if the determination is that the drag icon has not moved passed target icon, then the method moves to step  412  which makes a determination of whether the drag icon has changed directions. If the determination is that the drag icon has changed directions, then the method moves from step  412  to step  416 , which calculates a new projected path for the drag icon. This process of  FIG. 4  continues until there is an identified target icon and the drag icon is dropped in the target icon. 
         [0029]      FIG. 5  is a flow diagram of the present invention when multiple target icons are identified. As shown in  FIG. 3 , there can be multiple icons  306  and  308  that are in close proximity to the projected movement of the drag icon. In the method illustrated in  FIG. 5 , steps  500 ,  502 ,  504  and  506  are similar steps  400 ,  402 ,  404  and  406  of  FIG. 4 . Step  508  makes a determination of multiple icons within a certain distance of the projected path of the drag icon. In this process, icons in the general direction of the projected path would be examined to determine whether the icon is within the defined or threshold distance of the projected path. If the icon were within this distance, the icon would be one of the target icons. If in step  508 , there is a determination there are not multiple target icons, then the method moves to step  510 , which displays an identified target icon on the screen similar to  FIG. 4 . If the determination in step  508  is that there are multiple target icons, then step  512  displays the target icons on the screen. This display could include highlighted paths to each target icon. The target icons can also be distinctly displayed to the user in some special manner, different from the normal display of icons. Once the method has displayed the icons, the method moves to step  514  which makes a determination of whether the drag icon has moved passed the target icons. Similar to step  410 , if the determination in step  514  is that the drag icon has not moved passed the target icon, step  516  makes a determination of whether the drag icon movement has deviated from the previously projected path. If the movement of the drag icon is still on the initially projected path, at this point, the method continues to monitor the movement of the drag icon in step  518 . At this point, the method continues to monitor the movement of the drag icon and returns to step  514 . 
         [0030]    Referring back to step  514 , if the determination is that the drag icon has moved passed the target icon, then the method moves to step  520 , which calculates a new projected path for the drag icon. When the drag icon moves passed the target icons, the process of calculating a new target icon in step  520 . After the calculation of a new projected path in step  520 , the method moves to step  506 . 
         [0031]    As previously mentioned, in step  514  if the determination is that the drag icon has not moved passed target icon, then the method moves to step  516  which makes a determination of whether the drag icon has changed directions. If the determination is that the drag icon has changed directions, then the method moves from step  516  to step  520 , which calculates a new projected path for the drag icon. This process of  FIG. 5  continues until there is an identified target icon and the drag icon is dropped in the target icon. 
         [0032]      FIG. 6  shows an embodiment of the method of the present invention, which identifies the type of drop icon and a target icon of a comparable type to the drop icon. This identity could be of the icon such as folder or file. For example, in some situations, a WORD file is on the desktop. When an icon is placed on the desktop, the information about the icon and related program can be recorded in the previously mentioned index along with the coordinate location of the icon on the desktop. 
         [0033]    As with previous embodiments, an initial step  600  can be to establish coordinate location for icons on a display screen, which can be used in determining the direction of icon movement. The current position of the icons can be constantly monitored. Step  602  detects movement of an icon. An icon moved for the purpose of dropping it into another icon is a drag icon. Step  604  identifies the type of drag icon. As the icon moves passed at least one set of coordinate points, step  606  calculates a projected path for the drag icon. With predicted path of movement, step  608  can identify any icons that are closest to the projected path of the moving icon that is of the same or similar type to the drag icon. This icon is target icon. 
         [0034]    Step  610  makes a determination of multiple icons within a certain distance of the projected path of the drag icon. These icons would be of the same or similar type to the drag icon. As in  FIG. 5 , in this process, icons in the general direction of the projected path would be examined to determine whether the icon is within the defined or threshold distance of the projected path. If the icon were within this distance, the icon would be one of the target icons. If in step  610 , there is a determination there are not multiple target icons, then the method moves to step  612 , which displays an identified target icon on the screen similar to  FIG. 5 . If the determination in step  610  is that there are multiple target icons, then step  614  displays the target icons on the screen. This display could include highlighted paths to each target icon. The target icons can also be distinctly displayed to the user in some special manner. Once the method has displayed the icons, the method moves to step  616  which makes a determination of whether the drag icon has moved passed the target icons. Similar to step  514 , if the determination in step  616  is that the drag icon has not moved passed the target icon, step  618  makes a determination of whether the drag icon movement has deviated from the previously projected path. If the movement of the drag icon is still on the initially projected path, at this point, the method continues to monitor the movement of the drag icon in step  620 . At this point the method continues to monitor the movement of the drag icon and returns to step  616 . 
         [0035]    In step  616  if the determination is that the drag icon has not moved passed target icon, then the method moves to step  618  which makes a determination of whether the drag icon has changed directions. If the determination is that the drag icon has changed directions, then the method moves from step  618  to step  622 , which calculates a new projected path for the drag icon. 
         [0036]      FIG. 7  describes an embodiment of the present invention that crops the drag icon onto the target icon. In this embodiment in addition to identifying and highlighting a target icon, the drag icon is cropped onto the target icon. If this target icon is the intended location to drop the drag icon, the user simply needs to release the mouse to complete the drop operation.  FIG. 7  is a flow diagram of an embodiment of the method of the present invention that crops a target icon and gives a user the option to drag and drop an icon to the target icon. In the method illustrated in  FIG. 7 , steps  700 ,  702 ,  704 ,  706  and  708  are similar steps  400 ,  402 ,  404 ,  406  and  408  of  FIG. 4 . Step  710  crops the drag icon onto the target icon. This act eliminates the need for the user to continue to drag the icon to the target icon location. If the predicted target icon is accurate, then the user could immediately release the mouse to drop the drag icon into the target icon. 
         [0037]    In this method, step  712  determines whether the user has selected the cropped icon. If the user has selected the cropped icon, then the drag icon is dropped into the target icon in step  720 . If the user did not select the cropped icon, then the method moves to step  714  which makes a determination of whether the drag icon has moved passed the cropped target icon. If the determination in step  714  is that the drag icon has not moved passed the target icon, step  716  makes a determination of whether the drag icon movement has deviated from the previously projected path. If the movement of the drag icon is still on the initially projected path, then the method continues to monitor the movement of the drag icon and returns to step  708 . 
         [0038]    In step  714  if the determination is that the drag icon has not moved passed target icon, then the method moves to step  716  which makes a determination of whether the drag icon has changed directions. If the determination is that the drag icon has changed directions, then the method moves from step  716  to step  718 , which calculates a new projected path for the drag icon. 
         [0039]    It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those skilled in the art will appreciate that the processes of the present invention are capable of being distributed in the form of instructions in a computer readable medium and a variety of other forms, regardless of the particular type of medium used to carry out the distribution. Examples of computer readable media include media such as EPROM, ROM, tape, paper, floppy disc, hard disk drive, RAM, and CD-ROMs and transmission-type of media, such as digital and analog communications links.