Abstract:
Embodiments relate to selecting an object displayed on a display device of a computer. Aspects include moving a movable pointer in the display device in response to a user input, determining whether the pointer is in a predetermined temporary selection state, and based on a determination that the pointer is in the temporary selection state, acquiring an object pointed to by the pointer and storing the object in the storage device as a temporarily selected object. Aspects further include acquiring an second object pointed by the pointer in response to the user performing a predetermined object selection operation, comparing the second object with the temporarily selected object, and based on a determination that the second object is identical to the temporarily selected object, determining that the second object is selected.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to JP Application No. 2012-278041, filed Dec. 20, 2012, and all the benefits accruing therefrom under 35 U.S.C. §119, the contents of which in its entirety are herein incorporated by reference. 
       BACKGROUND 
       [0002]    Embodiments of the invention relate generally to selecting an object appropriately, and particularly to an object selection device, an object selection method and an object selection program each of which prevents a user from selecting an object improperly. 
         [0003]    As a typical example of selecting an object on a computer, there is such a case where a pointer is moved to an object displayed on a screen of a display device and a selection operation such as clicking or the like is performed on the object. The movement of the pointer to the object is performed by use of a pointing device such as a mouse or a cursor key of a keyboard. 
         [0004]    However, due to a combination of the movement of the pointer with the selection operation, an unintended object for a user may be selected. If a wrong object is selected, a function assigned to the object works, thereby resulting in that unnecessary troubles of finishing the function or of performing an UNDO operation are required. 
       BRIEF SUMMARY 
       [0005]    Embodiments include a method, system, and computer program product for selecting an object displayed on a display device of a computer. Aspects include moving a movable pointer in the display device in response to a user input, determining whether the pointer is in a predetermined temporary selection state, and based on a determination that the pointer is in the temporary selection state, acquiring an object pointed to by the pointer and storing the object in the storage device as a temporarily selected object. Aspects further include acquiring an second object pointed by the pointer in response to the user performing a predetermined object selection operation, comparing the second object with the temporarily selected object, and based on a determination that the second object is identical to the temporarily selected object, determining that the second object is selected. 
         [0006]    Additional features and advantages are realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein. For a better understanding of the disclosure with the advantages and the features, refer to the description and to the drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0007]    The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and advantages of the disclosure are apparent from the following detailed description taken in conjunction with the accompanying drawings. 
           [0008]      FIG. 1  is an exemplary function configuration of a selection system to which an exemplary embodiment is applied. 
           [0009]      FIG. 2  is an exemplary hardware configuration of a computer suitable for constituting the selection system according to an exemplary embodiment. 
           [0010]      FIG. 3  is an example of a conventional wrong link selection. 
           [0011]      FIG. 4  is an example of a link selection according to an exemplary embodiment. 
           [0012]      FIG. 5  is an example of an object selection on a touch panel according to an exemplary embodiment. 
           [0013]      FIG. 6  is another example of an object selection on a touch panel according to an exemplary embodiment. 
           [0014]      FIG. 7  is a table illustrating a determination method of a temporary selection and a selection according to an exemplary embodiment. 
           [0015]      FIG. 8  is a flowchart illustrating a process flow according to an exemplary embodiment. 
           [0016]      FIG. 9  is a flowchart illustrating another process flow according to an exemplary embodiment. 
           [0017]      FIG. 10  is an exemplary recorded content of a temporarily selected object according to an exemplary embodiment. 
           [0018]      FIG. 11  is an exemplary recorded content of a temporarily selected object according to an exemplary embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0019]      FIG. 1  is a view illustrating an exemplary function configuration of a selection system to which an exemplary embodiment is applied. 
         [0020]    As illustrated in  FIG. 1 , a selection system  100  according to an exemplary embodiment includes a display control section  170 , an operation receiving section  130 , an object storage section  140 , a selection process section  150 , and a storage section  160 . Further, a display device  110  such as a liquid crystal display is connected to the display control section  170  of the selection system  100 . 
         [0021]    The display control section  170  displays various images on a display screen of the display device  110 . More specifically, the display control section  170  displays an icon of an object to be processed, a pointer, a cursor, or the like thereon. 
         [0022]    The operation receiving section  130  acquires information of an operation performed by a user with the use of an input device such as a pointing device or the like. A content of the operation to be acquired is movement information of a mouse, movement information of a keyboard cursor, movement information of a finger, a stylus, or a pointer which movement information is obtainable from a touch panel, an operation to instruct selection of an object, or the like. 
         [0023]    The object storage section  140  determines an operation content received by the operation receiving section  130 . More specifically, the object storage section  140  determines whether or not the pointer or the cursor moves and then stops while pointing any object, based on predetermined criteria. If the pointer is determined to stop, an object pointed by the pointer is stored in the storage section  160  as a temporarily selected object. If the operation content from the operation receiving section  130  indicates a selection operation, the selection process section  150  performs processing. 
         [0024]    The storage section  160  temporarily stores the temporarily selected object therein. A hard disk drive or the like is also usable as the storage section  160 , but preferably, a memory region which enables high-speed access is convenient. A common memory region provided by an operating system may be also usable as the memory region. 
         [0025]    When the operation content received by the operation receiving section  130  indicates an object selection operation (a clicking operation by the mouse, a decision operation by the keyboard, a touch operation on the touch panel, or the like), the selection process section  150  determines whether an appropriate object is selected or not. The determination on whether the selection is appropriate or not is performed such that a current object pointed by the pointer is acquired and then compared with the temporarily selected object stored in the object storage section  140 . If they are the same object, it is determined that the selection is an appropriate selection operation. Then, an object selection process is finally performed. More specifically, a function assigned to the object is performed by a CPU. 
         [0026]      FIG. 2  is a view illustrating an exemplary hardware configuration of a computer suitable for constituting the selection system  100  according to an exemplary embodiment. The system  100  is constituted by at least a CPU (a central processing unit)  11 , a memory  12 , a storage device  13 , an I/O interface  14 , a video interface  15 , a disc drive  16 , a communication interface  17 , and an internal bus for connecting the aforementioned hardware. 
         [0027]    The memory  12  is connected to the CPU  11  via a system controller  18 . Further, the communication interface  17  and the disc drive  16  are connected to the system controller  18  via an I/O controller  19 . Each constituent may be connected via a different bus according to a communication speed. The memory  12  is used to store object information. For example, a memory region (referred to as a clipboard) provided by the OS to be shared between applications may be used as the storage section  160 . 
         [0028]    The CPU  11  controls an operation of each section in the hardware of the system  100  via the internal bus, reads a computer program including the OS which computer program is stored in the storage device  13 , and performs various software functions. A load module for execution of the computer program including the OS is unfolded in the memory  12 , so that temporary data or the like for execution of the computer program is stored therein. 
         [0029]    A computer program and data  95  stored in a portable recording medium such as a DVD, a CD-ROM, or the like are read through the disc drive  16  and unfolded in the storage device  13  or the memory  12 , so that the computer program and data  95  are performed by the CPU  11 . 
         [0030]    The communication interface  17  is connected to the internal bus so as to be connected to external networks such as the Internet, LAN, WAN, and the like, thereby allowing data transmission and reception with an external device. It is needless to say that a program may be received and executed via the communication interface  17 . The I/O interface  14  is connected to a touch panel  21  as well as an input device  20  such as a keyboard, a mouse, or the like, and receives data input. It should be noted that the touch panel is not indispensable to implementation of an exemplary embodiment. In the example of  FIG. 2 , the video interface  15  is connected to a display  22  integrated with the touch panel  21  so as to display images of an icon of an object and the pointer. 
         [0031]    Typical hardware examples used for the system  100  of  FIG. 2  include a smartphone, a mobile phone, a personal computer, and the like. It is needless to say that the system is feasible even by hardware based on an OS for the touch panel. 
         [0032]      FIG. 3  is an example of a conventional wrong link selection. A user moves a pointer  305  to a desired link (example.com/link/second) during reading of a WEB page. At this time, there exists an area being read, in addition to URL information, on a display region  310 . Here, two examples after the reading of this area is finished are shown as a display region  320  and a display region  340 . The user performs an operation to select the link (more specifically, clicking of a mouse, press of a decision key of a keyboard, a touch operation on a touch panel, or the like). 
         [0033]    Initially, the display region  320  exemplifies a case where expansion of the area after the reading is small. In this case, the user selects the desired link (example.com/link/second) appropriately, so that a WEB page  330  of example.com/link/second, which is a link destination, is displayed. 
         [0034]    Next, the display region  340  exemplifies a case where expansion of the area after the reading is large. In this case, since a position of the link is moved at the time when the user performs the selection operation, the user cannot select the desired link (example.com/link/second) appropriately, and a WEB page  350  of example.com/link/first, which is a wrong link destination, is displayed. 
         [0035]      FIG. 4  is an example of a link selection according to an exemplary embodiment. Initially, a user moves a pointer  405  to a desired link (example.com/link/second) during reading of a WEB page. At this time, there exists an area being read, as well as URL information, on a display region  410 . Here, three examples after the reading of this area is finished are shown as a display region  420 , a display region  440 , and a display region  460 . The user performs an operation to select a link (more specifically, clicking of a mouse, press of a decision key of a keyboard, a touch operation on a touch panel, or the like). 
         [0036]    The display region  420 , which is the first example, exemplifies a case where expansion of the area after the reading is small. In this case, the user selects a desired link (example.com/link/second) appropriately, so that a WEB page  430  of example.com/link/second, which is a link destination, is displayed. 
         [0037]    The display region  440 , which is the second example, exemplifies a case where expansion of the area after the reading is large. In this case, since a position of a link is moved at the time when the user performs a selection operation, the user selects not a desired link (example.com/link/second), but a wrong link (example.com/link/first). However, the selection operation is canceled according to a special operation form of an exemplary embodiment, and the display region  450  does not change while keeping the same content as the display region  440 . 
         [0038]    The above form has the following effect. That is, an object (link information “example.com/link/second” in the above example) pointed by the pointer before the user operates the pointer to select the link is stored as a temporarily selected object. At a stage where the user finally performs a selection operation, an object pointed by the pointer is compared with the temporarily selected object thus stored, so as to determine whether or not the object thus pointed is identical with the temporarily selected object. If they are different from each other, the selection operation is canceled. 
         [0039]    The display region  460 , which is the third example, exemplifies another case where expansion of the area after the reading is large. In this case, since a position of a link is moved at the time when the user performs a selection operation, the user selects not a desired link (example.com/link/second), but a wrong link (example.com/link/first). However, the desired link (example.com/link/second) for the user is selected according to a special operation form of an exemplary embodiment, and a WEB page  470 , which is an appropriate link destination, is displayed. 
         [0040]    In the above form, an object (link information “example.com/link/second” in the above example) pointed by the pointer before the user operates the pointer to select the link is stored as a temporarily selected object. At a stage where the user finally performs a selection operation, an object pointed by the pointer is compared with the temporarily selected object thus stored, so as to determine whether or not the object thus pointed is identical with the temporarily selected object. If they are different from each other, the temporarily selected object is considered to be selected. 
         [0041]      FIG. 5  is an example of an icon object selection on the touch panel  21  according to an exemplary embodiment. A system  100  in  FIG. 5  is assumed as a smartphone, a mobile phone, or hardware based on an OS for a touch panel. Initially, a user moves his/her thumb to select a desired icon object  50 S. However, the icon object is being redrawn or is reset on a display  22 , so that a position of the icon object  50 S is changed and the icon object  50 S is moved to a position  50 E. Further, there is such a possibility that another object may be placed on an area where the icon object  50 S was placed. 
         [0042]    In a conventional method, it is difficult to select the icon object  505  appropriately in this state. Further, a different object may be selected wrongly. However, according to a special method of an exemplary embodiment, a wrong object is not selected. 
         [0043]    The above form has the following effect. That is, an icon object which the user is going to select is stored as a temporarily selected icon object before the user moves his/her thumb to select the icon object, and at a stage where the user finally performs a selection operation (the user touches the icon, for example), a selected icon object is compared with the temporarily selected icon object thus stored, so as to determine whether or not the selected icon object is identical with the temporarily selected icon object. If they are different from each other, the selection operation is canceled. 
         [0044]    Further, as another form, a selected icon object is compared with a stored icon object so as to determine whether or not they are identical with each other, and if they are different from each other, it may be determined, with the use of the stored icon object, that the icon object  50 S (that is,  50 E at the time of selection) in the above example is selected. 
         [0045]      FIG. 6  illustrates an example of a menu object selection on the touch panel  21  according to an exemplary embodiment. A system  100  in  FIG. 6  is assumed as a smartphone, a mobile phone, or hardware based on an OS for a touch panel. Initially, a user moves his/her thumb to select a desired menu object  60 S. However, the menu object is being redrawn or is reset on a display  22 , so that a position of the menu object  60 S is changed and the menu object  60 S is moved to a position  60 E. Further, there is such a possibility that another object may be placed on an area where the menu object  60 S was placed. 
         [0046]    In a conventional method, it is difficult to select the menu object  60 S appropriately in this state. Further, there may be such a possibility that a different object is selected wrongly. However, according to a special method of an exemplary embodiment, a wrong menu object is not selected. 
         [0047]    The above form has the following effect. That is, a menu object which the user is going to select is stored as a temporarily selected menu object before the user moves his/her thumb to select the menu object, and at a stage where the user finally performs a selection operation (the user touches the menu, for example), a selected menu object is compared with the temporarily selected menu object thus stored, so as to determine whether or not the selected menu object is identical with the temporarily selected menu object. If they are different from each other, the selection operation is canceled. 
         [0048]    Further, as another form, a selected menu object is compared with a stored menu object so as to determine whether or not they are identical with each other, and if they are different from each other, it may be determined, with the use of the stored menu object, that the menu object  60 S (that is,  60 E) in the above example is selected. 
         [0049]      FIG. 7  illustrates a determination method of a temporary selection and a selection according to an exemplary embodiment. A column header indicates movement and selection mechanisms, and a row header indicates types of selection. Initially, in a case of a mouse, a determination on a temporary selection is performed as follows: When a moving speed of a pointer is not more than a predetermined speed (e.g., 1 dot/sec), it is determined that the pointer stops. If there is an object at which the pointer is positioned (an object pointed by the pointer), the object is stored in the storage section  160  as a temporarily selected object. The selection is performed by pressing a button of the mouse (press of a left button) or pressing a decision key of a keyboard. 
         [0050]    In a case of a capacitive sensing touch panel, it is possible to measure a distance between a finger (a stylus) and the panel. In view of this, a determination on a temporary selection is performed as follows: When the finger (the stylus) is placed at almost the same position without touching a screen over a predetermined period of time (e.g., 100 msec), it is determined that the finger (the stylus) stops. If there is an object at which the finger is positioned (an object pointed by the finger), the object is stored in the storage section  160  as a temporarily selected object. When the finger (the stylus) touches a display screen  22  or when the finger (the stylus) is removed from the display screen  22  by a predetermined distance, it is determined that the object is selected. 
         [0051]    In a case of other touch panels, a determination on a temporary selection is performed as follows: When the finger (the stylus) touches the same position on a display screen over a predetermined period of time, it is determined that the finger (the stylus) stops. If there is an object at which the finger is positioned (an object pointed by the finger), the object is stored in the storage section  160  as a temporarily selected object. When the finger (the stylus) is removed from the display screen  22 , it is determined that the object is selected. In addition to the above, various conditions can be set according to a selection mechanism. 
         [0052]      FIG. 8  is a flowchart illustrating a process flow in an object selection operation according to an exemplary embodiment. It is assumed that, at a process start, the system  100  is able to accept a movement of the pointer and a selection operation. Further, a plurality of applications may be under drawing processing. Initially, in block  810 , it is determined whether or not the pointer or the finger moves. When the pointer or the finger moves, it is determined, in block  820 , whether or not the pointer stops (whether or not a condition for a temporary selection of an object is satisfied), so as to determine where the pointer stops. 
         [0053]    If the condition for the temporary selection is satisfied, the process proceeds to block  830  to store the object in the storage section  160  as a temporarily selected object, and returns to block  810 . If the pointer does not move in block  810 , it is determined, in block  840 , whether or not a selection operation is performed. 
         [0054]    When the selection operation is performed, information of an object pointed by the pointer is acquired in block  850 . Then, in block  860 , this information is compared with information of the temporarily selected object stored previously. If they are identical with each other as a result of the comparison, a final selection process is performed on the object in block  870 . That is, a function assigned to the object is performed. 
         [0055]    If the comparison fails in block  860 , the process returns to block  810  without performing the final selection process. That is, the display screen  22  does not change. This flow of the process provides a very favorable embodiment in that if an object at a moment when the user stops the pointer is different from an object at a moment when the user clicks, the user may select a wrong object. 
         [0056]      FIG. 9  is a flowchart illustrating another process flow in an object selection operation according to an exemplary embodiment. It is assumed that, at a process start, the system  100  is able to accept a movement of the pointer and a selection operation. Further, a plurality of applications may be under drawing processing. Initially, in block  910 , it is determined whether or not the pointer or the finger moves. If the pointer or the finger moves, it is determined, in block  920 , whether or not the pointer stops (whether or not a condition for a temporary selection of an object is satisfied), so as to determine where the pointer stops. 
         [0057]    If the condition for the temporary selection is satisfied, the process proceeds to block  930  to store the object in the storage section  160  as a temporarily selected object, and returns to block  910 . If the pointer does not move in block  910 , it is determined, in block  940 , whether or not a selection operation is performed. 
         [0058]    When the selection operation is performed, information of an object pointed by the pointer is acquired in block  950 . Then, in block  960 , this information is compared with information of the temporarily selected object stored previously. If they are identical with each other as a result of the comparison, a final selection process is performed on the object in block  970 . That is, a function assigned to the object is performed. 
         [0059]    If the comparison fails in block  960 , a selection process is performed on the temporarily selected object in block  980 . This process provides a very favorable embodiment in that an object at a moment when the user stops the pointer is assumed as an object desired by the user. 
         [0060]    A recorded content of the temporarily selected object according to an exemplary embodiment is described in  FIGS. 10 and 11 . It is preferable that the temporarily selected object be stored in a memory region which enables high-speed access.  FIGS. 10 and 11  illustrate examples in which a common memory region (also referred to as a clipboard) provided by an operating system is used as the memory region. 
         [0061]    Basically, only one temporarily selected object should be stored for one type of an object. The following description deals with a case where a plurality of temporarily selected objects is stored. A latest object is added to a newest line in the common memory region. An object is recorded in one line including a type of the object and a content of the object. 
         [0062]    In the example of  FIG. 10 , “Link:” indicative of link information and link destination information thereof are recorded in pair. 
         [0063]    The following describes  FIG. 10  sequentially from the bottom to the up. Initially, at a stage where it is determined that the pointer stops after moving, temporarily selected objects are stored sequentially in L3 (the third line), in L2 (the second line) as example.com/link/second, and in L1 (the first line) as example.com/link/first. In this state, in a case where an object on which the user performs a selection operation is example.com/link/second, the object is different from a temporarily selected object (example.com/link/first) which is stored latest. Accordingly, the selection operation is canceled. 
         [0064]      FIG. 11  illustrates a state where a plurality of types of objects is mixed on a touch panel or the like and recorded as temporarily selected objects. At a stage where it is determined that the pointer stops after moving, temporarily selected objects are stored in the storage section  160  sequentially as L5: link information, L4: menu object ID=1020, L3: menu object ID=1010, L2: object information ID=40, and L1: object information ID=50. Here, in a case where object information of an object on which a user performs a selection operation is ID=50, the object is identical with the temporarily selected object which is stored, and thus, the selection operation on the object is valid and a function assigned to the object is performed. 
         [0065]    As in the example in  FIG. 11 , different types of objects may be mixed as the object information in the common memory region. Further, in the above two examples, information of the temporarily selected object is recorded as text information, but a binary image of the object itself such as an icon object or a program may be recorded. 
         [0066]    Further, in a case where the temporarily selected object is different from the object on which the selection operation is performed, a dialog may be displayed to show a content of the common memory region to the user, so that the user selects an object from a list of temporarily selected objects which are stored previously. An exemplary embodiment is not limited to the above embodiments, and it is possible to make various modifications within the gist of an exemplary embodiment. 
         [0067]    The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. 
         [0068]    The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. The embodiments were chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated. 
         [0069]    Further, as will be appreciated by one skilled in the art, aspects of the present disclosure may be embodied as a system, method, or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon. 
         [0070]    Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. 
         [0071]    A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. 
         [0072]    Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing. 
         [0073]    Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
         [0074]    Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0075]    These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. 
         [0076]    The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0077]    The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.