Aspects of the present invention relate to a user interface for creating method signatures. More specifically, aspects of the present invention provide a user interface for creating method signatures for an application component on a visual design surface.
Defining methods for software objects or modules is an important part of the software design cycle. Typically, the creation of method signatures or application programming interfaces (APIs) must be specified in a programming language. The use of programming languages, however, requires adhering to detailed syntax which is undesirable, as an architect or business analyst may not be experts in the particular programming language being utilized to create a method signature.
In order to simply the creation of method signatures, template type forms and wizards have been utilized in order to assist developers and users. These template type forms and wizards, however, are clumsy user interface requiring many key strokes and/or mouse clicks to enter data into the user interface. In addition, the template type forms may be unfamiliar to experienced programmers. For example,
As another example,
Therefore, there is a need in the art for an improved user interface for building method signatures that assists developers and users in building methods, does not require knowledge about the syntax for a particular programming language, and is not key stroke intensive.
Aspects of the present invention address one or more of the issues mentioned above, thereby providing a user interface for creating a method signature for an application component on a visual design surface. The user interface allows for an efficient utilization of key strokes in creating the method signature through the use of key binding and a hierarchical tree grid control window. The entered keyboard characters are parsed in real time to place data defining the method signature into cells of the tree grid control window based on the key bindings.
Aspects of the present invention are described with respect to the accompanying figures, in which like reference numerals identify like elements, and in which:
Exemplary Operating Environment
A basic input/output system 160 (BIOS), containing the basic routines that help to transfer information between elements within the computer 100, such as during start-up, is stored in the ROM 140. The computer 100 also includes a hard disk drive 170 for reading from and writing to a hard disk (not shown), a magnetic disk drive 180 for reading from or writing to a removable magnetic disk 190, and an optical disk drive 191 for reading from or writing to a removable optical disk 192 such as a CD ROM or other optical media. The hard disk drive 170, magnetic disk drive 180, and optical disk drive 191 are connected to the system bus 130 by a hard disk drive interface 192, a magnetic disk drive interface 193, and an optical disk drive interface 194, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the personal computer 100. It will be appreciated by those skilled in the art that other types of computer readable media that can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), and the like, may also be used in the example operating environment.
A number of program modules can be stored on the hard disk drive 170, magnetic disk 190, optical disk 192, ROM 140 or RAM 150, including an operating system 195, one or more application programs 196, other program modules 197, and program data 198. A user can enter commands and information into the computer 100 through input devices such as a keyboard 101 and pointing device 102. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner or the like. These and other input devices are often connected to the processing unit 110 through a serial port interface 106 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB). Further still, these devices may be coupled directly to the system bus 130 via an appropriate interface (not shown). A monitor 107 or other type of display device is also connected to the system bus 130 via an interface, such as a video adapter 108. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The computer 100 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 109. The remote computer 109 can be 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 100, although only a memory storage device 111 has been illustrated in FIG. 3. The logical connections depicted in
When used in a LAN networking environment, the computer 100 is connected to the local network 112 through a network interface or adapter 114. When used in a WAN networking environment, the personal computer 100 typically includes a modem 115 or other means for establishing communications over the wide area network 113, such as the Internet. The modem 115, which may be internal or external, is connected to the system bus 130 via the serial port interface 106. In a networked environment, program modules depicted relative to the personal computer 100, or portions thereof, may be stored in the remote memory storage device.
It will be appreciated that the network connections shown are illustrative and other techniques for establishing a communications link between the computers can be used. The existence of any of various well-known protocols such as TCP/IP, Ethernet, FTP, HTTP, Bluetooth, IEEE 802.11x and the like is presumed, and the system can be operated in a client-server configuration to permit a user to retrieve web pages from a web-based server. Any of various conventional web browsers can be used to display and manipulate data on web pages.
Description of Illustrative Embodiments
Moreover, an aspect of the invention may be applied to creating custom markup language such as XML. The entry of hierarchical XML data with the invention eliminates the use of text editors or word processing programs which provide no syntax guidance, or forms which are key stroke intensive.
Furthermore, another aspect of the invention may include the creation of a method signature created for a Web Service Port.
Returning to
The columns 410 may comprise a name column 420, a type column 422, a modifier column 424, and a summary column 426. As those skilled in the art will realize, the tree grid 406 may comprise a number of additional columns and rows which describe method signatures. For instance, the tree grid 406 may also comprise a default value column (not shown) or array type column (not shown) providing information about an array.
Referring to
Referring to
In addition, a user may enter a key stroke such as an open parenthesis key stroke which may cause the tree grid 406 to allow entry of parameters 604 further defining a method signature. As one skilled in the art will understand key strokes may comprise keyboard characters. The open parenthesis key stroke may provide functionality associated with the particular key stroke. For example, in
In
Table 1 shows exemplary key strokes and their associated functionality as described in a further aspect of the invention. These keys are designed to be familiar to users of the programming languages “C,” “C++,” “C#,” and Visual Basic®. Other key strokes could be used to mimic the syntax of other languages, such as XML. Those skilled in the art will realize that additional key strokes and their associated functionality may be defined for use in creating method signatures that fall with the scope of the invention.
As table 1 illustrates, more than one key stroke may perform similar functionality. Similar to Table 1, various key strokes may be utilized in other programming languages such as markup languages similar to XML. For example, Table 2 illustrates exemplary key strokes and their associated functionality that may be utilized for XML.
As those skilled in the art will realize, numerous additional key strokes with associated functionality may be defined for various programming languages. Table 1 and Table 2 are exemplary are not intended to limit the invention to the represented key strokes and functionality.
Starting in a method type cell 904, an open parenthesis 930 advances the point of data entry to a parameter name cell 908. Similar to the method name cell, a semi colon 934 or close parenthesis 936 key stroke entered into a method type cell 904 advances the point of entry to the next method, creating a new method if necessary 903. A single quote 942 or forward slash 944 key stroke advances the point of entry to a method comment field 906. Starting in a method comment cell 906 a tab key stroke advances the point of entry to a parameter name cell 908.
Similar to the method data entry, key strokes may be utilized to enter data corresponding to parameters for methods. The data defining parameters may include a parameter name field 908, a parameter type cell 910, and a parameter comment cell 912.
For example, starting in a parameter name cell 908, a tab 938 or space 940 key stroke advances the point of data entry to an adjacent parameter type cell 910. A comma key stroke 960 advances the point of data entry to a next parameter, creating a new parameter, if one is necessary 913. A semi colon 934 or close parenthesis 936 key stroke advances the point of data entry to the next method, creating a new method, if one is necessary 903.
Starting in a parameter type cell 910, a comma 960 key stroke advances the point of data entry to a next parameter, creating a new parameter, if one is necessary 913. Similar to the method name cell, a semi colon 934 or close parenthesis 936 key stroke entered into a parameter type cell 910 advances the point of entry to the next method, creating a new method if necessary 903. A single quote 942 or forward slash 944 key stroke advances the point of entry to a parameter comment field 912.
Starting in a parameter comment cell 912, a tab key stroke advances the point of entry to a next parameter, creating a new parameter, if one is necessary 913. Additionally, an enter command key stroke in any cell may optionally be used to accept inputted data or to advance data entry to the next row.
The present invention has been described in terms of preferred and exemplary embodiments thereof. Numerous other embodiments, modifications and variations within the scope and spirit of the appended claims will occur to persons of ordinary skill in the art from a review of this disclosure.