# Patent

## Title
Multi-source, multi-destination data transfers

## Abstract

A system and method for transferring data or an image. A user-selected image or user-generated text within a word processing document is received. Displayed are: a graphic object representing a web page, and a first and second destination point within the graphic object. A user mouse selection of one of the destination points within the graphic object is received, and in response, the image or selected text is copied into the web page at the selected destination point. The first destination point and first text which is adjacent to the first destination point and describes the first destination point in a transfer map are stored. The second destination point and second text which is adjacent to the second destination point and describes the second destination point in the transfer map are stored. The user-selected text is mapped to the one of the destination points in the transfer map.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation application claiming priority to Ser. No. 13/901,232, filed May 23, 2013, now U.S. Pat. No. 9,037,989, issued May 19, 2015, which is a continuation application of Ser. No. 10/832,036 filed Apr. 26, 2004, Abandoned.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, systems, and products for multi-source, multi-destination data transfers.
2. Description of Related Art
Typical computer application software and computer operating systems provide at least some support for copies and moves of content from sources to destinations. In actual usage, however, the demand for accurate, sophisticated content transfer often outstrips available support. In effecting multiple transfers, for example, user are often required to laboriously identify or label blocks of source content or destinations for transfers, and there is little support for identifying multiple destinations for transfers. For these reasons, there is an ongoing need for improvement in the area of multi-source, multi-destination data transfers.
SUMMARY OF THE INVENTION
Methods, systems, and products are disclosed for multi-source, multi-destination data transfers that include identifying a plurality of destination points having destination contexts in one or more destination objects; selecting source content for transfer; displaying destination contexts for the destination points; and directing source content to at least one destination point in dependence upon the displayed destination contexts. In typical embodiments, identifying destination points includes recording each identified destination point and storing in association with each recorded destination point a copy of a destination context for each recorded destination point.
Typical embodiments include inserting source content at a destination point in a copy of a destination context. Typical embodiments include checking spelling of a copied destination context that includes inserted source content. Typical embodiments include checking grammar of a copied extracted destination context that includes inserted source content.
In typical embodiments, directing source content to at least one destination point in dependence upon the displayed destination contexts further comprises inserting source content at an identified destination point in a destination object. Typical embodiments include inserting source content at a selected destination point in a copied destination context and replacing the destination context in the destination object with the copied destination context including the inserted source content.
Typical embodiments include mapping a plurality of selected source content to a plurality of selected destination points. Typical embodiments include designating at least one source content for transfer, inserting the designated source content at a selected destination point in a destination object, and deleting the designated source content from a source object.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular descriptions of exemplary embodiments of the invention as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts of exemplary embodiments of the invention.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 sets forth a block diagram of automated computing machinery useful according to various embodiments of the present invention.
FIG. 2 sets forth a block diagram illustrating exemplary multi-source, multi-destination data transfers.
FIG. 3 sets forth a block diagram of an exemplary selection of source content in a source object.
FIG. 4 sets forth a line drawing illustrating an exemplary mapping of a plurality of selected source content to a plurality of selected destination points.
FIG. 5 sets forth a flow chart illustrating an exemplary method for multi-source, multi-destination data transfers.



DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
Introduction
The present invention is described to a large extent in this specification in terms of methods for multi-source, multi-destination data transfers. Persons skilled in the art, however, will recognize that any computer system that includes suitable programming means for operating in accordance with the disclosed methods also falls well within the scope of the present invention. Suitable programming means include any means for directing a computer system to execute the steps of the method of the invention, including for example, systems comprised of processing units and arithmetic-logic circuits coupled to computer memory, which systems have the capability of storing in computer memory, which computer memory includes electronic circuits configured to store data and program instructions, programmed steps of the method of the invention for execution by a processing unit.
The invention also may be embodied in a computer program product, such as a diskette or other recording medium, for use with any suitable data processing system. Embodiments of a computer program product may be implemented by a computer program stored on a computer-readable storage device such as a magnetic storage device, an optical storage device, or other storage device. The term “computer-readable storage device” does not encompass a signal propagation media such as copper cable, optical fiber or wireless transmission media. Persons skilled in the art will immediately recognize that any computer system having suitable programming means will be capable of executing the steps of the method of the invention as embodied in a program product. Persons skilled in the art will recognize immediately that, although most of the exemplary embodiments described in this specification are oriented to software installed and executing on computer hardware, nevertheless, alternative embodiments implemented as firmware or as hardware are well within the scope of the present invention.
Multi-Source, Multi-Destination Data Transfers
Methods, systems, and products are disclosed for multi-source, multi-destination data transfers that operate generally by allowing a user to first identify multiple destination points in destination objects, then to select multiple source content, and direct the transfer of information such that some destination points may received transfers of source content and other may receive copies of source content. For example, a user may identify destination points A, B, C, and D in a destination object such as a destination word processing document and then select source content blocks X, Y, and Z in one or more source objects. The user may then direct the transfer of source content so that source content block X is copied to destination point A and to destination point B, source content block Y is transferred to destination point C, and source content block Z is transferred to destination point D.
Systems according to embodiments of the present invention typically provide for a subscreen image depicting a destination context of an identified destination point stored in memory when a destination point is identified. Thus when a paste operation is to be performed, images depicting destination contexts may be displayed to aid users in remembering or deciding which source content is to be directed to which destination. More particularly, such systems operate generally, as described in more detail below, by identifying a plurality of destination points having destination contexts in one or more destination objects, selecting source content for transfer, displaying destination contexts for the destination points, and directing source content to at least one destination point in dependence upon the displayed destination contexts.
Methods and systems according to embodiments of the present invention are implemented generally upon automated computing machinery, referred to here as “computers.” For further explanation, FIG. 1 sets forth a block diagram of automated computing machinery comprising a computer (134.) Computer (134) may be a personal computer, mainframe, laptop, minicomputer, personal digital assistant, wireless handheld device, a cellular telephone, or any other form of automated computing machinery useful as a system for multi-source, multi-destination data transfer according to embodiments of the present invention as will occur to those of skill in the art. The exemplary computer (134) of FIG. 1 includes at least one computer processor (156) or ‘CPU’ as well as random access memory (168) (“RAM”). Stored in RAM (168) are application programs (152). Application programs useful in accordance with various embodiments of the present invention include browsers, word processors, spreadsheets, database management systems, email clients, and so on, as will occur to those of skill in the art.
Also stored in RAM (168) is an operating system (154). Operating systems useful in computers according to embodiments of the present invention include Unix, Linux, Microsoft NTTM, and many others as will occur to those of skill in the art. Computer program instructions for multi-source, multi-destination data transfer according to embodiments of the present invention may be implemented at least to some extent in application software (152). It is operating systems, however, that include many of the computer software instructions that support inter-application operations, and operating systems will often include many of the computer program instructions needed for multi-source, multi-destination data transfer according to embodiments of the present invention.
The computer (134) of FIG. 1 includes computer memory (166) coupled through a system bus (160) to the processor (156) and to other components of the computer. Computer memory (166) may be implemented as a hard disk drive (170), optical disk drive (172), electrically erasable programmable read-only memory space (so-called ‘EEPROM’ or ‘Flash’ memory) (174), RAM drives (not shown), or as any other kind of computer memory as will occur to those of skill in the art.
The example computer (134) of FIG. 1 includes communications adapter (167) implementing couplings for data communications (184) to other computers (182), servers or clients. Communications adapters implement the hardware level of connections for data communications through which local hosts and remote hosts or servers send data communications directly to one another and through networks. Examples of communications adapters include modems for wired dial-up connections, Ethernet (IEEE 802.3) adapters for wired LAN connections, and 802.11b adapters for wireless LAN connections.
The example computer of FIG. 1 includes one or more input/output interface adapters (178). Input/output interface adapters in computers implement user-oriented input/output through, for example, software drivers and computer hardware for controlling output to display devices (180) such as computer display screens, as well as user input from user input devices (181) such as keyboards and mice.
FIG. 2 sets forth a block diagram illustrating exemplary multi-source, multi-destination data transfers according to embodiments of the present invention. In the example of FIG. 2, three destination points (104) are identified in two destination objects (102). A destination object is any data structure administered by any application program or operating system component. Examples of destination objects include word processing documents, spreadsheets, database records, web pages, email documents, and so on, as will occur to those of skill in the art. A destination point (104) is a location in a destination object (102) where source content from a source object is to be inserted as a copy or a transfer.
In the example of FIG. 2, each destination point (104) in the destination object (102) has a destination context (106). A destination context (106) is a portion of a destination object that logically contains a destination point (104). If, for example, a destination object (102) includes text surrounding a destination point, a destination context may include a sentence containing the destination point, a paragraph containing the destination point, a document page containing the destination point, and so on. If the destination object (102) is a graphic object such as a JPEG file, for example, a destination context may include a two dimensional range of picture elements surrounding the destination point. Destination contexts may be displayed to advantageously provide users with a visual impression of the surroundings of a destination point thereby facilitating users' control over multi-source, multi-destination data transfers. In the example of FIG. 2, when a user identifies a destination point, the destination point and its associated destination context are copied (107) to a data structure in memory represented in FIG. 2 as a display buffer (108).
As mentioned above, systems according to embodiments of the present invention operate generally by selecting source content for transfer to one or more identified destination points, displaying destination contexts for the destination points, and directing source content to at least one destination point in dependence upon the displayed destination contexts. FIG. 3 sets forth a block diagram of an exemplary selection of source content (212) in a source object (210). A source object (210) is any data structure administered by any application program or operating system component. Examples of source objects (210) include word processing documents, spreadsheets, database records, web pages, email documents, and so on, as will occur to those of skill in the art. Source content (212) is any portion of the source object (210) to be inserted into a destination object at a destination point. The source content is either copied or transferred into the destination object at the destination point. Source content may include selected text such as a word, sentence, or paragraph of a word processing document, a two dimensional range of picture elements from a graphic object such as JPEG file, or any other source content as will occur to those of skill in the art.
In the example of FIG. 3, a user has selected source content (212) in a source object by, for example, clicking and dragging a mouse pointer over a portion of a graphical user interface (“GUI”) upon which is displayed a portion of a source object such as a word processing document. In the example of FIG. 3, a right mouse click (214) is depicted as a user's instruction to a system according to an embodiment of the present invention to direct the source content to a destination point. In response, the system has displayed a destination display (216) displaying destination contexts for previously identified destination points. In the example of FIG. 3, the user's directing selected source content (212) to a particular destination point (104) is represented by a left mouse click (215) on the displayed destination context of the destination point.
FIG. 4 sets forth a line drawing illustrating an exemplary mapping, called a transfer map (420), of a plurality of selected source content to a plurality of selected destination points. Transfer map (420) is implemented as a table of three columns: a column named “Source” (422) that lists items of source content, a column named “Destination” (426) that displays images of destination contexts each of which (as explained above) includes a destination point from a destination object, and a column named “Map Entry” (424) that contains mapping entries associating source content with destination points and describes the mappings as either copies or transfers.
The selected source content in the example of FIG. 4 is represented as items A, B, C, and D. The selected source content was selected from a source object such as a word processing document or video image by highlighting the source content on a graphical user interface with a mouse-down-and-drag and the right clicking (214) the highlighted area to list the selected content in the transfer map (420). The items of source content may be implemented as blocks of text, ranges of picture elements, segments of memory, or otherwise as will occur to those of skill in the art.
In the example of FIG. 4, some source content is mapped for transfer and some for copying. Copying source content is carried out by inserting designated source content at selected destination points in one or more destination objects. Transferring source content is carried out by inserting designated source content at selected destination points in one or more destination objects and deleting the designated source content from a source object. In the example of FIG. 4, source content item A is mapped for copying to the destination point in destination context (410) and for copying to the destination point in destination context (414). Source content item B is mapped for transfer to the destination point in destination context (410) and to the destination point in destination context (412), and, because it is mapped as a transfer, source content item B is to be deleted from its source object. Source content item C is mapped for copying to the destination point in destination context (416), and source content item D is mapped for copying to the destination point in destination context (414).
Transfer map (420) may, for example, be implemented for use as a window or dialogue box in a GUI so that a user may edit the map entries (424). Such an implementation of a transfer map may support other user functions such as, for example, deleting transfer map records from the transfer map—to the extent that, for example, a user has identified a destination point whose destination context is therefore displayed in the transfer map when the user subsequently has decided not to insert any source content at that destination point. The example of FIG. 4 also provides an Apply button (418) which when invoked through a GUI operation such as a mouse click operates to carrying out all the insertions and deletions of source content described in map entries (424) in the transfer map (420).
Further explanation is provided with reference to FIG. 5. FIG. 5 sets forth a flow chart illustrating an exemplary method for multi-source, multi-destination data transfers that includes identifying (502) a plurality of destination points having destination contexts in one or more destination objects. A destination object is any data structure manipulated by software. Examples of destination objects include word processing documents, spreadsheets, database records, email messages, web pages, and so on, as will occur to those of skill in the art. There is no limitation in this specification regarding the number of destination points identified in a destination object. That is, methods and systems according to embodiments of the present invention support user identification of one or more destination points within any destination object.
In the method of FIG. 5, identifying (502) destination points includes recording (504) each identified destination point (104) and storing (505) in association with each recorded destination point (104) a copy of a destination context (106) for each recorded destination point (104). In the example of FIG. 5, destination points and destination contexts are stored in a buffer (108) in computer memory (318). Destination points and destination contexts may alternatively be stored in a transfer map such as the one illustrated at reference (420) on FIG. 4, and may be stored otherwise as will occur to those of skill in the art.
The method of FIG. 5 also includes selecting (506) source content for transfer, displaying (508) destination contexts for the destination points, and directing (510) source content to at least one destination point in dependence upon the displayed destination contexts. There is no limitation in this specification regarding the number of destination points in a single destination object to which a particular item of source content may be directed. That is, methods and systems according to embodiments of the present invention support directing of one item of source to content to one or more destination points in the same destination object or in more than one destination object.
In the method of FIG. 5, directing (510) source content to at least one destination point in dependence upon displayed destination contexts is carried out by inserting (511) source content at an identified destination point in a destination object (102). Directing (510) source content to at least one destination point in dependence upon displayed destination contexts may also be carried out by use of a transfer map with an Apply function as described above and in other ways as may occur to those of skill in the art.
The example of FIG. 5 includes an alternative of inserting (512) source content at a destination point (104) in a copy of a destination context (106) that may be implemented within the scope of the present invention as an alternative or in addition to inserting source content at insertion points in destination object. Inserting (512) source content at a destination point (104) in a copy of a destination context (106), for example, may advantageously support checking the spelling of a copied destination context (106) that includes inserted source content (514) and checking grammar of a copied extracted destination context (106) that includes inserted source content (514). Checking spelling and grammar of source content inserted in a destination context provides the advantage of excluding from destination objects errors originating in a source objects and also errors originating in destination contexts—so that errors originating in source object are not communicated to destinations and errors originating in destination objects are not perpetuated. Checking grammar of source content inserted in a destination context also provides the advantage of checking grammar of source content as it will lie in its new context—which may affect the correctness of the grammar because grammar that is correct in a source object may need to be altered for correct usage in its new surroundings in a destination object. The method of FIG. 5 also includes replacing (516) the destination context in the destination object (102) with the copied destination context (106) including the inserted source content (514).
It will be understood from the foregoing description that modifications and changes may be made in various embodiments of the present invention without departing from its true spirit. The descriptions in this specification are for purposes of illustration only and are not to be construed in a limiting sense. The scope of the present invention is limited only by the language of the following claims.

## Claims

1. A computer system comprising a processor, a memory coupled to the processor, and a computer readable storage device coupled to the processor, said storage device containing program code which, upon being executed by the processor via the memory, implements a method for transferring data, said method comprising:
receiving, by the processor, a user selection of user-generated text within a word processing document;
displaying, by the processor, (a) a graphic object representing a web page, (b) a first destination point within the graphic object and first text which is adjacent to the first destination point and describes the first destination point, and (c) a second, different destination point within the graphic object and second, different text which is adjacent to the second destination point and describes the second destination point;
receiving, by the processor, a user mouse selection of one of the destination points within the graphic object, and in response, copying the selected text into the web page at the selected destination point;
storing, by the processor, the first destination point and the first text which is adjacent to the first destination point and describes the first destination point in a transfer map, wherein the transfer map is a graphical user interface (GUI) that allows a user to edit or delete the first destination point or the second destination point before the step of copying the selected text into the web page at the selected destination point;
storing, by the processor, the second, different destination point and the second text which is adjacent to the second destination point and describes the second destination point in the transfer map; and
in response to receiving the user mouse selection of the one of the destination points within the graphic object, mapping, by the processor, the selected text to the one of the destination points in the transfer map.

2. A computer system comprising a processor, a memory coupled to the processor, and a computer readable storage device coupled to the processor, said storage device containing program code which, upon being executed by the processor via the memory, implements a method for transferring an image, said method comprising:
receiving, by the processor, a user selection of an image;
displaying, by the processor, (a) a graphic object representing a web page, (b) a first destination point within the graphic object and first text which is adjacent to the first destination point and describes the first destination point, and (c) a second, different destination point within the graphic object and second, different text which is adjacent to the second destination point and describes the second destination point;
receiving, by the processor, a user mouse selection of one of the destination points within the graphic object, and in response, copying the selected image into the web page at the selected destination point;
storing, by the processor, the first destination point and the first text which is adjacent to the first destination point and describes the first destination point in a transfer map, wherein the transfer map is a graphical user interface (GUI) that allows a user to edit or delete the first destination point or the second destination point before the step of copying the selected image into the web page at the selected destination point;
storing, by the processor, the second, different destination point and second text which is adjacent to the second destination point and describes the second destination point in the transfer map; and
in response to receiving the user mouse selection of the one of the destination points within the graphic object, mapping, by the processor, the selected image to the one of the destination points in the transfer map.

3. A method for transferring an image, said method comprising:
receiving, by a processor of a computer system, a user selection of an image;
displaying, by the processor, (a) a graphic object representing a web page, (b) a first destination point within the graphic object and first text which is adjacent to the first destination point and describes the first destination point, and (c) a second, different destination point within the graphic object and second, different text which is adjacent to the second destination point and describes the second destination point;
receiving, by the processor, a user mouse selection of one of the destination points within the graphic object, and in response, copying the selected image selected into the web page at the selected destination point;
storing, by the processor, the first destination point and the first text which is adjacent to the first destination point and describes the first destination point in a transfer map, wherein the transfer map is a graphical user interface (GUI) that allows the user to edit or delete the first destination point or the second destination point before the step of copying the selected image into the web page at the selected destination point;
storing, by the processor, the second, different destination point and second text which is adjacent to the second destination point and describes the second destination point in the transfer map; and
in response to receiving the user mouse selection of the one of the destination points within the graphic object, mapping, by the processor, the selected image to the one of the destination points in the transfer map.