Patent ID: 12210737

DETAILED DESCRIPTION

UIs may include one or more components to enable a user to interact with the application and/or a connected or underlying system via the UI. One example of a UI component is a UI control, which permits a user to interact with the UI to make a selection that can provide an input to the application or system via the UI control. For example, a slider UI control may provide an intuitive manner of selecting values in a range of values. The slider UI control may additionally allow users to visualize their current selection from within the available range of values. It can be appreciated that while certain examples provided herein may refer to a slider-type UI control (referred to herein as a “slider UI control”), the principles can be applied to other selectable/manipulable UI controls, such as a selectable “progress” bar without a distinct slider element provided as the selector.

The UI control may further include one or more text fields to allow users to manually enter values to make granular modifications to their selections, which can in turn adjust the selector (e.g., a slider element of a slider UI control). These text fields may additionally provide an accessibility advantage in that users that find manipulation of the UI control to be difficult, can use the text fields as another input mechanism to select a position on the UI control. That is, the user may type a specific value in the text field that positions the selector of the UI control according to the entered value. The visualized value (that has been selected from the range of values using the UI control) may provide a value in the range of values, a proportion or percentage of the upper end of the range of values, or both. For example, when providing a UI control to obtain a selection, the selection may be associated with a selected value such as a temperature or volume level, or a proportion (e.g., percentage) of a total value allocated to one option or another option.

The UI control may additionally be configured to have limits placed on the values selectable from the UI control. The limits may be accounted for and communicated to the user in a way that is intuitive and readily understandable. It may be desirable to restrict the selectable values in a UI control to a sub-range of values that is not what may be expected to be the entire range of values. For example, a UI control used to select a volume level when an earphone is connected may include a maximum permitted output (e.g., when the earphone is connected) that is lower than the actual maximum volume level that a speaker is capable of outputting. In another example, a UI control used to select an airflow value may include a minimum value that is greater than a zero flow and a maximum value that is less than the actual maximum airflow that a fan is capable of outputting, to ensure that no-flow and max-flow conditions are avoided.

The lowest and highest extents that are displayed within, and selectable from, the UI control (i.e., what is selectable in the visual control space) can correspond to the limits in the range of values, rather than the expected or theoretical minimum and maximum values in the range of values (i.e., the range of values in the underlying numerical space corresponding to the values represented in the UI control). For example, if a volume control is limited to a maximum of 80% output or volume level 8 out of 10, the values selectable from the UI control may include zero to 80% or zero to 8. In this way, the user can be restricted to selecting only the permitted values in that circumstance.

If the expected or theoretical minimum and maximum values in the range of values are to be included in the visual control space by being represented in the UI control, the values outside of the limit(s) can be included in what is displayed in the UI control, while restricting or inhibiting the ability to select within a region defined by the values outside of the limit(s), by having both manipulable and non-manipulable portions of the UI control along a track that is included in the visual control space of the UI control. The manipulable portion(s) of the UI control along the track may correspond to selectable values (i.e., within limits), whereas the non-manipulable portion may correspond to unselectable values (i.e., values outside limits). The values outside of the limits may include, for example, values between the minimum in the range of values and the lower limit, and/or values between the upper limit and the maximum in the range of values. In the audio control example above, a visual identifier such as a guardrail can be placed at the upper limit of audio level 8, or a non-manipulable portion of the audio control can be blurred or otherwise visually distinguishable from the manipulable portion that includes audio levels 0 through 8.

By visually distinguishing the non-manipulable portion of the UI control by placing guardrails, limit identifiers, and/or bumpers on the track, or by otherwise visually identifying the visual control space occupied by at least one non-manipulable portion of the UI control, the user may intuitively visualize which selections are possible and which are not, and thus the limits placed in the UI control can be more easily understood. Depending on where the limits are placed, and consequently how much of the expected or theoretical range of values (i.e., between a minimum value and a maximum value in the range of values) is unavailable for selection, the amount of the UI and thus corresponding screen space available to the manipulable portion of the UI control and the selectable values in a sub-range of values defined between the limits (if any) may be minimized, and such screen space underutilized. For example, if the range of values extends between zero and one hundred, and a lower limit is placed at 35%, only 65% of the UI control would be available to the user for making selections. If there are both upper and lower limits (e.g., a 35% lower limit and a 75% upper limit) the proportion of the UI control available is even further reduced. Moreover, in some cases, the manipulable range in the UI control may be user- or item-specific, e.g., in the case of selecting the length of an object being resized in a computer-aided drawing (CAD) UI, objects with relatively longer real-world dimensions (scaled within the CAD UI) may be more difficult to resize with accuracy compared to relatively smaller objects if linearly spaced limits are used, as a greater number of selectable values would be placed into the same manipulable portion as those with a relatively shorter range of selectable lengths.

A non-proportionate placement of limits within a UI control (e.g., a slider UI control) can be employed to increase the size of the manipulable portion of the UI control (i.e., the portion that is allocated to an underlying range of values from the numerical space that are selectable using the UI control in the visual control space) as compared to a proportionate placement of limits. This may be done by defining a minimum proportion of the UI control that is to be dedicated to the manipulable portion and rescaling the amount of screen space allocated to the non-manipulable portion, which constrains the spacing (also referred to herein as the “incrementation”) of underlying values that fall within the non-manipulable portion. For example, a UI control may be presented so as to extend between a first display position and a second display position to define a track. The extent of the track may correspond to a range of values and the track can include a manipulable portion and a non-manipulable portion.

It can be appreciated that while certain example embodiments described herein identify a range and/or subrange of values that are, or contain, linear sequences (e.g., 1, 2, 3, 4), the (sub)range of values may be, or contain, non-linear sequences (e.g., geometric, exponential, logarithmic, sequences effecting an ease-in or ease-out or easy-ease, etc.).

A selector may additionally be presented (e.g., a slider element or component), which is movable along the track within the manipulable portion to select a value within an allowable subrange of the range of values. The subrange of values may be defined by at least one limit (e.g., a lower limit, an upper limit, or both upper and lower limits). The limit(s) define an extent of the allowable subrange and the non-manipulable portion corresponds to a portion of the range of values that are beyond the limit(s).

The limit(s) may be presented visually, e.g., using a guardrail or other visually distinguishable element such as a bumper or by using an effect, such as blurring, shading, the use of different color(s), etc. To utilize a greater proportion of the track provided in the UI control, and thus corresponding screen space, the manipulable portion may be presented using a different scale with a different proportion of screen space (allocated to representing the underlying values that can be selected) than the proportion of screen space allocated to the non-manipulable portion (and those underlying values). That is, the non-manipulable portion(s) may represent corresponding values beyond the corresponding limit(s) with a different scale (e.g., different incrementation such as number and/or spacing of values along the track) or other proportion of the available screen space for the UI control, than what is used for the manipulable portion. For example, a non-manipulable portion representing 30% of the values in the range of values can be rescaled to fit within 10% of the track, allowing the allowable subrange of the range of values (i.e., those values represented by the manipulable portion) to benefit from an additional 20% of the track to present those values (i.e., 90% instead of the 70% of a proportionate spacing scenario). In this way, greater granularity, control, and screen space may be provided to enhance the user experience when compared to a proportionate scaling of values in both the manipulable portion and the non-manipulable portion. The proportions dedicated to the manipulable and non-manipulable portions can vary based on the application, the size of the UI control, the screen size of the device being used to display the UI control, among other factors.

The proportions, the limits, the range of values and the allowable sub-range of values allocated to be represented within, and selectable from, the manipulable portion (according to the limits), may be provided as inputs to a UI and can be adapted from data sets provided by separate systems. For example, a management system within an enterprise may provide data that is used to set the parameters for the UI control based on an instance, user, or other context relevant to the application. Any such determinations may vary from application to application or user to user and may be set according to thresholds, tiers, user types, or other factors such as environmental limitations (e.g., aforementioned screen size, number of UI controls, and the like). In an example embodiment, inputs to the UI control may be rounded in increments (e.g., 10, 100, 1,000, 10,000, etc.) to align an input to an allowable increment depending on the application. Such rounding can be advantageous where users are less likely to select intermediate values (i.e., values between the increments). Additionally or alternatively, this can make selections relatively smoother by making it easier to align a selector element such as a slider with a chosen value as compared with, for example, allowing many finer increments to be selected. The UI control may include text entry boxes to permit a user to enter a value. Notably, where inputs are rounded to defined increments/steps as discussed, such a text entry box could be usable to allow entry of a more precise (i.e., unrounded) value such as a finer increment.

The UI control may be adapted to provide multiple UI controls. When providing multiple UI controls, one UI control may impose a dependency on a selection made in another of the UI controls. For example, a first UI control can be presented along with a second UI control. The second UI control may be configured to be dependent, to rely on, or to otherwise be impacted by a selection from the first UI control. For example, a selection made using the first UI control may impact an upper limit imposed on the second UI control wherein a further selection of a different type or category can be made using the second UI control. The UI controls may be provided in groups that include any two or more UI controls that provide independent or related features. The UI controls may be provided with at least one pair of UI controls that includes a dependency such that a selection in a first UI control is required before a selection can be made in a second UI control, e.g., where the second UI control receives an input from the first UI control to define the range of values, the minimum or maximum in such a range of values, limits placed within the range of values, etc.

The UI control may be configured to incorporate two units on the same track. For example, one side of the track may be associated with a first unit while the opposite side of the track may be associated with a second unit. The first and second units together may amount to another unit or value that represents the sum of the first and second units. In this way, moving a selector on the track dynamically impacts the proportion of the sum allocated to each of the first and second units. In such a configuration, moving the selector along the track visually depicts such proportions based on the extent of the track on either side of the selector. In some example embodiments, moving the slider in a UI control may increase or decrease the sum of the first and second units (e.g., because the second unit is subject to some sort of multiplier or premium or adjustment that the first unit is not, or they have different multipliers/premiums/adjustments). In such embodiments, the UI control may accordingly reference determined values corresponding to what either side represents (e.g., with details on the multiplier/premium/adjustment).

The UI control may be included in an application that utilizes data concerning a user, entity or item by obtaining data from a system such as an enterprise system that manages such data and can use an engine to determine a corresponding range of values and a set of limits. This can be applied to both individual UI controls and combined UI controls that include both first and secondary UI components, e.g., as discussed above.

In one aspect, there is provided a computer-implemented method. The method includes presenting a user interface control, the user interface control extending between a first display position and a second display position and defining a track, the extent of the track corresponding to a range of values, the user interface control having a manipulable portion and a non-manipulable portion, wherein a selector is movable along the track within the manipulable portion to select a value within an allowable subrange of the range of values, the allowable subrange based on a limit defining an extent of the allowable subrange and the non-manipulable portion corresponding to a portion of the range of values beyond the limit.

In certain example embodiments, the method can further include presenting the non-manipulable portion continuous with the manipulable portion and separated by a visual element identifying the limit.

In certain example embodiments, the manipulable portion of the user interface control can include a minimum proportion of the track dedicated to the allowable subrange of the range of values.

In certain example embodiments, values outside the allowable subrange of values can be represented by the non-manipulable portion using a different scale than the allowable subrange of the range of values in the manipulable portion.

In certain example embodiments, the different scale can correspond to a discontinuity in functions used to define an incrementation of values on either side of the limit.

In certain example embodiments, the minimum proportion can be determined according to a maximum proportion allocated to the non-manipulable portion.

In certain example embodiments, the minimum proportion can be determined according to a type of value being represented.

In certain example embodiments, the limit can be a lower limit or the limit can be an upper limit.

In certain example embodiments, the method can include determining at least one additional limit, wherein the manipulable portion is displayed between a pair of limits.

In certain example embodiments, a first limit of the pair of limits includes a lower limit and a second limit of the pair of limits include an upper limit.

In certain example embodiments, the user interface control can include a slider element to permit the selection of values in the allowable range by moving the slider element along the track.

In certain example embodiments, the method can further include detecting a selection within the non-manipulable portion; displaying an alert associated with the selection; and enabling values outside the limit to be selected in response to detecting an acknowledgement of the alert.

In certain example embodiments, the non-manipulable portion can be resized to facilitate selection of the values outside the limit.

In certain example embodiments, the method can further include presenting a dependent user interface control, the dependent user interface control enabling selection of values at corresponding locations along a second track defined by the dependent user interface control; and adjusting at least one value associated with the dependent user interface control according to a selection made in the user interface control.

In certain example embodiments, the dependent user interface control can extend between a first display position and a second display position and defines the second track, the extent of the second track corresponding to a second range of values, the dependent user interface control having a manipulable portion and a non-manipulable portion, wherein a second selector is movable along the second track within the manipulable portion to select a value within an allowable subrange of the second range of values, the allowable subrange based on a limit defining an extent of the allowable subrange and the non-manipulable portion corresponding to a portion of the second range of values beyond the limit.

In certain example embodiments, the at least one value associated with the dependent user interface control can include an upper limit dictated by the selection made in the user interface control.

In certain example embodiments, the range of values can correspond to compensation over a period of time, and selections made within the manipulable portion adjust an allocation of the compensation between a plurality of types of compensation.

In certain example embodiments, the allocations can be presented and updated as selections are made within the manipulable portion.

In certain example embodiments, the method can further include displaying a dependent user interface control with a second range of values dictated by a selection made in the user interface control, the dependent user interface control enabling a sub-allocation of a type of compensation to be adjusted; and adjusting the sub-allocation according to a selection made in the dependent user interface control.

In certain example embodiments, the range of values can correspond to a metered value. The metered value can include any one of a temperature, a pressure, an audio control, a speed, a physical dimension, an airflow, a unit of mass, or a unit of energy.

In another aspect, there is provided a system. The system includes a processor, a display coupled to the processor, at least one input device coupled to the processor, and at least one memory. The at least one memory includes processor executable instructions that, when executed by the at least one processor, causes the system to: present a user interface control, the user interface control extending between a first display position and a second display position and defining a track, the extent of the track corresponding to a range of values, the user interface control having a manipulable portion and a non-manipulable portion, wherein a selector is movable along the track within the manipulable portion to select a value within an allowable subrange of the range of values, the allowable subrange based on a limit defining an extent of the allowable subrange and the non-manipulable portion corresponding to a portion of the range of values beyond the limit.

In another aspect, there is provided a computer-readable medium comprising processor executable instructions that, when executed by a processor, cause the processor to present a user interface control, the user interface control extending between a first display position and a second display position and defining a track, the extent of the track corresponding to a range of values, the user interface control having a manipulable portion and a non-manipulable portion, wherein a selector is movable along the track within the manipulable portion to select a value within an allowable subrange of the range of values, the allowable subrange based on a limit defining an extent of the allowable subrange and the non-manipulable portion corresponding to a portion of the range of values beyond the limit.

Turning now to the figures,FIG.1aillustrates an example of a computing environment10in which an application12is provided by or with one or more computing devices. Such computing devices can include, but are not limited to, a mobile phone, a personal computer, a laptop computer, a tablet computer, a notebook computer, a hand-held computer, a personal digital assistant, a portable navigation device, a wearable device, a gaming device, an embedded device, a smart phone, a virtual reality device, an augmented reality device, etc. The application12includes a UI20to enable a user18to interact with the application12and the computing environment10more generally, e.g., via the application12. The application12can take the form of a desktop-type application, a mobile-type application (also referred to as an “app”), an embedded application in customized computing systems, or an instance or page contained and provided within a web/Internet browser, to name a few. The UI20while shown as part of the application12can instead be provided by a separate computing device from the computing device used to run the application12. As such, the configuration shown inFIG.1ais illustrative and other computing device configurations are possible as shown by way of example inFIG.1b.

For example, the computing environment10shown inFIG.1acan represent a single device such as a portable electronic device or the integration/cooperation of multiple electronic devices such as a client device and server device or a client device and a remote or offsite storage or processing entity or service. That is, the computing environment10can be implemented using any one or more electronic devices including standalone devices and those connected to offsite storage and processing operations (e.g., via cloud-based computing storage and processing facilities). For example, the UI20may be provided by an electronic device while application data24used by such a UI20can, at least in part, be stored and accessed from an external memory or application, including a cloud-based service or application12.

The application12and UI20are coupled to a display14to render and present/display UI elements, UI components, and UI controls21utilized by the UI20and application12, on the display14. While examples referred to herein may refer to a single display14for ease of illustration, the principles discussed herein can also be applied to multiple displays14, e.g., to view portions of the UI20(and/or other UIs provided by the application12) on separate side-by-side screens. That is, any reference to a display14can include any one or more displays14or screens providing similar visual functions. The application12receives one or more inputs from one or more input devices16, which can include or incorporate inputs made via the display14as illustrated inFIG.1aas well as any other available input to the computing environment10, such as haptic or touch gestures, voice commands, eye tracking, biometrics, keyboard or button presses, etc. Such inputs may be applied by a user18interacting with the computing environment10, e.g., by operating an electronic device having the display14and at least an interface to one or more input devices16.

The application12or a computing device within the computing environment10can include or have access to the application data24. The application data24can include data used by the application12to perform operations provided by the features associated with the application12, including data used in rendering the UI20and/or providing a UI control21.

The UI20can include one or more components to enable the user18to interact with the application12and/or an underlying system in the computing environment10via the UI20. One example of a UI component is a UI control21, which permits a user to interact with the UI20to make a selection that can provide an input to the application12or system within the computing environment10, via the UI control21.

FIG.1bshows an example of a computing device300implementing an example embodiment of the computing environment10shown inFIG.1a. In this example, the computing device300includes one or more processors302(e.g., a microprocessor, microcontroller, embedded processor, digital signal processor (DSP), central processing unit (CPU), media processor, graphics processing unit (GPU) or other hardware-based processing units) and one or more communications modules302(e.g., a wired or wireless transceiver device connectable to a network via a communication connection). Examples of such communication connections can include wired connections such as twisted pair, coaxial, Ethernet, fiber optic, etc. and/or wireless connections such as LAN, WAN, PAN and/or via short-range communications protocols such as Bluetooth, WiFi, NFC, IR, etc. The computing device300also includes a data store306, the application12, and/or a web browser308. The data store306may represent a database or library or other computer-readable medium configured to store data and permit retrieval of such data. The data store306may be read-only or may permit modifications to the data. The data store306may also store both read-only and write accessible data in the same memory allocation.

While not delineated inFIG.1b, the computing device300includes at least one memory or memory device that can include a tangible and non-transitory computer-readable medium having stored therein computer programs, sets of instructions, code, or data to be executed by processor(s)302. The processor(s)302and communication module(s)304are connected to each other via a data bus or other communication backbone to enable components of the computing device300to operate together as described herein.FIG.1billustrates examples of modules and applications stored in memory on the computing device300and operated by the processor(s)302. It can be appreciated that any of the modules and applications shown inFIG.1bmay be hosted externally and be available to the computing device300, e.g., via a communications module304. The data store306in this example stores, among other things, the application data24that can be accessed and utilized by the application12. The computing device300also includes the display14and one or more input device(s)16that can be utilized as described above. The application12includes a UI20and one or more controls21, which can also be utilized as described above in connection withFIG.1a. The web browser308is shown by way of example to illustrate that the application12, or an application that is similarly configured, may be accessed by a user of the computing device300via a network (not shown) accessible via the communications module304. That is, an application12and UI20may also be accessed and utilized by the computing device300from a server or other remote source and need not be a locally running application12.

An example of a UI control21is a slider UI control22, examples of which are illustrated inFIG.2. As noted above, while certain examples provided herein depict a slider UI control22, the principles discussed herein can be applied to any UI control21that enables a selection along at least a portion of a track30extending between display positions in the UI control21.

The slider UI control22can be presented so as to extend between first and second display positions to occupy a particular amount of screen space. The slider UI control22includes a track30, which defines the controllable portion of the slider UI control22. The track30can have underlying values in the numerical space that are selectable or some of those values may be selectable while others are not selectable. That is, the track30can be presented with one or more portions thereof that are visually depicted but are not selectable. Alternatively, the track30may correspond to only the selectable portion of the UI control that visually represents the underlying range of selectable values in the numerical space. The slider UI control22can also include a selector32, which is movable or selectable along the track30. The selector32is illustrated inFIG.2as being movable or selectable within a manipulable portion of the track30but may, in some embodiments, permit a selection within a non-manipulable portion of the track30(or an area of the UI control22that is outside of the track30in other embodiments). It can be appreciated that in the examples shown inFIG.2, the manipulable portion of the UI control22corresponds to the entire track30.FIG.2illustrates that the track30can be presented in different orientations. For example, slider UI control22ais presented in a substantially horizontal orientation relative to the presentation of the UI20. In another example, slider UI control22bis presented in a substantially vertical orientation relative to the presentation of the UI20and relative to slider UI control22a. Slider UI control22cis instead presented as an arc or dial such that the track30is not necessarily linear (or completely linear) or otherwise follows a non-linear path. The selector32provided in slider UI control22ccan be configured to follow the arc defined by the track30, akin to a dial or gauge. More broadly, the slider UI control22may be presented using various shapes and contours with at least a portion of the UI control22defining a track30that constrains movement of a selector along the slider UI control22. The slider UI control22may also be presented with the extents of the track30defining a range of positions that can be selected and may permit the selector to be moved along the track30to the range of positions to select a corresponding underlying value from the range of values. While not shown inFIG.2, but discussed below, the slider UI control22may also include a non-manipulable portion with underlying values that are outside of one or more limits, and the non-manipulable portion may form part of the track30. It can be appreciated that the slider UI controls22a,22b,22care not necessarily shown to scale inFIG.2and may be presented with other UI elements, UI components and/or UI controls which are omitted fromFIG.2for ease of illustration. That is,FIG.2is illustrative of particular orientations and configurations for a slider UI control22, which may be incorporated into the UI20and other features provided by the UI (not shown).

FIG.3shows an example embodiment of a slider UI control22in isolation. In the numerical space, there exists a minimum value42and a maximum value46that define a range of values38. In this example embodiment, the minimum and maximum values42,46are outside of a sub-range of values defined by a lower limit40within the range of values38and an upper limit44within the range of values38. InFIG.3, the visual control space of the slider UI control22extends from a lowest extent that corresponds to the underlying lower limit42in the numerical space to a highest extent that corresponds to the underlying upper limit44in the numerical space. The displayed portion of the slider UI control22corresponds to a manipulable portion34of the track30, which in this example occupies the entire extent of the visual control space of the slider UI control22. That is, the entire manipulable portion34is allocated to the sub-range of values between the lower and upper limits42,44instead of the entire range of values38extending from the minimum value42to the maximum value46. That is, the values outside of the allowable sub-range of values in the numerical space effectively correspond to non-manipulable portions36a,36bare not being displayed, which in this example may be analogized to being hidden or otherwise not being available or seen in the visual control space (as illustrated using short, dashed lines) while the underlying values still exist by being part of the range of values38. The minimum displayed point and maximum displayed point in the slider UI control22(defining the manipulable portion34) are thus based on the limits40,44rather than the actual, expected or theoretical endpoints (i.e., minimum and maximum values42,46) of the range of values38. For example, if a volume control is limited to between a minimum 20% output (e.g., volume level 2/10) and a maximum 80% output (e.g., volume level 8/10), the values that can be selected from the manipulable portion34of the slider UI control22as shown inFIG.3would include those values from 20% to 80% (e.g., volume levels 2 through 8). In this way, the user18can be restricted to selecting only the permitted values in the manipulable portion34, since the non-manipulable portions36a,36bare not displayed to the user18, as if they are hidden from the user and thus the values in the numerical space that are outside of the limits42,46are also not available to the user for selection in this example embodiment. While both upper and lower limits40,44are shown in this example, it can be appreciated that the example embodiment inFIG.3can be adapted to UI controls22that include only a lower limit40or only an upper limit44. A selected value (V)48corresponding to the selected position along the track30may also be displayed as shown inFIG.3.

In scenarios or implementations where the entire range of values38, including the actual, expected, or theoretical minimum value42and actual, expected, or theoretical maximum value46are to be presented and displayed in the slider UI control22(whether selectable or not), the non-manipulable portions36a,36bcan be presented in the UI slider control22along with the manipulable portion34as shown inFIG.4. In this example, the lowest extent of the track30corresponds to the minimum value42in the range of values38and the highest extent of the track30corresponds to the maximum value46in the range of values38. Moreover, the lower limit40within the range of values38is placed along the track30between the minimum value42(and thus lowest extent of the track30) and the upper limit44(and thus the highest extent of the manipulable portion34). Likewise, the upper limit44is placed along the track30between the lower limit40(and thus the lowest extent of the manipulable portion34) and the maximum value46(and thus the highest extent of the track30). The non-manipulable portions36a,36bare part of the track30and are presented in the slider UI control22such that they are visually distinguishable from or otherwise identifiable relative to the manipulable portion34. The non-manipulable portions36a,36bof the track30in this example are displayed contiguously with the manipulable portion34along and defining the lowest and highest extents of the track30.FIG.4also illustrates a visual identifier referred to herein as a “guardrail”50at the lower limit40. The guardrail50may also be referred to as a limit indicator, a bumper, a railing, a wall, among other things. The non-manipulable portions36a,36bmay, additionally or alternatively be shown in a shaded form to distinguish them from the manipulable portion34. Other visually distinguishable attributes or elements can be used to represent the non-manipulable portions36a,36b, for example, blurring or fading, distinct coloring (e.g., a red coloring outside of limits), cross-hatching, gradients, etc. In the example shown inFIG.4, the non-manipulable portions36a,36bare shaded relative to the manipulable portion34with the lower guardrail50providing an additional visual cue to the user18as to the corresponding limit40,44placed within the range of values38. It can be appreciated that as shown in other examples herein, an upper guardrail52(see alsoFIGS.5and6) can be displayed along with or instead of the shading applied to the non-manipulable portions36a,36b. Also, similar to what is shown inFIG.3, the selected value (V)48can be displayed with the slider UI control22.

When compared to the slider UI control22shown inFIG.3, the slider UI control22shown inFIG.4consumes a similar amount of displayed screen space. In the example embodiment shown inFIG.3, the entire displayed screen space is dedicated to the manipulable portion34while not displaying the non-manipulable portions36a,36bakin to hiding the corresponding underlying values in the range of values38that are outside of the limits40,44. In the example embodiment shown inFIG.4, both the manipulable portion34and the non-manipulable portions36a,36bare displayed together within the total screen space allocated to the slider UI control22and in this example the extent of the track30. As such, a tradeoff may be encountered wherein for a slider UI control22that utilizes the embodiment shown inFIG.3, the manipulable portion34is maximized within the available screen space but omits an expected (or at least theoretical) portion of the range of values38(in the underlying numerical space) from what is presented to the user18. However, according to the example embodiment shown inFIG.4, a different tradeoff may be encountered, wherein the entire range of values38is displayed, but with a relatively smaller manipulable portion34due to the limits40,44that are placed within the range of values38. Depending on the size of the non-manipulable portions36a,36b, this other tradeoff may be acceptable if only a small proportion of the track30is dedicated to the non-manipulable portions36a,36b. If the relative size of the non-manipulable portion(s)36is higher and less acceptable, the embodiment shown inFIG.3can be used or a non-proportionate placement of limits40,44within the slider UI control22(to effect a non-proportionate allocation of manipulable and non-manipulable portions34,36) can be employed to increase and maximize the manipulable portion34presented by the slider UI control22as shown inFIG.5.

Referring now toFIG.5, a slider UI control22is shown that uses a non-proportionate placement of the lower limit40, upper limit44and corresponding guardrails50,52to effect a non-proportionate allocation of manipulable and non-manipulable portions24,26. In this example, it can be observed that the guardrails50,52are biased towards the minimum and maximum values42,46in the range of values38, such that the proportion of the track30dedicated to the non-manipulable portions36a,36bis less than what would be provided in a proportionate allocation between the manipulable portion34and the non-manipulable portions36a,36b. The selector32can be used to select a value within the sub-range of values represented by selectable positions along the track30in the slider UI control22between the lower limit40and the upper limit44and defined as the manipulable portion34similar to the example embodiments shown inFIGS.3and4, but with a larger proportion of the track30being allocated to the values that are selectable. This allows a number of selectable positions in the track30to be spaced further apart, or additional selectable positions (and underlying represented values) to be included within the same amount of screen space. The larger proportion of the track30allocated to the manipulable portion34can permit additional granularity to be provided for the selectable values in the manipulable portion34. For example, by dedicating additional screen space to the manipulable portion34, a finer-incrementation can be used, such as allowing fractional whole numbers that would otherwise be difficult to select with precision if presented using a relatively smaller manipulable portion34. This can be particularly advantageous when the selectable values correspond to a currency, wage, or other monetary amount, and can affect how values are rounded for presentation to the user18.FIG.5also illustrates that the selected value (V)48can be displayed. A text entry box49can also be provided, as discussed herein, to allow a user to enter the desired value, which causes the selector32to snap to the entered value, if within the permitted range of values (e.g., if within the values represented in the manipulable portion34).

FIG.6illustrates the slider UI control22ofFIG.5with an overlay of values to depict a non-proportionate scaling that can be applied to the track30(i.e., to place the upper and lower limits40,44and corresponding guardrails50,52in a non-proportionate manner). In this example, a set of values from zero (0) to 10 are shown, with an incrementation that includes more closely spaced intervals in the manipulable portion34(e.g., the fractional intervals of one-half or 0.5 as depicted between the positions of the track30representing the values 3 and 8). The manipulable portion34thereby occupies a higher proportion of the track30as compared with, for example, the slider UI control22shown inFIG.4and described above. This illustrates one effect of the non-proportionate scaling, namely that values in the non-manipulable portions36a,36bmay be provided with proportionately less space than the values in the manipulable portion34. The effect may be achieved by, e.g., changing the incrementation by either allowing a larger spacing between values and/or allowing more values to be included in the manipulable portion34(e.g., by permitting fractional values as shown inFIG.6). That is, the non-manipulable portion(s)36a,36bmay be represent underlying values in the numerical space beyond the corresponding limit(s)40,44with a different scale, spacing or other proportion than what is used for representing the underlying values in the numerical space that are selectable in the visual control space via the manipulable portion34. InFIG.6, the fractional value “5.5” corresponds to the position of the selector32, which in this example may have been input via the text entry box49, which illustrates the entry of the value “5.5”. As noted above, while certain example embodiments described herein identify a range and/or subrange of values that are, or contain, linear sequences (e.g., 1, 2, 3, 4), the (sub)range of values may be, or contain, non-linear sequences (e.g., geometric, exponential, logarithmic, sequences effecting an ease-in or ease-out or easy-ease, etc.).

For example, a maximum number of pixels or proportion of pixels dedicated to the non-manipulable portion(s)36can be set or provided as an input according to which application, which data set or which UI control21is being presented. Other formulae can be used to set the proportion of the non-manipulable portion(s)36, such as threshold percentage or a remainder of space after dedicating a threshold amount of space to the manipulable portion34.

As shown inFIGS.7and8, the non-proportionate scaling of values in the non-manipulable portion36can be applied to slider UI controls22that include only an upper limit44(e.g., as shown inFIG.7) as well as to slider UI controls22that include only a lower limit40(e.g., as shown inFIG.8). That is, the principles described herein concerning the non-proportionate scaling can apply to any one or more non-manipulable portions36to expand or increase the proportionate amount of the track30that is allocated to the manipulable portion34.FIG.7illustrates an example wherein the upper limit44is demarcated by a shaded upper non-manipulable portion36bwhileFIG.8illustrates an example wherein the lower limit40is represented by a shaded lower non-manipulable portion36aas well as a lower guardrail50to illustrate that various implementations are possible for presenting a slider UI control22that includes at least one limit40,44.

In the example shown inFIG.7, the lowest extent of the selectable portion of the track30corresponds to the minimum value42in the range of values38and the highest extent of the selectable portion of the track30corresponds to the upper limit44placed in the range of values38. Moreover, the upper limit44is placed along the track30between the minimum value42in the range of values38and the maximum value46, which corresponds to the highest extent of the track30. The placement of the upper limit44defines where the non-manipulable portion36bbegins. Since only an upper limit44has been placed along the track30, the manipulable portion34of the track30extends between the minimum value42in the range of values38and the upper limit44. It can be appreciated that the non-manipulable portion36bcan be considered a portion of the track30or can be considered a portion of the slider UI control22that is outside of the track30.

In the example shown inFIG.8, the lowest extent of the track30corresponds to the minimum value42in the range of values38and the lowest manipulable extent of the track30corresponds to the lower limit40placed within the range of values38. The highest extent of the track30corresponds to the maximum value46in the range of values38since no upper limit44is included in this example. The lower limit40is placed along the track30between the minimum value42in the range of values38and the maximum value46(and thus the highest extent of the track30) to separate the non-manipulable portion36afrom the manipulable portion34/to delineate between the non-manipulable portion36aand the manipulable portion34. Since only a lower limit40has been placed along the track30, the manipulable portion34of the track30extends between the lower limit40and the maximum value46in the range of values38. It can be appreciated that the non-manipulable portion36acan be considered a portion of the track30or can be considered a portion of the slider UI control22that is outside of the track30.

Referring now toFIG.9, a slider UI control22is shown in which a single non-manipulable portion36is presented within a central region of the track30, such that the track30includes a first manipulable portion34athat corresponds to values in the range of values38below a sub-range of values associated with the non-manipulable portion36and a second manipulable portion34bthat corresponds to values above the sub-range of values associated with the non-manipulable portion36. As before, some of the non-manipulable portion36, the first manipulable portion36a, and the second manipulable portion36bmay have different scaling (e.g. in accordance with the non-proportionate scaling principles described above).

FIG.10provides another example embodiment in which a pair of non-manipulable portions36a,36bare interspersed along the track30to create three manipulable portions34a,34b,34cto illustrate a non-proportionate scaling that can be applied to multiple areas or zones within the track30. A first pair of limits50a,52aand a second pair of limits50b,52bare also shown to represent boundaries around the non-manipulable portions36a,36bin this example.FIG.10thus illustrates that the slider UI control22can include multiple areas, zones or other regions within the same track30or can be presented as a composite of multiple slider UI controls22, e.g., two slider UI controls22where the upper manipulable portion34boverlaps or is contiguous with the lower manipulable portion34aof another slider UI control22to create the example embodiment shown inFIG.10. As before, some of the non-manipulable portions36and manipulable portions34may have different scaling (e.g. in accordance with the non-proportionate scaling principles described above).

FIG.11aillustrates operations that can be performed in presenting a UI control21(e.g., a slider UI control22) with a manipulable portion34along a track30. At block60, the UI20provided by an application12can have the processor302execute instructions to present a slider UI control22so as to extend between a first display position and a second display position to define a track30. The extent of the track30can correspond to a range of values and the track30can include a manipulable portion34and a non-manipulable portion36(or multiple manipulable portions36a,36b, . . . ). The instructions executed by the processor302can also present a selector32, which is movable along the track30within the manipulable portion34by detecting inputs to the one or more input devices16, to select a value within an allowable subrange of the range of values, which can be defined by at least one limit (e.g., a lower limit40, an upper limit44, or both upper and lower limits40,44). The limit(s)40,44define an extent of the allowable subrange within the range of values38to be allocated to the visual control space occupied by the manipulable portion34, and the non-manipulable portion36corresponds to a portion of the range of values that are beyond the limit(s)40,44.

The range of values to be used by the processor302in presenting the UI control21in the UI20, and the limit or limits40,44, may be fixed with a particular UI control21, such as a slider UI control22used for a fixed function in the UI20of the application12or may be dynamically adapted to data or contextual information, such as application data24. Optionally, as shown in dashed lines inFIG.11a, if the range of values38is to be determined in order to present the UI control21, the UI20or UI control21can obtain such range of values38at block62. Similarly, if the limit(s)40,44and/or a rounding factor (e.g., discussed above) are to be determined, the UI20or UI control21can have the processor302obtain such limit(s)40,44and/or rounding factor at block64. The range of values38, limits40,44, and/or rounding factor thus obtained by the processor302, may then be used by the processor302in presenting the UI control21via the display14, as set forth in block60.

FIG.11billustrates an example embodiment of operations that may be performed in executing block60to receive inputs applied to a UI control21and to have the processor302refresh the UI control21on the display14according to a selection. It can be appreciated that the operations illustrated inFIG.11bmay be executed by the processor302in response to an input detected in an application12or web browser308having a UI20that utilizes such a UI control21. At block61, the processor302(being utilized by, e.g., an application12or web browser308) detects an input applied to the UI21and determines at block62whether the input has been applied using the selector32or a text entry box49(e.g., as illustrated inFIGS.5and6). If the selector32has been used to apply the input to the UI control21, the processor302determines the corresponding value represented by the position at which the selector32has been placed along the track30, at block63. If the text entry box49has been used to apply the input to the UI control21, the processor302determines the corresponding track position for the selector32based on the entered value, at block64. It can be appreciated that the entered value may or may not coincide with an increment (e.g., rounding factor) that has been applied to the values represented in the manipulable portion34of the UI control21. As such, at block64, the processor302may apply a rounding or other adjustment in order to “snap” the selector32to the closest position. Alternatively, the processor302may be required to change the value (V)48to the adjusted value, and may also update the text entry box49to visually depict the adjustment.

For example, if an entered selection does not conform to allowable increments, the processor302may apply logic to automatically adapt the UI control21to fit within constraints dictated by the logic.

The determinations made in blocks63and64are then used in block65to determine a set of refresh parameters. The refresh parameters instruct the processor302as to how to refresh the UI control21at block66, in order to update the UI20being displayed, also referred to herein as “repainting” the UI control21. It can be appreciated that the UI control21can be partially or fully repainted in the UI20being displayed in the application12or via a web browser308.

For example, a partial repainting may include repainting only the manipulable portion34of the track30to depict a new positioning of the selector32as well as updating the value48while reusing the other visual elements of the UI control21that are not being changed as a result of the input detected at block61. It can be appreciated that in embodiments of the UI control21which do not include a text entry box49, blocks62and64may be omitted.

In another example embodiment, shown inFIG.12, the slider UI control22can be configured to detect attempts to select values within the non-manipulable portions36a,36bof the track30that are outside of the limits40,44and present a warning or alert70.FIG.12illustrates an enlarged view of an upper non-manipulable portion36band the corresponding upper limit44with an upper guardrail52. As shown using a dashed-line version of the selector32, a detected attempt to select a value beyond the limit44and guardrail52at step1can trigger the display of an alert70or other notification that provides a warning pertaining to the selection at step1. In this example, the alert70provides the following message under a “Warning” header: “You are selecting outside the recommended range”. A confirm option button72and a cancel option button74are provided with the alert70to enable the user18to confirm the desired out-of-range selection in the non-manipulable portion36b, or to cancel the operation. For example, an audio slider control22could be limited to 90% of the total available volume and an alert70can be provided to warn the user of potential hearing damage if they proceed within confirming the out-of-range selection.

By selecting the confirm option button72, the user18may be permitted to proceed with the selection attempted in step1, e.g., by providing access to the non-manipulable portion36bfor that selection. The non-manipulable portion36bcan be rescaled at this stage (not shown) to have the same or similar scaling as the manipulable portion34or can maintain its current scaling. Additional operations may be executed, such as providing an enlarged or magnified view of the non-manipulable portion36bfor this out-of-range selection.

A warning mechanism may also be provided using optional guardrails50,52, which are visually presented but not necessarily enforced or are not considered mandatory. For example, a recommended range within the range of values38may be presented between a set of “soft” boundaries (e.g., soft guardrails). The soft boundaries may also be presented along with a second set of “hard” boundaries placed outside of the soft boundaries, which are mandatory limits placed within the range of values38. That is, the range of values38may include multiple subranges defined by both soft and hard boundaries, with the subrange defined by the soft boundaries being within or inside of the subrange defined by the hard boundaries. In this way, a selection made within the portion of the track30that lies between the soft and hard boundaries can trigger a warning message, while a selection attempted outside of the hard boundaries can trigger an error that requires correction or prevents the selection from taking place at all.

In another example embodiment, the selector32can be constrained within the boundaries defined by the lower and upper limits40,44(e.g., using guardrails50,52), while a text entry box49(provided to enable entry of a selectable value in the slider UI control22) permits out-of-bounds values to be entered while presenting an error message. The error message may be in the form of a visual alert or notification, which may be cleared when the error is resolved. The error may be resolved by, e.g., entering a valid value into the text entry box49or moving the selector32to a value within the manipulable portion34. For example, if an error is triggered by an input applied to the text entry box49, the selector32may be held in place so as to not move while engaged with the text entry. If the error is resolved while still engaged, the selector34may then be moved to the correct position along the manipulable portion34. If the user disengages with the text entry operation (e.g., deletes the entered value(s)), the selector32may be moved to the incorrect position (i.e., to within a non-manipulable portion36) and both selector and text entry errors presented. The errors can be cleared by re-engaging with the text entry box49and entering a valid value or by moving the selector32to a valid position within the manipulable portion34.

Referring now toFIG.13, example operations are shown for enabling selections in the non-manipulable portion36as illustrated inFIG.12. At block80, the UI20or UI control21detects selection of a value or area within the non-manipulable portion36of the UI control21and has the processor302display an alert70associated with the selection at block82. The alert provided at block82can also enable the user18to acknowledge the alert70, thus confirming that the wish to proceed with the out-of-range selection. At block84the UI control21can have the processor302execute instructions to enable values outside the limit40,44to be selected in response to detecting acknowledgement of the alert70. Optionally, at block86, the processor302can rescale the values outside of the limit40,44, e.g., by enlarging or magnifying the non-manipulable portion36in the UI control21, or by otherwise adapting the track30dynamically to provide an ability to provide a more granular selection than what would be experienced by rescaling the values outside the limit(s)40,44as illustrated herein.

In another example embodiment, the slider UI control22illustrated herein can be adapted to provide multiple slider UI controls122,222as shown inFIG.14. InFIG.14, a first slider UI control122is shown above a second slider UI control222that may or may not be dependent or linked to selections made in the first slider UI control122. The second slider UI control222can be configured to rely on or otherwise be impacted by a selection from the first slider UI control122. In this example, the first slider UI control122is configured to include a track130and selector132that can be dragged along the track130or placed along the track130by selecting a corresponding spot on the track130(e.g., for a coarse adjustment). The first slider UI control122also include a lower guardrail144to impose a lower limit on the range of values that can be selected using the track130to provide a manipulable portion134. A total value (Z)148is displayed and for illustrative purposes indicates in parentheses that this value Z148is the sum total of two other values, namely a first value90a(X) and a second value92a(Y). The first value90aincludes a corresponding proportion90b(%) of the value148(Z) and the second value92aincludes a corresponding proportion92b(%) of the value148(Z). The first slider UI control122is used to change the proportion of Z that is allocated to either X or Y. In this way, as the selector132is moved to the right, the proportion92bof the total value148is decreased while the proportion90bof the total value148is commensurately increased with the corresponding values92a,90aupdated respectively. The lower guardrail144can be used to place a lower limit on the value X such that the proportion of Z that is allocated to X cannot be lower than a certain lower limit.

The first slider UI control22in this example is thus configured to incorporate two units (i.e., X and Y) on the same track130. That is, one side of the track130in this example is associated with a first unit (X) while the opposite side of the track130is associated with a second unit (Y). The first and second units (X+Y) together can amount to the value148(Z) that represents the sum of the first and second units. In this way, moving the selector132on the track130dynamically impacts the proportion of the sum allocated to each of the first and second units. In such a configuration, moving the selector132along the track130visually depicts such proportions based on the extent of the track130on either side of the selector132. For example, inFIG.14, the proportion allocated to X is higher than that allocated to Y as indicated by the selector132being located relatively closer to the end of the track130associated with Y.

In the example shown inFIG.14, the second slider UI control222is seeded, defaulted to, or otherwise impacted by the selection made in the first slider UI control122by being associated with value Y92. For example, value Y92may be a selectable proportion of Z148which sets an upper bound and thus the upper limit of the range of values depicted in the second slider UI control222. In this case, Y can be allocated to a pair of options, Y1 illustrated by value94aand proportion94b, and Y2 illustrated by value96aand proportion96b. The track230in the second slider UI control222does not include either an upper limit or a lower limit and thus the entire track230is dedicated to the manipulable portion234. It can be appreciated, however, that limits can be imposed on the second slider UI control222with or without non-linear or non-proportionate scaling applied as described herein depending on the nature of the underlying data associated with the selected values. For example, a pair of limits (not shown) can be applied to the second slider UI control222to impose that at least a minimum proportion of Y goes to either option Y1 or Y2. Such limits would in such a scenario correspond to first and second lower limits, each applied to a respective one of Y1 and Y2. Similar to the first slider UI control122, the second slider UI control222in this example includes two units (Y1 and Y2) on the same slider.

As illustrated inFIG.14, the slider UI controls122,222can further include one or more text fields for the values X, Y, Y1, Y2 (or percentages used to define same), to allow users to manually enter values to make granular modifications to their selections, which can in turn adjust the slider element132,232of the slider UI controls122,222. The visualized values90a,90b,92a,92b,94a,94b,96a,96b(that have been selected from the range of values using the slider UI control122,222) may provide a value in the range of values, a proportion or percentage of the upper end of the range of values, or both. For example, when providing a slider UI control122,222to obtain a selection, the selection may be associated with a selected value such as a temperature or volume level, or a proportion (e.g., percentage) of a total value allocated to one option or another option. As discussed above, in some example embodiments, moving the slider in the slider UI control122,222may increase or decrease the sum of the first and second units used for values X and Y (e.g., because the second unit is subject to some sort of multiplier or premium or adjustment that the first unit is not, or they have different multipliers/premiums/adjustments). In such embodiments, the UI control122,222may accordingly reference determined values corresponding to what either side represents (e.g., with details on the multiplier/premium/adjustment).

FIG.15illustrates an example set of operations that can be executed in presenting a slider UI control122,222such as that shown inFIG.14that couples or combines multiple slider UI controls22together with a dependent relationship. At block400, a first UI control122can be presented, e.g., according to the operations shown inFIG.11. At block402, a dependent UI control222that enables a selection of values at corresponding locations along a track230defined by the dependent UI control222can be presented. With the first UI control122and the dependent UI control222presented in this way, at block404, the UI20can detect a selection made in the first UI control122(e.g., to allocate proportions of Z to X and Y), so as to adjust at least one value associated with the dependent UI control222at block406, according to the selection made in the first UI control122. This effect is illustrated inFIG.14, described above.

More broadly, a UI20may include any plurality of UI controls22, each of which may operate independently of other UI controls22or may be dependent on one or more other UI controls22. For example, sets of UI controls22can be grouped together. Similarly, a collection of UI controls22may be presented, with groups and/or sub-groups within the collection. Such groups or sub-groups of UI controls22may be dependent on other groups or sub-groups, be dependent on individual UI controls22, or be completely independent of each other. For example, a first UI control22may be presented with a group of dependent UI controls22linked to the first UI control such that one or more of the individual dependent UI controls22in the group are affected by an input made in the first UI control22.

FIG.16illustrates an example implementation of the multiple slider UI controls122,222shown inFIG.14, configured for allocating proportions of an employee's compensation148between salary90aand equity92a. In such an implementation, the manipulable portion34of the UI control may be user- or item-specific, e.g., in the case of employee compensation. In such a case, a user with a higher compensation may be disadvantaged by linearly spaced guardrails as a greater set of values are placed into the same manipulable portion as those with a lower compensation total and thus the non-proportionate scaling described herein can be applied, in this example to multiple slider UI controls122,222. InFIG.16, reference numerals fromFIG.14are repeated to illustrate the application of the allocation example to the multiple slider UI control122,222configuration introduced inFIG.14. The selector132can be moved along the track130as discussed above, to change the proportions90band92band corresponding numerical salary and equity values90a,92a. As illustrated, as the position of the selector132moves towards the right, the proportion of the base salary increases and when moved towards the left, the proportion of the base salary decreases while the equity portion increases. A guardrail150is provided towards the base salary portion of the track130to represent a lower limit on the proportion90bor value90athat can be attributed to base salary, e.g., to provide a minimum living wage as a mandate or other measure such as a regulatory or policy requirement. The second dependent slider UI control222in this example is associated with which value92ais attributed to equity based on the selection made in the first slider UI control122. In this example, the dependent slider UI control222is set at the full amount of equity92aselected using the first slider UI control122towards restricted stock units (RSUs)94awith zero being attributed to options96a. This initial position for the selector232may be provided as a default and can be adjusted to the left to decrease the proportion94battributed to RSUs94aand to increase the proportion96battributed to options96a.

The UI20shown inFIG.16can be provided in an application12provided to users18as a tool to make selections, such as in this example, for allocating compensation. The presentation of multiple units in the same multi-slider UI control122,222provides an intuitive interactive experience to users18as the values90a/90b,92a/92b,94a/94b,96a/96bcan be dynamically updated and displayed to the user18as selections are made using the sliders132,232. Moreover, the provision of text entry boxes provides further granularity and control over the selections to provide an improved user experience when compared to proportionate allocation of manipulable and non-manipulable portions34,36. Additionally, non-proportionate spacing of guardrails50,52allows the UI control22to be presented using less screen space, which may allow additional UI controls22or other UI elements to be included in the UI20, without sacrificing usability of the UI controls22. The inclusion of limits40,44and guardrail150also allows the system providing the UI20to impose restrictions or boundaries on the selections to further enhance the intuitive nature of the interaction, since, for example, a user can immediately visualize how the guardrail150affects their ability to allocate the total value Z to, in this case, the leftmost value (X), namely the base salary in the allocation example ofFIG.16. The guardrails150and values defining the range of values and proportions available to each unit can be controlled by the system using user-specific data such that a module or engine (utilizing a processor302) used to generate the guardrails150and values Z, X, and Y can adapt the UI control22to a particular scenario, item, or user.

Referring now toFIG.17, the computing environment10is illustrated with the application12and UI20being coupled to a human resources management system (HRMS)152, e.g., within an enterprise environment. The HRMS152can be accessed to obtain user data154to determine the range of values, default allocations, limits and other contextual or profile data concerning an employee. That is, the application12in this example provides a compensation selection feature, using the UI20and UI control(s)21such as the primary/secondary slider UI controls122,222shown inFIGS.14and16. The HRMS152can also be coupled to an allocation engine150, which determines the guardrails156based on the user data154. It can be appreciated that the application12and allocation engine150are shown separately inFIG.17for ease of illustration and could instead be integrated into the same computing entity. The allocation engine150can be used to obtain the user data154and to generate the guardrails156in order to adapt the application12to an organization, employee, or user18. The components shown inFIG.17can be part of the same computing device within the computing environment10or can be connected to each other using communication network access, via internal and/or external network connectivity. Such communication network(s) may include a telephone network, cellular, and/or data communication network to connect different types of client- and/or server-type devices. For example, the communication network may include a private or public switched telephone network (PSTN), mobile network (e.g., code division multiple access (CDMA) network, global system for mobile communications (GSM) network, and/or any 3G, 4G, or 5G wireless carrier network, etc.), WiFi or other similar wireless network, and a private and/or public wide area network (e.g., the Internet).

It can be appreciated that the interconnected configuration between the application12and a separate system such as the HRMS152can be applied to other enterprise or other systems, for example to permit a user to make selections in a banking or insurance application, or to select options for a service provided by a service provider.

FIG.18illustrates a set of operations that can be executed in communicating with an allocation engine150to present a UI control22using data obtained from an HRMS152. At block500, the allocation engine obtains user data154from the HRMS152. The application12may also obtain such user data154at block502, either directly from the HRMS152or via the allocation engine150. The allocation engine150may then obtain metrics for the UI control22at block504, e.g., constraints on values that can be selected or should not be selected. At block506, the allocation engine150determines the guardrails144, if any, and provides the guardrails144to the application12to be applied to the U control21in the UI20at block508.

At block510, the application12presents the UI control21, e.g., perFIG.11or15, which uses the user data154and guardrails144(if any). It can be appreciated that as illustrated in dashed lines, the allocation engine150can be responsible for determining both the user-related information and guardrails to the application12, e.g., by integrating with the HRMS152and/or providing a connection into the HRMS152for the application12, e.g., via an application programming interface (API) or developer's toolkit, etc.

For simplicity and clarity of illustration, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. In addition, numerous specific details are set forth in order to provide a thorough understanding of the examples described herein. However, it will be understood by those of ordinary skill in the art that the examples described herein may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the examples described herein. Also, the description is not to be considered as limiting the scope of the examples described herein.

It will be appreciated that the examples and corresponding diagrams used herein are for illustrative purposes only. Different configurations and terminology can be used without departing from the principles expressed herein. For instance, components and modules can be added, deleted, modified, or arranged with differing connections without departing from these principles.

It will also be appreciated that any module or component exemplified herein that executes instructions may include or otherwise have access to computer readable media such as transitory or non-transitory storage media, computer storage media, or data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transitory computer readable medium which can be used to store the desired information and which can be accessed by an application, module, or both. Any such computer storage media may be part of the computing environment10, engine150, system152, any device or component thereof or related thereto, etc., or accessible or connectable thereto. Any application or module herein described may be implemented using computer readable/executable instructions that may be stored or otherwise held by such computer readable media.

The steps or operations in the flow charts and diagrams described herein are provided by way of example. There may be many variations to these steps or operations without departing from the principles discussed above. For instance, the steps may be performed in a differing order, or steps may be added, deleted, or modified.

Although the above principles have been described with reference to certain specific examples, various modifications thereof will be apparent to those skilled in the art as having regard to the appended claims in view of the specification as a whole.