Not Applicable.
Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, accounting, etc.) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. Accordingly, the performance of many business related processes are distributed across a number of different computer systems and/or a number of different computing components.
For example, diagramming applications can be used to generate flow charts, organization charts, workflow diagrams, etc. Most diagramming applications include at least a toolbar and a canvas area. A user can pull shapes (e.g., circles, rectangles, squares, diamonds, etc.) from the tool bar to add to the canvas. Shapes can be connected to one another to indicate relationships between the shapes. Users can also rearrange and remove existing shapes and connections within the canvas.
At least some diagramming applications utilize a free form canvas allowing the user complete control over the organization and spacing of shapes on a canvas. Users are free to (re)arrange shapes and connections as they see fit with no restrictions. Thus, free form canvases give a user significant flexibility to create diagrams to their exact specifications.
However, creating diagrams using a free from canvas can also be tedious and labor intensive. The meaning of a diagram is more appropriately conveyed (e.g., visually perceived) when shapes within a diagram are organized and appropriately spaced. Thus, each time a diagram changes (e.g., a new shape is introduced into or an existing shaped is removed from or moved within a diagram), the organization and spacing of shapes and connections may need to be adjusted to appropriately convey the new meaning of the diagram.
Unfortunately, using a free form canvas, a user is required to individually make all these adjustments, such as, for example, disconnecting and reconnecting shapes, pixel alignment, etc., on their own. For many diagrams, and especially larger and/or more complex diagrams, these adjustments can be numerous and can take a considerable amount of time to implement. Further, a single change to a diagram can have a ripple effect causing a large number shapes to become unorganized and or inappropriately spaced.
Accordingly, some diagramming applications include automated mechanisms, such as, for example, an auto-layout algorithm, to assist users in appropriately adjusting shapes and connections in response changes to a diagram. An auto-layout algorithm can have various layout (e.g., organizational and spacing) constraints that essentially dictate the placement of shapes and connections within a diagram. An auto-layout algorithm can also include one or more of a variety of different functions.
For example, when a shape (either new or moved) is inserted into a specified location within a diagram, an auto-layout algorithm can automatically move the shape from the specified location to a more appropriate (e.g., close by) location (on a canvas) to comply with layout constraints. Similarly, when a shape is removed (either deleted or moved) from a location within a diagram, the auto-layout algorithm can automatically adjust shapes previously connected to the removed shape (on the canvas) to comply with layout constraints. When a shape is moved within a diagram, both of these functionalities can be implemented. Auto-layout algorithms can also include the functionality to adjust any and other shapes and connections within a diagram in response to adding, deleting, or moving a shape to comply with layout constraints (e.g., to compensate for ripple effects).
Accordingly, auto-layout algorithms can be utilized to automatically arrange shapes and connections within a diagram to better convey the new meaning of the diagram. Some auto-layout algorithms even permit the tuning of layout constraints so that a user has some control of the layout of a diagram. However, auto-layout algorithms are typically prescriptive and do not permit non-compliant changes (even based on tuned layout constraints) to a diagram. Further, a user typical has no way to know before inserting, moving, or deleting a shape, how the auto-layout algorithm will adjust the location of the shape and/or surrounding connected shapes.
Often, a shape can be placed at any number of locations relative to existing shapes of a diagram and comply with layout constraints. However, the user may have no way to know before making a change what the compliant locations are relative to the existing shape. Thus, a user must rely on the auto-layout algorithm to select a compliant location, which based on the user's intent for a diagram, may not be the most appropriate compliant location.
Some further tools do exist to provide limited organization to otherwise free form diagrams. These further tools can provide abilities such as align, center, and distribute. However, these further tools have a number of deficiencies. For example, the tools are typically not presented on the canvas. Further, the tools do not automatically reapply on updates, such as, for example, adding a new shape. As such, the tools must be reapplied (with some degree of frequency and in some environments essentially constantly) to invoke their functionality. Additionally, these further tools are typically not customizable. Lack of customizability makes it difficult to construct and maintain specialized layouts.
The present invention extends to methods, systems, and computer program products for using visual landmarks to organize diagrams. In some embodiments, visual landmarks are used to organize a diagram. A computer system presents one or more visual elements representing a diagram. The computer system presents a visual landmark along with the one or more visual elements within the diagram. The visual landmark is configured with one or more properties that are to be applied to associated visual elements to position the associated visual elements relative to the visual landmark.
The computer system receives input selecting one of the one or more visual elements for placement in the diagram. The computer system receives further input indicating that the selected visual element is to be associated with the visual landmark. The computer system automatically positions the selected visual element relative to the visual landmark in accordance with the one or more corresponding properties of the visual landmark to organize the selected visual element within the diagram. The selected visual element is positioned in response to receiving the further input.
In other embodiments, a visual landmark is customized for use in organizing a diagram. A computer system accesses and visually presents a stored visual landmark that can be used to organize visual elements in a diagram. The computer system alters the visual presentation of the visual landmark in accordance with user-entered input.
The computer system configures one or more properties of the visual landmark in accordance with user-entered input. The configured one or more properties indicate how to automatically position an associated visual element relative to the visual landmark to organize the associated visual element within a diagram. The computer system stores the altered visual presentation along with the configured one or more properties as a new visual landmark. The new visual landmark is for use in organization diagrams in accordance with the user-entered input.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
The present invention extends to methods, systems, and computer program products for using visual landmarks to organize diagrams. In some embodiments, visual landmarks are used to organize a diagram. A computer system presents one or more visual elements representing a diagram. The computer system presents a visual landmark along with the one or more visual elements within the diagram. The visual landmark is configured with one or more properties that are to be applied to associated visual elements to position the associated visual elements relative to the visual landmark.
The computer system receives input selecting one of the one or more visual elements for placement in the diagram. The computer system receives further input indicating that the selected visual element is to be associated with the visual landmark. The computer system automatically positions the selected visual element relative to the visual landmark in accordance with the one or more corresponding properties of the visual landmark to organize the selected visual element within the diagram. The selected visual element is positioned in response to receiving the further input.
In other embodiments, a visual landmark is customized for use in organizing a diagram. A computer system accesses and visually presents a stored visual landmark that can be used to organize visual elements in a diagram. The computer system alters the visual presentation of the visual landmark in accordance with user-entered input.
The computer system configures one or more properties of the visual landmark in accordance with user-entered input. The configured one or more properties indicate how to automatically position an associated visual element relative to the visual landmark to organize the associated visual element within a diagram. The computer system stores the altered visual presentation along with the configured one or more properties as a new visual landmark. The new visual landmark is for use in organization diagrams in accordance with the user-entered input.
Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer including computer hardware, as discussed in greater detail below. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are physical storage media. Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: physical storage media and transmission media.
Physical storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry or desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
Further, it should be understood, that upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to physical storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile physical storage media at a computer system. Thus, it should be understood that physical storage media can be included in computer system components that also (or even primarily) utilize transmission media.
Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
Input devices 114 can include a variety of input devices, such as, for example, a keyboard and/or mouse. User 113 can utilize input devices 114 to enter data into computer architecture 100. Display device 108 can visually present data output from computer architecture 100 on display 109. User 113 can visually perceive data displayed at display 109.
Generally, user-interface 101 is configured to function as an intermediary software layer between user 113 and the other components of computer architecture 100. User-interface 101 can be configured with appropriate software, such as, for example, drivers, to receive input from input devices 114 and to send output to display device 108. Thus, user-interface 101 can forward user-input to other components, such as, for example, diagram editor 102. User-interface 101 can also forward renderable image data from other components, such as, for example, rendering module 107, to display device 108.
Diagram editor 102 is configured to edit diagram data for renderable diagrams. Diagram data can indicate shape types, shape locations, and connections between shapes for visual elements in a diagram. In response to user-input, diagram editor 102 can add, delete, and alter diagram data representing shape locations, shape types, and connections for visual elements of a diagram. In some embodiments, a user action causes diagram editor 102 to perform a series of edits to diagram data. For example, in response to placement of a visual element in a diagram, diagram editor 102 can a) edit diagram data to include the location and type of a shape for the visual element and b) edit diagram data to include connections between the shape and other appropriate shapes.
Diagram editor 102 can also access visual landmarks from visual landmark repository 135 and include data representing visual landmarks in diagram data. Thus, similarly to shapes within a diagram, diagram editor 102 can also add, delete, and alter diagram data representing visual landmark locations, types, and connections for visual landmarks within a diagram. Visual landmark operations can also be in response to user-input.
Rendering module 107 is configured to generate interconnected visual elements (shapes and/or visual landmarks) from diagram data for rendering a diagram at display device 108. Diagrams can be any of a variety of different types of diagrams includes flow charts, workflow diagrams, organizational charts, process diagrams, schematics, etc. Diagrams can include any of a variety of different visual elements including geometric shapes, such as, for example, circles, diamonds, squares, rectangles, triangles, etc. Connections between visual elements can be represented as a line.
As depicted, rendering module 107 includes visual assist module 117. Visual assist module 117 is configured to provide visual feedback to a user to assist the user with diagram creation and editing. For example, upon user selection of a visual element in a diagram, visual assist module 117 can provide visual feedback indicating selection of the visual element. Visual feedback can include altering visual characteristics of elements and connections to indicate selection (e.g., graying out the outline of the visual element). Visual feedback can also include supplementing a diagram with additional visual information to assist a user in the layout of elements and connections with in a diagram.
Method 200 includes an act of presenting an arrangement of one or more visual elements representing a diagram (act 201). Method 200 includes an act of presenting a visual landmark along with the one or more visual elements within the diagram, the visual landmark configured with one or more properties that are to be applied to associated visual elements to position the associated visual elements relative to the visual landmark (act 202). For example, user-interface 101 can present visual elements 141 at display device 108. Visual elements 141 can include elements and one or more visual landmarks. For example, referring to
Method 200 includes an act of receiving input selecting a visual element for placement in the diagram (act 203). For example, user-interface 101 can receive user-element selection input 133 (e.g., a mouse click on element 301). User-interface 101 can determine that user-element selection input 133 is the selection of a new or existing visual element. As such, user-interface 101 can forward selection input 161 to rendering module 107.
A new element (e.g., from a toolbar) can be selected for inclusion in a diagram. An existing element (e.g., already in the diagram) can be selected for moving within the diagram. For example, referring to
Method 200 includes an act of providing visual feedback indicating that the selected visual element is selected (act 204). For example, visual assist module 117 can provide element selection visual feedback 142 for display at display device 108. Element selection visual feedback can result from altering the visual characteristics of a selected visual element in some way to indicate that it is selected. For example, referring now to
Method 200 includes an act of receiving further input indicating that the selected visual element is to be associated with the visual landmark (act 205). For example, referring to both
Method 200 includes an act of automatically updating the arrangement of one or more visual elements by positioning the selected visual element relative to the visual landmark in accordance with the one or more corresponding properties of the visual landmark in response to receiving the further input so as to organize the selected visual element within the diagram (act 206). For example, in response to movement data 162 (e.g., co-location of element 301 with snap bar 302), diagram editor 102 can update diagram data 112 (e.g., representing diagram 300) by positioning element 301 relative to snap bar 302 in accordance with the one or more properties of snap bar 302. Positioning element 301 relative to snap bar 302 can be performed to organize element 301 within diagram 300.
Method 200 includes an act of presenting the updated arrangement of the one or more visual elements to reflect of organization of the selected visual element within the diagram (act 207). For example, referring to
Accordingly,
Embodiments of the invention facilitate tagging elements for positioning relative to a visual landmark. For example,
As depicted in
Subsequent to tagging element 403, user 113 can submit further input, such as, for example, selecting an item from a menu or button bar (presented by user-interface 101), to indicate that elements 401, 402, and 403 are to be associated with a snap bar (or some other visual landmark). This further input can be received at user-interface 101 and forwarded to rendering module 107 and/or diagram editor 102. Rendering module 107 and diagram editor 102 can interoperate to automatically update the arrangement of diagram 400. For example, rendering module 107 represented changed positions for elements 401, 402, and 403 and diagram editor 102 can alter diagram data 112 to include snap bar 404. Elements 401, 402, and 403 can be positioned relative to snap bar 404 in accordance with the properties snap bar 404 (e.g., even spacing between elements and vertical alignment).
Rendering module 107 can present the updated arrangement of diagram 400 (represented in updated visual elements 144) at display device 109. As depicted in
Embodiments of the invention facilitate adding elements to a visual landmark that already includes one or more elements.
As depicted in
Through further user input, user 113 can indicate that selected element 501 is to be positioned on snap bar 503. For example, user 113 can drop selected element 501 onto snap bar 503. In response to detecting that selected element 501 is dropped onto snap bar 503, diagram 500 can be automatically updated and presented on display 109. For example, as depicted in
Embodiments of the invention facilitate expanding existing elements on a visual landmark.
As depicted in
In response to the further user input selecting an expansion item, diagram 600 can be automatically updated and presented on display 109. For example, as depicted in
Embodiments of the invention facilitate moving an element on a visual landmark to a different position on the visual landmark.
As depicted in
Through further user input, user 113 can indicate that element 702 is to be positioned to the left of element 702 on snap bar 703. For example, user 113 can drop element 702 (selected) at the position indicated in
Embodiments of the invention facilitate moving a visual landmark to move all the elements positioned on the visual landmark.
As depicted in
Embodiments of the invention facilitate toggling the visibility of visual landmarks.
As depicted in
As depicted in
Thus, generally, visual landmarks can be added to diagram to assist in organizing elements within the diagram. A variety of different types of visual landmarks can be used. Each type of visual landmark can include configurable properties defining arrangements and adjustments for elements associated with the type of visual landmark. Configurable properties can define how associated elements are to be positioned relative to the visual landmark. Configurable properties can also define how associated elements are to be positioned relative to one another. Subsequently, elements within the diagram can be associated with a visual landmark and arranged and/or adjusted in accordance with the configurable properties of the visual landmark.
For example,
Further, snap bars, snap beziers, and snap arcs can have a variety of other configurable properties in common. For example, snap bars, snap beziers, and snap arcs can include configurable properties that define whether distribution is evenly or freeform, one or more of bottom align, top align, left align, and right align (when applicable), an angle of rotation (e.g., 45 degrees, 90 degrees etc.), and a spacing (e.g., in pixels).
Gravity wells are elliptical in shape and can be sized as desired. Added shapes within their “field of influence” can gravitate towards them, as defined by a force-based algorithm.
Snap stacks can be used to arrange elements according to a stacking grid structure. As shapes are added to a path they can occupy a new row or a cell within an exiting row. New rows and cells can be generated as elements are added to the snap stack.
Sticky boxes are rectangular and act as visual groups that can be used to organize, move, and manage collections of elements.
Generally, embodiments of the invention permit users to customize visual landmarks to cause the visual landmarks to exhibit desired behavior. Embodiments of the invention also include customizing individual visual landmarks to create new visual landmarks. For example, the radius of an existing snap arc can be modified (increased or decreased) to create a new snap arc, an existing sticky lasso can be modified to create a region with new boundaries, a snap Bezier can be modified to alter a curvature, add a new curve, or remove an existing curve to create a new snap Bezier, etc.
In some embodiments, a plurality of existing visual landmarks is combined to create a customized visual landmark.
Method 1700 includes an act of accessing and visually presenting a stored visual landmark that can be used to organize visual elements in a diagram (act 1701). For example, referring now to
Method 1700 includes an act of altering the visual presentation of the visual landmark in accordance with user-entered input (act 1702). For example, user 131 can enter user input to alter any visual landmarks visually presented in act 1701. When a visual landmark is selected, visual landmark feedback can visually indicate the selection to use 113 (e.g., using any indication applicable to elements within a diagram). For example, upon selection snap bar 1821 rendering module can send visual landmark feedback 143 (e.g., presenting snap bar 1821 with a dashed line) to display device 108.
Method 1700 includes an act of configuring one or more properties of the visual landmark in accordance with user-entered input, the configured one or more properties indicating how to automatically position an associated visual element relative to the visual landmark to organize the associated visual element within a diagram (act 1703). For example, in
Method 1700 includes an act of storing the altered visual presentation along with the configured one or more properties as a new visual landmark, the new visual landmark for use in organization diagrams in accordance with the user-entered input (act 1704). For example, user 113 can enter user input causing customized visual landmark 1800 to be stored in visual landmark repository 135.
Visual landmarks can be applied to diagrams having visual elements arranged in freeform manner to assist in organizing the elements within the diagrams. Visual landmarks can also be applied to diagrams having visual elements arranged in accordance with an automatic arrangement mechanism (e.g., in accordance with an auto-layout algorithm) to assist in organizing the elements within the diagrams. Visual landmarks can work in combination with an automatic arrangement mechanism by applying constraints to automatic arrangements of visual elements.
Thus, embodiments of the invention facilitate using (in some embodiments customized) visual landmarks to organize elements within a diagram. Elements of a diagram can be arranged in accordance with configurably defined properties of visual landmarks to provide some degree of layout structure within the diagram. Accordingly, embodiments of the invention provide a user experience that provides some structure but retains the flexibility of free form editing.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. 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.
Number | Name | Date | Kind |
---|---|---|---|
5490241 | Mallgren et al. | Feb 1996 | A |
5565888 | Selker | Oct 1996 | A |
5613058 | Koppolu et al. | Mar 1997 | A |
5644737 | Tuniman et al. | Jul 1997 | A |
5694563 | Belfiore et al. | Dec 1997 | A |
5892554 | DiCicco et al. | Apr 1999 | A |
6034684 | Proehl et al. | Mar 2000 | A |
6065021 | George | May 2000 | A |
6426761 | Kanevsky et al. | Jul 2002 | B1 |
6437804 | Ibe et al. | Aug 2002 | B1 |
7058653 | Okamoto et al. | Jun 2006 | B2 |
7318199 | Nickolayev et al. | Jan 2008 | B2 |
8225224 | Robertson et al. | Jul 2012 | B1 |
20030214536 | Jarrett et al. | Nov 2003 | A1 |
20050102634 | Sloo | May 2005 | A1 |
20050243373 | Silverbrook et al. | Nov 2005 | A1 |
20060150169 | Cook et al. | Jul 2006 | A1 |
20060164682 | Lev | Jul 2006 | A1 |
20060242557 | Nortis, III | Oct 2006 | A1 |
20070266307 | Panditharadhya et al. | Nov 2007 | A1 |
20080012859 | Saillet et al. | Jan 2008 | A1 |
20080022215 | Lee et al. | Jan 2008 | A1 |
20090158200 | Palahnuk et al. | Jun 2009 | A1 |
20110161827 | Dedis et al. | Jun 2011 | A1 |
Number | Date | Country |
---|---|---|
07-021241 | Jan 1995 | JP |
08-096153 | Apr 1996 | JP |
08-221500 | Aug 1996 | JP |
2002-208021 | Jul 2002 | JP |
Entry |
---|
Jiang, Yi-Feng, “Shape Alighment by Learning a Landmark-PDM Coupled Model”, Proceedings of the 18th International Conference on Pattern Recognition (ICPR'06), 2006 IEEE, 4 pages. |
MSDN, “Using Alignment Boxes to Snap Shapes to a Grid”, 2008 Microsoft Corporation, 3 pages. |
MSDN, “Working with Shape Layers”, 2008 Microsoft Corporation, 5 pages. |
Sonoe Takagami, “Adobe Illustrator CS3 Essential Book”, 1st Ed., pp. 32-34, Mainichi Communications Inc., Aug. 15, 2007. |
Number | Date | Country | |
---|---|---|---|
20090327954 A1 | Dec 2009 | US |