A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The disclosure relates to the field of human-computer graphical interface devices and more particularly to techniques for interacting with a multi-level hierarchy.
Some embodiments of the present disclosure are directed to an improved approach for implementing a human interface screen device for interacting with a multi-level hierarchy.
A traditional hierarchical structure (e.g., organizational chart or sales catalog) displayed on a traditional desktop web-based application have only limited user views and interactions with hierarchical structures. For example, legacy GUI interfaces using depictions of “boxes and lines”, shapes, and other screen display devices have delivered only a limited ability to navigate a hierarchy (up/down and left/right) and take actions on a node in the hierarchy, for example, by clicking on a node or shape or (for example) by selecting one from among many possible actions through a drop-down menu corresponding clicked-on node.
This type of legacy web-based interaction does not fit the usage patterns as are typical on a tablet device, at least because the screen size of a tablet is generally significantly smaller than that of a desktop monitor or laptop screen. For example, many iPad™ devices have a 9.7 inch screen versus the average 20 inch monitor for a desktop computer or 16 inch screen for a laptop computer.
Furthermore, typical usage patterns on a tablet device requires that:
Legacy screen devices fail to address the problem of how to display, interact and respond to user interaction with computer-aided responses. Moreover the legacy screen devices fail to provide ease-of-interaction in and through hierarchies when used on a tablet device, especially tablet devices supporting multi-touch gestures on a touch screen.
Moreover, the aforementioned technologies do not have the capabilities to perform functions on a human interface screen device for interacting with a multi-level hierarchy. Therefore, there is a need for an improved approach.
The present disclosure provides an improved method, system, and computer program product suited to address the aforementioned issues with legacy approaches. More specifically, the present disclosure provides a detailed description of techniques used in methods, systems, and computer program products for a human interface screen device for interacting with a multi-level hierarchy.
Disclosed herein are methods and systems for making and using a human-computer graphical interface (e.g., a GUI) for interacting with a multi-level hierarchy. The method commences by receiving a hierarchy data structure that describes a plurality of adjacent hierarchical levels, from which are selected three adjacent levels, which in turn are used in forming a graphical screen device having three or more three concentric annular areas, each one of the concentric annular areas corresponding to a respective level of the hierarchy. Each one of the concentric annular areas is populated with icons or other screen devices, and the icons are annotated with aspects of node information pertaining to a node at the respective level. The annular areas can be formed by circle shapes and/or by ring shapes. The organization of the rings corresponds to adjacent levels of the hierarchy such that each larger ring corresponds to a successively next lower level of the hierarchy.
Further details of aspects, objectives, and advantages of the disclosure are described below in the detailed description, drawings, and claims. Both the foregoing general description of the background and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the claims.
Some embodiments of the present disclosure are directed to an improved approach for implementing a human interface screen device for interacting with a multi-level hierarchy. More particularly, disclosed herein are environments, methods, and systems for implementing a human interface screen device for interacting with a multi-level hierarchy.
The herein-disclosed screen device for interacting with a multi-level hierarchy (e.g., hierarchy spinner) delivers:
As shown, a screen device (e.g., hierarchy spinner 120) is formed by a hierarchy mapper module 130. The hierarchy mapper module 130 in turn receives all or part of a hierarchy data structure 102 and configuration data 106. For example, the hierarchy data structure 102 can be embodied as a directed graph (as shown) or as a tree, or one or more relations in a relational database. In exemplary embodiments, the hierarchy data structure 102 comprises node information 104, which node information codifies any sort of information pertaining to any node in the hierarchy.
Strictly as an example, the hierarchy data structure 102 can comprise an “org chart” of a hierarchically-structured organization of people, and the node information can comprise biographical data of each of the people in the org chart. Further, the configuration data can comprise any sort of information pertaining to the look and feel of the hierarchy spinner 120 such as dimensions, look-and-feel of the screen device, and possibly, the configuration data and/or user profile 108 can comprise a library of screen device components (e.g., subroutines, Java classes, method, etc.).
Following the above-described specific embodiment involving an org chart of a hierarchical organization, data retrieval proceeds as follows:
In some situations, a hierarchy spinner is initially displayed in a collapsed form (e.g., as a hierarchy spinner icon). In such as case, a user 105 might indicate intent to interact with the hierarchy spinner by using a multi-touch gesture to “open” the hierarchy spinner. Examples of gestures to expand a collapsed hierarchy spinner include:
Following the aforementioned gesture to expand a hierarchy spinner from a collapsed state, a hierarchy spinner will open on the screen and multiple levels (e.g., three or four levels, as shown). Strictly as an example, the “open” action can be animated such that upon opening, the hierarchy spinner will “spin in” from top right to bottom right. In another animation, a rotation animation of 360 degrees is applied to the “spinnable” views to provide a visual cue to the user that the user can spin it with a gesture.
In addition to the display of the hierarchy spinner with its look-and-feel characteristics, exemplary hierarchy spinner implementations are populated with node data in order to aid the user in operation for moving through, interacting with, and analyzing the hierarchy data structure.
A hierarchy spinner can be formed by receiving a hierarchy data structure (see operation 1B10) and the hierarchy data structure can describe any number of adjacent hierarchical levels of nodes, where the nodes can represent any entity, and the hierarchical juxtaposition of the nodes is represented by the node's position in the hierarchy. In some cases a hierarchy can be a tree, or can be a directed graph.
At least for initial display, a hierarchy mapper module 130 might serve to initially select nodes from at least three adjacent levels of the hierarchy data structure (see operation 1B20), and based on the hierarchical juxtaposition of the selected nodes, the hierarchy mapper module 130 can compose or form a graphical screen device (see operation 1B30), the screen device having at least three concentric annular areas (e.g., as shown in
As earlier mentioned the hierarchy data structure can be codified using a wide variety of known-in-the-art techniques, for example a ‘C’ struct, a Java tree, or using relations in a relational database. Aspects of a hierarchy representation are presently discussed.
As shown the hierarchy representation comprises a root node 201 under which are nodes arranged into Level 0210, Level 1211, Level 2212, and Level 3213. Additional levels are possible, but are not shown in the embodiment of
In exemplary embodiments, the hierarchy spinner displays only three levels of the hierarchy at any given time. Following this embodiment, and again referring to the specific implementation of a hierarchy data structure for representing a hierarchical org chart:
Thus, the annular areas comprise concentric circles or rings in the hierarchy spinner, where each concentric circle or ring represents aspects of a respective hierarchical level. In some embodiments each concentric circle is displayed having its own respective shading and transparency level (e.g., to give a concentric ring appearance).
The views are placed in the following order from bottom to top:
For depictions of a hierarchy spinner in the embodiment of an organizational spinner, the depiction can display the user's current hierarchy while caching any or all of the user's peers, the user's boss, the user's bosses peers, etc. In a supervisory-styled organization, user's supervisors (possibly including multiple supervisors for a given individual), and any supervisors' peers and all of their direct reports can be cached for quick access, and smooth operation of the spinner. Strictly as one example, and referring to
Functions of the hierarchy spinner include the ability to determine what interaction gestures are relevant to an underlying page (see
To spin a level, a swipe gesture results in one or more animations. A typical swipe would include a circular motion, substantially within the subject level, however a user interface interpreter can be inferred merely by some monotonically-upward or monotonically-downward motion during the swipe portion of the gesture.
Such a gesture serves to initiate an animation, and the characteristics of the swipe are translated to a particular velocity for spin. For example, a faster swipe would result in a faster spinning motion of the subject tapped level. The aforementioned user interface interpreter will spin the level through the frames of a damped animation, and eventually lock the spinner level into position when velocity slows below a predetermined velocity threshold.
The aforementioned interface interpreter includes a pan gesture recognizer, and such a pan gesture recognizer is implemented to track the users touch actions. For example, the touch-based spin animation is implemented based on the state of the pan gesture. Using a pan gesture, a user is able to spin nodes off of a level to see nodes that have been hidden (e.g., if or because they cannot fit in the available annular area of a particular level). For example, the outer level might only show eight nodes, but if 10 nodes are present in the hierarchical data structure for that level, two nodes will maintained in a hidden state (e.g., hidden from that level) until the user spins that level to view those hidden nodes. The previously shown eight nodes will spin off that level and go into a hidden state.
In exemplary embodiments, an interface interpreter implements a state machine, and the state variable is set to “Began” when the user initially touches the screen. The initial touch position is recorded. Subsequently, the state variable is set to “Changed” when the user moves his or her pointing finger over one of the “spinnable” annular areas. The angle, direction and speed of movement is calculated based on the difference between the initial position and the final finger position on the screen. This is then applied to the appropriate concentric annular area under the user's finger. This continues as long as the user's finger is in contact with the screen and remains on the same “spinnable” annular area. When the user lifts his or her finger off the screen the spinner will continue to spin with a velocity based on the gesture, and gradually the animation comes to a stop when it snaps into one of the predetermined positions. For example, an inner annular area might only terminate a spinning animation when the icons are 0 degrees, 90 degrees, 180 degrees, and 270 degrees. The state variable is set to “Ended” when the user lifts his or her finger off the screen. The final position and velocity of spin is recorded.
Some embodiments are subject to predetermined constraints based on aspects of configuration data 106. For example, a display surface 302 has display limitations (e.g., resolution) and can only display features within a limit. As shown, the hierarchy spinner depicts an avatar 301 (e.g., avatar 3011, avatar 3012, avatar 3013, etc.) and, based on the size and position of the icon or icons, some animations can be performed in their entirety, some can be performed only partially, and some cannot be performed at all. In the example shown, Level 3 with less than seven nodes and Level 2 with less than five nodes will not be able to spin, since there are no further nodes to be displayed. For levels/rings that can spin, the level will be fully-populated.
Some embodiments present one or more visual cues and/or gesture suggestions. For example, the outer annular area of
As earlier mentioned, embodiments of the present disclosure serve to aid a user in moving through, interacting with and analyzing the hierarchy data structure. Accordingly, display option and navigation controls are herein disclosed.
As shown, the right side of display surface 302 contains a hierarchy spinner for representing a hierarchical organization, and the hierarchy spinner depicts icons with various adornments. For example,
Gesture: Double tap on any node within the spinner:
Gesture: Double tap Level 1 node with no supervisor:
Gesture: Double tap Level 2 node with children:
Gesture: Double tap Level 2 node with no children:
Gesture: Double tap Level 3 node with children:
Gesture: Double tap Level 3 node with no children:
As earlier indicated, a node can have associated node information 104, and such node information can be displayed within the boundary of a display surface 302. As shown the hierarchy spinner has one node selected (see the white-highlighted node), and node information is displayed for that node. In this example, node information is displayed in a profile overview area 504. Additional node information is displayed in a profile detail area 506. Of course in the example shown, the displayed node information (see biographical details 508) pertains to the selected person in the hierarchy spinner, however display of other node information for other node entities is possible and envisioned (see additional details 510).
The node information can be controlled through gestures, as follows:
The hierarchy spinner can be closed or minimized via a touch or other gestures. For example, a user might touch a cancel adornment 502 (see the X as shown on the right side of
Of course, the aforementioned adornments are merely examples, and adornments can comprise any visual indication on or near an icon. Moreover the features of display surfaces provide a rich environment for applying adornments to display objects, and the visual indications as used herein may use any technique where the adornment is visually distinct from a display object without an adornment.
One advantage of the herein-disclosed navigation through a hierarchy is the ease of comparing node information pertaining to one node vis-à-vis node information pertaining to another node. For example, some embodiments support side-by-side comparisons. The depiction of
Table 1 lists exemplary gestures and animations. The examples in the listing are merely a sampling of possible gestures and animations. Additional gestures and corresponding animation are possible and envisioned.
This embodiment continues the example, showing node information in the form of biographical information pertaining to the selected node. Certain embodiments of a hierarchy spinner address usability issues in tablet-based enterprise software applications. Moreover, certain operations in some enterprise software applications rely upon large and complex hierarchies that users need to navigate with great fluidity. Examples of such complex hierarchies include product catalogs, enterprise-wide organizational charts, departmental charge number hierarchies, etc.
As shown, one possible embodiment of an underlying page 5122 is displayed as a response to a user gesture of a single tap on a node. In this specific example, a single tap on the node with numeric decoration “6” brings up the underlying page 5122 showing a “Create Revenue Item” entry form. A single tap on another node would bring up an underlying page 5122, possibly populated with context-sensitive data.
According to one embodiment of the disclosure, computer system 1000 performs specific operations by processor 1007 executing one or more sequences of one or more instructions contained in system memory 1008. Such instructions may be read into system memory 1008 from another computer readable/usable medium, such as a static storage device or a disk drive 1010. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the disclosure. Thus, embodiments of the disclosure are not limited to any specific combination of hardware circuitry and/or software. In one embodiment, the term “logic” shall mean any combination of software or hardware that is used to implement all or part of the disclosure.
The term “computer readable medium” or “computer usable medium” as used herein refers to any medium that participates in providing instructions to processor 1007 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1010. Volatile media includes dynamic memory, such as system memory 1008.
Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, or any other magnetic medium; CD-ROM or any other optical medium; punch cards, paper tape, or any other physical medium with patterns of holes; RAM, PROM, EPROM, FLASH-EPROM, or any other memory chip or cartridge, or any other non-transitory medium from which a computer can read data.
In an embodiment of the disclosure, execution of the sequences of instructions to practice the disclosure is performed by a single instance of the computer system 1000. According to certain embodiments of the disclosure, two or more computer systems 1000 coupled by a communications link 1015 (e.g., LAN, PTSN, or wireless network) may perform the sequence of instructions required to practice the disclosure in coordination with one another.
Computer system 1000 may transmit and receive messages, data, and instructions, including programs (e.g., application code), through communications link 1015 and communication interface 1014. Received program code may be executed by processor 1007 as it is received, and/or stored in disk drive 1010 or other non-volatile storage for later execution. Computer system 1000 may communicate through a data interface 1033 to a database 1032 on an external data repository 1031. A module as used herein can be implemented using any mix of any portions of the system memory 1008, and any extent of hard-wired circuitry including hard-wired circuitry embodied as a processor 1007.
In the foregoing specification, the disclosure has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the disclosure. For example, the above-described process flows are described with reference to a particular ordering of process actions. However, the ordering of many of the described process actions may be changed without affecting the scope or operation of the disclosure. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than restrictive sense.