1. Field of the Invention
This invention relates generally to computer graphics processing, and particularly to a computer program product for maintaining an object path within a view window.
2. Description of Background
Computer programs that display and/or allow users to interact with topologies or other related items (“objects”), such as graphically represented computer system resources or elements of a road map, are becoming increasingly widespread and important. Such “maps” can be very effective in helping a user to quickly comprehend the relationships between a set of elements (such as computer system nodes or road map locations). However, these maps can also become quite complex and difficult to review regardless of the layout arrangement that is used. For example, in a practical computer system topology map, there may be numerous related nodes (e.g., hundreds or more) that are arranged in a layout that forms a “path” of the nodes (e.g., adjacent to or surrounding a central node). As another example, in a road map (or other geographical map), two or more locations may be connected by a road, waterway, etc. In such examples, a view window (or view port) may be provided to focus on a portion of such node path, e.g., to review properties of the nodes and/or their relationships. However, such view windows are usually capable of panning (or possibly scrolling) in a particular direction (e.g., up, down, left, or right) without respect to the layout of the node path. Thus, for example, a user may need to randomly pan or scroll the view window in various preset directions in an attempt to follow the path and review the nodes. In a computer system topology map that has numerous nodes (or nodes that are spread far apart), such restricted movement of the view window often results in the node path not remaining within the view window, thereby making it difficult to efficiently review the nodes. Therefore, the capability to maintain such object paths within a view window while the view window is navigated along the paths is desirable.
A computer program product for maintaining an object path within a view window is provided. An exemplary embodiment of the computer program product causes a computer to recognize an object path in response to an action to select the object path for viewing within a view window of a display including a first point in the object path, and position a second point in the object path within the view window in response to an action to navigate the view window in a direction from the first point toward the second point.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention. For a better understanding of the invention with advantages and features, refer to the description and to the drawings.
The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
The detailed description explains the preferred embodiments of the invention, together with advantages and features, by way of example with reference to the drawings.
According to exemplary embodiments of the invention described herein, a computer program product for maintaining an object path within a view window is provided. In accordance with such exemplary embodiments, the capability to maintain such object path within a view window while the view window is navigated along the path is provided, thereby overcoming the need to randomly pan or scroll the view window in preset directions in an attempt to navigate the path.
Turning now to the drawings in greater detail, wherein like reference numerals indicate like elements,
Exemplary computer 102 includes processor 104, input/output component(s) 106, and memory 108, which are in communication via bus 103. Processor 104 may include multiple (e.g., two or more) processors, which may, e.g., implement pipeline processing, and may also include cache memory (“cache”) and controls (not depicted). The cache may include multiple cache levels (e.g., L1, L2, etc.) that are on or off-chip from processor 104 (e.g., an L1 cache may be on-chip, an L2 cache may be off-chip, etc.). Input/output component(s) 106 may include one or more components that facilitate local and/or remote input/output operations to/from computer 102, such as a display, keyboard, modem, network adapter, ports, etc. (not depicted). Memory 108 includes software 110 configured for maintaining an object path within a view window, which is executable, e.g., by computer 102 via processor 104. Memory 108 may include other software, data etc. (not depicted). An exemplary operation of computer 102 executing software 110 will be described below.
x
view
i
next
=x
view
i+(xi+k−xi) (EQ1)
y
view
j
next
=y
view
j+(yj+l−yj) (EQ2)
As another example, in response to an action to pan or scroll view window 402 in a direction from first item 411 to alternate second item 413 (e.g., down and/or to the left), the new coordinates (xview
x
view
i
next
=x
view
i+(xi−k−xi) (EQ3)
y
view
j
next
=y
view
j+(yj−l−yj) (EQ4)
The object path may be recognized (e.g., via computer 102), e.g., by the related items, points, etc. (e.g., 210) that form the object path (e.g., interconnected computer topology nodes or map locations) being identified, acknowledged, etc. so that they can be viewed via a navigation of the view window. For example, an object path that includes interconnected computer topology nodes (e.g., of a particular type, status, etc.) may be recognized in response to a selection of one or more of the nodes or a point, connecting element, etc. between them. Such criteria for the selection of the object path may be set by a user, administrator, etc. In some embodiments, a first point in the object path may be centered within the view window in response to the action to select the object path (e.g., item 411 in view window 402). One or more of various methods, algorithms, etc. may be implemented to determine the point (item, node, etc.) to be centered and/or to center that point. For example, a closest point to a dimensional center of the view window may be centered by adjusting the location of the view window appropriately. Additionally, in some embodiments, an appearance of the object path may be highlighted in response to the action to select the object path. For example, computer 102 may cause the displayed appearance of the selected object path to be modified by bolding, coloring, or otherwise modifying the appearance (e.g., from a normal, previous, etc. condition).
In block 504, a second point in the object path is positioned within the view window in response to an action to navigate the view window in a direction from the first point (e.g., 410) toward a second point (e.g., 412 or 413). For example, in response to an action to navigate the view window in a direction from the first item to the second item, the coordinates (e.g., of an origin or other point), and thus the position, of the view window may be changed according to EQ1, EQ2, EQ3, and/or EQ4 (listed above). That is, e.g., the horizontal position of an origin of the view window may be changed from a first horizontal coordinate to a second horizontal coordinate, where the second horizontal coordinate is equal to a sum of the first horizontal coordinate plus a difference of a horizontal coordinate of the second point minus a horizontal coordinate of the first point. Similarly, the vertical position of the origin of the view window may be changed from a first vertical coordinate to a second vertical coordinate, where the second vertical coordinate is equal to a sum of the first vertical coordinate plus a difference of a vertical coordinate of the second point minus a vertical coordinate of the first point.
In some embodiments, the action to navigate the view window may include a command (action, input, etc.) to pan or scroll the view window in the direction from the first point to the second point, e.g., via a computer keyboard, mouse, or other input/output component. For example, with reference to
In some embodiments, a list of information (e.g., list 302 described above) may be generated in the display about the items of the object path in response to an action to request the information be displayed (e.g., a same or additional action to select the object path and/or one or more other actions via a computer keyboard, mouse, or other input/output component). In such embodiments, as further described above, the action to navigate the view window includes a command to scroll or page through the list (e.g., in addition or alternate to an action to pan, scroll, etc. the view window). In other embodiments, a zoom condition of the view window is adjusted to display an extent of the object path within the view window. For example, when an object path is selected for viewing within the view window, the size (e.g., width, height, etc.) of the view window (e.g., 202, 402) may be adjusted (e.g., increased, decreased, etc.) to fit an extent (e.g., width, height, etc.) of the object path, e.g., so that the extent of the object path can be viewed. Furthermore, the size of the view window may be further adjusted to fit the extent of the object path as it varies when the view window is navigated along the object path. As another example, the magnification of the displayed output of the view window (e.g., via a main window 208) is adjusted so that the extent of the object path is viewable, e.g., when the object path is selected and/or navigated. This adjusting of the zoom condition of the view window may be implemented through one or more of various methods, algorithms, etc. For example, this adjusting of the zoom condition of the view window may be correlated to the recognition of the object path (e.g., characteristics and/or locations of the items therein).
Exemplary computer system 100, computer 102, and displays 200, 300, 400 are illustrated and described with respect to various components, modules, etc. for exemplary purposes. It should be understood that other variations, combinations, or integrations of such elements that provide the same features, functions, etc. are included within the scope of embodiments of the invention.
The flow diagram described herein is just an example. There may be many variations to this diagram or the blocks (or operations) thereof without departing from the spirit of embodiments of the invention. For instance, the blocks may be performed in a differing order, or blocks may be added, deleted or modified. All of these variations are considered a part of the claimed invention. Furthermore, although an exemplary execution of the flow diagram blocks is described with respect to the exemplary computer system 100 and computer 102, execution of the flow diagram blocks may be implemented with other hardware and/or software architectures that provide the same features, functions, etc. in accordance with exemplary embodiments of the invention.
Exemplary embodiments of the invention can be implemented in hardware, software, or a combination of both. Those embodiments implemented in software may, for example, include firmware, resident software, microcode, etc. Exemplary embodiments of the invention may also be implemented as 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 other instruction execution system. In this regard, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use in connection with the instruction execution system, apparatus, or device.
The computer-usable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (apparatus, device, etc.) 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, or an optical disk. Some current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W), or digital video disk (DVD).
A data processing system suitable for storing and/or executing program code can 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, or cache memories that provide temporary storage of at least some program code to reduce the number of times the code needs to be retrieved from bulk storage during execution.
Input/output (I/O) devices (e.g., keyboards, displays, pointing devices, etc.) can be coupled to the data processing system either directly or through intervening I/O controllers. Network adapters may also be coupled to the data processing system to allow the system to be coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Telephonic modems, cable modems, and ethernet cards are a few examples of the currently available types of network adapters.
While exemplary embodiments of the invention have been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements which fall within the scope of the claims that follow. These claims should be construed to maintain the proper protection for the invention first described.