Computing systems are currently in wide use. Computing systems are often used by organizations in order to assist them in carrying out tasks, activities, and workflows.
Some computing systems have entities or data records that represent physical objects or physical units. For instance, some organizations use computer systems that have entities or records that represent products, equipment, or other physical units.
In such systems, a computing system may control a surfacing system to surface the entities or records for user interaction. In doing so, the surfacing system surfaces not only a description of the physical unit, but often a set of properties that correspond to, and can further define, the physical unit. The surfacing system may surface the properties in a variety of different contexts. Currently, the list of properties corresponding to physical units may be relatively lengthy. In fact, it may be very difficult for the surfacing system to display all of the properties on a display screen, especially the display screen of a mobile device (such as a mobile phone, a tablet computer, etc.) where the display real estate is relatively limited.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
A user interaction is detected, selecting a unit with a user input mechanism. A current context is identified and a set of property categories is identified. The set of property categories is arranged in an order. Properties for the selected unit, and corresponding attributes for those properties, are retrieved, categorized into the set of categories (based on the attributes and the context) and surfaced, in the order, for user interaction. Visual indicia can be displayed, identifying one or more categories that the properties belong to.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
In the example shown in
Property creation and configuration system 120 illustratively includes property configuration component 146, metadata generator 148, property value detector 150, and it can include other items 152. Property surfacing system 126 illustratively includes property identifier component 154, context-based importance engine 156, ordering component 158, display system controller 159, visual indicia generator 160, and it can include other items 162. Before describing the operation of architecture 100 in more detail, a brief description of a number of the items in architecture 100, and their operation, will first be provided by way of overview.
Entities 128 can illustratively represent physical units or physical items, or other items within computing system 101. For instance, when an organization that uses computing system 101 manufactures or sells products, then entities 128 can represent the products. Properties 130 can illustratively represent physical (or other) characteristics of the products. By way of example, if a particular entity 128 represents a tablet computer, then the properties 130 (which can also be defined in metadata 140) illustratively represent the color of the tablet computer, the software installed on the tablet computer, the battery size, the screen size, among a whole host of other physical characteristics of the product. Of course, where the entity 128 represents a different unit, then the properties 130 illustratively represent the characteristics of that particular unit.
Unit hierarchy 134 illustratively represents a hierarchy of the various units or families of units represented in computing system 101, for the purposes of organizing them. By way of example, the unit hierarchy 134 may represent electronic units under a hierarchy, such as the one below:
Electronics->Computers->Tablet Computers->Brand X Tablet Computers->Brand X, Model Y, Tablet Computers . . . .
It can thus be seen that the nodes to the left in the above hierarchy are ancestor nodes to those on the right. The nodes to the right are descendent nodes relative to the nodes on the left. In an example where computing system 101 is used by a relatively large organization, such as an enterprise organization, computing system 101 may have thousands of different unit hierarchies to classify all of the various products of the organization.
User 106 or other computing system 107 may wish to obtain access to entities 128, and the corresponding properties 130, in a variety of different contexts. For instance, when another computing system 107 is an inventory system, then it may wish to obtain the entities 128 and properties 130 in the context of an inventory system. When user 106 is a sales user, then user 106 may wish to obtain access to entities 128 and the corresponding properties 130, in a sales context. When user 106 or other computing system 107 is a manufacturing user or system, then that particular user or system may wish to access entities 128 and corresponding properties 130, in the context of manufacturing. It may be that, based upon the context, different properties 130 have a different importance level (for their corresponding unit) than in another context. Therefore, in one example, configurable property-to-category map 142 identifies an ordering of properties 130 indicating how important they are in different contexts. In one example, the properties are grouped into different categories, based on their attributes and the current context, using map 142. Those categories are then surfaced for a user 106 or another computing system 107. Therefore, if they are to be surfaced in the sales context, the properties 130 may be ordered in a particular way. However, if they are to be surfaced in an inventory or manufacturing context, then they may be ordered in a different way.
Application component 110 illustratively runs applications 130 that may perform processes 132, workflows 136, etc. It may also access unit hierarchy 134 and operate on entities 128, metadata 140, or other records.
Property creation and configuration system 110 illustratively generates user interface displays, with user input mechanisms, that user 106 can interact with. For instance, when property receiving component 146 detects user interaction with some of the user input mechanisms, this may indicate that user 106 is providing inputs to configure a set of properties for a given entity 128. The user may be adding properties, or attributes on properties, specifying default values for attributes of the properties, deleting properties or attributes, changing a categorization of the properties, etc. In response, metadata generator 148 illustratively generates metadata 140 for properties 130, based upon the user configuration inputs. When the user is specifying a value for a property (such as a default value), property value detector 150 detects that and saves it for the particular property 130 being configured.
During runtime, property surfacing system 126 detects user interactions, (or interactions by other computing systems 107) indicating that certain properties are to be surfaced. Context-based importance engine 156 accesses context detector component 122, which detects a particular context in which the properties are to be surfaced. Context-based importance engine 156 then accesses the configurable property-to-category map 142 to identify a property order, in which the properties are to be surfaced based upon the current context. Property identifier component 154 then identifies the set of properties 130 that are to be surfaced, and categorizes them, and ordering component 158 orders those properties, for surfacing, based upon their particular attributes. Visual indicia generator 160 can illustratively generate visual indicia indicating an importance level, a categorization, or another characteristic of the properties or property attributes.
Display system controller 159 then controls display system 112, and user interface component 114, to surface the properties for user 106 or other computing system 107, in the particular order, based upon the context in which they are accessed. This can be advantageous in a variety of different ways. For instance, certain entities may have a relatively lengthy list of properties. Therefore, displaying them all on a single user interface display 102, or a given display device, can be difficult. This may be exacerbated where the display device is one with relatively limited display real estate, such as on a mobile phone, a tablet computer, etc. By displaying the properties 130 in a specific order, based upon their importance in the context in which they are accessed, property surfacing system 126 can place the most important properties, given the particular context in which they are being surfaced, at the top of the display. Therefore, a user 106 or other computing system 107 need not traverse a lengthy list of properties in order to access the most important properties, given their context. This not only improves the efficiency of the operation of computing system 101 relative to user 106 and other computing systems 107, but it also improves the performance of system 101, itself. For instance, because system 126 controls system 112 to display the properties in a desired order, it is more likely that user 106 or other computing systems 107 can access the properties from a single display, even without scrolling the display. This reduces rendering overhead. Similarly, it also may advantageously result in fewer searches being conducted by user 106 and computing system 107 for relevant properties. This can reduce network traffic and round trips to data store 118. This further reduces computing and memory overhead as well as rendering overhead.
View configuration component 124 can also illustratively generate user interface displays, with user input mechanisms, so that user 106 can configure the view of the properties. For instance, it may allow the user to scroll through a list of properties, to modify the size of the property display, etc.
Display system 112 illustratively detects a user interaction indicating that the user wishes to create or otherwise configure a set of properties 130 in computing system 101. This is indicated by block 182. By way of example, it may be that user 106 wishes to configure a set of properties for a family of products in unit hierarchy 134. This is indicated by block 184. It may also be that user 106 wishes to configure a set of properties for a particular unit represented by a leaf node in unit hierarchy 134. This is indicated by block 186. It may be that user 106 wishes to perform other property configurations as well, and this is indicated by block 188.
User interface display 190 also shows that the “tablets” family in unit hierarchy 134 can have a set of properties 196 assigned to it. In the example shown in FIG. 3A, no properties have yet been assigned to that tablet family node. However, display 190 also illustratively includes a user input mechanism, such as add button 198, that allows the user to add one or more properties to the “tablet” family node in unit hierarchy 134.
Returning again to the flow diagram of
It will be noted that, in the examples shown in these Figures, the user illustratively configures properties and attributes for all contexts at once. However, in another example, the user can configure the properties and attributes differently for different contexts. In such an example, property configuration component 146 generates a user interface display with a user input mechanism that allows a user to specify a context that the configuration corresponds to. For instance, in one context, a property value may be required and have no default value. In another context, the same property may be optional and have a default value specified for it, etc.
Attributes 210 also indicate whether the property can have values that are chosen from a set of options. This is indicated generally at 212. It can also indicate whether the property has a pre-defined default value, and what that default value is. This is indicated generally at 214. Attributes 210 also illustratively indicate a family to which the property belongs, and this is indicated generally at 216. It can also include a description of the property or family.
Further, where the attributes shown generally at 212 indicate that the value of the given property can be chosen from a set of options, then attributes 210 also illustratively include an option set shown generally at 218, which can be displayed when a user wishes to enter a value for the property. In the specific example shown in
In all of the examples discussed above, when the user enters configuration information to configure one or more attributes, metadata generator 148 in property creation and configuration system 120 illustratively generates corresponding metadata 140 to represent that particular configuration input. For instance, when the user provides a configuration input indicating that a particular property is required, then generator 148 generates metadata indicating that, in the relevant attribute. Metadata generator 148 then saves the metadata 140 back to data store 118 where it now represents the newly configured property, and where it is placed in (or otherwise related to) its proper position in unit hierarchy 134, so that it can be used by the runtime system in surfacing properties, applying inheritance of properties, etc.
Returning to the flow diagram of
Once the inputs are detected, then property configuration component 146 performs the actions indicated by those configuration inputs. This can include, for instance, adding a property or attribute, deleting one, or otherwise configuring or modifying a property or its attributes. This is indicated by block 250. Metadata generator 148 then generates metadata representing the configuration actions that were just taken. This is indicated by block 252.
System 120 then saves the configured property back to its position (or otherwise relates it to its position) in unit hierarchy 134, for use by the runtime system. This is indicated by block 254.
It should be noted that, in one example, when the user is configuring a property by setting its attribute values, some of the attribute values may be automatically set by property value detector 150. For instance, property value detector 150 may interface with an inventory computing system (representing by other computing systems 107), when the user is configuring a “battery” property. The inventory system may indicate that there are only certain types of batteries that are currently in inventory. Therefore, property value detector 150 may illustratively automatically define the option set for the “battery” property to include only the particular types of batteries that are available. The same can be done for substantially any property value or property attribute value.
Display system 112 then displays a unit selection user interface display with unit selection user input mechanisms. This is indicated by block 266. For instance, the display may allow user 106 to select a product (or other unit) and see the description of that product, along with its properties, etc. Display system 112 then detects a user interaction selecting a unit for display. This is indicated by block 268. Display system 112 then detects a user interaction indicating that the user is requesting that the properties for the selected unit be surfaced for interaction by the user. This is indicated by block 270.
In one example, display element 282 is illustratively an actuatable link. When the user actuates it (such as by tapping it, clicking on it, etc.), this acts as the detected user interaction requesting surfacing of unit properties as described above with respect to block 270 in
Returning again to the flow diagram of
The detected context may also be a context based upon the current application 110 being used. This is indicated by block 300. For instance, if the current application 110 is used to perform a given process or workflow, this may determine the particular context in which the properties are being surfaced.
The context may be a context within an application, as indicated by block 302. For instance, if the application is a manufacturing application, it may be accessing the properties in a context in which raw materials are being ordered for manufacturing. It may also access the properties in a context in which the manufactured products are being packaged and shipped. Thus, the particular context within an application, may determine the context within which the properties are being accessed as well. The context may also be a system context 304. For instance, the system context may be representative of a particular processing load under which system 101 is currently operating. It may also identify system characteristics, such as a screen size of a display device on which the properties will be rendered. Other system characteristics may define the context as well. Of course, the context may be defined in other ways and this is indicated by block 306.
Once the context is identified by component 122, context-based importance engine 156 then identifies a category set and a category importance rank based on that context. This is indicated by block 308. For instance, the attributes of a particular property may be used to categorize the property into one of a variety of different categories. Engine 156 can access context-to-ordering map 142 to identify the particular categories within which the properties are to be placed for surfacing in the present context. It can also use map 142 to identify an order of importance of the property categories in the present context. If the properties are being surfaced in a sales context, then the properties may be categorized in a different way based on their attributes and a first category of properties may be the most important. However, if the properties are being accessed in a manufacturing context, then the properties may be categorized in a second way based on their attributes and it may be that another set of properties are most important. Thus, engine 156 not only identifies the various categories into which the properties are to be placed, given the present context, but it thus obtains a rank order for those categories indicating how important they are in the present context. In another example, the rank order for the categories is the same in all contexts and it is the categorization of the properties into those categories that varies based on context. In yet another example, the categorization is also the same, based on the attributes, for all contexts.
Property identifier component 154 then accesses the entity 128 representing the selected product (or unit) and retrieves the properties 130 for that entity, along with the property attributes represented by metadata 140. This is indicated by block 310 in
Property identifier component 154 then places the properties in the categories identified by engine 156, based upon the property attributes. This is indicated by block 318. It can place the properties in the different categories in alphabetical order, as indicated by block 320, or in other ways, as indicated by block 322.
In one example, the properties 130 indicate whether they are to have values that are automatically detected and entered, or whether they need to be entered in other ways. For instance, it may be that the “screen size” property has an option set of values that are to be determined based upon what is currently in stock. Therefore, component 154 can access other computing systems 107 (such as inventory computing systems, etc.) to determine the various screen sizes that are currently in stock for the ACME 5 tablet computer. It can then populate the option set attribute for the “screen size” property with only those screen sizes that are currently in stock. Thus, when user 106 sells an ACME 5 tablet computer, user 106 can only sell one that has a screen size that is currently available. Determining whether any of the property or attribute values are to be automatically detected is indicated by block 324. If so, automatically detecting the property or attribute values is indicated by block 326. Detecting them from available inventory is indicated by block 328. Detecting them based on other availability criteria or in other ways is indicated by blocks 330 and 332, respectively.
Display system controller 159 in surfacing component 126 then controls display system 112 and user interface component 114 to surface the categories of properties, and any default values, in the order identified by engine 156. In doing so, ordering component 158 orders the categories according to the specified order, and orders the properties and attributes within the categories as well. They are ordered according to the importance rank for the present context. This is indicated by block 334. Controlling the display system to surface the properties is indicated by block 336.
In one example, the categories can include a category where a property value is required in the present context, and no default value is provided. This is indicated by block 328. Another category can include a property that has a required value, in the present context, but where a default value is also provided. This is indicated by block 340. Another category may include a property whose value is optional in the present context, and which has no default value. This is indicated by block 342. Another category may include a property that has an optional value in the present context, but where a default value is provided. This is indicated by block 344. Another category may include a read only category, such as one that is intended to provide information to the user, but where no value can be changed. This is indicated by block 346. Of course, there can be other categories as well, as indicated by block 348.
By placing the properties in these categories based on their attributes, and by surfacing the properties, in this specified order, this can result in improved efficiency not only for system 101, but for user 106 and other computing systems 107, that are accessing the properties. By way of example, if the particular context is within a workflow or process, and the workflow or process cannot be completed without properties with required values having values entered for them, then this category of properties (where a value is required and no default value is provided) may be a most important category in this context. With the present system, this category of properties will advantageously be identified and displayed first (e.g., higher up) on the property display portion (such as display portion 288 shown in
A user can advantageously access the most important properties, given a present context, because they will be surfaced at the top of the property display. This improves user efficiency. In addition, it may be that the user can access all important properties without ever having to scroll the property display, thus reduces computing and memory overhead need for rendering. Further, because the user need not search for important properties, this can reduce round trips to data store 118, reduce network traffic, increase the performance of the system, etc.
In one example, visual indicia generator 160 can also display visual indicia that identify some or all of the categories into which the properties fall. This is indicated by block 350 in
Also, in one example, the user 106 can illustratively interact with the property display portion 288. This is indicated by block 354 in the flow diagram of
Another user interaction with property display portion 288 may be that the user enters a property value where one is permitted or needed. This is indicated by block 362. For instance, the user may enter a value for the “color” property or it may change the default value for the “screen size” property, etc. Of course, the user can interact with property display portion 288 in other ways. This is indicated by block 364.
The present discussion has mentioned processors and servers. In one embodiment, the processors and servers include computer processors with associated memory and timing circuitry, not separately shown. They are functional parts of the systems or devices to which they belong and are activated by, and facilitate the functionality of the other components or items in those systems.
Also, a number of user interface displays have been discussed. They can take a wide variety of different forms and can have a wide variety of different user actuatable input mechanisms disposed thereon. For instance, the user actuatable input mechanisms can be text boxes, check boxes, icons, links, drop-down menus, search boxes, etc. They can also be actuated in a wide variety of different ways. For instance, they can be actuated using a point and click device (such as a track ball or mouse). They can be actuated using hardware buttons, switches, a joystick or keyboard, thumb switches or thumb pads, etc. They can also be actuated using a virtual keyboard or other virtual actuators. In addition, where the screen on which they are displayed is a touch sensitive screen, they can be actuated using touch gestures. Also, where the device that displays them has speech recognition components, they can be actuated using speech commands.
A number of data stores have also been discussed. It will be noted they can each be broken into multiple data stores. All can be local to the systems accessing them, all can be remote, or some can be local while others are remote. All of these configurations are contemplated herein.
Also, the figures show a number of blocks with functionality ascribed to each block. It will be noted that fewer blocks can be used so the functionality is performed by fewer components. Also, more blocks can be used with the functionality distributed among more components.
The description is intended to include both public cloud computing and private cloud computing. Cloud computing (both public and private) provides substantially seamless pooling of resources, as well as a reduced need to manage and configure underlying hardware infrastructure.
A public cloud is managed by a vendor and typically supports multiple consumers using the same infrastructure. Also, a public cloud, as opposed to a private cloud, can free up the end users from managing the hardware. A private cloud may be managed by the organization itself and the infrastructure is typically not shared with other organizations. The organization still maintains the hardware to some extent, such as installations and repairs, etc.
In the example shown in
It will also be noted that architecture 100, or portions of it, can be disposed on a wide variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers, or other mobile devices, such as palm top computers, cell phones, smart phones, multimedia players, personal digital assistants, etc.
Under other embodiments, applications or systems are received on a removable Secure Digital (SD) card that is connected to a SD card interface 15. SD card interface 15 and communication links 13 communicate with a processor 17 (which can also embody processors 108 from
I/O components 23, in one embodiment, are provided to facilitate input and output operations. I/O components 23 for various embodiments of the device 16 can include input components such as buttons, touch sensors, multi-touch sensors, optical or video sensors, voice sensors, touch screens, proximity sensors, microphones, tilt sensors, and gravity switches and output components such as a display device, a speaker, and or a printer port. Other I/O components 23 can be used as well.
Clock 25 illustratively comprises a real time clock component that outputs a time and date. It can also, illustratively, provide timing functions for processor 17.
Location system 27 illustratively includes a component that outputs a current geographical location of device 16. This can include, for instance, a global positioning system (GPS) receiver, a LORAN system, a dead reckoning system, a cellular triangulation system, or other positioning system. It can also include, for example, mapping software or navigation software that generates desired maps, navigation routes and other geographic functions.
Memory 21 stores operating system 29, network settings 31, applications 33, application configuration settings 35, data store 37, communication drivers 39, and communication configuration settings 41. Memory 21 can include all types of tangible volatile and non-volatile computer-readable memory devices. It can also include computer storage media (described below). Memory 21 stores computer readable instructions that, when executed by processor 17, cause the processor to perform computer-implemented steps or functions according to the instructions. Similarly, device 16 can have a client system 24 which can run various applications or embody parts or all of system 101. Processor 17 can be activated by other components to facilitate their functionality as well.
Examples of the network settings 31 include things such as proxy information, Internet connection information, and mappings. Application configuration settings 35 include settings that tailor the application for a specific enterprise or user. Communication configuration settings 41 provide parameters for communicating with other computers and include items such as GPRS parameters, SMS parameters, connection user names and passwords.
Applications 33 can be applications that have previously been stored on the device 16 or applications that are installed during use, although these can be part of operating system 29, or hosted external to device 16, as well.
Additional examples of devices 16 can also be used. Device 16 can be a feature phone, smart phone or mobile phone. The phone can include a set of keypads for dialing phone numbers, a display capable of displaying images including application images, icons, web pages, photographs, and video, and control buttons for selecting items shown on the display. The phone can include an antenna for receiving cellular phone signals such as General Packet Radio Service (GPRS) and 1Xrtt, and Short Message Service (SMS) signals. In some examples, the phone also includes a Secure Digital (SD) card slot that accepts a SD card.
The mobile device can also be a personal digital assistant (PDA) or a multimedia player or a tablet computing device, etc. (hereinafter referred to as a PDA). The PDA includes an inductive screen that senses the position of a stylus (or other pointers, such as a user's finger) when the stylus is positioned over the screen. This allows the user to select, highlight, and move items on the screen as well as draw and write. The PDA also includes a number of user input keys or buttons which allow the user to scroll through menu options or other display options which are displayed on the display, and allow the user to change applications or select user input functions, without contacting the display. The PDA can also include an internal antenna and an infrared transmitter/receiver that allow for wireless communication with other computers as well as connection ports that allow for hardware connections to other computing devices. Such hardware connections are typically made through a cradle that connects to the other computer through a serial or USB port. As such, these connections are non-network connections.
Note that other forms of the devices 16 are possible.
Computer 810 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 810 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media is different from, and does not include, a modulated data signal or carrier wave. It includes hardware storage media including both volatile and nonvolatile, 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. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 810. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computer 810, such as during start-up, is typically stored in ROM 831. RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 820. By way of example, and not limitation,
The computer 810 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,
Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A visual display 891 or other type of display device is also connected to the system bus 821 via an interface, such as a video interface 890. In addition to the monitor, computers may also include other peripheral output devices such as speakers 897 and printer 896, which may be connected through an output peripheral interface 895.
The computer 810 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 810. The logical connections depicted in
When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873, such as the Internet. The modem 872, which may be internal or external, may be connected to the system bus 821 via the user input interface 860, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 810, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
It should also be noted that the different embodiments described herein can be combined in different ways. That is, parts of one or more embodiments can be combined with parts of one or more other embodiments. All of this is contemplated herein.
Example 1 is a computing system, comprising:
a display system that generates user interface displays;
a property identifier component that detects a user access interaction to access properties corresponding to a selected unit and that obtains the properties and corresponding attributes and categorizes the properties into a set of categories based on the corresponding attributes and based on a context in which the user access interaction is detected;
an ordering component that orders the properties in the categories in the set of categories and orders the categories into a category order; and
a display system controller that generates a user interface property display and that controls the display system to surface the properties on the user interface property display by displaying the categories of properties in the category order.
Example 2 is the computing system of any or all previous examples wherein the property identifier categorizes the properties into the set of categories, wherein the set of categories comprises:
a first category in which a property value is required for the context and no default value is provided for the property; and
a second category in which a property value is required for the context and a default value is provided for the property.
Example 3 is the computing system of any or all previous examples wherein the property identifier categorizes the properties into the set of categories, wherein the set of categories comprises:
a third category in which a property value is optional for the context and no default value is provided for the property;
a fourth category in which a property value is optional for the context and a default value is provided for the property.
Example 4 is the computing system of any or all previous examples wherein the ordering component orders the categories into the category order by placing the categories in order from the first category to the fourth category.
Example 5 is the computing system of any or all previous examples wherein the property identifier categorizes the properties into the set of categories wherein the set of categories includes a fifth category that has a read only value.
Example 6 is the computing system of any or all previous examples wherein the ordering component orders the properties alphabetically within each category.
Example 7 is the computing system of any or all previous examples and further comprising:
a visual indicia generator that generates visual category indicia on the user interface property display, the visual category indicia being indicative of which of the categories a given property belongs to.
Example 8 is the computing system of any or all previous examples and further comprising:
a context detector component that detects the context in response to the user access interaction.
Example 9 is the computing system of any or all previous examples wherein the context detector detects the context based on at least one of an application through which the user access interaction is detected and a computing system context when the user access interaction is detected.
Example 10 is the computing system of any or all previous examples and further comprising:
a context-based importance engine that identifies the category order based on the context detected by the context detector.
Example 11 is the computing system of any or all previous examples and further comprising a context-to-ordering map that maps which properties are in which categories, based on the corresponding attributes, in a given context and wherein the property identifier categorizes the properties by accessing the configurable context-to-ordering map.
Example 12 is the computing system of any or all previous examples wherein units are organized based on a unit hierarchy, with ancestor nodes and descendent nodes, in the computing system and further comprising:
a property configuration system detects user interactions assigning properties and corresponding attributes to the ancestor nodes and descendent nodes and wherein descendent nodes inherit properties assigned to its ancestor nodes.
Example 13 is the computing system of any or all previous examples wherein the property configuration system comprises:
a property configuration component that detects user configuration inputs indicative of user configuration of attributes on a corresponding property of a given unit; and
a metadata generator that generates metadata for the corresponding property, indicative of the configuration of the attributes.
Example 14 is a computer implemented method, comprising:
detecting a user access interaction to access properties corresponding to a selected unit represented in a computing system, the properties representing physical characteristics of the selected unit;
detecting a context in which the user access interaction is detected;
obtaining the properties and corresponding attributes corresponding to the selected unit;
categorizing the properties into a set of categories based on the corresponding attributes and based on the detected context in which the user access interaction is detected;
ordering the categories into a category order; and
controlling a display system to surface the properties on a user interface property display by displaying the categories of properties in the category order.
Example 15 is the computer implemented method of any or all previous examples wherein controlling the display system comprises:
controlling the display system to surface the properties on a user interface property display by displaying the categories of properties in the category order by: displaying a first category in which a property value is required for the context and no default value is provided for the property;
displaying, after the first category, a second category in which a property value is required for the context and a default value is provided for the property;
displaying, after the second category, a third category in which a property value is optional for the context and no default value is provided for the property; and
displaying, after the third category, a fourth category in which a property value is optional for the context and a default value is provided for the property.
Example 16 is the computer implemented method of any or all previous examples and further comprising:
detecting user assignment interactions assigning properties and corresponding attributes to ancestor nodes and descendent nodes in a unit hierarchy in the computing system, the ancestor nodes representing families of units and the descendent nodes representing particular instances of units;
detecting user configuration inputs indicative of user configuration of attributes on a corresponding property of a given unit; and
generating metadata for the corresponding property, indicative of the configuration of the attributes.
Example 17 is the computer implemented method of any or all previous examples wherein obtaining the properties comprises:
identifying a location of a node in the unit hierarchy corresponding to the selected unit;
aggregating properties and corresponding attributes from the node representing the selected unit and its ancestor nodes in the unit hierarchy.
Example 18 is the computer implemented method of any or all previous examples wherein controlling the display system comprises:
controlling the display system to display, on the user interface property display, visual category indicia indicative of which of the categories a given property belongs to.
Example 19 is a computer readable storage medium that stores computer executable instructions which, when executed by a computer, cause the computer to perform a method, comprising:
detecting a user access interaction to access properties corresponding to a selected unit represented in a computing system;
detecting one of a computing system context and an application context in which the user access interaction is detected;
obtaining a set of properties and corresponding attributes corresponding to the selected unit;
categorizing properties in the set of properties into groups, each group representing a category, based on the corresponding attributes and based on the detected context in which the user access interaction is detected;
ordering the categories into a category order; and
controlling a display system to surface the properties on a user interface property display by displaying the categories of properties in the category order by: displaying, on a user interface display device, a first category in which a property value is required for the context and no default value is provided for the property;
displaying, after the first category on the user interface display device, a second category in which a property value is required for the context and a default value is provided for the property;
displaying, after the second category on the user interface display device, a third category in which a property value is optional for the context and no default value is provided for the property; and
displaying, after the third category on the user interface display device, a fourth category in which a property value is optional for the context and a default value is provided for the property.
Example 20 is the computer readable storage medium of any or all previous examples wherein detecting one of a computing system context and an application context comprises:
detecting an application through which the user access interaction is detected.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.