The present invention generally relates to managing user interfaces, and more specifically relates to the display and layout flow of relatively positioned user interface items.
The designers of user interfaces, such as screens on websites, typically employ languages such as HyperText Markup Language (HTML), Extensible Forms Description Language (XFDL), and/or Cascading Style Sheets (CSS) language to describe in a document the appearance of the user interface on a rendering device. The content of the document describes the components of a user interface in terms of user interface (UI) item(s) and their rendition properties. When using, for example, HTML and CSS to arrange the positions of the various UI items the available display “property” is limited to three distinct values: “none”, “block” and “inline”. As shown in
In HTML and CSS these three display property values are effectively mutually exclusive in the way in which the UI items are assembled in the layout of the HTML and CSS document. For when the value is set to “none” for the instant UI item, that particular UI item(s) is not only removed entirely from display on the document, but also none of the “remaining” viewable UI item(s) (i.e., UI items with a “block” or “inline” settings) may be positioned relative to the non-displayed UI item (i.e., UI item with a “none” setting). The non-displayed UI item is completely removed from the document (and display) for all intents and purposes. Thus, the viewable UI items may be arranged only in relation to other viewable UI items.
These limitations are problematic for being both inefficient and inflexible. As web user interfaces become more complicated, web authors are seeking more capabilities and flexibility as to how various elements of a user interface, such as a web document, are arranged. For example, for a myriad of reasons, often user interfaces are required to have different appearance iterations for different uses, users, security levels, and the like. Yet, due to the shortcomings of the current methodologies, a web site author is either highly limited as to how he/she can arrange the various UI items in relation to each other and/or must expend an inordinate amount of resources explicitly designing user interface presentations for each, and every, display appearance iteration that may be desired.
In view of the foregoing, a need exists to overcome one or more of the deficiencies in the related art.
Aspects of the invention provide an improved solution for managing a user interface.
A first aspect of the invention provides a method of managing a user interface, the method comprising: obtaining a document for a rendition, wherein the document includes a plurality of user interface items; positioning a first user interface item at a first location on the document; setting a display property value of the first user interface item to one of: on or off; and relatively positioning from the first user interface item a second user interface item at a second location, wherein the relative positioning is independent of the display property value.
A second aspect of the invention provides a system for managing a user interface, the method comprising: a system for obtaining a document for a rendition, wherein the document includes at least two user interface items; a system for positioning a first user interface item at a first location on the document; a system for setting a display property value of the first user interface item to one of: on or off; and a system for relatively positioning from the first user interface item a second user interface item at a second location, wherein the system for relative positioning is independent of the display property value.
A third aspect of the invention provides a computer program comprising program code stored on a computer-readable medium, which when executed, enables a computer system to implement a method of managing a user interface, the method comprising: obtaining a document for a rendition, wherein the document includes a plurality of user interface items; positioning a first user interface item at a first location on the document; setting a display property value of the first user interface item to one of: on or off; and relatively positioning from the first user interface item a second user interface item at a second location, wherein the relative positioning is independent of the display property value.
A fourth aspect of the invention provides a method of generating a system for managing a user interface, the method comprising: providing a computer system operable to: obtain a document for a rendition, wherein the document includes a plurality of user interface items; position a first user interface item at a first location on the document; set a display property value of the first user interface item to one of: on or off; and relatively position from the first user interface item a second user interface item at a second location, wherein the relative positioning is independent of the display property value.
A fifth aspect of the invention provides a data processing system for managing a user interface, comprising: a processing unit; a bus coupled to the processing unit; and a memory medium coupled to the bus comprising program code, which when executed by the processing unit causes the data processing system to: obtain a document for a rendition, wherein the document includes a plurality of user interface items; position a first user interface item at a first location on the document; set a display property value of the first user interface item to one of: on or off; and relatively position from the first user interface item a second user interface item at a second location, wherein the relative positioning is independent of the display property value.
A sixth aspect of the invention provides computer software embodied in at least one propagated signal for managing a user interface, the at least one propagated signal comprising instructions for causing at least computer system to: obtain a document for a rendition, wherein the document includes a plurality of user interface items; position a first user interface item at a first location on the document; set a display property value of the first user interface item to one of: on or off; and relatively position from the first user interface item a second user interface item at a second location, wherein the relative positioning is independent of the display property value.
A seventh aspect of the invention provides a business method for managing a user interface, the business method comprising: managing a network that includes at least one computer system that performs the process described herein; and receiving payment based on the managing.
The illustrative aspects of the invention are designed to solve one or more of the problems herein described and/or one or more other problems not discussed.
These and other features of the invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings that depict various embodiments of the invention, in which:
It is noted that the drawings are not to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements between the drawings.
As indicated above, aspects of the invention provide an improved solution for managing a user interface. Aspects of the invention include the display and layout flow of relatively positioned user interface items. In an embodiment of the invention, a method of managing a user interface, the method includes: obtaining a document for a rendition, wherein the document includes a plurality of user interface items; positioning a first user interface item at a first location on the document; setting a display property value of the first user interface item to one of: on or off; and relatively positioning from the first user interface item a second user interface item at a second location, wherein the relative positioning is independent of the display property value. As used herein, unless otherwise noted, the term “set” means one or more (i.e., at least one); and the phrase “any solution” means any now known or later developed solution.
Turning to the drawings,
Computing device 14 is shown including a processor 20, a memory 22A, an input/output (I/O) interface 24, and a bus 26. Further, computing device 14 is shown in communication with an external I/O device/resource 28 and a storage device 22B. In general, processor 20 executes program code, such as user interface management program 30, which is stored in a storage system, such as memory 22A and/or storage device 22B. While executing program code, processor 20 can read and/or write data, such as data 38 to/from memory 22A, storage device 22B, and/or I/O interface 24. Bus 26 provides a communications link between each of the components in computing device 14. I/O device 28 can comprise any device (e.g., rendering device 50) that transfers information between a user 16 and computing device 14 and/or other elements (e.g., user interface 52, etc.) and computing device 14. To this extent, I/O device 28 can comprise a user I/O device to enable an individual user 16 to interact with computing device 14 and/or a communications device to enable an element, such as a user interface 52, to communicate with computing device 14 using any type of communications link. For example, rendering device 50 may comprise a screen.
In any event, computing device 14 can comprise any general purpose computing article of manufacture capable of executing program code installed thereon. However, it is understood that computing device 14 and user interface management program 30 are only representative of various possible equivalent computing devices that may perform the process described herein. To this extent, in other embodiments, the functionality provided by computing device 14 and user interface management program 30 can be implemented by a computing article of manufacture that includes any combination of general and/or specific purpose hardware and/or program code. In each embodiment, the program code and hardware can be created using standard programming and engineering techniques, respectively.
Similarly, computer system 12 is only illustrative of various types of computer systems for implementing aspects of the invention. For example, in one embodiment, computer system 12 comprises two or more computing devices that communicate over any type of communications link, such as a network, a shared memory, or the like, to perform the process described herein. Further, while performing the process described herein, one or more computing devices in computer system 12 can communicate with one or more other computing devices external to computer system 12 using any type of communications link. In either case, the communications link can comprise any combination of various types of wired and/or wireless links; comprise any combination of one or more types of networks; and/or utilize any combination of various types of transmission techniques and protocols.
As discussed herein, user interface management program 30 enables computer system 12 to manage a user interface 52. To this extent, user interface management program 30 is shown including a document module 32, a positioning module 34, and a display property module 36. Operation of each of these modules is discussed further herein. However, it is understood that some of the various modules shown in
Aspects of the invention provide an improved solution for managing a user interface 52. To this extent,
There are a variety of types of U.I. items 54 available for placement on the document 40. Types of U.I. items 54 include a button, a label, a toolbar, a line, a check, tree control, a field (e.g., for text), a slider, a popup, a checkgroup, a radiogroup, a panel (or pane), and a table. Some of the U.I. item 54 types (e.g., a table, tree control, a panel, a checkgroup, a radiogroup, a toolbar, and/or a page) may be considered a container for containing, or grouping, a plurality of other U.I. items 54. For example, a table U.I. item 54, as the name connotes, is a U.I. item 54 comprises a plurality of field U.I. items 54 presented in a tabular arrangement. In this manner, various U.I. items 54 may be grouped and/or nested with other U.I. items 54.
U.I. item 54A may further comprise a bounding box 60 having four edges 64 (e.g., left, right, top, bottom). As shown in
In any event, as shown in
Commands are available, for example in XFDL, that provide alignment and expansion/contraction to U.I. items 54. The edge 64 of one bounding box 60 to the edge 64 of another bounding box 60, as shown in
Similarly, location specifiers are available for positioning U.I. items 54 in a vertical arrangement. For example, “alignt2b” comprises aligning the top edge 64 of an U.I. item 54 with the bottom edge 64 of the target U.I. item 54. Relatively positioning the U.I. item 54B “below” another U.I. item 54A comprises aligning the leading edges 64 of the two U.I. items 54A, 54B and positioning the top edge 64 of the U.I. item 54B a few pixels of padding 62 beneath the bottom edge 64 of U.I. item 54A. Various other U.I. item 54 location, or position, identifiers are available which allow for the precise relative positioning between the left, center, and/or right of two U.I. items 54; between the top, center and/or bottom of two U.I. items 54; and, above, below, after, before, and both vertical and horizontal commands to expand the width or height of a U.I. item 54 to achieve alignment of U.I. items 54.
Under aspects of the present invention a display property value of a U.I item 54 may be set to one of: on or off. For example, as shown in
In another embodiment, aspects of the invention are shown in
Relative positioning keywords, or identifiers, such as “after” and “below” may be amended when the target U.I. item 54 has its display property value set to “off”. For example, in the case where a U.I. item 54, termed “A”, has its display property value set to “off”, the term “B below A” is reinterpreted, or now comprises, as “B align top to top with A”. Similarly, the term “B after A” is reinterpreted, or now comprises, as “B align lead to lead with A”; wherein “lead” comprises “left” in a “left-to-right” locale and “right” in a “right-to-left” locale.
In another embodiment, the invention provides a revised method for calculating a maximum width or height for a U.I. item 54. Calculating a maximum width or height, the U.I. item 54 may employ entailing a container-type U.I. item 54 (i.e., table, panels, checkgroup, radiogroup, toolbar, or page) in the calculation. If the display property value setting is “off” for any of the “child” U.I. item 54, when performing a maximum width/height calculation, under aspects of the method, those particular non-visible U.I. item(s) 54 are ignored. In this manner, a more accurate calculation is performed.
For illustrative purposes, another embodiment is shown at
In
In this manner, aesthetics of the layout of the user interface 52 and document 40 is improved by removing any large blank spaces found or created by setting the display property value to “off” for a U.I. item(s) 54. Under aspects of the invention, there is a separation of the notion of ‘display’ form that of layout flow for a U.I. item 54. The layout flows (e.g., block, inline) are allowed to persist for U.I. item(s) 54 that are not displayed (i.e., display property value set to “off”), thereby allowing locations, positioning, and/or relative positioning of U.I. items 53 amongst each other to become more flexible. Ultimately, resources (e.g., time, manpower, etc.) are saved in the layout and management of a user interface 52.
In another embodiment, the invention provides a computer program stored on a computer-readable medium, which when executed, enables a computer system to manage a user interface 52. To this extent, the computer-readable medium includes program code, such as user interface management program 30 (
In another embodiment, the invention provides a method of generating a system for managing a user interface 52. In this case, a computer system, such as computer system 12 (
In still another embodiment, the invention provides a business method that manages a user interface 52, which enables users to perform the process described herein on a subscription, advertising, and/or fee basis. That is, a service provider could offer to manage a network and/or a computer system 12 (
As used herein, it is understood that “program code” means any set of statements or instructions, in any language, code or notation, that cause a computing device having an information processing capability to perform a particular function either directly or after any combination of the following: (a) conversion to another language, code or notation; (b) reproduction in a different material form; and/or (c) decompression. To this extent, program code can be embodied as any combination of one or more types of computer programs, such as an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing, storage and/or I/O device, and the like.
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to an individual in the art are included within the scope of the invention as defined by the accompanying claims.