Abstract:
Embodiments of the present invention address deficiencies of the art in respect to hierarchical tree file browsers and provide a method, system and computer program product for selectably flattening a hierarchical tree object structure in a hierarchical tree object browser. In one embodiment of the invention, a method of flattening an object hierarchy in an object browser can be provided. The method can include selecting a node in an object hierarchy in an object browser and, responsive to selecting the node, displaying content for the selected node and content for at least one node below the selected node in the object browser.

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 and more particularly to the flattening of the display of files and containers in an object 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 file system structures, the conventional hierarchical tree file browser functions admirably after more than two decades of use. Yet, for deep, multi-branch structures, the conventional hierarchical tree file browser falls short on functionality. Specifically, in order to readily view and appreciate different files within different containers of a file system within a conventional hierarchical tree file browser, the end user must repeatedly select different nodes along a branch while recording the content of each node separately. Recognizing relationships between different files at different levels of the hierarchy of files can be near impossible. 
       BRIEF SUMMARY OF THE INVENTION 
       [0009]    Embodiments of the present invention address deficiencies of the art in respect to hierarchical tree file browsers and provide a novel and non-obvious method, system and computer program product for selectably flattening a hierarchical tree structure in a hierarchical tree browser. In one embodiment of the invention, a method of flattening an object hierarchy in a browser can be provided. The method can include selecting a node in a hierarchy such as a file hierarchy, in an object browser such as a file system browser, and, responsive to selecting the node, displaying content for the selected node and content for at least one node below the selected node in the object browser. 
         [0010]    In one aspect of the embodiment, displaying content for the selected node and content for at least one node below the selected node in the object browser, can include displaying in a file system browser both files and containers for the selected node and files and containers for at least one node below the selected node in the file system browser. In another aspect of the embodiment, displaying content for the selected node and content for at least one node below the selected node in the object browser, can include displaying in a file system browser only files for the selected node and only files for at least one node below the selected node in the file system browser, whilst suppressing from view containers for the selected node and containers for the at least one node below the selected node. 
         [0011]    In yet another aspect of the embodiment, displaying content for the selected node and content for at least one node below the selected node in the object browser, can include determining a selection of an option to suppress containers. If it is determined that the option has been selected, only files for the selected node and only files for at least one node below the selected node in a file system browser can be displayed, whilst containers for the selected node and containers for the at least one node below the selected node can be suppressed from view. Otherwise both files and containers for the selected node and files and containers for at least one node below the selected node in the file system browser can be displayed. 
         [0012]    In even yet another aspect of the embodiment, displaying content for the selected node and content for at least one node below the selected node in the object browser can include determining a selection of an option to show all content below a selected node. If it is determined that the option has been selected, content for the selected node and content for at least one node below the selected node can be displayed in the object browser. Otherwise only content for the selected node can be displayed in the object browser. 
         [0013]    In another embodiment of the invention, a selectable flattening file system browser can be provided. The selectable flattening file system browser can include a navigation view of a file system hierarchy including a hierarchical arrangement of nodes, each of the nodes representing a container in the file system hierarchy. The selectable flattening file system browser further can include a selectable option to show content in a selected node of the file system hierarchy and at least one node in the file system hierarchy residing below the selected node. Finally, the selectable flattening file system browser can include a flat view of content for a selected node in the navigation view. The flat view can include content that varies according to a selection of the selectable option ranging from only content in the selected node, to content in the selected node and at least one node below the selected node. 
         [0014]    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 
         [0015]    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: 
           [0016]      FIG. 1  is a pictorial sequence of screen shots exemplifying a method for selectably flattening an object hierarchy in a hierarchical object browser; 
           [0017]      FIG. 2  is a block diagram illustrating a computing architecture configured to support a selectable flattening hierarchical object browser; and, 
           [0018]      FIG. 3  is a flow chart illustrating a process for flattening an object hierarchy in a hierarchical object browser. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0019]    Embodiments of the present invention provide a method, system and computer program product for selectably flattening an object hierarchy in a hierarchical object browser. In accordance with an embodiment of the present invention, a node of an object hierarchy represented within the object browser can be selected for processing. In response, all of the content of all of the nodes below the selected node can be selectably presented in a single view, including both files and containers. Alternatively, only the files and not the containers below the selected node can be selectably presented in the single view. As yet a further alternative, only the content of the selected node can be presented in the single view. As a final alternative, only the files and not the containers of the selected node can be presented in the single view. 
         [0020]    In further illustration,  FIG. 1  is a pictorial sequence of screen shoots exemplifying a method for selectably flattening an object hierarchy in a hierarchical object browser. In the method of the invention, several flattening configurations can be established. The configurations can include displaying only the content of a selected node, displaying the content of all nodes below the selected node, displaying only the files of a selected node, and displaying only the files of all nodes below the selected node. The selection of the nodes in the hierarchy can be performed within a navigation pane of a hierarchical file browser, while the display of nodal content can be performed in a content pane of the hierarchical file browser. 
         [0021]    Referring specifically to  FIG. 1 , in a first example, the option  150 A to show all content below a selected node can be selected, while the option  150 B to suppress the display of containers can be de-selected. A file hierarchy  130  can be rendered within a navigation pane  110  and a node in the file hierarchy  130  can be selected. In response, a flat view  140  of all content residing in nodes below the selected node can be displayed in a content pane  120  of the hierarchical file browser. In this regard, the flat view  140  can include not only the files and containers of the selected node, but also the files and containers of all child nodes below the selected node. 
         [0022]    In the second example of  FIG. 1 , the option  150 A to show all content below a selected node can be selected, as can the option  150 B to suppress the display of containers. In this exemplary circumstance, the file hierarchy  130  can be rendered within a navigation pane  110  and a node in the file hierarchy  130  can be selected. In response, a flat view  140  of all files residing in nodes below the selected node can be displayed in the content pane  120  of the hierarchical file browser. Yet, the flat view  140  can include merely the files of the selected node and all children nodes below the selected node, and not any containers in the selected node and the children node below the selected node. 
         [0023]    Finally, in the third example of  FIG. 1 , the option  150 A to show all content below a selected node can be de-selected, while the option  150 B to suppress the display of containers can be selected. In this exemplary circumstance, the file hierarchy  130  can be rendered within a navigation pane  110  and a node in the file hierarchy  130  can be selected. In response, the flat view  140  of only those files residing in the selected node can be displayed in the content pane  120  of the hierarchical file browser. The flat view  140 , however, can exclude the containers of the selected node and all content of all nodes below the selected node. Notably, though not illustrated, it will be apparent to the skilled artisan that in a fourth possible configuration, both the containers and files of a selected node can be displayed as is the case in a conventional hierarchical file browser. 
         [0024]    In yet further illustration,  FIG. 2  is a block diagram illustrating a computing architecture configured to support a selectable flattening hierarchical file browser. The computing architecture can include a host computing platform having a central processing unit (CPU)  210 , associated volatile and non-volatile memory  220 , fixed storage  230  and a communications adapter  240 . The host computing platform can support the execution of a file system  250  managing files and containers in memory  220 , fixed storage  230  and even in remote storage through communications adapter  240 . An operating system  260  can execute in conjunction with the file system  250 , and can even be combined with the file system as a single entity. The operating system  260  can support the operation of one or more computing applications  270  as well as the selectable flattening file system browser  280 . Though the selectable flattening file system browser  280  is shown as a separate application as is the case with many file system browsers, the selectable flattening file system browser  280  just as easily can be included as part and parcel of either the operating system  260  or the file system  250 . 
         [0025]    The selectable flattening file system browser  280  can perform the selectable flattening of a file system hierarchy in a file system hierarchical browser. In illustration,  FIG. 3  is a flow chart illustrating a process for flattening a file hierarchy in a hierarchical file browser. Beginning in block  300 , the options configurations can be retrieved from memory indicating a flattening preference for the file system browser. The flattening preferences can range from showing only those files and containers of a selected node in a file system hierarchy, to showing a flat view of all files and containers for all nodes residing below a selected node in the file system hierarchy. 
         [0026]    In block  310 , the file system hierarchy can be loaded for processing and. in block  320 , a navigation pane for the file system browser can be rendered. In block  330 , a node in the file system hierarchy can be selected in the navigation pane. In decision block  340 , if the options configurations provide for the revelation of all content below the selected node, in block  350  the entirety of the sub-hierarchy below the selected node can be retrieved for processing. Otherwise, in block  360 , only the content of the container represented by the selected node need by retrieved for processing. 
         [0027]    In either circumstance, in decision block  370  it can be determined whether or not to suppress the display of containers in a flat view of the file hierarchy. If so, in block  380  the containers can be removed from rendering in the flat view. Otherwise, the containers can remain for rendering in the flat view. As such, in block  390  the content pane of the file system browser can be rendered with the remaining content. Thereafter, the process can return to block  320  in which the navigation pane can be rendered and a new selection of a node can be applied in block  330 . The process can continue for the duration of operation of the file system browser. 
         [0028]    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. 
         [0029]    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. 
         [0030]    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.