# Patent

## Title
Transferring data from an application to a destination

## Abstract

Illustrative embodiments disclose sending content from a first application at a first location to a second application at a second remote location. In response to a user input indicating a selection of content for transfer to the second application, the selection of the content is copied to form copied content. The copied content is then automatically sent to the second application at the remote second location without requiring additional user manipulation of the copy content. Additionally, the destination may be another user. In this case, the second application is employed to automatically transfer the copied content to that second user.

## Background
This application is a continuation of application Ser. No. 10/687,237 filed Oct. 16, 2003, status allowed.


BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for processing data. Still more particularly, the present invention relates to a method, apparatus, and computer instructions for transferring data from an application to a destination.
2. Description of Related Art
The use of data processing systems is pervasive in the workplace. Users generate documents, spreadsheets, and visual presentations on a daily basis. Further, users communicate with each other through email and instant messages over networks, such as wide-area networks and the Internet. This widespread use of computers and the interconnectivity provided through networks allows for different users to collaborate or work with each other in different locations. Collaborating users may be as close as in an office down the hall or on another floor, or as far away as in another city or country. Regardless of the distance, users are able to communicate with each other and collaborate on different projects.
Often times, a user might find a need for sending a portion of a document to another user for review or use by the remote user. For example, two people may work on a document and one individual may decide that the other should inspect a particular paragraph that is being drafted. In the current process, the user selects and copies the text for the paragraph. Thereafter, the user opens an email client or similar application. The text is then pasted by the user into the application. The user then identities the recipient and sends the content to him/her for inspection. Such a process is time-consuming and requires many steps. In some cases, this tedious process may result in less collaboration if a user does not feel that the need for another user to review a portion of a document or a spreadsheet is great enough to justify the effort required to send the content to another user for review.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for sending data from one user to another user.
SUMMARY OF THE INVENTION
The present invention provides a method, apparatus, and computer instructions for sending content from a first application to a second application. In response to user input indicating a selection of content for transfer to the second application, the selection of the content is copied to form copied content. The copied content is then automatically sent to the second application without requiring additional user manipulation of the copy content. Additionally, the destination may be another user. In this case, the second application is employed to automatically transfer the copied content to that second user.



BRIEF DESCRIPTION OF THE DRAWINGS
The novel features believed characteristic of the present invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
FIG. 1 is a pictorial representation of a data processing system in which the present invention may be implemented in accordance with a preferred embodiment of the present invention;
FIG. 2 is a block diagram of a data processing system in which the present invention may be implemented;
FIG. 3 is a block diagram of components used in transferring data from an application to a destination in accordance with a preferred embodiment of the present invention;
FIG. 4 is a diagram illustrating a user interface presented for transferring content in accordance with a preferred embodiment of the present invention;
FIG. 5 is a flowchart of a process for transferring data in accordance with a preferred embodiment of the present invention; and
FIG. 6 is a flowchart of a process for presenting a user interface in accordance with a preferred embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
With reference now to the figures and in particular with reference to FIG. 1, a pictorial representation of a data processing system in which the present invention may be implemented is depicted in accordance with a preferred embodiment of the present invention. Computer 100 is depicted which includes system unit 102, video display terminal 104, keyboard 106, storage devices 108, which may include floppy drives and other types of permanent and removable storage media, and mouse 110. Additional input devices may be included with personal computer 100, such as, for example, a joystick, touchpad, touch screen, trackball, microphone, and the like.
Computer 100 can be implemented using any suitable computer, such as an IBM eServer computer or IntelliStation computer, which are products of International Business Machines Corporation, located in Armonk, N.Y. Although the depicted representation shows a computer, other embodiments of the present invention may be implemented in other types of data processing systems, such as a network computer. Computer 100 also preferably includes a graphical user interface (GUI) that may be implemented by means of systems software residing in computer readable media in operation within computer 100.
With reference now to FIG. 2, a block diagram of a data processing system is shown in which the present invention may be implemented. Data processing system 200 is an example of a computer, such as computer 100 in FIG. 1, in which code or instructions implementing the processes of the present invention may be located. Data processing system 200 employs a peripheral component interconnect (PCI) local bus architecture. Although the depicted example employs a PCI bus, other bus architectures such as Accelerated Graphics Port (AGP) and Industry Standard Architecture (ISA) may be used. Processor 202 and main memory 204 are connected to PCI local bus 206 through PCI bridge 208. PCI bridge 208 also may include an integrated memory controller and cache memory for processor 202.
Additional connections to PCI local bus 206 may be made through direct component interconnection or through add-in boards. In the depicted example, local area network (LAN) adapter 210, small computer system interface SCSI host bus adapter 212, and expansion bus interface 214 are connected to PCI local bus 206 by direct component connection.
In contrast, audio adapter 216, graphics adapter 218, and audio/video adapter 219 are connected to PCI local bus 206 by add-in boards inserted into expansion slots. Expansion bus interface 214 provides a connection for a keyboard and mouse adapter 220, modem 222, and additional memory 224. SCSI host bus adapter 212 provides a connection for hard disk drive 226, tape drive 228, and CD-ROM drive 230.
An operating system runs on processor 202 and is used to coordinate and provide control of various components within data processing system 200 in FIG. 2. The operating system may be a commercially available operating system such as Windows XP, which is available from Microsoft Corporation. An object oriented programming system such as Java may run in conjunction with the operating system and provides calls to the operating system from Java programs or applications executing on data processing system 200. “Java” is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 226, and may be loaded into main memory 204 for execution by processor 202.
Those of ordinary skill in the art will appreciate that the hardware in FIG. 2 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash read-only memory (ROM), equivalent nonvolatile memory, or optical disk drives and the like, may be used in addition to or in place of the hardware depicted in FIG. 2. Also, the processes of the present invention may be applied to a multiprocessor data processing system.
For example, data processing system 200, if optionally configured as a network computer, may not include SCSI host bus adapter 212, hard disk drive 226, tape drive 228, and CD-ROM 230. In that case, the computer, to be properly called a client computer, includes some type of network communication interface, such as LAN adapter 210, modem 222, or the like. As another example, data processing system 200 may be a stand-alone system configured to be bootable without relying on some type of network communication interface, whether or not data processing system 200 comprises some type of network communication interface. As a further example, data processing system 200 may be a personal digital assistant (PDA), which is configured with ROM and/or flash ROM to provide non-volatile memory for storing operating system files and/or user-generated data.
The depicted example in FIG. 2 and the above-described examples are not meant to imply architectural limitations. For example, data processing system 200 also may be a notebook computer or hand held computer in addition to taking the form of a PDA. Data processing system 200 also may be a kiosk or a Web appliance.
The processes of the present invention are performed by processor 202 using computer implemented instructions, which may be located in a memory such as, for example, main memory 204, memory 224, or in one or more peripheral devices 226-230.
The present invention provides an improved method, apparatus, and computer instructions for sending content from one application to another location or application. The mechanism of the present invention facilitates the process of identifying content and placing the content into another process. This other process may be, for example, another application or a complete throughput process, such as saving a file to a file system. Sending the content to another application may include activating an email client, placing the content into an email message, and sending that message to the desired location or destination.
Turning next to FIG. 3, a block diagram of components used in transferring data from an application to a destination is depicted in accordance with a preferred embodiment of the present invention. A user may decide to select content from application 300 for transfer to a destination or target, such as another application or a file. This application may be, for example, a word processor, a spreadsheet program, or a computer aided design drawing program. The user selects some portion of the content from application 300. This selected content is copied from application 300. The selected content may be, for example, an image, text from a document, a spreadsheet, a portion of a spreadsheet, or any content that may be selected and copied.
In the depicted examples, the copy function is provided through operating system 302. The selected content forms data 304, which is stored in a memory or buffer, such as clip board 306 or some other storage mechanism provided through operating system 302 for copy and paste functions. This copy and paste function may be one such as the clip board function described in U.S. Pat. No. 5,801,693.
Thereafter, the user through some selected user input, such as a right click on a mouse or other pointing device may select to send data 304 to another location. This location may be, for example, application 308 or even a file, such as file 310 within the data processing system.
Application 308 may take various forms, such as an email program, another word processing program, or an instant messaging program. In the event that application 308 is to be used as a transport mechanism to send the data to a remote location, the mechanism of the present invention may initiate the execution of application 308, Data 304 is sent to application 308 through an interface in application 308. This interface is typically an existing interface that allows for a transfer of content to the application. Alternatively, a set of scripts may be used to manipulate application 308.
In these examples, the reception of the user input selecting the destination for the data and the initiation of application 308 is handled by data transfer process 312. In these examples, data transfer process 312 is implemented within operating system 302. In other instances, data transfer process 312 may be implemented as an application or even be part of application 300, depending on the particular implementation. If data transfer process 312 is implemented as an application, the various functions within operating system 302 may be accessed through an interface, such as an application programming interface (API). This interface is a language and message format used by an application to communicate with an operating system or some other controls program.
Further, data transfer process 312 may present a user with a list of addresses if application 308 is an email or messaging program. Thereafter, the activation of application 308 and the sending of the content are performed without requiring the user to initiate execution of application 300 and perform the normal steps needed to transmit an email message or a text message.
Turning now to FIG. 4, a diagram illustrating a user interface presented for transferring content is depicted in accordance with a preferred embodiment of the present invention. In this example, window 400 is an example of a window in a word processor and may be presented by an application, such as application 300 in FIG. 3. In this example, text 402 is the content selected by the user for transfer.
When a selected user input, such as a right click on a mouse button, is entered, menu 404 is presented to the user. As can be seen, this menu provides for a transfer function as indicated by option 406. Option 406 allows a user to send content to another application or location. Selection of option 406 causes the presentation of sub-menu 408.
As can be seen in this example, sub-menu 408 defines different transfer functions that may be selected by the user. For example, option 410 is for an SMS text message, option 412 is for text in an email message, option 414 provides for sending the content to a file, and option 416 provides for sending the content in an instant message. In the case that the user selects option 414, the user is presented with options for saving the content to a file.
In this example, option 412 has been selected, which causes sub-menu 418 to be presented. Sub-menu 418 allows a user to select an address from an address book as indicated by option 420 or manually enter an email address using option 422. After the user has selected or has input an email address, the selected content is then automatically sent to the address using an email program without requiring the user to take any further steps.
Turning next to FIG. 5, a flowchart of a process for transferring data is depicted in accordance with a preferred embodiment of the present invention. The process illustrated in FIG. 5 may be implemented in a data transfer process, such as data transfer process 312 in FIG. 3.
The process begins by receiving a user input to transfer content (step 500). As described above, this user input may be, for example, a right click on a mouse button or some other pointing device. Thereafter, a transfer menu is displayed (step 502). This menu is similar to menu 404 in FIG. 4, in which option 406 provides for a transfer function.
Next, a determination is made as to whether the user input has been received selecting the type of transfer (step 504). This user input is for selecting a transfer type, such as those presented in sub-menu 408 in FIG. 4. If a user input, selecting the transfer type, has been received, the selected content is saved in the memory (step 506). In these examples, the memory is a clip board maintained by the operating system. Thereafter, the data transfer of the content is initiated (step 508) with the process terminating thereafter.
With reference again to step 504, if a user input, selecting the transfer, has not been received a determination is made as to whether the action has been canceled (step 510). If the action has not been canceled, the process returns to step 502. Otherwise, the process terminates.
With reference next to FIG. 6, a flowchart of a process for presenting a user interface is depicted in accordance with a preferred embodiment of the present invention. This user interface is an example of a user interface that may be presented through a data transfer process, such as data transfer process 312 in FIG. 3.
The process begins by displaying a menu (step 600). In this example, the menu is displayed in response to a user input indicating that a transfer of content is desired. Thereafter, the process waits for a user input selecting the transfer type (step 602). A determination is made as to whether the user input is to send the content through email (step 604). If the user input is to use email, the user is prompted for an email address (step 606). This prompt may be for the user to select an email address from an address book, or to manually enter the email address. Thereafter, the user input is received (step 608) with the process terminating thereafter.
With reference again to step 604, if the input is not for a transfer using email, a determination is made as to whether the input is for transferring the content using an instant message (step 610). If the input is for transferring the content through an instant message, the user is prompted for a person or “buddy” (step 612) with the process then proceeding to step 608 as described above.
With reference again to step 610, if the user input does not select a transfer type as being an instant message, the user is prompted for a destination location and file name (step 614) with the process then terminating thereafter.
Thus, the present invention provides an improved method, apparatus, and computer instructions for transferring content. The mechanism of the present invention takes advantage of the currently available copy and paste functions as well as buffering storage facilities provided for copied content, such as a clip board. A data transfer process is provided to allow a user to easily and quickly transfer data to another application or location.
In the illustrative examples, the content may be transferred to another location via email, text message, or instant message, or directly to a separate file. Of course, other mechanisms may be used depending on the particular implementation. In this manner, the mechanism of the present invention manages a tedious process of stripping out or selecting content and placing that content into another process, such as another application or a file system.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

## Claims

1. A means in a data processing system configured to send content from a first application at a first location to a second application at a second remote location, the data processing system comprising:
means for providing a plurality of different applications, wherein each of said applications is available for selection by a user as the second application at the second remote location that is to receive the content from the first application;
copying means, responsive to detecting user input indicating a selection of a particular application of said plurality to be the second application, for copying the content to form copied content;
means for selecting the type of transfer comprising the group of text message, email, file, and instant message by selecting the type on a list on a first sub-menu;
means for selecting the second remote location from an address book selected from a list on a second sub-menu or manually entering an address for the second remote location using the second sub-menu, wherein the second sub-menu is a sub-menu of the first sub-menu and displayed responsive to selecting the type; and
means operable without further user input after a single user input to select the second remote location and without initiating any transfer type, and after forming the copied content, for sending the copied content to the second application at the second remote location.

2. The data processing system of claim 1, wherein the copied content is sent to the second application using an application program interface.

3. The data processing system of claim 1, wherein the first application and the second application are selected from one of a word processing program, an email program, an instant messaging program, or a spreadsheet program.

4. The data processing system of claim 1, wherein the copying means comprises:
copying means, in a data transfer process in an operating system process, for copying the selection of the content to form copied content in response to detecting the user input.

5. The data processing system of claim 1, wherein the second remote location comprises a remote data processing system.

6. A computer recordable medium storing computer program product and configured to send content from a first application at a first location to a second application at a second remote location, the computer program product comprising computer implemented instructions of:
first instructions for providing a plurality of different applications, wherein each of said applications is available for selection by a user as the second application that is to receive the content from the first application;
second instructions, responsive to detecting a-single user input indicating a selection of a particular application of said plurality to be the second application, for copying the content to form copied content;
third instructions for selecting the type of transfer comprising the group of text message, email, file, and instant message by selecting the type on a list on a first sub-menu;
fourth instructions for selecting the second remote location from an address book selected from a list on a second sub-menu or manually entering an address for the second location using the second sub-menu, wherein the second sub-menu is a sub-menu of the first sub-menu and displayed responsive to selecting the type; and
fifth instructions operable without further user input after a single user input to select the second remote location and without initiating any transfer type, and after forming the copied content, for initiating the particular selected application to be the second application, and for sending the copied content to the second application at the second remote location.

7. The computer recordable medium of claim 6, wherein the copied content is sent to the second application using an application program interface.

8. The computer recordable medium of claim 6, wherein the first application and the second application are selected from one of a word processing program, an email program, an instant messaging program, or a spreadsheet program.

9. The computer recordable medium of claim 6, wherein the second remote location comprises a remote data processing system.

10. A data processing system configured to send content from a first application at a first location to a second application at a second remote location, the data processing system comprising:
a bus;
a storage device connected to the bus, wherein program code is stored on the storage device; and
a processor unit connected to the bus, wherein the processor unit is configured to run the program code to provide a plurality of different applications, wherein each of said applications is available for selection by a user as the second application that is to receive the content from the first application;
copy the content to form copied content in response to detecting user input indicating a selection of a particular application of said plurality to be the second application;
select the type of transfer comprising the group of text message, email, file, and instant message by selecting the type on a list on a first sub-menu;
select the second remote location from an address book selected from a list on a second sub-menu or manually entering an address for the second location using the second sub-menu, wherein the second sub-menu is a sub-menu of the first sub-menu and displayed responsive to selecting the type; and
send the copied content to the second application at the second remote location without further user input after a single user input to select the second remote location and without initiating any transfer type after forming the copied content.

11. The data processing system of claim 10, wherein the copied content is sent to the second application using an application program interface.

12. The data processing system of claim 10, wherein the first application and the second application are selected from one of a word processing program, an email program, an instant messaging program, or a spreadsheet program.

13. The data processing system of claim 10, wherein copying comprises a data transfer process in an operating system process, for copying the selection of the content to form copied content in response to detecting the user input.

14. The data processing system of claim 10, wherein the second remote location comprises a remote data processing system.