|Publication number||US7071952 B1|
|Application number||US 09/856,972|
|Publication date||Jul 4, 2006|
|Filing date||Nov 30, 1998|
|Priority date||Nov 30, 1998|
|Also published as||DE69811127D1, DE69811127T2, EP1137977A1, EP1137977B1, WO2000033173A1|
|Publication number||09856972, 856972, PCT/1998/2183, PCT/SE/1998/002183, PCT/SE/1998/02183, PCT/SE/98/002183, PCT/SE/98/02183, PCT/SE1998/002183, PCT/SE1998/02183, PCT/SE1998002183, PCT/SE199802183, PCT/SE98/002183, PCT/SE98/02183, PCT/SE98002183, PCT/SE9802183, US 7071952 B1, US 7071952B1, US-B1-7071952, US7071952 B1, US7071952B1|
|Inventors||Yngve Ternulf, Shahram Pourmakhdomi, Finn Otreus|
|Original Assignee||Actcon Control Ab|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (47), Referenced by (8), Classifications (11), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This application is the national phase under 35 U.S.C. § 371 of PCT International Application No. PCT/SE98/02183 which has an International filing date of Nov. 30, 1998, which designated the United States of America and was not published in English.
The present invention relates to a method for fascilitating the insertion of an object into a working area on a computer display, said method being implemented in a computer application software and comprising the step of receiving input from the user selecting where on the screen an object of a previously specified object type is to be inserted.
In numerous computer applications, objects are selected by a user and inserted into an area of a computer display. This is especially frequent in different kinds of programming and designing, where objects belonging to several different object types are available to the user for insertion into a working area, such as a worksheet, a document, or any other limited area of a screen, used by the active software application to display objects. The user first clicks on a particular type of object (e.g. a certain type of programming item) and then clicks on the location where an object of the particular type is desired.
In some applications a drag-and-drop procedure is utilized, meaning that the user clicks on the object type and without releasing the mouse button moves the cursor to the desired location and then releases the button. An object of the chosen type is hereby inserted at this location. This functionality is implemented in e.g. Viso from Visio Corp.
In other applications the cursor changes its appearance when an object type is clicked on, to indicate that an object will be inserted at the location of the next click. This functionality is implemented in e.g. Corel Draw.
In some cases, objects of certain object types should only be inserted into specific parts of the working area, or in connection with objects of other predetermined object types. Particularly in certain types of programming, e.g. network PLC-programming, where the overall structure has to follow a predetermined pattern, this is a common situation. Inserting an object into a location where it is not ment to be located may result in a non-working object, or even in a non-working program, with tedious error searching as a result.
It is known in the art to implement test routines for each insertion, in order to avoid erroneous placement of objects. This can either be accomplished by making certain object types unavailable to the user unless certain predetermined conditions are met, or by refusing the insertion of a selected object into certain areas. However, the user then finds him/herself in a situation where the intended operation is impossible to perform, e.g. the object he/she intends to insert into a certain location is refused by the application. This is frustrating, especially as the user does not obtain information regarding why the object cannot be inserted, nor regarding what object can be inserted instead.
An even larger problem with known methods for inserting objects of different types into a working area is the fact that the cursor always needs to be moved between the icons or menus from which the object type is chosen, and the desired location.
Another problem is the icons or menus themselves. If menus are used, it can be difficult to quickly find the desired object type. Sometimes several sub-menus need to be opened in order to find a specific object type. If icons are used they normally provide a better overview, but instead they take up valuable space that is needed for other purposes.
A first object of the present invention is therefore to provide a method for inserting an object into a working area on a computer screen, that simplifies the procedure.
A second object of the present invention is to provide a method for inserting an object into a working area on a computer screen, wherein the need for icons or menus is eliminated.
A third object of the present invention is to provide a method for inserting an object into a working area on a computer screen, wherein the problem of attempting to make invalid insertions is avoided.
These objects are accomplished by using a method according to the preamble of claim 1, further characterized by the steps of indicating at least one subarea of the working area where an object is insertable, indicating an object type in association with each subarea, an object of said object type being insertable into said subarea, receiving input from the user selecting one of said at least one subarea, and inserting into the selected subarea an object of the type that is indicated at the selected subarea.
This results in a simple procedure for inserting objects into the working area. Instead of having to first select an object type, and then to select a location, the user only has to make one selection. A software implementing the method according to the invention indicates to the user locations where insertions are possible, and what type of object is insertable at each location. The input needed from the user to perform an insertion is thus reduced from two to one. According to the invention, one single piece of input is enough to insert an object at a valid location in the working area.
Further, the need for menus and icons is eliminated, as the user is given clear indications of what objects are insertable into the working area. There is no need to hide, or make unavailable, contents in a menu, as it is only available objects that are displayed.
The method according to the invention is preferably used when restrictions are imposed on what objects can be inserted into the working area, and where they can be inserted. These restrictions can be caused for example by relationships between programming steps constituting a computer program, said steps being represented by the objects, or by physical relationships between processes or physical entities, said processes or entities being represented by the objects.
The inventive method avoids the above mentioned problem of making invalid insertions. These insertions can not even be attempted, as the user, even before the action to insert an object is performed, is made aware of what type of an object is insertable at a certain location.
A software implementing the method performs an identification of all possible, valid insertions of objects into the working area and indicates them to the user. The user only has to decide which of the insertions to perform.
According to one embodiment of the invention, the indication of said at least one subarea of the working area where an object is insertable includes graphically outlining said subarea.
According to another embodiment of the invention, the indication of said at least one subarea is activatable and deactivatable by the user. This makes it possible for the user to examine the results of his/her work without the indications of subareas visible. When the user intends to insert a new object, the indication is simply activated by giving a certain input to the software.
Input from the user is preferably received using a pointing device, preferably in electronic contact with the software application and controlling a cursor on the display.
This makes it very easy for the user to provide input to the software application regarding where in the working area the user wishes to insert an object.
According to a further embodiment of the invention, the step of indicating at least one subarea of the working area where an object of a type that is insertable can be performed in response to the action of moving the cursor into said subarea.
In this way, the step of indicating a subarea is closely associated with the user activity of moving the mouse. No indications of subareas are displayed in the working area unless the user actually moves the cursor in the working area.
The step of indicating an object type in association with each subarea preferably comprises displaying a symbol representing said object type in connection to said subarea. According to one embodiment of the invention, this symbol is displayed by changing the appearance of the cursor, in response to the action of moving the cursor into said subarea.
One application of the method is in the field of network design. Hereinafter, the term “network” is used for any collection of objects, operations, events, processes, options, conditions etc. that logically relate to each other and form part of a system. Networks can appear in many contexts, for example organisation charts, circuit block diagrams or computer programs, and can be designed, or programmed, with the help of a computer in the above mentioned way by inserting objects of different types into a working area. Network programming is particularly useful when designing systems for automatic control, for example PLC-systems.
Normally, several different object types are available, where each type has specific physical properties. One object type can for example represent physical events, while another might represent a conditional step, with several possible outcomes.
Preferred embodiments of the present invention, given by way of example only, will now be described in more detail, with reference to the accompanying drawings.
Further, the application 1 is provided with indication means 16, for indicating information to the user on the monitor. Again, the structure of means 16 is not in itself unique, and similar indication techniques can be found in many software applications. According to the invention, however, the indication means 16 use identification data 17, supplied by the identification means 15, to indicate all available, valid insertions to the user in the present situation.
The software application 1 also comprises reception means 18 and insertion means 19, similar to the reception means 11 and the insertion means 13 of the prior art, respectively.
In the present context, the means 15, 16, 18, 19 are software routines included in the application 1. Of course, and as is well understood by a person skilled in the art, in some cases one or several of these means 15, 16, 18, 19 can be comprised of separate software, or software associated with e.g. the monitor or mouse, said software operating together with the software application 1.
In the following description of the method according to the invention, said software application 1 is a program network design tool, a working area 7 of which is shown in
In the illustrated example, the program network 20 comprises two types of items, namely step items 21, which represent one or several physical actions, and transition items 22, which define conditions for moving the program control from one step item to another. Each item is represented by an object 21, 22 in the working area 7, and the relationship between the two types of items impose restrictions on how items can be inserted into the working area. For example, two step items cannot be connected to each other without an intermediate transition item.
Reference numerals 23 a, 23 b, 23 c, 23 d indicate four of several subareas in the working area 7, where objects are insertable. The subareas are naturally located in connection to the existing network, as this is where new objects can be inserted.
In the illustrated example, the subareas 23 a, 23 b, 23 c, 23 d are outlined by rectangles 25, which identify and limit each subarea. Of course, any indication using graphics, colour or text is possible. Further, in the vicinity of each subarea 23 a–d, an object type 26 a–d is indicated. Again, in the illustrated example, the object type 26 a–d associated with each subarea 23 a–d respectively, is indicated by a symbol which represents the associated object type 26 a–d.
In the illustarted example, an inserted object normally includes an step item 21 and a transition item 22. Depending on where the object is inserted, however, the order of the two items vary. In subarea 23 a, an object consisting of a transition item followed by an step item is insertable. This object type is represented by the symbol 26 a. In subarea 23 b, the order is reversed, and this object type is represented by the symbol 26 b.
Another possible object is a fork 24 a, 24 b, which indicates a division of the network path. A fork can be inserted before (23 c) or after (23 d) a transition, and different symbols, 26 c and 26 d respectively, are associated with the two types of forks.
When the identification of subareas and insertable object types is performed, the program control waits (in step 32) for the user to activate a grid 25, 26 a–d. This activation can be accomplished by hitting a key on the keyboard 4 or by using the mouse. Reception means 18 are arranged to receive and respond to such input by instructing the indication means 16 to activate the grid. The grid 25, 26 a–d can take on any number of forms, but has the purpose of indicating a plurality of subareas in the working area 7 (step 33 in
The program control now waits for the user to click in one of the subareas (step 35), preferably using the mouse 5. Once a click in a subarea is detected by the reception means 18, the insertion means 19 inserts an object of the indicated object type into the subarea. For example, if the user clicks in subarea 23 a, an object of type 26 a, consisting of a transition item and an step item is inserted into the subarea. Note that the user accomplishes the entire insertion with just one click. As an insertable, valid object type is associated with each subarea, a selection of one of the subareas is sufficient for inserting an object.
This insertion affects the network, typically extending it to include more items. The result of the insertion described above is the network 20′ shown in
The program control then returns to step 35, and again waits for the user to click in a subarea, for the insertion of a new object. Of course, when the program control waits at for example step 35, the user can choose to deactivate the grid or to peform other actions in the application, such as provide an item with additional data, define parameters etc.
Another embodiment of the method according to the invention is showed in
This indication technique is illustrated in
The program control then waits for a user action (step 47). If the user moves the mouse cursor out of the subarea (move), the indications of subarea and insertable object type are removed (step 48) and program control returns to step 44.
If the user does not move the cursor, but instead clicks in said subarea (click) an object is inserted into the subarea (step 49). This insertion affects the network, typically extending it to include more items. Therefore, the program control now instructs the identification means 15 to reidentify subareas and insertable object types (step 50 and 51), before returning to step 44.
Of course, it is possible, and even advantageous, to implement a combination of the two embodiments described above. For example, a grid including only the rectangles 25 can be activated and deactivated, and at the same time the mouse cursor appearance changes to indicate what type of object is insertable into a subarea.
In some cases, for example when a fork 24 a, 24 b is inserted into the working area 7, it can be necessary to indicate a second location 27 a, 27 b, nemely where the fork rejoins with the main path of the network. When this is the case, the insertion of an object 36, 49 is followed by a program step 52, 53 waiting for additional user input.
If, in one subarea, objects of different object types are insertable, this can be indicated by dividing the rectangle 25 into several smaller fields, each with an object type indicated in its vicinity. Alternatively, a list or table can be displayed beside the subarea, indicating different insertable objects.
Another solution is to indicate one object type when the cursor is moved into the subarea. Then, when the user presses the mouse button, alternative object types are indicated. The user can then move the cursor to the desired object type, and release the button in this location, resulting in an insertion of an object of this type. Note that the user still only makes one click with the mouse, although a cursor move is possibly made between the press and release actions.
Another solution, preferred by the applicant, is to indicate several subareas of the standard size, next to each other, each one with one associated object type. This is illustrated in
Many variations of the method according to the present invention are possible to a person skilled in the art. The appearance of the indications can, for example, be changed without loosing the functionality intended in the claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4539585 *||Jul 10, 1981||Sep 3, 1985||Spackova Daniela S||Previewer|
|US4546434 *||Mar 26, 1982||Oct 8, 1985||Gioello Debbie A||Method for designing apparel|
|US4686522 *||Feb 19, 1985||Aug 11, 1987||International Business Machines Corporation||Method of editing graphic objects in an interactive draw graphic system using implicit editing actions|
|US4742473||Jul 16, 1985||May 3, 1988||Shugar Joel K||Finite element modeling system|
|US4922432 *||Jan 13, 1988||May 1, 1990||International Chip Corporation||Knowledge based method and apparatus for designing integrated circuits using functional specifications|
|US5051898 *||Jun 13, 1988||Sep 24, 1991||Eda Systems, Inc.||Method for specifying and controlling the invocation of a computer program|
|US5175696 *||May 21, 1991||Dec 29, 1992||Digital Equipment Corporation||Rule structure in a procedure for synthesis of logic circuits|
|US5247610 *||Sep 29, 1992||Sep 21, 1993||Hitachi, Ltd.||Method and apparatus for generating graphics|
|US5251159 *||Mar 20, 1991||Oct 5, 1993||Vlsi Technology, Inc.||Circuit simulation interface methods|
|US5408601 *||Jul 5, 1994||Apr 18, 1995||Fujitsu Limited||Graphic editor|
|US5452226 *||May 21, 1991||Sep 19, 1995||Digital Equipment Corporation||Rule structure for insertion of new elements in a circuit design synthesis procedure|
|US5481712||Apr 6, 1993||Jan 2, 1996||Cognex Corporation||Method and apparatus for interactively generating a computer program for machine vision analysis of an object|
|US5524238||Mar 23, 1994||Jun 4, 1996||Breakout I/O Corporation||User specific intelligent interface which intercepts and either replaces or passes commands to a data identity and the field accessed|
|US5530865 *||Mar 3, 1993||Jun 25, 1996||Apple Computer, Inc.||Method and apparatus for improved application program switching on a computer-controlled display system|
|US5535134 *||Jun 3, 1994||Jul 9, 1996||International Business Machines Corporation||Object placement aid|
|US5537662 *||May 17, 1993||Jul 16, 1996||Casio Computer Co., Ltd.||Electronic montage composing apparatus|
|US5625567 *||Nov 12, 1993||Apr 29, 1997||Viewlogic Systems, Inc.||Electronic circuit design system and method with programmable addition and manipulation of logic elements surrounding terminals|
|US5644690 *||Jun 10, 1996||Jul 1, 1997||Casio Computer Co., Ltd.||Electronic montage creation device|
|US5673198 *||Mar 29, 1996||Sep 30, 1997||Xilinx, Inc.||Concurrent electronic circuit design and implementation|
|US5680528 *||May 24, 1994||Oct 21, 1997||Korszun; Henry A.||Digital dressing room|
|US5691912 *||Jun 5, 1995||Nov 25, 1997||Xilinx, Inc.||Method for entering state flow diagrams using schematic editor programs|
|US5706477 *||Nov 14, 1995||Jan 6, 1998||Fujitsu Limited||Circuit simulation model extracting method and device|
|US5764534 *||Jul 22, 1996||Jun 9, 1998||Xilinx, Inc.||Method for providing placement information during design entry|
|US5812394 *||Jul 21, 1995||Sep 22, 1998||Control Systems International||Object-oriented computer program, system, and method for developing control schemes for facilities|
|US5859776 *||Aug 12, 1996||Jan 12, 1999||Sony Corporation||Method and apparatus for the design of a circuit|
|US5862379||Mar 7, 1995||Jan 19, 1999||International Business Machines Corporation||Visual programming tool for developing software applications|
|US5926397 *||Mar 4, 1997||Jul 20, 1999||Sharp Kabushiki Kaisha||Routing design method and routing design apparatus|
|US6023569 *||Jun 30, 1997||Feb 8, 2000||Daewoo Electronics Co., Ltd.||Method and device for producing automatic insertion path in apparatus for automatically inserting electronic components into printed circuit board|
|US6145116 *||Apr 28, 1997||Nov 7, 2000||Nec Corporation||Layout design apparatus|
|US6173245 *||Oct 18, 1995||Jan 9, 2001||Altera Corporation||Programmable logic array device design using parameterized logic modules|
|US6173433 *||Sep 29, 1997||Jan 9, 2001||Nippon Telegraph And Telephone Corporation||Circuit design system, image processing method and medium of the circuit design system|
|US6201548 *||Feb 24, 1998||Mar 13, 2001||Hewlett-Packard Company||Graphical user interface for image editing|
|US6209123 *||Nov 1, 1996||Mar 27, 2001||Motorola, Inc.||Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors|
|US6215506 *||Jun 1, 1993||Apr 10, 2001||Brother Kogyo Kabushiki Kaisha||Portrait drawing apparatus|
|US6216253 *||Jan 27, 1997||Apr 10, 2001||Nec Corporation||Method and apparatus for verifying and electrical configuaration using a psuedo-element pattern|
|US6230304 *||Apr 2, 1998||May 8, 2001||Magma Design Automation, Inc.||Method of designing a constraint-driven integrated circuit layout|
|US6307568 *||Oct 28, 1998||Oct 23, 2001||Imaginarix Ltd.||Virtual dressing over the internet|
|US6348923 *||Jun 11, 1998||Feb 19, 2002||Casio Computer Co., Ltd.||Object image display devices|
|US6360191 *||Jan 5, 1999||Mar 19, 2002||John R. Koza||Method and apparatus for automated design of complex structures using genetic programming|
|US6374390 *||Dec 15, 1999||Apr 16, 2002||Antrim Design Systems, Inc.||Method and apparatus for improvement of sparse matrix evaluation performance|
|US6438729 *||May 20, 1999||Aug 20, 2002||Synopsys, Inc.||Connectivity-based approach for extracting layout parasitics|
|US6449761 *||Jan 7, 1999||Sep 10, 2002||Monterey Design Systems, Inc.||Method and apparatus for providing multiple electronic design solutions|
|US6463574 *||Jun 10, 1999||Oct 8, 2002||Sun Microsystems, Inc.||Apparatus and method for inserting repeaters into a complex integrated circuit|
|US6631508 *||Jun 7, 2000||Oct 7, 2003||Xilinx, Inc.||Method and apparatus for developing and placing a circuit design|
|US20020116685 *||Apr 24, 2002||Aug 22, 2002||Magma Design Automation, Inc.||Timing closure methodology|
|WO1998006219A1||Aug 5, 1997||Feb 12, 1998||Starsight Telecast, Incorporated||Electronic program guide with interactive areas|
|WO1999028794A2||Nov 26, 1998||Jun 10, 1999||Moeller Gmbh||Mini controller|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7502721 *||Dec 26, 2003||Mar 10, 2009||Ricoh Company, Ltd.||Product design support system, product design support method, and program|
|US8952964 *||Jul 12, 2010||Feb 10, 2015||International Business Machines Corporation||Generating animated voronoi treemaps to visualize dynamic hierarchical data with node insertion|
|US9766787||Aug 6, 2014||Sep 19, 2017||Microsoft Technology Licensing, Llc||Using visual landmarks to organize diagrams|
|US20060155760 *||Dec 26, 2003||Jul 13, 2006||Susumu Takahashi||Product design support system, product design support method, and program|
|US20090228786 *||Mar 10, 2008||Sep 10, 2009||Microsoft Corporation||Flexible creation of auto-layout compliant diagrams|
|US20110292046 *||Jul 12, 2010||Dec 1, 2011||International Business Machines Corporation||Generating animated voronoi treemaps to visualize dynamic hierarchical data|
|US20110292050 *||Jul 12, 2010||Dec 1, 2011||International Business Machines Corporation||Generating animated voronoi treemaps to visualize dynamic hierarchical data with node insertion|
|US20140160155 *||Aug 30, 2011||Jun 12, 2014||Hewlett-Packard Development Company, L.P.||Inserting an Object into an Image|
|U.S. Classification||345/629, 716/102, 716/139|
|International Classification||G06F3/0484, G09G5/00, G06F9/45, G06F9/44|
|Cooperative Classification||G06F9/4443, G06F3/04845|
|European Classification||G06F3/0484M, G06F9/44W|
|Jun 29, 2001||AS||Assignment|
Owner name: ACTCON CONTROL AB, SWEDEN
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TERNULF, YNGVE;POURMAKHDOMI, SHAHRAM;OTREUS, FINN;REEL/FRAME:011938/0793;SIGNING DATES FROM 20010511 TO 20010525
|Feb 8, 2010||REMI||Maintenance fee reminder mailed|
|Jul 4, 2010||LAPS||Lapse for failure to pay maintenance fees|
|Aug 24, 2010||FP||Expired due to failure to pay maintenance fee|
Effective date: 20100704