Abstract:
Embodiments of the present invention address deficiencies of the art in respect to tree representations of object hierarchies and provide a method, system and computer program product for large tree view navigation. In an embodiment of the invention, a tree view navigation method can be provided. The method can include selecting a node in a tree view of an object hierarchy, specifying filter text in a filter control for the selected node, and filtering a branch of nodes extending from the selected node to include only nodes including the filter text. In this way, despite a voluminous number of nodes in the branch, relevant nodes can be located flexibly and efficiently.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to the display of objects such as files and containers in a hierarchy 
         [0003]    2. Description of the Related Art 
         [0004]    Electronic objects in a data processing system often are organized hierarchically in a parent-child relationship. Specifically, the earliest file systems for computing environments provided a hierarchical directory structure in which electronically stored documents could be stored in specific directories or folders. Directories and folders, collectively viewed as containers, could be nested to provide a level of organization for electronic documents akin to a tree having a root node, leaf nodes and intermediate branches and connecting nodes. 
         [0005]    Contemporary data structure theory expands upon the notion of the hierarchical directory structure to provide the most common form of genus-species data organization not only for file storage, but for general objects in memory as well. While hierarchical trees are known to be constructed programmatically in a number of ways, the most common way is the linked list of nodes in a tree formation. Generally, the hierarchical tree can be visually rendered in a GUI by providing collapsible nodes such that the hierarchy can be viewed merely as a root node, or the hierarchy can be viewed in fully expanded form to reveal the hierarchical tree. Of course, as each node in the hierarchy can be expanded or collapsed individually, any portion of the hierarchical tree can be viewed within the GUI as most computing users have become accustomed to understand. 
         [0006]    In the most recognizable form of the conventional hierarchical tree file browser, a dual paned approach is provided. The dual paned approach includes a navigation pane and a content pane. In the navigation pane, a visual tree representative of the file hierarchy is rendered with collapsible and expandable nodes throughout. The nodes are limited, however, to containers of the hierarchy and the nodes do not include files. By comparison, in the content pane, the content of a selected node is displayed. The content generally includes both the file content of the container represented by the selected node, and any containers immediately linked in child-relationships to the container represented by the selected node. 
         [0007]    Other recognizable forms of the conventional hierarchical tree file browser provide for a multi-paned approach. In the multi-paned approach, the left-most, primary pane includes a tree view of the entire hierarchy. Subsequent panes adjacent to the left-most, primary pane and to the right of the left-most, primary pane provide hierarchical views of the branches represented by selected nodes in the left adjacent panes. The right-most pane ultimately provides a listing of the files in a selected node as well as any containers linked to the selected node in a child relationship. 
         [0008]    For relatively flat hierarchical structures, the conventional hierarchical tree view functions admirably after more than two decades of use. Yet, for deep, multi-branch structures, the conventional tree view falls short on functionality. Specifically, in order to readily view and appreciate different objects in an object hierarchy within a conventional hierarchical tree view, the end user must repeatedly select different nodes along a branch while recording the content of each node separately. Recognizing relationships between different objects at different levels of the hierarchy can be near impossible. In fact, to the extent that a voluminous number of nodes appear in any branch of the tree view, scrolling to find a node of relevance can be time consuming and irritating. 
       BRIEF SUMMARY OF THE INVENTION 
       [0009]    Embodiments of the present invention address deficiencies of the art in respect to tree representations of object hierarchies and provide a novel and non-obvious method, system and computer program product for large tree view navigation. In an embodiment of the invention, a tree view navigation method can be provided. The method can include selecting a node in a tree view of an object hierarchy, specifying filter text in a filter control for the selected node, and filtering a branch of nodes extending from the selected node to include only nodes including the filter text. In this way, despite a voluminous number of nodes in the branch, relevant nodes can be located flexibly and efficiently. 
         [0010]    In an aspect of the embodiment, the method further can include selecting another node in the tree view of the object hierarchy, specifying favorites as a filter in another filter control for the selected another node, and filtering another branch of nodes extending from the selected another node to include only nodes marked as a favorite. Yet further in another aspect of the embodiment, filtering a branch of nodes extending from the selected node to include only nodes including the filter text can include filtering a branch of nodes extending from the selected node to include only nodes including the filter text and also nodes that while not including the filter text have been marked as a favorite. 
         [0011]    Even yet further, in another aspect of the embodiment, the method can include selecting another node in the tree view of the object hierarchy, specifying different filter text in another filter control for the selected another node, and filtering a branch of nodes extending from the selected another node to include only nodes including the different filter text. Finally, in even yet another aspect of the embodiment, the method further can include selecting a show all entry in the branch and displaying all nodes in the branch irrespective of the filter text. 
         [0012]    In another embodiment of the invention, a user interface data processing system can be provided. The system can include a display shown in a computer including a tree view of an object hierarchy, such as a file hierarchy or a database hierarchy. The system also can include filter controls, each corresponding to a different node in the tree view. Finally, the system can include tree navigation view logic coupled to the display and executing in the computer. The logic can include program code enabled to filter a branch of nodes extending from a selected node in the tree view to include only nodes including filter text provided in a corresponding one of the filter controls. Additionally, the program code can be further enabled to filter a branch of nodes extending from a selected node in the tree view to include only nodes marked as a favorite. 
         [0013]    Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0014]    The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein: 
           [0015]      FIG. 1  is a pictorial illustration of a user interface configured for large tree view navigation; 
           [0016]      FIG. 2  is a schematic illustration of a data processing system configured for large tree view navigation; and, 
           [0017]      FIG. 3  is a flow chart illustrating a process for large tree view navigation. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0018]    Embodiments of the present invention provide a method, system and computer program product for large tree view navigation. In accordance with an embodiment of the present invention, a tree view for an object hierarchy such as a file hierarchy or a database hierarchy can be provided. The nodes of the hierarchy from which branches extend can be configured with a filter control. The filter control for a corresponding branch can accept filter text in response to which the child nodes in the corresponding branch can be filtered to result in only a subset of the child nodes including the filter text being visible in the corresponding branch in the tree. Further, the filter control for a corresponding branch can accept a request for favorites in response to which the child nodes in the corresponding branch can be filtered to result in only a subset of the child nodes marked as favorites being visible in the corresponding branch in the tree. In this way, the branches of the tree can be viewed efficiently despite the number of nodes in a given branch. 
         [0019]    In further illustration,  FIG. 1  pictorially depicts a user interface configured for large tree view navigation. As shown in  FIG. 1 , a user interface  110  can be provided to include a tree view  120  of an object hierarchy. The tree view  120  can include a root node  130  and a multiplicity of branches  140 A,  140 B,  140 C extending there from. The branches  140 A,  140 B,  140 C can be expanded to reveal constituent nodes  150 A,  150 B,  150 C or collapsed to obscure the constituent nodes  150 A,  150 B,  150 C. As it will be recognized by the skilled artisan, the branches  140 A,  140 B,  140 C further can include additional branches and so forth in order to form the tree view  120  of the object hierarchy. 
         [0020]    Each of the branches  140 A,  140 B,  140 C can be coupled to a filter control  160 . The filter control  160  when activated can permit the entry of filter text. In response to the entry of filter text, a filtered branch  140 B can be produced to include only nodes  150 B including the filter text. Further, the filter control  160  when activated can permit the selection of favorites only. In response to the selection of favorites only, a filtered branch  140 C can be produced to include only nodes  150 C having previously been marked as a favorite. As another option, when filtering according to filter text, ones of the nodes  150 B that had not been included in the filtered branch  140 B for failure to include the filter text can be included in the filtered branch  140 B even still for having been marked as a favorite. In any event, for each of the filtered branches  140 B,  140 C, the filter can be removed through the selection of a show all control  170 . 
         [0021]    The user interface  110  shown in  FIG. 1  can be implemented within a computer data processing system. In further illustration,  FIG. 2  schematically depicts a data processing system configured for large tree view navigation. The system can include a host computing platform  210  hosting the operation of an operating system  220 . The operating system in  220  in turn can manage the execution of multiple different applications  230 . At least one of the applications  230  can be configured with tree view navigation logic  300 . The logic  300  can include program code to associate a filter control with different nodes in a tree view rendered within the application  230 . 
         [0022]    In particular, the filter control can be enabled to accept filter text in response to which a corresponding branch of nodes can be filtered according to the filter text. The filter control also can be enabled to accept a selection of favorites only such that the corresponding branch of nodes can be filtered to include only nodes in the corresponding branch having previously been marked as a favorite. Notably, multiple different ones of the branches in a tree view can be filtered differently according to different filter text in order to provide a multi-filter text filtered tree view of an object hierarchy. Further, once a node has been marked as a favorite, the node can appear in a filtered branch according to filter text even if the node itself does not include the filter text. 
         [0023]    In yet further illustration of the operation of the tree navigation view logic  300 ,  FIG. 3  is a flow chart illustrating a process for large tree view navigation. Beginning in block  310 , node can be selected in a tree view of an object hierarchy. In block  320  a filter control can be invoked. In decision block  330 , it can be determined whether or not filter text has been provided in the filter control. If so, in block  340  the nodes in the branch extending from the selected node can be filtered so that only nodes including the filter text will be displayed in the branch. If not, in decision block  350  it can be determined whether or not favorites have been specified in the filter control. If so, in block  360  only those nodes in the branch that have been marked a favorite will be displayed. Finally, in block  370  the tree view can be re-rendered. 
         [0024]    Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. 
         [0025]    For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. 
         [0026]    A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.