1. The Field of the Invention
This application relates to graphical user interfaces for manipulating software objects. More particularly, the present invention relates to providing drag-and-drop functionality for manipulation of software objects in association with pre-defined operators.
2. The Relevant Technology
Data in the form of a database or a collection of text or numbers can be transformed by predefined algorithms or mathematical formulae into output data. Two or more sets of data can also be combined and transformed using predefined algorithms or mathematical formulae into one or more sets of output data.
One specific example of such data manipulation is the use of queries for acquiring data from databases. SQL (Structured Query Language) is a standardized query language for requesting information from databases. This technology was developed by IBM in the mid-1970s as a way to move information into and out of relational database management systems. In using SQL, the user creates a statement declaring what data is desired. The software takes the statement and manipulates the data in accordance with the request. This is usually done by typing the statement on the keyboard and entering the statement into the computer. This is generally known as the “command line” approach.
In general, inputting queries with the command line approach is cumbersome and tedious. The user needs to be provided with an input area on the display screen, and the user is required to type out the query. This is particularly tedious if the databases' names are long and hard to remember. Furthermore, the user must be familiar with the rules of the query language and the available commands. Therefore, command line inputs are prone to typographical errors and errors in the structure of the query itself.
Boolean operators are commonly used in the construction of queries in SQL and other forms of query language. When several Boolean operators are used in a single query, care has to be taken to avoid ambiguity in the query and to ensure that the correct sequence of operations is carried out. Correct pairs of parentheses must be appropriately placed to group the intended logical sets of operations. Accordingly, the use of command line input when multiple Boolean operators are included in a single query is error prone and at times hard to interpret.
Recognizing the limitation of using command line input for manipulation of data, and in particular databases, a number of systems have been developed in an attempt to address these deficiencies. However, these systems generally require multiple steps to perform the intended manipulations on a group of data. Furthermore, these prior art methods oftentimes are not intuitive for the understanding of the underlying Boolean expression. Hence, Boolean relationships can be difficult to recognize among the input data.
Accordingly, it is desirable to have a graphical method of constructing database queries and other operations in which the user is presented with a clear visual relationship between the input data to the underlying operators, such as Boolean expressions. It is also desirable to have an intuitive method using simple graphical maneuvers to manipulate software objects. Furthermore, it would be highly desirable to provide methods in which complex operations such as complex Boolean queries can be constructed in a stepwise fashion.
Various embodiments of the present invention will now be discussed with reference to the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope.
The present invention relates to methods of manipulating software objects. The drawings and accompanying description are merely exemplary. Accordingly, the scope of the present invention is not intended to be limited by the examples discussed herein, but only by the appended claims.
The present invention provides an intuitive method of directly and graphically manipulating software objects. In one preferred embodiment of the invention, the method uses a computer with a display screen and a mouse with one or more buttons. The cursor on the display screen is controlled by movement of the mouse. It will be clear to those skilled in the art that other forms of pointers may alternatively be used to control the cursor. Software objects such as executable computer programs, short cuts, data files and folders are represented by icons with or without an associated label on the display screen. Folders are special software objects functioning as containers for other software objects, including other folders. In general, folders and subfolders represent virtual containers where icons representing software objects such as executable computer programs, short cuts, and data files reside. Folders provide a convenient way to organize these software objects into a hierarchal directory tree structure.
One common method of manipulating software objects using the mouse is to “drag and drop” one or more selected icons from one location to another location on the display screen. For the purpose of this specification the terms “software objects” and “objects” are used interchangeably. The drag and drop maneuver is equivalent to picking up a physical object and moving it to a different physical location. It involves the steps of attaching the cursor to an icon, moving the cursor and the attached icon to a different location, and releasing the cursor from the attached icon to leave the icon at the new location. The software object represented by the icon may or may not be moved or altered by this process.
One method of attaching the cursor to an icon is by positioning the cursor in the vicinity of the icon and depressing one of the mouse buttons. As long as the mouse button is depressed, the cursor remains attached to the icon. The icon is “dragged” to a different location by moving the cursor while keeping the mouse button depressed. Once the desired location is reached, the mouse button is released and the icon remains in the new location. For the purpose of clarity, this type of drag and drop maneuver may be called a “drag and move” maneuver to distinguish it from other variations of the drag and drop maneuver.
One variation of the drag and drop maneuver is the creation of a copy of the icon and/or the represented software object in the new location while the original icon remains in the starting location. This variation of the drag and drop maneuver will be referred to as “drag and copy.” There are at least two ways to select whether the “drag and move” or the “drag and copy” maneuver is to be executed.
One selection method is to make the selection context sensitive. In this method, predefined source objects, icons, or target locations are pre-selected to be associated with the drag and move operation or with the drag and copy operation. In this manner, either maneuver can be initiated with the same mouse manipulation. For example if an icon representing a computer file is dragged and dropped into a folder in the same hard drive, the computer file will be moved to the target folder. The predefined context rule in the preceding example is “if a source file is dragged and dropped into a target folder and both are in the same hard drive, then the drag and move is implemented.”
By extension, a different rule is used if the same icon is dragged and dropped into a target folder residing in another hard drive. In this case, a copy of the source file is deposited into the target folder. The predefined context rule in the preceding example is “if a source file is dragged and dropped into a target folder and both are not in the same hard drive, then the drag and copy is implemented.” Another way of selecting whether drag and move or drag and copy is to be executed is by depressing the left button for drag and move, and depressing the right button for drag and copy.
Referring to
Selecting a software object may be carried out by selecting the icon that represents it. Accordingly, “selecting an icon” and “selecting a software object” will be used interchangeably hereafter. The icons 142, 144, 146 may thus be referred to as software objects, or objects. Similarly, “dragging and dropping a software object” may also be used interchangeably with “dragging and dropping the icon” representing the software object. Those of skill in the art will recognize that the represented software object may not be moved by the drag and drop operation, but is nonetheless selected and/or activated via its icon according to the actions performed by the user.
Referring to
According to known software interfaces, executable computer programs, short cuts, and data files may be drag and dropped into folders. These software objects remain unchanged in their final destinations. Known interfaces also permit a data file to be dragged and dropped into an executable computer program. Such a maneuver causes the executable computer program to process the data file in a predetermined manner. For example if a text file is dragged and dropped into an icon representing a printing program, the computer will cause the printer to print the text file. However, known interfaces generally do not carry out any operation in response to dragging and dropping one data file onto another data file.
In one embodiment of this invention, the method of manipulating software objects includes a novel class of operator folders. In
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
In one embodiment of this invention, the following events are represented by the solid lines in
Similarly, the following events are represented by the broken lines in
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. It is appreciated that various features of the systems and methods described above can be mixed and matched to form a variety of other alternatives. As such the described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
This application claims the benefit of: U.S. Provisional Application No. 60/711,264, filed Aug. 24, 2005, which carries Applicants' docket no. Chan-052408, and is entitled GRAPHICAL INTERFACE FOR DIRECT MANIPULATION OF SOFTWARE OBJECTS. The foregoing is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60711264 | Aug 2005 | US |