Abstract:
In an object development environment, source objects in a structured hierarchy are mapped to one or more target objects, also in a structured hierarchy. Dual view user interfaces with connection mapping tools may be provided to facilitate creation, deletion and maintenance of these mappings. The invention includes an improvement by providing a context menu as a fly-out menu from a particular object. The context menu may include global functions and a list of connected objects, each with supplemental object-specific functions.

Description:
BACKGROUND 
       [0001]    In large scale object oriented software design, large numbers of interrelated objects are present in a development environment. A Mapping Tool may consist of two vertical tables next to each other, one side showing source objects and the other side showing target objects.  FIG. 1  illustrates an example of this tool. On the left hand side of the  FIG. 1  example are source objects and on the right hand side target objects. Each table displays items (e.g., in a hierarchy) with folders and subfolders. The displayed hierarchy can include enormous numbers of objects, as software development progresses, and becomes increasingly complex. Therefore it is commonly the case that the hierarchies are much larger than the displayed items on the screen. Thus, viewing the whole hierarchy requires substantial scrolling with the limited view, as is known in the art. 
         [0002]    This mapping tool may be used to establish, delete, or check connections between the items displayed in the tables. If only one or two connections have to be established, deleted, or checked, such a user interface may suffice and the mapping task may be easily performed. However, in the case of IDEs (Integrated Development Environments), hierarchies are far more complex. The user in this case may need to check, establish, or delete many connections between the items. Further, the user may now face the problem of losing focus and orientation, since the user may need to scroll up and down to get a full view of the hierarchies. The tool may allow a user to select a source object, which may highlight the connected target objects, e.g., as illustrated in  FIG. 1 . However, to find the different mapped items or items to be mapped, the user still has to scroll through the entire viewing area. For example, the highlighted source object in  FIG. 1  may be connected to five or even some much larger number of target objects, but only three are currently visible. To find the others, the user must scroll through the entire viewing area, without overlooking an occurrence (i.e., a desired object) and without forgetting the initial occurrences while searching for subsequent target objects. 
         [0003]    What is needed is a quick view of the set of connected target objects, while maintaining the full hierarchy view of all the target objects. Example embodiments of the present disclosure propose such a mapping tool enhancement. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1  illustrates a prior art mapping tool related to at least one example embodiment of the present invention. 
           [0005]      FIG. 2  illustrates an example screen shot of an example embodiment of the present invention. 
           [0006]      FIG. 3  illustrates an example wireframe illustration of a user interface, according to one example embodiment of the present invention. 
           [0007]      FIG. 4  illustrates an example method, according to one example embodiment of the present invention. 
           [0008]      FIG. 5  illustrates an example system, according to one example embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0009]    Example embodiments of the present invention provide a quick view of the connected target objects, when a source object is selected. The quick view, referred to herein as a context menu, may also provide some functionality with respect to the whole group, and/or for each individual target object in the group. Example embodiments may accept user input, such as a right-click of a mouse on a source object, and provide the context menu in the mapping tool. This may optimize the navigation and make it more user friendly. 
         [0010]      FIG. 2  shows an example screenshot similar to  FIG. 1 , with an example of the context menu activated on a source object.  FIG. 3  shows an example wireframe drawing similar to  FIG. 2  with the mapped objects in bold. Example embodiments of the context menu may include any number of functions used in the mapping tool. For example, as illustrated in  FIG. 3 , an included function may be “Show Mapped Items as List.” This may collapse the target object viewing area  320  with only the mapped, i.e. connected, target objects visible. This example may result in a list of the mapped objects and nothing else. 
         [0011]    Alternatively, the function may collapse all of the sub-levels that do not include a mapped object. This embodiment may maintain the full hierarchical structure, while condensing as much as possible, but still showing each mapped object within the hierarchy. With this example implementation, each first level object  322  to  324  and  332  may be visible as sibling children of the root object that contains a mapped object. Second level object  325  may remain visible as a mapped object, but its sub-objects  326  and  327  may be collapsed.  328  and  329  may both be mapped objects and remain visible, along with sibling object  330 , while sub-object  331  may be collapsed, since there is no mapped object in this group. Finally,  333  and  334  may also be collapsed into  332 , since this whole group does not have an object. 
         [0012]    Alternatively, the function may collapse all of the sub-levels that do not include a mapped object, and eliminate from view any peer objects that also do not include any mapped objects. In this example implementation, only root object  321  and objects  324 ,  325 ,  328 , and  329  may be illustrated, with the remaining objects hidden from view (e.g., with a placement marker such as an ellipsis or a bracketed number indicating the number of hidden objects). Alternatively, some combination of these different view format functions may be included in the context menu. When target viewing area  320  is already in a viewing format that is part of the context menu functions, a reversing function may be included, such as “Show Mapped Items in Hierarchy,” or “Expand All,” etc. 
         [0013]    After any functions that may be provided in the context menu, a quick view list of mapped objects  315  may be presented. Here, even without altering the target object viewing area  320 , the user may see a list of all the mapped objects. Further, each object may have a sub-menu, that may include other functions of the context menu.  FIG. 3  illustrates two such functions. The first is “Display in Center,” which may cause the target object view  320  to center on this mapped object, and may cause the mapped object hierarchy to be expanded, as needed, if not already visible. Another example object-specific function may include “Delete Mapping,” which may remove the connection between the source object and this target object. Another example object-specific function may include “Delete Item” (not shown). This may delete the actual target object from the system, or at least the current root object hierarchy. Other common functions such as “Copy,” “Paste,” “Cut,” etc. may also be included. 
         [0014]      FIG. 4  illustrates one example method for providing a fly-out quick-view context menu, according to one example embodiment of the present invention. The example method may start at  410  by providing the mapping tool and mapping tool functions (e.g., as illustrated in  FIG. 1 ). These tools may be enhanced by a new user input, and when this auxiliary user input is received at  420 , the example method may provide a fly-out context menu for a selected object (e.g., the source object the user right-clicked on). A right-click activated menu is only one customary example, any other auxiliary input may be used for activating a context menu. 
         [0015]    The context menu may include view format functions (e.g., as displayed at  431 ) and a list of the mapped objects (e.g., as displayed at  432 ). The example method may now wait for input in the context menu, and return to the map tool functions if no input is received. While this example method is illustrated in linear execution, other embodiments are possible, and the primary map tool (e.g., as in  410 ) may be concurrently accepting input with the context menu. Using the example functions discussed above, the user may provide a view format selection, such as “Show Mapped Items as List,” which may adjust the target viewing area at  442 . Alternatively or additionally, the user may provide input selecting a mapped object from the mapped object list. This input may come in any number of forms, including a primary click, an auxiliary click (e.g., right-click), a pointer hover period over a mapped object name in the list (e.g., a “mouse-over” input), etc. 
         [0016]    Upon selection, the example method may then provide a fly-out sub-menu, with functions for the specific mapped object selected. These too may adjust the view format or viewing area, such as “Display in Center.” If no sub-menu input is received, or if context menu input or map tool input is received, the example method may return via  490 . If menu input is received the example method may perform the object specific function selected by the user. This may close the context menu and any sub-context menu, or alternatively the menus may stay active until closed, until input is received elsewhere, or any number of other conditions. The example method may then return to  410 , and continue providing the mapping tool with context menu. 
         [0017]      FIG. 5  illustrates one example system, according to an example embodiment of the present invention. The example may include one or more server computer systems, e.g., development system  510 . This may be one server, a set of local servers, or a set of geographically diverse servers. Each server may include an electronic computer processor  502 , one or more sets of memory  503 , including database repositories  505 , and various input and output devices  504 . These too may be local or distributed to several computers and/or locations. Database  505  may include data comprising the various software components of the other example embodiments of the present invention. For example, the database may include the source objects  530 , the target objects  535 , and mapping data  525 . The database may include mapping tools  527  (e.g., executable code), which may further include a context menu tool  529 , according to example embodiments of the present invention. These entities may be stored in database  505 , or may be distributed across other systems, independently or connected via a communication network. 
         [0018]    Any suitable technology may be used to implement embodiments of the present invention, such as general purpose computers. One or more system servers may operate hardware and/or software modules to facilitate the inventive processes and procedures of the present application, and constitute one or more example embodiments of the present invention. Further, one or more servers may include a computer readable storage medium, e.g., memory  503 , with instructions to cause a processor, e.g., processor  502 , to execute a set of steps according to one or more example embodiments of the present invention. 
         [0019]    Further, example embodiments of the present invention are directed to one or more processors, which may be implemented using any conventional processing circuit and device or combination thereof, e.g., a Central Processing Unit (CPU) of a Personal Computer (PC) or other workstation processor, to execute code provided, e.g., on a hardware computer-readable medium including any conventional memory device, to perform any of the methods described herein, alone or in combination. The one or more processors may be embodied in a server or user terminal or combination thereof. The user terminal may be embodied, for example, a desktop, laptop, hand-held device, Personal Digital Assistant (PDA), television set-top Internet appliance, mobile telephone, smart phone, etc., or as a combination of one or more thereof. The memory device may include any conventional permanent and/or temporary memory circuits or combination thereof, a non-exhaustive list of which includes Random Access Memory (RAM), Read Only Memory (ROM), Compact Disks (CD), Digital Versatile Disk (DVD), and magnetic tape. 
         [0020]    It will be appreciated that all of the disclosed methods and procedures described herein can be implemented using one or more computer programs or components. These components may be provided as a series of computer instructions on any conventional computer-readable medium, including RAM, ROM, flash memory, magnetic or optical disks, optical memory, or other storage media, but not including transitory propagation signals. The instructions may be configured to be executed by a processor which, when executing the series of computer instructions, performs or facilitates the performance of all or part of the disclosed methods and procedures. 
         [0021]    It should be understood that there exist implementations of other variations and modifications of the invention and its various aspects, as may be readily apparent to those of ordinary skill in the art, and that the invention is not limited by specific embodiments described herein. Features and embodiments described above may be combined. It is therefore contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the basic underlying principals disclosed and claimed herein.