Abstract:
Embodiments of the present invention provide a method, system and computer program product for property dependency visualization. In an embodiment of the invention, a method for property dependency visualization can be provided. The method can include detecting a proximity event for a control in a user interface (UI) and determining a dependency relationship between a property for the control and at least one other property for at least one control in the UI. Thereafter, a view of the dependency relationship can be rendered in connection with the control for which the proximity event is detected. In this way, tracking dependencies in a large form of a multiplicity of controls can be facilitated.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to the field of user interface (UI) control properties and more particularly to identifying dependencies between the properties of UI controls in a UI for a computer application. 
         [0003]    2. Description of the Related Art 
         [0004]    The UI provides the interface between program logic and end user. Through the UI, the end user can provide input requisite to the operation of a computer application, and the end user can view resulting output provided by the computer application. The UI can vary from a textual interface to a graphical interface and the UI can be formed through complex program logic, or simple markup language interpretable within a browser. Common to every UI is the arrangement of controls. Controls provide the atomic elements of the UI that permit direct interaction between the end user and the computer application. Examples include text fields, buttons, drop down lists, and the like. A control generally includes one or more properties affecting the appearance and operation of the control. Typical properties that affect the display of the control include a foreground and background color, font type and size, and whether or not the control is enabled or disabled. 
         [0005]    The form is a type of UI known to be extraordinarily effective in providing an interface for data collection. Form based input is the enabling technology which permits the widespread distribution of applications across generic client platforms such as the conventional content browser. In the prototypical distributed application, a markup language defined interface can form the principal conduit through which end users can interact with backend application logic. Often configured in the form of a Web page, the interface can be provided to the content browser by a content server and can take the form either of a pre-defined static page, or a dynamically generated page. Form input fields can be positioned within the UI through which user input can be accepted and posted to the backend application logic for further processing. 
         [0006]    Simple forms require little planning during the development stage. In this regard, the developer can place a selection of controls within the form in an ad hoc fashion in order to provide an interface through which the end user can interact with backend logic. Complex forms, however, can require substantial planning—particularly as the form spans multiple different viewable pages. The development effort in selecting controls for incorporation into a large form, and also the arrangement of the controls across multiple pages can be a monumental organizational task. To compound matters, some controls are dependent upon others in a form. 
         [0007]    Specifically, one or more controls placed deep within a large form often derive properties from other controls placed earlier in the large form. Thus, oftentimes, control properties for controls within a large form are said to depend upon the properties of other controls in the form. By way of example, a first control in a UI may be enabled only when sufficient input has been provided to a second control in the UI. A property within the first control, then, is said to depend upon the property of the second control and a “dependency” property within the first control can expressly define the dependency on the second control. As another example, the background color of one field in a form can be dependent on the background color property of the page in which the field resides. Tracking dependencies in a large form of a multiplicity of controls can be challenging and, in many cases, the developer remains unaware of a dependency as the developer modifies the properties of a control in a form that is dependent upon the properties of another control in the form. 
       BRIEF SUMMARY OF THE INVENTION 
       [0008]    Embodiments of the present invention address deficiencies of the art in respect to control dependency management in a UI and provide a novel and non-obvious method, system and computer program product for property dependency visualization. In an embodiment of the invention, a method for property dependency visualization can be provided. The method can include detecting a proximity event for a control in a UI and determining a dependency relationship between a property for the control and at least one other property for at least one other control in the UI. Thereafter, a view of the dependency relationship can be rendered in connection with the control for which the proximity event is detected. In this way, tracking dependencies in a large form of a multiplicity of controls can be facilitated. 
         [0009]    In one aspect of the embodiment, rendering a view of the dependency relationship in connection with the control for which the proximity event is detected can include rendering a text string explaining the dependency relationship. In another aspect of the embodiment, rendering a view of the dependency relationship in connection with the control for which the proximity event is detected can include rendering a text string warning of consequences arising from the dependency relationship. In yet another aspect of the embodiment, rendering a view of the dependency relationship in connection with the control for which the proximity event is detected can include rendering a hierarchical view of the dependency relationship. 
         [0010]    In another embodiment of the invention, a forms based input data processing system can be configured for property dependency visualization. The system can include a UI defined in markup and rendered in a content browser executing in a host computing platform. Multiple different controls can be defined by the UI, and each of the controls can include at least one property. Finally, dependency visualization logic can be coupled to the content browser and can execute in the host computing platform. The logic can include program code enabled to detect a proximity event for a control amongst the controls, to determine a dependency relationship between a property for the control and at least one other property for at least one other of the controls and to render a view of the dependency relationship in connection with the control for which the proximity event is detected. 
         [0011]    Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0012]    The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein: 
           [0013]      FIGS. 1A and 1B , taken together, are a pictorial illustration of screen shots of a UI configured for property dependency visualization; 
           [0014]      FIG. 2  is a schematic illustration of a forms based input data processing system configured for property dependency visualization; and, 
           [0015]      FIG. 3  is a flow chart illustrating a process for property dependency visualization in a UI of controls with dependent properties. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0016]    Embodiments of the present invention provide a method, system and computer program product for property dependency visualization. In accordance with an embodiment of the present invention, dependency relationships between a property for a UI control and other UI controls can be tracked. In response to a proximity event for the UI control, at least one dependency relationship can be determined for a property of the UI control and another property of another UI control. Thereafter, a view of the dependency relationship can be presented in connection with the UI control. Optionally, a hierarchy of all dependencies stemming from all other UI controls related to the UI control can be determined in response to the proximity event and a hierarchical view of the dependencies in the hierarchy can be displayed in connection with the UI control. 
         [0017]    In illustration,  FIGS. 1A and 1B , taken together, pictorially depict different screen shots of exemplary UIs configured for property dependency visualization. Referring to  FIG. 1A , a UI  110 A is shown to include multiple different controls  120 A,  120 B,  120 C,  130 A. By way of example, control  130 A includes an enablement property dependant upon the completion of the value property of the controls  120 A,  120 B,  120 C such that the control  130 A is not enabled to submit the value properties of the controls  120 A,  120 B,  120 C so long as the value property of each of the controls  120 A,  120 B,  120 C remains empty. A proximity event such as a mouse-over event or a selection event to the control  130 A, triggers the display of pop up  140 A. The pop-up  140 A includes a hierarchical view  150  of the dependency relationships between the control  130 A and the controls  120 A,  120 B,  120 C. 
         [0018]    Referring now to  FIG. 1B , a UI  110 B is shown to include multiple different controls  120 X,  120 Y,  120 Y. By way of example, the value property for control  120 Y affects the computation of the value property for control  120 Z such that the value property for control  120 Z is dependent upon the value property for control  120 Y. As such, in response to a proximity event for control  120 Y, a pop-up  140 B can be displayed to include an indication of the dependency relationship  160  between the value property of control  120 Y and the value property of control  120 Z. Optionally, the pop-up  140 B can be a confirmation message box triggered upon changing the value property of control  120 Y. It is to be recognized by the skilled artisan that although a dependency relationship has been illustrated in connection with value properties, the invention is not so limited and other property dependencies are contemplated to be within the scope of the invention. For example, a dependency relationship can exist between a property of one control and the location property of another control. 
         [0019]    The UIs  110 A,  110 B generated in the exemplary embodiments described in connection with  FIGS. 1A and 1B  can be produced as part of a forms based input data processing system. In further illustration,  FIG. 2  schematically shows a forms based input data processing system configured for property dependency visualization. The system can include a host computing platform  210  supporting an operating system  220 . The operating system in turn can manage the execution of different applications including content browser  230 . The content browser  230  can be configured to render markup received from over a computer communications network as a UI  240  including multiple different controls  260 , each of the controls  260  further including one or more properties  270 . 
         [0020]    Notably, dependency visualization logic  300  can be coupled to the content browser  230 . The dependency visualization logic  300  can include program code enabled to respond to a proximity event for a first one of the controls  260  in the UI  240  by identifying and storing one or more dependency relationships between a property  270  for the first one of the controls  260  and at least one other property  270  for at least one other one of the controls  260  in a data structure of dependencies  250 . The program code of the dependency visualization logic  300  further can be enabled to render a view of the dependency relationship in the data structure of dependencies  250  in connection with the first on of the controls  260 , for example as a pop-up, dialog box, message box, or tool-tip. Optionally, the view of the dependency relationship can be a hierarchical diagram of dependency relationships beginning with the property  270  for the first one of the controls  260  and continuing through other related properties  270  for other ones of the controls  260 . 
         [0021]    In yet further illustration of the operation of the dependency visualization logic  300 ,  FIG. 3  is a flow chart illustrating a process for property dependency visualization in a UI of controls with dependent properties. Beginning in block  310 , a proximity event can be detected in connection with a control in a UI. For example, the proximity event can be a selection event, a mouse-over event, or even a key-down event. In block  320 , one or more properties can be retrieved for the control. By way of example, the properties for the control can include display type properties such as background color, font type and font style, or operational type properties such as a value, a function, or a state of enablement or disablement. 
         [0022]    In decision block  330 , it can be determined whether or not a dependency relationship exists between any property of the control and any other properties of other controls in the GUI. If so, in block  340 , dependency data for the dependency relationships can be loaded, for example a hierarchy such as a tree can be constructed for the dependency relationship, or a text string describing the dependency relationship can be constructed such as “changing &lt;property1&gt; affects &lt;property2&gt;”. Thereafter, in block  350 , the dependency data can be rendered in connection with the control, for instance as a pop-up overlapping or adjacent to the control. Finally, in block  360  the process can end. 
         [0023]    Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. 
         [0024]    For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD. 
         [0025]    A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.