The present invention relates to the field of data processing and, in particular, to a method and software tool for manipulating representations of hierarchical models.
Graphical user interfaces are used in conjunction with a display and a user input to enable user interaction with graphic elements on the display. Typically, a user is provided with a cursor control device, such as a mouse, enabling the user to control one or more cursors on the display.
Software tools to support modeling activities typically represent the domain of interest as a network of nodes and arcs. One class of models, herein termed ‘hierarchical models’, concerns the abstract representation of hierarchical relationships such as taxonomies, bills of materials, module calling charts, organization charts and task models. In this case, the spatial positioning of one node with respect to another node conveys information about the hierarchical relationship between those two nodes. For example a child node is typically shown below a parent node and a peer node is shown adjacent to another peer.
Drag and drop provides a familiar, intuitive and efficient mechanism for moving and copying sets of nodes in support of iterative analysis and design. When working with a hierarchical model, a drop operation needs to convey two pieces of information: a) the target node onto which the dragged node(s) is(are) to be dropped; and b) the required relationship between the dragged node or nodes and the target node. For example, the user may wish to drop a dragged node as a peer before or after a target node or as a child node below a target node.
A first aspect of the invention provides a method for manipulating a hierarchical model comprising a set of linked nodes, each represented by a graphic object on a display. The method comprises storing a node registry including data identifying nodes in the hierarchical model as well as the relationship between the nodes, displaying a representation of the hierarchical model to a user, and detecting a user selection of at least one displayed node. The method further includes detecting the position of a pointer on said display, displaying to a user, in dependence on the pointer position, an indication of a plurality of potential drop zones of a target node, each representing a potential target operation on the target node, detecting selection of one of said potential drop zones of said target node, and performing the target operation represented by the selected drop zone so as to add the at least one selected node in a particular relationship to said target node in said hierarchical model.
The user is thus provided with an indication of a plurality of available drop zones of a target node, each drop zone being associated with a different relationship to the target node. This allows a user to drop a node in the vicinity of the target node, and thereby indicate the target node and required relationship to that target node in a single gesture. According to a preferred embodiment, visual feedback is displayed to cue the required behavior, by indicating the presence and location of available related drop zones, and conveying the consequences of dropping on each such drop zone. This feedback could alternatively or additionally be provided in audio format.
According to a second aspect of the present invention there is provided a computer program product having program instructions operable to perform the method described above.
Preferred embodiments of the invention will now be described by way of example only and with reference to the accompanying drawings in which:
a displays a hierarchical tree model;
b to 2f display partial screenshots showing the indicators which are displayed during the manipulation of the hierarchical tree model of
Referring to
Illustrated within memory 14 in
The data processing system 10 may comprise, for example, a personal computer (PC), laptop, server, workstation, or a portable computing device, such as a personal digital assistant (PDA), mobile telephone or the like. Furthermore, data processing system 10 may comprise additional components not illustrated in
Referring again to
Memory 14 may include any one or combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and non-volatile memory elements (e.g., ROM, hard drive, tape, CDROM, DVDROM etc.). Memory 14 may incorporate electronic, magnetic, optical, and/or other types of storage media. Memory 14 may also have a distributed architecture, with various components being situated remotely from one another, but being accessible by the processor 12.
Local interface 16 may be, for example, one or more buses or other wired or wireless connections and may comprise additional elements which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers. Further, local interface 16 may include address, control, and/or data connections to enable appropriate communications among components of the data processing system 10.
Input/output (I/O) devices 18 may comprise any device configured to communicate with local interface 16. In
Cursor control device 22 may comprise any input device configured to cooperate with an application 32 and/or OS 30 and manipulate one or more cursor(s) displayed on the display device 24. For example, cursor control device 22 may comprise, but is not limited to: a mouse, a trackball, a set of navigation keys (e.g., arrow keys), a touchpad, a joystick or a touch sensitive screen.
Network interface device 28 may be any device configured to interface between the data processing system 10 and a computer or telecommunications network, such as a Local Area Network (LAN), a private computer network, a public or private packet-switched or other data network including the Internet, a circuit switched network, or a wireless network.
A computer program for implementing various functions or for conveying information may be supplied on carrier media such as one or more DVD/CD-ROMs 46, floppy disks 48, and/or USB storage devices and then stored on a hard disk, for example. The data processing system shown in
A program implementable by a data processing system may also be supplied on a telecommunications medium, for example over a telecommunications network and/or the Internet, and embodied as an electronic signal. For a data processing system operating as a wireless terminal over a radio telephone network, the telecommunications medium may be a radio frequency carrier wave carrying suitable encoded signals representing the computer program and data. Optionally, the carrier wave may be an optical carrier wave for an optical fibre link or any other suitable carrier medium for a telecommunications system.
A method of manipulating a graphical representation of a hierarchical model using a modeling tool in accordance with an embodiment of the invention will now be described. The modeling tool is an application 32 running on the data processing system 10. The modeling tool allows a user to manipulate a graphical representation of a hierarchical model shown on a display. The hierarchical model includes a plurality of nodes, which are related in a certain manner, and which can be represented by graphical objects on the display, the hierarchy/relationship of the nodes being indicated by the relevant positions of the nodes on the display and/or by the display of links between the nodes. Examples of hierarchical models include, inter alia, tree structures and indented lists.
a shows a graphical representation of a hierarchical model which is in the form of a tree structure. The tree comprises a set of linked nodes 210, each being represented by a graphical object. Each node has zero or more child nodes, which are below it in the tree (trees typically grow down, not up). A node having one or more child nodes is called the parent of the child nodes. A node without a parent is called the root node, or root. Nodes with no children are called leaf nodes. In the example of
Referring to
The modeling tool allows a user to create and manipulate graphic objects representing a hierarchical model on a display. The modeling tool includes a graphic object model including attributes, such as the position on the screen, of each of the various graphic objects representing the nodes and links of the hierarchical model, and displays these node and link objects on a display. The modeling tool also includes a registry which includes a data entry for each of the nodes in the tree. The entry for each node contains at least its name and a reference to any child nodes which depend upon it, along with any order of the child nodes. The entry for each root node additionally includes an indication that it is a root node. From this registry, the hierarchy of the nodes can be ascertained.
The manipulation of the hierarchical model with which the present invention is mainly concerned is that of moving or copying one or more nodes, using a drag and drop mechanism. Additionally, the user may add or delete nodes or branches of the tree structure, for example.
For each node object, the modeling tool also stores a plurality of drop zones which define areas on the display in the vicinity of the node object, as shown in
To move or copy one or more node object a user selects the one or more nodes to be moved, which may be termed the ‘source’ node(s). This selection typically comprises the user moving a pointer on the display to a position over the node to be moved and then clicking a mouse or keyboard button. The pointer is then said to be ‘loaded’ with the source node or nodes. The particular user input may provide an indication as to whether the manipulation operation is intended to be a move operation or a copy operation. Each of these operations comprises two parts, the first part comprising a drag operation, which comprises moving the loaded cursor to a particular drop zone, and which is carried out by the user. For the move operation the second part comprises removing the source node(s) from the original position in the tree structure and adding the source node(s) to the tree hierarchy in the hierarchical position indicated by the target node and drop zone. In a copy operation, the second part comprises copying the graphic object(s) representing the source node(s) and adding these to the tree hierarchy in the hierarchical position indicated by the target node and drop zone.
When the loaded pointer is moved close to another node indicators of the possible available drop zones associated with that node appear. When the pointer position is coincident with a particular drop zone the indicator for that drop zone changes to show that a drop action will result in the source node being positioned next to the target node, according to the relationship represented by that drop zone.
In response to a drop operation by a user in a drop zone, the modeling tool detects the position of the pointer, determines which drop zone has been actioned and carries out the appropriate manipulation operation.
Referring to
As shown in
The solid left-pointing triangle 226 indicates the active drop zone, which is currently coincident with the loaded cursor, and in
Referring to
In the example shown in
In the example of
Thus the indicator triangles show: i) that multiple alternative drop zones are available, ii) the position of those drop zones, and iii) the logical relationship to the target node of a node inserted by dropping on that drop zone. Further feedback might be provided by a context sensitive tool-tip, describing the action associated with the drop zone in words, as shown in
Referring to
The modeling tool then carries out the pre-selected operation 110, 112 to effect the move or copy of the source node(s). It updates 110a, 112a the node registry to reflect the change effected by that operation. For a move operation, reference to the selected node is deleted from the register entry for the original parent of the selected node, and reference to the selected node is added to the register entry for the node now designated as its parent, according to the relationship to the target node which is indicated by the drop operation. For example if the selected node is dropped as a child of the target node, the entry for the target node is updated to list the selected node as a child to it. For a copy operation, reference to the selected node as a child is added to the register entry for its new parent node, with the entry for the selected node's original parent node remaining unchanged.
The modeling tool can then redraw 114 the display to show the changes to the hierarchical model. Each changed node is allocated a new number to indicate its new position in the tree, but retains its graphic representation and name. Any siblings or other family members subsequent to the moved node(s) is(are) renumbered accordingly. For example, referring to
In a preferred embodiment, the modeling tool is implemented using Java Foundation Classes (Java and all Java-based trade marks are trade marks of Sun Microsystems Inc.). However, equivalent functionality is available in windowing tool kits for most commercial platforms.
In contrast with the prior art menu solution described earlier, only a single gesture is required and that gesture is conceptually consistent with the drag and drop paradigm and the user's spatial model of the required relationship to the target node. Additionally, the drop zone indicators emphasize the range of distinct actions available to the user with a strong indication as to their effect.
Insofar as embodiments of the invention described are implementable, at least in part, using a software-controlled programmable processing device or, such as a microprocessor, digital signal processor or other processing device, data processing apparatus or system, it will be appreciated that a computer program for configuring a programmable device, apparatus or system to implement the foregoing described methods is envisaged as an aspect of the present invention. The computer program may be embodied as source code or undergo compilation for implementation on a processing device, apparatus or system or may be embodied as object code, for example.
Suitably, the computer program is stored on a carrier medium in machine or device readable form, for example in solid-state memory, magnetic memory such as disc or tape, optically or magneto-optically readable memory such as compact disk (CD) or Digital Versatile Disk (DVD) etc, and the processing device utilizes the program or a part thereof to configure it for operation. The computer program may be supplied from a remote source embodied in a communications medium such as an electronic signal, radio frequency carrier wave or optical carrier wave. Such carrier media are also envisaged as aspects of the present invention.
It will be understood by those skilled in the art that, although the present invention has been described in relation to the preceding example embodiments, the invention is not limited thereto and that there are many possible variations and modifications which fall within the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
0418067.5 | Aug 2004 | GB | national |