Patent Publication Number: US-2009235188-A1

Title: Method for designing a graphical interface program

Description:
FIELD OF THE INVENTION 
     The present invention relates to a method for designing a graphical interface program. 
     BACKGROUND OF THE INVENTION 
     The use of computers has greatly facilitated operations such as the entry of data or the command of machines by providing user-friendly graphical interfaces that can be adapted to the needs of the user. Such interfaces are also called graphical user interface (GUI). 
     Specific programs, called graphical interface design programs, give a designer the possibility of designing a graphical interface by selecting graphics and/or interactive elements in a tool library. These elements correspond, for example, to check boxes, pull-down menus, boxes corresponding to work areas for entering data through a keyboard, etc. Properties associated with each element are selected by the designer. For example, a property of a check box is the fact that the box is checked or unchecked. A property of a data entry box is the value of data entered therein. Another property of a data entry box is the fact that data entry in the box is allowed (the box is said to be enabled) or that no data entry in the box is allowed (the box is said to be disabled). 
     Once the different elements of the graphical interface, and the associated properties, are selected, the graphical interface design program also gives the possibility to the designer of adding event programs that will be linked to the graphical interface. An event program is a program including a sequence of instructions that, when the property of an element has been changed, modifies the value of another property of the same element or the property of another element of the graphical interface. The event programs are commonly written by the designer using a programming language such as the visual basic, JAVA, or a scripting language like JavaScript. Once the event programs are written, they can be converted into a computer executable form by a compiler. A graphical interface program is then obtained. When the graphical interface program is executed by a user on a computer, a graphical interface is displayed as configured by the designer. When the user enters new data, checks boxes, etc., properties of the elements of the graphical interface are modified according to the event programs associated with the graphical interface. 
     Such a method for designing a graphical interface has several drawbacks. First, as the event programs are written by the designer, the designer is required to have enough knowledge of the programming language accepted by the graphical interface design program. Moreover, the designer must think of all the event programs he wants to associate with the graphical interface since the graphical interface design program generally provides no help during the writing of the event programs. Moreover, it is up to the designer to search for the inconsistencies in event programs. An inconsistency corresponds, for example, to a never-ending loop which would occur when the graphical interface program is executed. Indeed, the compiler generally only provides a check of the syntax of the event programs but does not provide a complete check of a good execution of the event programs for all the possible values of the properties of the elements of the graphical interface. 
     SUMMARY OF THE INVENTION 
     It is an aim of embodiments of the present invention to at least partially address one or more problems in the prior art. 
     According to one aspect of the present invention, there is provided a computer implemented method of generating a graphical interface program comprising receiving and displaying a selection of elements among a plurality of graphical and/or data entry elements, each element having at least a property among a plurality of graphical and/or activation and/or content properties; receiving and displaying formulas, each formula linking at least two properties of one element or several elements of said selection; and determining from said selection of elements and said formulas a separate graphical interface program, the execution of said separate graphical interface program resulting in the display of said selection of elements, the properties of which are linked by said formulas. 
     According to one embodiment of the present invention, the method further comprises the steps of checking the formulas for inconsistencies before the determination of said separate graphical interface program and of displaying an alert message when at least one inconsistency is determined. 
     According to one embodiment of the present invention, the method further comprises the step of displaying an alert message when none of said formulas includes a first property among the plurality of graphics and/or activation and/or content properties. 
     According to one embodiment of the present invention, the method further comprises the step of displaying an alert message when a second property included in the formulas remains unchanged when the other properties of the formulas are modified. 
     According to one embodiment of the present invention, for at least one formula among said formulas, at least one property of the at least two properties of said at least one formula is representative of whether or not, during the execution of said graphical interface program, the element associated with said at least one property is allowed to be activated. 
     According to one embodiment of the present invention, for at least one formula among said formulas, at least one property of the at least two properties of said at least one formula is representative of whether or not, during the execution of said graphical interface program, the element associated with said at least one property was used. 
     According to one embodiment of the present invention, for at least one formula among said formulas, at least one property of the at least two properties of said at least one formula is representative of whether or not, during the execution of said graphical interface program, the element associated with said at least one property is displayed. 
     According to another aspect of the present invention, there is provided a general purpose data processor operating under the control of a stored program containing a set of instructions that, when executed, control the data processor to perform the following functions: receiving and displaying a selection of elements among a plurality of graphical and/or data entry elements, each element having at least a property among a plurality of graphical and/or activation and/or content properties; receiving and displaying formulas, each formula linking at least two properties of one element or several elements of said selection; determining from said selection of elements and said formulas a separate graphical interface program, the execution of said separate graphical interface program resulting in the display of said selection of elements, the properties of which are linked by said formulas. 
     According to one embodiment of the present invention, the general purpose data processor operates under the control of the stored program containing a set of instructions that when executed, control the data processor to check the formulas for inconsistencies before the determination of said separate graphical interface program and of displaying an alert message when at least one inconsistency is determined. 
     According to one embodiment of the present invention, the general purpose data processor operates under the control of the stored program containing a set of instructions that when executed, control the data processor to display an alert message when none of said formulas includes a specific property among the plurality of graphical and/or activation and/or content properties. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
       The foregoing and other purposes, features, aspects and advantages of the invention will become apparent from the following detailed description of embodiments, given by way of illustration and not limitation with reference to the accompanying drawings, in which: 
         FIG. 1  is a flow chart showing an exemplary method for designing a graphical interface program; 
         FIG. 2  is a display of an exemplary graphical interface; 
         FIG. 3  is a display of exemplary event programs associated with the graphical interface of  FIG. 2 ; 
         FIG. 4  is a simplified block diagram showing the interactions between a computer and a graphical interface design program during the design of a graphical interface program; 
         FIG. 5  is a flow chart showing a method for designing a graphical interface program according to an embodiment of this invention; and 
         FIG. 6  is a display of exemplary formulas associated with the graphical interface of  FIG. 2  and provided during the design of the graphical interface program according to one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the embodiments. 
     Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features or characteristics may be combined in any suitable manner in one or more embodiments. 
     It is desired to set out certain definition of terms used in this description and in the appended claims. 
     A source program is a computer program containing a sequence of statements and/or declarations written in some human-readable computer programming language. 
     A compiler is a computer program (or set of programs) that translates text written in a first computer language into a second computer language. 
     An interpreter is a computer program that executes, i.e. performs, instructions written in a programming language. An interpreter may be a program that either executes a source code program directly, or translates a source code program into some efficient intermediate code program and immediately executes this or is invoked to explicitly execute a stored precompiled program made by a compiler which is part of the interpreter system. 
     A virtual machine is a kind of interpreter. It is a software implementation of a machine (computer) that executes programs in the same way as a real machine. For example, the set of computer software programs called Java Virtual Machine is a virtual machine. 
     An intermediate code program is a binary representation of an executable program designed to be executed by an interpreter or a virtual machine or to be further compiled into a computer executable form. An example of an intermediate code is Java Bytecode. A program in Java Bytecode can be executed by the interpreter Java Virtual Machine. 
     An object program, or program in object code, is a computer program that is a representation of a source program in a computer executable form. For example, an object program can only contain machine code, that is code directly executed by the processor of a computer. 
     A scripting language, script language or extension language is a programming language that controls a software application. A “Script” is a sequence of instructions in a scripting language. A script cannot be executed independently from any other application. It is usually distinct from the core code of the associated application, which can be written in a different language. A script is usually accessible to a user and enables the behavior of the application to be adapted to the user&#39;s needs. A script can be directly interpreted or can be compiled to an intermediate code program which is interpreted. For example, JavaScript is a scripting language. A JavaScript engine is an interpreter that can interpret a JavaScript source code program. For example, a Web browser usually includes a JavaScript engine. 
     A graphical interface program is a program that, when executed on a computer, displays a graphical interface through which a user can make operations such as entering data, checking boxes, selecting items in pull-down menus, activating buttons, etc. The graphical interface can be used as a data entry tool, as a command interface of a numerically controlled machine, etc. 
     A graphical interface design program is a program that, when executed on a computer, provides to a designer tools to design a graphical interface program. 
     An element of a graphical interface is a graphical and/or interactive elementary part of the graphical interface. Examples of elements of a graphical interface are: 
     the main window of the graphical interface inside which the other elements of the graphical interface are displayed; 
     a check box; 
     a pull-down menu; 
     a work area or data entry field; 
     a button. 
     A property of an element is a graphical and/or activation and/or content feature or attribute of the element whose value can be set by the designer during the design of the graphical interface program and/or can be modified by a user during the execution of the graphical interface program. Most of the properties can be associated with several elements. Examples of such properties are: 
     the position of the element inside the main window or with respect to another elements; 
     the fact that the element is or is not visible in the main window; 
     the fact that a user has activated the element or not. An activation of an element corresponds for example to the check of a box, to the writing in a data entry area, to the selection of an item in a pull-down menu, to the activation of a button, etc. In the following description, for the check box, this property is called property “Checked” and can correspond to a one-bit signal set to “1” when a user has checked the box and set to “0” when the user has not; 
     the fact that a user is allowed to activate the element (the element is said to be enabled) or not (the element is said to be disabled). In the latter case, the element can nevertheless be visible on the main window, possibly with a modified color, but a user cannot activate it. In the following description, this property is called property “Enabled” and can correspond to a one-bit signal set to “1” when a user is allowed to activate the element and set to “0” when a user is not; 
     generic properties relative to the name or designation of the element, such as the content of the name, the fact that the name is or is not displayed (visible) in the main window, the position of the name in the main window, the font or symbols used for displaying the name, etc. In the following description, the content of the name will be called property “Text”. 
     Further examples of properties for the element “main window” are, for example, the dimensions of the main window and the background color and texture of the main window. Further properties for the element “pull-down menu” are, for example, the number of items of the pull-down menu and the content of each item of the pull-down menu. Further properties for the element “data entry box” are, for example, the form and dimensions of the data entry box and the content of the data entry box. In the following description, this property will be called property “Value”. A further property for the element “button” is, for example, the fact that the button has or has not been activated by the user. 
     A formula is an equation linking the value of a property of an element to the value of one or several properties of one or several elements. A formula can contain mathematical and/or logic operands linking the properties and can be written in a symbolic language. 
     A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form, such as a formula. As an example, the computer program called Mathematica, sold by Wolfram Research, supports a computer algebra system. 
       FIG. 1  is a flow chart showing a common method for designing a graphical interface program.  FIG. 2  shows an example of a graphical interface and  FIG. 3  shows an example of event programs. 
     At step  10 , the graphical interface design program is launched on a computer. The program displays on the screen of the computer to the designer a library comprising the available elements. The designer can select the elements according to the graphical interface he wishes to design. The example graphical interface shown on  FIG. 2  comprises a main window  14 , the name of which  16  has the content “Data Entry Form”, four check boxes  18 A,  18 B,  18 C and  18 D, including two round boxes and two square boxes, the names of which have the contents “Choix1”, “Choix2”, “Option1” and “Option2”, a pull-down menu  20 , the name of which has the content “Selection”, four data entry areas  22 A,  22 B,  22 C,  22 D, the names of which have the contents “Text1”, “EditOption1”, “EditOption2” and “Amount” and two buttons  24 A,  24 B, the names of which have the contents “Validate” and “Cancel”. 
     The designer sets, at that time, initial values of some properties of the elements. In the example of  FIG. 2 , the designer has set the dimensions and background color of main window  14  and the positions and contents of the names of the elements. The method continues at step  12 . 
     At step  12 , the graphical interface design program opens a window  25  in which the designer can write the event programs. Three examples of event programs  26 A,  26 B,  26 C written in the Object Pascal language are shown. In these programs  26 A,  26 B,  26 C, a property of an element is designated in the following format “name of the element”.“name of the property”. For example, the property “Option1.Enabled” corresponds to the generic property “Enabled” applied to element “Option 1”. First program  26 A is called when the user modifies the value of the property “Checked” of the element “Choix2”. It modifies the property “Enabled” of the elements “Option1” and “Option2”. Second program  26 B is called when the user modifies the value of the property “Checked” of the element “Option1”. It sets to “1” the property “Enabled” of the element “EditOption1” only if the properties “Checked” of the elements “Option1” and “Choix1” are both set to “1”. Third program  26 C modifies the property “Text” of the element “Amount” according to the properties “Value” of the enabled element “EditOption1” or “EditOption2”. The method continues at step  28 . 
     At step  28 , a compilation of the event programs and the general program of the graphical interface is made to provide a graphical interface program in a programming language which is more adapted to be interpreted or executed. The graphical interface program can be in a source code, such as Java, a scripting language, an intermediate code or an object code. 
     As explained above, such a method for designing a graphical interface has several drawbacks. In particular, from the examples previously described, it appears that the number of event programs to be written and the complexity thereof increase quickly as soon as the number of elements of the graphical interface increases. The writing of all the event programs quickly becomes difficult. Moreover, as soon as the number of event programs is important, it is practically impossible for the designer to search for the inconsistencies of the events programs. There is then a high risk that the resulting graphical interface program contains bugs. 
     Instead of writing events programs when designing the graphical interface program, an embodiment of the present invention provides the use of formulas linking properties of the elements of the graphical interface. As will be explained further, the use of formulas facilitates the work of the designer. Indeed, the inconsistencies of a set of formulas can easily be checked by a computer algebra system. Moreover, according to one embodiment of the present invention, the computer algebra system can give indications to the designer to improve the writing of the formulas. 
     Referring to  FIG. 4 , a general purpose computer  30  is shown. It comprises input means, such as a keyboard, a mouse, etc, and display means such as a screen. A graphical interface program is designed through the execution of a graphical interface design program  32 . The graphical interface design program  32  can be a program stored on computer  30 . However, graphical interface design program  32  can also be executed on another computer linked to computer  30  through a network, for example the Internet. By the use of the graphical interface design program  32 , a graphical interface source program is obtained including configuration parameters of the graphical interface and the associated formulas. The graphical interface design program  32  includes a computer algebra system and a compiler, which acts on the source program to produce a program  34  in a source code, such as Java, a scripting language, an intermediate code or an object code. The program  34  can be left in a storage area on the same computer on which the graphical interface design program  32  has been executed or can be sent to another computer on which it is to be executed. For example, program  34  can be written in JavaScript. Then, the program  34  can be interpreted by a web browser or any JavaScript engine. 
       FIG. 5  is a flow chart showing a method for designing a graphical interface program according to one embodiment of the present invention.  FIG. 6  shows an example of formulas determined by a designer during the execution of one embodiment of the graphical interface design program  32 . 
     At step  40 , the graphical interface design program is launched. The program displays to the designer a library comprising the available elements. The designer can select the elements according to the graphical interface he wishes to design in the same way as explained for step  10  of the previously described method in relation to  FIG. 1 . For example, the graphical interface shown on  FIG. 2  can be defined at step  40 . At step  40 , the designer can also define relations between the graphical interface and other programs. For example, when the graphical interface is used to command a numerically controlled machine, the designer can link the execution of instructions dedicated to the command of the machine to the activation of a specific button of the graphical interface. 
     At step  42 , the graphical interface design program opens a window  43  wherein the designer can enter the formulas he wants to incorporate to the graphical interface program. Each formula comprises a first field, labelled “A”, corresponding to a property of an element of the graphical interface and a second field, labelled “B”, corresponding to another property of the same element or a property of another element or a mathematical and/or logic operation applied on other properties of the same element and/or properties of other elements. The formula can be understood as forcing, at any time, the value of the property in the first field of the formula to be equal to the value resulting from the operation made in the second field. 
     For example, five formulas 44A to 44E are shown on  FIG. 6 . Formula 44A forces the value of the property “Enabled” of the element “Option1” to be equal, at any time, to the value of the property “Checked” of the element “Choix2”. Formula 44B forces the value of the property “Enabled” of the element “Option2” to be equal, at any time, to the value of the property “Checked” of the element “Choix2”. Formula 44C forces the value of the property “Enabled” of the element “EditOption1” to be equal, at any time, to the logic sum (logic operand AND) of the values of the property “Checked” of the elements “Option1” and “Choix2”. Formula 44D forces the value of the property “Enabled” of the element “EditOption2” to be equal, at any time, to the logic sum (logic operand AND) of the values of the property “Checked” of the elements “Option2” and “Choix2”. Formula 44E forces the value of the property “Text” of the element “Amount” to be equal, at any time, to the sum of the property “Value” of the element “EditOption1” (if the property “Enabled” of the element “EditOption1” is set to “1”) and the property “Value” of the element “EditOption2” (if the property “Enabled” of the element “EditOption2” is set to “1”). For this formula, a logic operand labelled “IF” was used. However, the graphical interface design program could accept any other symbolic language. 
     The formulas can be written completely by the designer through input means such as a keyboard. However, a semi-automatic way of defining the formulas can be used. For example, the designer could use a pointer controlled by a mouse, a touch pad, etc., to select an element of the displayed graphical interface. The graphical interface design program then displays the properties associated with the selected element and the designer can select the desired property. The mathematical and logic operands can be displayed in a library so that a selection of the operands can also be made using a pointer. 
     At step  46 , an analysis of the formulas is executed by the computer algebra system of the graphical interface design program. Such an analysis includes a check for any inconsistencies in the formulas. According to one embodiment of the present invention, the computer algebra system also indicates to the designer if a specific property of an element of the graphical interface is not used in the formulas. For example, the designer, when selecting the element in the library of the graphical interface design program, can select the property or properties of this element for which a presence check should be made by the computer algebra system. According to a variation, the element properties for which a presence check in formulas is made by the computer algebra system can be preset. The computer algebra system can also indicate to the designer a property which is used in the formulas, but the value of which never changes when the other properties used in the formulas are modified. The graphical interface design program can indicate to the designer the properties for which an anomaly has been detected. The designer can then modify the formulas to correct the anomaly or instruct the graphical interface design program to disregard the anomaly. Compared to a general computer algebra system, the computer algebra system of the graphical interface design according to embodiments of the present invention can advantageously have a simpler structure since it is not required to offer as many functions as a general computer algebra system does. The method continues at step  48 . 
     At step  48 , a compilation of the source program of the graphical interface program is made to provide a graphical interface program in a source code, such as Java, a scripting language, an intermediate code or an object code. 
     The previously described embodiment of the present invention advantageously allows the designer to avoid writing event programs. The writing of sets of instructions from the formulas is made by the computer algebra system and the conversion into a program in a source code, such as Java, a scripting language, an intermediate code or an object code is made by the compiler. An advantage is that, during the writing of the formulas, the designer does not need to refer to the features of the operating system or the visualization layer of the computer on which the graphical interface program will be executed. On the contrary, when event programs are written, it is often necessary, according to the programming language used, to refer to features of the computer on which the graphical interface program will be executed. 
     An interest of the previously described embodiment of the present invention is that the obtained graphical interface program is relatively concise when written in a language such as Javascript or HTML (Hyper Text Markup Language). Hence, the graphical interface program can easily be downloaded on a local computer. This is advantageous when the graphical interface program is stored on a first computer and a user wishes to execute the graphical interface program from a second computer linked to the first computer by a network, for example the Internet. In such a case, the graphical interface program can be easily downloaded on the second computer, which contributes to a faster use thereof. 
     Another interest of the previously described embodiment of the present invention is that the obtained graphical interface program is dedicated to the interface as conceived by a designer. Therefore, the execution of the graphical interface program is faster than what would be obtained by using an automatic program for event management. 
     Having thus described at least one illustrative embodiment of the invention, various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description is by way of example only and is not intended as limiting. The invention is limited only as defined in the following claims and the equivalents thereto.