Computer systems are currently in wide use. Many computer systems have forms or other display mechanisms by which information in the computer system is presented to a user.
As one example, some computer systems include business systems. Business systems can include, for instance, enterprise resource planning (ERP) systems, customer relations management (CRM) systems, line-of-business (LOB) systems, among others. These types of systems can have hundreds or thousands of different forms that are presented to users in different contexts. Each form can have many different (in fact hundreds or thousands of) controls. It can thus be difficult for developers to keep track of how their modifications to such systems affect the forms that actually present the information to the user.
Business systems are but one example of such systems. For instance, electronic mail systems and other messaging systems, as well as electronic storefronts, document management systems and a large variety of other computer systems have forms that present data to users as well. In all of these types of systems, the development task for developing the product or modifying it for a customer's needs can be quite involved.
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 developer interaction input is received on a given portion of a form authoring display. The developer interaction input is correlated with other portions of the display and the other portions of the display are modified to visually reflect the developer interaction with the given portion of the display.
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
Metadata authoring functionality 124 is illustratively functionality provided in an IDE or other development tool that allows developer 112 to author metadata or other data that defines forms. For the sake of the present discussion, the term forms will be used to mean any mechanism by which information is displayed to a user.
The code/models under development 106 are, in one example, a code that represents a business system, such as an ERP system, a CRM system, an LOB system, etc. Of course, this is only one example of the code under development, which developer 112 is working on. A wide variety of other systems could embody the code under development as well.
Form compiler 130 illustratively compiles the metadata input by developer 112 in developing forms into a descriptor language that can be understood by browser 127 in preview generator 126. Therefore, browser 127 can use user interface component 128 to display a preview of the form, as it is being authored by developer 112. User interaction detector 132, and user interaction/response component 134, illustratively detect user interactions with the designer surface 113 and the preview display section 118 on user interface displays 108, to determine what type of interaction has been detected, and to determine what type of response is to be provided, in response to that user input.
Docking control component 136 illustratively processes developer inputs that indicate that the developer wishes to undock a portion of the user interface display 108 and relocate it on the display device, or on a separate display device. This is described in greater detail below with respect to
Likewise, when developer 112 provides inputs on preview display section 118, user interaction detector 130 detects those inputs and user interaction/response component 134 controls user interface component 128 to visually reflect those developer interactions in the other sections (e.g., in either metadata display section 114 or property display section 116, or both). The flow diagram of
It is first assumed that development system 102 receives a developer input accessing the development system 102. This is indicated by block 180 in
In response, development system 102 illustratively displays a form authoring user interface display 108 so that developer 112 can develop on a given form. Displaying the form authoring display is indicated by block 186. Again, this can include a metadata display section 114, property display section 116, preview display section 118, and it can include other display sections 120.
User interaction detector 132 then receives a developer interaction input on a given portion of the form authoring display. This is indicated by block 188 in
Component 134 then correlates the user interaction with other portions of the display. This is indicated by block 198 in
As an example, assume that the user adds a node to the hierarchical metadata structure 160 shown in
By way of example, assume that developer 112 adds a control to the Abatement Certificate form shown in section 118. As soon as that occurs, that change in metadata will be compiled by compiler 132 and preview generator 126 will show the new control on the form displayed in section 118. The same is true for changes to properties 162. By way of example, assume that developer 112 changes the label on a given control. This would comprise changing one of the values of properties 162. As soon as that occurs, form compiler 130 compiles that change and provides it to preview generator 126. Preview generator 126 will then show the control with the new name.
It will be noted that compiler 130 can compile at any desired time or based on any desired trigger. For instance, compiler 130 can compile once every predetermined unit of time, or based on developer input activity, every time the developer saves, etc.
It determines whether that change was on the metadata display section 114, the properties display section 116, or the preview display section 118. This is indicated by block 204. If it was on metadata display section 114, then detector 132 identifies the portion of the descriptor language that corresponds to the selected metadata element. This is indicated by block 206 in
By way of example, it can be seen in
The same general processing occurs if the developer selects a property value 162 in property display section 116. Detector 132 first identifies the portion of the descriptor language that corresponds to the selected property element. This is indicated by block 212 in
As an example, assume that developer 112 selected the property 162 corresponding to the label of the “Certificate Number” control 170 on preview display 118. If that is the case, then this is indicated by detector 132 to preview generator 126, and preview generator 126 then visually indicates that on preview display section 118. For example, it may highlight or bold or otherwise visually indicate the label “Certificate Number” for control 170.
A similar processing occurs with respect to the user selecting an element on preview display section 118. For instance, assume that the user has selected the control 164 on display section 118. Detector 132 identifies the portion of the metadata that corresponds to the selected preview element. This is indicated by block 216 in
This can be very useful. For instance, some forms have hundreds or thousands of different controls. Therefore, the property list and metadata structure are very long and complicated. It can be difficult for a developer to find the precise metadata element or property he or she wishes to modify. If the developer can simply select an item on the preview display section 118 and have the system highlight that portion of the metadata structure, this can increase the productivity of the developer. Similarly, if the developer can highlight a section of either the metadata structure or the properties and have the system identify that part of the previewed form, that can also increase productivity. Similarly, if the user selects a property either from the properties display section 116 or on preview display 118, and the system correspondingly highlights the other display, that can increase productivity as well.
The system then determines whether the interaction input was on the metadata, properties or preview display sections of the user interface display 108. This is indicated by block 230. If it was on the metadata display section 114, then metadata authoring functionality 124 modifies the metadata structure 160 to reflect the developer interaction input. This is indicated by block 232. When form compiler 130 next compiles the change, it modifies the code (e.g., the XML) based on the modified metadata. This is indicated by block 234. The modified metadata is compiled into the descriptor language representation as indicated by block 236. In addition, in one example, example text can be generated for the modified form, based upon the type of metadata interaction. This is indicated by block 238. By way of example, if developer 112 adds a text field, then example text can be generated and placed in that field so the developer can better see how the form will appear during runtime.
Preview generator 126 then interprets and renders the descriptor language representation on the preview display section 118 to reflect the developer interaction with the metadata. This is indicated by block 240 in
Referring again to
The same is generally true if developer 112 makes a modification or other development input to properties 162 in property display section 116. Metadata authoring functionality 124 first modifies the code (e.g., the XML) based on the property interaction. This is indicated by block 242 in
Referring again to
In one example, the same is true if developer 112 makes changes on the preview displayed on preview display section 118. For instance, assume that developer 112 clicks on control 164 and deletes it from preview display section 118. In that case, form compiler 130 modifies the descriptor language representation to reflect the user interaction. This is indicated by block 248. It then generates code (e.g., XML) based upon the modified descriptor language representation as indicated by block 250 and metadata authoring functionality 124 modifies the metadata structure 160 to reflect the modification made to the preview in preview section 118. This is indicated by block 252. It then renders the modified metadata structure 160, as indicated by block 254. Thus, if the developer 112 makes changes on the preview display 118, those changes are automatically reflected back in the metadata structure 160 and properties 162.
It should be noted that the descriptor language can take a wide variety of different forms. In one example, the descriptor language representation of the form is a static representation of the form that contains the form control hierarchy along with a set of properties and other optional data binding information. It can be run by a browser (e.g., browser 148 in preview generator 126) in order to generate a renderable version of the form without necessarily having all the underlying data, logic results, behaviors, state information, etc. The static representation may be implemented in a JavaScript Object Notation (JSON) format, for instance.
By way of example, and referring again to
Component 136 then receives a relocation input as indicated by block 268. For instance, developer 112 may provide a drag and drop input as indicated by block 270, or another relocation input as indicated by block 272, indicating that developer 112 wishes to move the location of the undocked preview section 118.
Docking control component 136 then receives a re-dock input indicating that developer 112 wishes to re-dock the previously undocked preview section 118 at the new location. This is indicated by block 274. For instance, developer 112 may drag the preview section 118 to a different portion of the current display device (e.g., to a different portion of the developer's monitor). This is indicated by block 276. In another embodiment, developer 112 may invoke multi-monitor functionality that allows developer 112 to drag the preview section to a second monitor so that developer 112 can view more of the previewed form. This is indicated by block 278. The re-docking and relocation inputs can be other inputs as well, and this is indicated by block 280.
It can thus be seen that the detection of inputs from developer 112 on any of the display sections generated by the development system can be reflected on other display sections. This can significantly increase the productivity of developer 112, as it can quickly direct the developer's attention to the portion of the metadata or code that has been modified or selected. It can also quickly show the developer 112 the visual effect of his or her development inputs on the form being developed.
The present discussion has mentioned processors and servers. In one example, 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 embodiment shown in
It will also be noted that system 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 122 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, client system 24, 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 102 system 24 which can run various business applications or embody parts or all of system 102. 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 that can also be used. Device 16 can be, for example, 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 example, the phone also includes a Secure Digital (SD) card slot 55 that accepts a SD card.
The mobile device can also be is a personal digital assistant (PDA), or a multimedia player or a tablet computing device, etc. (hereinafter referred to as PDA). The PDA can include 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 can also include 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 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 development computing system, comprising:
a metadata authoring system configured to generate a metadata display portion of a form authoring display, the metadata display portion displaying a metadata structure that defines a form in a computing system under development;
a preview generator configured to generate a preview display portion of the form authoring display, the preview display portion displaying a preview of the form; and
a user interface component rendering the form authoring display with the metadata display portion and the preview display portion.
Example 2 is the development computing system of any or all previous examples wherein the metadata authoring system is configured to generate a properties display portion of the form authoring display, the properties display portion displaying properties that further define the form in the computing system under development.
Example 3 is the development computing system of any or all previous examples and further comprising:
a user interface detector component configured to detect user interaction with a given portion of the form authoring display and control the user interface component to visually reflect the user interaction on another portion of the form authoring display.
Example 4 is the development computing system of any or all previous examples wherein the preview generator comprises a browser and further comprising:
a form compiler configured to compile the metadata and properties into a descriptor language representation of the form.
Example 5 is the development computing system of any or all previous examples wherein the preview generator comprises:
a descriptor language interpreter configured to receive the descriptor language representation of the form and generate an interpreted representation of the form, based on the descriptor language representation of the form, that is provided to the browser for rendering the preview of the form.
Example 6 is the development computing system of any or all previous examples wherein the preview includes a set of display elements defined by the metadata and properties and wherein the detected user interaction comprises user selection of a display element on the preview and wherein the user interface detector is configured to visually reflect the detected user selection by visually identifying the metadata or property, in the metadata display portion or the property display portion, respectively, that defines the selected display element.
Example 7 is the development computing system of any or all previous examples wherein the preview includes a set of display elements defined by the metadata and properties and wherein the detected user interaction comprises user modification of a display element on the preview and wherein the user interface detector is configured to visually reflect the detected user modification by visually modifying the metadata or property, in the metadata display portion or the property display portion, respectively, that defines the modified display element.
Example 8 is the development computing system of any or all previous examples wherein the preview includes a set of display elements defined by the metadata and properties and wherein the detected user interaction comprises user selection of a portion of metadata on the metadata display portion or a property on the properties display portion and wherein the user interface detector is configured to visually reflect the detected user selection by visually identifying the display element in the preview display portion defined by the selected portion of metadata or the selected property.
Example 9 is the development computing system of any or all previous examples wherein the preview includes a set of display elements defined by the metadata and properties and wherein the detected user interaction comprises user modification of a portion of metadata on the metadata display portion or a property on the properties display portion and wherein the user interface detector is configured to visually reflect the detected user modification by visually modifying the display element in the preview display portion defined by the modified portion of metadata or the modified property.
Example 10 is the development computing system of any or all previous examples and further comprising:
a docking control component configured to receive an undocking user input corresponding to a given display portion comprising one of the metadata display portion, the preview display portion and the properties display portion, and a relocation input, and to control the user interface component to visually undock the given display portion from the form authoring display and relocate the given display portion to a visual location identified by the relocation input.
Example 11 is the development computing system of claim 3 wherein the preview generator comprises:
a sample text generator configured to generate sample text displayed in the preview of the form.
Example 12 is a method, comprising:
generating a metadata display portion of a form authoring display, the metadata display portion displaying a metadata structure that defines display elements on a form;
generating a preview display portion of the form authoring display, the preview display portion displaying a preview of the form, showing the display elements; and
rendering the form authoring display, in a development system, with the metadata display portion and the preview display portion.
Example 13 is the method of any or all previous examples and further comprising:
generating a properties display portion of the form authoring display, the properties display portion displaying properties that further define the display elements on the form.
Example 14 is the method of any or all previous examples and further comprising:
detecting user interaction with a given portion of the form authoring display; and
visually reflecting the user interaction on another portion of the form authoring display.
Example 15 is the method of any or all previous examples wherein detecting user interaction comprises detecting user interaction with a given display element on the preview of the form and wherein visually reflecting comprises:
visually reflecting the detected user interaction by visually identifying the metadata or property, in the metadata display portion or the property display portion, respectively, that defines the given display element.
Example 16 is the method of any or all previous examples wherein detecting user interaction comprises detecting user interaction with a given portion of metadata on the metadata display portion or a given property on the properties display portion and wherein visually reflecting comprises:
visually reflecting the detected user interaction by visually identifying the display element in the preview display portion defined by the given portion of metadata or the given property.
Example 17 is the method of any or all previous examples and further comprising:
receiving an undocking user input corresponding to a given display portion comprising one of the metadata display portion, the preview display portion and the properties display portion;
receiving a relocation user input; and
visually relocating the given display portion to a visual location identified by the relocation input.
Example 18 is the method of any or all previous examples wherein generating the preview display portion comprises:
generating sample text displayed in the preview of the form.
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:
generating a metadata display portion of a form authoring display, the metadata display portion displaying a metadata structure that defines display elements on a form;
generating a preview display portion of the form authoring display, the preview display portion displaying a preview of the form, showing the display elements;
rendering the form authoring display, in a development system, with the metadata display portion and the preview display portion;
detecting user interaction with a given portion of the form authoring display; and
visually reflecting the user interaction on another portion of the form authoring display.
Example 20 is the computer readable storage medium of any or all previous examples and further comprising:
receiving an undocking user input corresponding to a given display portion comprising one of the metadata display portion and the preview display portion;
receiving a relocation user input; and
visually relocating the given display portion to a visual location identified by the relocation input.
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.
The present application is based on and claims the benefit of U.S. provisional patent application Ser. No. 62/006,626, filed Jun. 2, 2014, the content of which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62006626 | Jun 2014 | US |