1. Technical Field
The present invention relates to a system and method for persistent selection of objects across multiple directories. More particularly, the present invention relates to a system and method for selecting objects that are located in separate directories, and invoking a single persistent action on the selected objects.
2. Description of the Related Art
During a typical computer session, a user opens multiple objects, or files. The “type” of objects may be associated with one application or multiple applications. For example, a user may open a Microsoft Excel file and a Microsoft Word file in order to “copy and paste” data from one file to the other file. In addition, the onset of larger display screens and the use of multiple displays allow a user to simultaneously view larger quantities of files.
Even though a user may open multiple objects at once, the objects (e.g., files) are typically stored in different directories, which may be based upon a user's organization preference or an application's requirements. For example, a user may wish to store files based upon the file's corresponding project. As another example, an application may require particular files, such as Java files, to be stored in a specific subdirectory. A challenge found, however, is that existing art requires a user to open objects on an individual basis if the objects are located in different directories. For example, if a user wishes to open “file X” located in “directory C” and “file Y” located in “directory D,” the user must first select directory C and open file X, and then select directory D and open file Y. These redundant steps create a less efficient computer session for the user.
What is needed, therefore, is a system and method for invoking an action on multiple objects that are located in separate directories.
It has been discovered that the aforementioned challenges are resolved using a system and method to place objects in a persistent selection state and invoke a single action, such as open, insert, or import, on the selected objects. A user adds objects (e.g., files) to a persistent selection folder, whereby the objects are located in different directories. Once in the persistent folder, the user performs a single action on the persistently selected objects.
A user uses a computer system that includes a persistent selection manager to highlight particular objects on a display. Once the user highlights the objects, the user uses a user interface menu to invoke a “persistent selection.” For example, the user may “right-click” a mouse button which, in turn, displays a pop-up window that allows the user chooses a “select persistently” option.
As a result, the persistent selection manager identifies the highlighted objects, creates a persistent folder, and stores corresponding ghost objects in the persistent folder. The user may then select a different directory and place more objects that are included in the different directory into a persistent selection state. Each of the created ghost objects includes an association to the location of its corresponding object. For example, if the user selected “file X” located in “directory C” and “file Y” located in “directory D,” two ghost objects are stored in the persistent folder, whereby one includes a pointer to “file X” located in “directory C” and the other includes a pointer to “file Y” located in “directory D.”
The user may view a user interface window that displays the persistent folder along with the persistent ghost objects that are included in the folder. In addition, the persistent selection manager sets a persistent selection flag for each of the selected objects that indicate that the objects are persistently selected. In one embodiment, setting the persistent selection flag also includes adding a visual overlay to the objects on the user interface window that identifies the objects are persistently selected.
When the persistent folder includes one or more persistent ghost objects, the user may perform a persistent command. The persistent command may include a persistent action or a persistent de-selection. As an example of a persistent action, the user may perform an import command in order to instruct the persistent selection manager to import each of the persistently selected objects to a particular application. For a persistent de-selection example, the user may wish to remove two out of five objects that are currently included in a persistent selection.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention, which is defined in the claims following the description.
User 100 selects one or more objects included in a directory, which is located in files store 150, via object selection 120. For example, object selection 120 may include a series of mouse commands corresponding to user 100 using a mouse pointer in conjunction with depressing a “Control” key to select multiple objects within a particular directory. Once user 100 selects multiple objects, user 100 invokes persistent selection 125 using user interface menu 130. For example, user 100 may “right-click” a mouse button which, in turn, user interface menu 130 displays a pop-up window. In turn, user 100 chooses a “select persistently” option, such as that shown in Figure 2B. Files store 150 may be stored on a nonvolatile storage area, such as a computer hard drive.
Persistent selection manager 140 detects persistent selection 125, and identifies the objects that were selected via object selection 120. In turn, persistent selection manager creates a persistent folder in persistent store 170 and stores ghost objects 160 in the persistent folder. User 100 may then select a different directory and place more objects that are included in the different directory into the persistent selection state. Each of ghost objects 160 corresponds to one of the selected objects, and includes an association to the location of its corresponding object. For example, if user 100 selected “file X” located in “directory C” and “file Y” located in “directory D,” two ghost objects 160 are stored in the persistent folder, in which one includes a pointer to “file X” located in “directory C” and the other includes a pointer to “file Y” located in “directory D.”
User interface menu 130 displays the persistent folder, along with the persistent ghost objects that are now included in the folder. In addition, persistent selection manager 140 sets a persistent selection flag for each of the selected objects that indicate that the objects are persistently selected. In one embodiment, setting the persistent selection flag also includes adding a visual overlay to the objects on user interface menu 130 that identifies the objects are persistently selected, such as visual overlays 260-270 shown in
When the persistent folder includes one or more persistent ghost objects, user 100 may perform persistent command 180. Persistent command 180 may include a persistent action or a persistent de-selection. As an example of a persistent action, user 100 may perform an import command in order to instruct persistent selection manager 140 to import each of the persistently selected objects to a particular application (see
In addition, when the persistent selection manager creates the persistent ghost objects, the persistent selection manager sets a persistent selection flag, which may include adding a visual overlay to each corresponding object, such as visual overlays 260, 265, and 270. As such, a user may identify objects that are persistently selected by either viewing the contents in persistent folder 275 or viewing the visual overlays that are displayed on user interface menu 130. User interface menu 130 is the same as that shown in
Once one of the directories is selected, the user selects particular objects that are located in the directory and displayed in list box 410.
A determination is made as to whether user 100's request is a persistent selection request (decision 520). For example, user 100 may select one or more objects that are located in one or more directories, and then use a pop-up menu, such as that shown in
On the other hand, if user 100's request is not a persistent selection, decision 520 branches to “No” branch 528 whereupon a determination is made as to whether user 100's request is a persistent action if a menu action is executed on a persistently selected object (decision 540). A persistent action is an action requested for a persistently selected object. For example, user 100 may have previously persistently selected five files, each located in different directories, and wish to import the five files to a particular application. If user 100's request is a persistent action, decision 540 branches to “Yes” branch 542 whereupon processing performs the persistent action (pre-defined process block 550, see
On the other hand, if user 100's request is not a persistent action, decision 540 branches to “No” branch 548 whereupon a determination is made as to whether user 100's request is a persistent de-selection request from a pop-up menu for one or more objects that are currently persistently selected (decision 560). For example, user 100 may have previously persistently selected five files, each located in different directories, and wish to remove one of the files from the persistent selection. If user 100's request is a persistent de-selection request, decision 560 branches to “Yes” branch 562 whereupon processing performs the persistent de-selection (pre-defined process block 570, see
On the other hand, if user 100's request is not a persistent de-selection, decision 560 branches to “No” branch 568. A determination is made as to whether to continue receiving requests from user 100 (decision 580). If processing should continue, decision 580 branches to “Yes” branch 582 which loops back to receive and process more requests. This looping continues until processing should terminate, at which point decision 580 branches to “No” branch 588 whereupon processing ends at 590.
On the other hand, if a persistent folder already exists, decision 610 branches to “Yes” branch 618 bypassing persistent folder creation steps. At step 630, processing identifies a first object that is selected by a user and, at step 640, processing identifies the object's directory location in files store 150. For example, the user may have selected “file X” located in “directory D.” Files store 150 is the same as that shown in
At step 650, processing generates a persistent ghost object that is associated with the selected object, and includes a pointer to the selected object. Processing stores the persistent ghost object in the persistent folder located in persistent store 170 at step 660. A user may view the persistent ghost objects in the persistent folder, such as persistent ghost objects 280-290 shown in
Processing sets a persistent selection flag for the selected object at step 670 that identifies that the object is persistently selected. Setting the persistent selection flag may also include a step of adding a visual overlay to the selected object in order to inform a user that the object is persistently selected, such as visual overlays 260-270 shown in
A determination is made as to whether there are more objects selected in the persistent selection (decision 680). For example, the user may have selected four files that are located in one or more directories for a particular persistent selection. If more objects are selected in the persistent selection, decision 680 branches to “Yes” branch 682 which loops back to identify (step 690) and process the next file. This looping continues until there are no more objects to process, at which point decision 680 branches to No branch 688, whereupon processing returns at 695.
Processing commences at 700, whereupon processing retrieves a first persistent ghost object from a persistent folder located in persistent store 170 (step 710). The persistent ghost object includes an association to the object placed in a permanently selected state, such as a pointer to that object. Persistent store 170 is the same as that shown in
At step 720, processing locates the directory in files store 150 where the persistent ghost object's corresponding object resides. For example, the persistent ghost object may include a pointer to “file X” that is located in “directory D.” File store 150 is the same as that shown in
Processing performs the persistent action, such as an import command, on the persistent ghost object's corresponding object at step 730. Using the example above, processing may import “file X” that is located in “directory D” to an application.
A determination is made as to whether there are more persistent ghost objects located in the persistent folder in which to perform the persistent action (decision 740). If there are more persistent ghost objects in which to perform the persistent action, decision 740 branches to “Yes” branch 742 which loops back to select (step 750) and process the next persistent ghost object. This looping continues until there are no more persistent ghost objects in which to perform the persistent action, at which point decision 740 branches to “No” branch 748 whereupon processing returns at 760.
Processing commences at 800, whereupon processing identifies one of the user's object selections at step 805. The user may select an object itself or a corresponding persistent ghost object that is located in a persistent folder. A determination is made as to whether the selection corresponds to an object or a persistent ghost object (decision 810). If the selection corresponds to a persistent ghost object, decision 810 branches to “Yes” branch 818 whereupon processing locates the object and the object's directory in files store 150 that corresponds to the persistent ghost object (step 820). For example, the persistent ghost object may include a pointer to “file X” that is located in “directory D.” Files store 150 is the same as that shown in
On the other hand, if the user's selection is a particular object, decision 810 branches to “No” branch 812 bypassing object location steps. At step 830, processing resets the object's persistent selection flag. The resetting step may include removing a visual overlay for indicating that the object is persistently selected. Processing, at step 840, removes the corresponding persistent ghost object from the persistent folder that is located in persistent store 170. Persistent store 170 is the same as that shown in
A determination is made as to whether the user selected more objects to remove from the persistent selection (decision 850). If more objects should be removed from the persistent selection, decision 850 branches to “Yes” branch 852 whereupon processing loops back to identify (step 860) and process the next selection. This looping continues until no more objects should be removed from the persistent selection, at which point decision 850 branches to “No” branch 858.
A determination is made as to whether the persistent folder includes any more persistent ghost objects (decision 870). For example, the user may have removed all or just a portion of objects from the persistent selection. If the persistent folder does not include any more persistent ghost objects, decision 870 branches to “No” branch 872 whereupon processing removes the persistent folder from persistent store 170 at step 880. On the other hand, if the persistent folder still includes more persistent ghost objects, decision 870 branches to “Yes” branch 878 bypassing persistent folder removal steps. Processing returns at 890.
PCI bus 914 provides an interface for a variety of devices that are shared by host processor(s) 900 and Service Processor 916 including, for example, flash memory 918. PCI-to-ISA bridge 935 provides bus control to handle transfers between PCI bus 914 and ISA bus 940, universal serial bus (USB) functionality 945, power management functionality 955, and can include other functional elements not shown, such as a real-time clock (RTC), DMA control, interrupt support, and system management bus support. Nonvolatile RAM 920 is attached to ISA Bus 940. Service Processor 916 includes JTAG and I2C busses 922 for communication with processor(s) 900 during initialization steps. JTAG/I2C busses 922 are also coupled to L2 cache 904, Host-to-PCI bridge 906, and main memory 908 providing a communications path between the processor, the Service Processor, the L2 cache, the Host-to-PCI bridge, and the main memory. Service Processor 916 also has access to system power resources for powering down information handling device 901.
Peripheral devices and input/output (I/O) devices can be attached to various interfaces (e.g., parallel interface 962, serial interface 964, keyboard interface 968, and mouse interface 970 coupled to ISA bus 940. Alternatively, many I/O devices can be accommodated by a super I/O controller (not shown) attached to ISA bus 940.
In order to attach computer system 901 to another computer system to copy files over a network, LAN card 930 is coupled to PCI bus 910. Similarly, to connect computer system 901 to an ISP to connect to the Internet using a telephone line connection, modem 995 is connected to serial port 964 and PCI-to-ISA Bridge 935.
While
One of the preferred implementations of the invention is a client application, namely, a set of instructions (program code) in a code module that may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, in a hard disk drive, or in a removable memory such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, that changes and modifications may be made without departing from this invention and its broader aspects. Therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For non-limiting example, as an aid to understanding, the following appended claims contain usage of the introductory phrases “at least one” and “one or more” to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an”; the same holds true for the use in the claims of definite articles.