Automatic layout of objects

Information

  • Patent Application
  • 20070162844
  • Publication Number
    20070162844
  • Date Filed
    January 12, 2006
    18 years ago
  • Date Published
    July 12, 2007
    17 years ago
Abstract
In some implementations, selected objects are arranged within a view. Each object is assigned an ordinal value, regardless of data type, according to the object's position in a first direction (e.g., horizontal position) relative to other objects of the layout grouping. The objects are linearly aligned along a line parallel to the first direction (e.g., horizontally). Each object's position is then minimally adjusted in the first direction (e.g., horizontally) such that the object has a minimum distance from each other object having a lower ordinal value without overlapping any of the other objects. In some other implementations, a computer-readable medium contains computer-readable instructions that, when executed by a computer system, cause the computer system to perform the above-described method. In still other implementations, a computer system has a memory containing computer-readable instructions that, when executed by the computer system's processor, cause the processor to perform the method.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Although the disclosure herein refers to certain illustrated embodiments, it is to be understood that these embodiments are presented by way of example and not by way of limitation. Not all modifications, alternatives, and equivalents of the embodiments are described, and other embodiments may fall within the spirit and scope of the invention. It is to be understood and appreciated that the process steps and structures described herein do not cover a complete process flow nor all elements and components that may be found in a complete product, apparatus, or system. The following description is therefore presented for illustrative purposes.



FIG. 1 shows a selection widget that may be used to select a layout grouping.



FIG. 2 is a diagram of a view to which a plurality of objects, including objects set forth in a Field Chooser, may be added.



FIG. 3 is a diagram of screens in which a plurality of objects has been added to the view of FIG. 2.



FIG. 4 is a diagram of a screen, showing a selection of controls from which to create layout grouping.



FIG. 5 is a diagram of a screen depicting a creation of a layout grouping.



FIG. 6 is a diagram of a screen depicting components of a layout grouping.



FIG. 7 is a diagram of a screen showing a selection of a control in a row of a table having a tabular table format.



FIG. 8 is a diagram of a screen.



FIG. 9 is a diagram of a screen showing a selection of a row.



FIG. 10 is a diagram of a screen showing a selection of a table.



FIG. 11 is a diagram of a screen showing a selection of a group of user-interface objects within a view.



FIG. 12 is a schematic diagram of a screen-shot showing a selection of a column, (that is, of a control group) of a table having a stacked table format.



FIG. 13 is a screen showing a resizing of columns in a table having a stacked tabular layout.



FIG. 14 is a diagram of a screen of a Ribbon Command user-interface.



FIG. 15 shows several Gridlines Gallery Options.



FIG. 16 is a screen of a Context Menu command user-interface.



FIG. 17 is a diagram of a screen depicting an application of gridlines to a typical data set.



FIG. 18 is a partial screen layout depicting Margins and Padding.



FIG. 19 is a diagram of a screen showing a Margins Gallery.



FIG. 20 is a diagram of a screen in which an object is added to a table that has a tabular table format.



FIG. 21 is a diagram of a screen depicting a modified object being added to a view.



FIG. 22 is a diagram of a screen showing an ungrouping of a control.



FIG. 23 is a flowchart depicting a method.


SUMMARY

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.


Inclusion of certain aspects and implementations in the description below should not be regarded as excluding other aspects and implementations. For example, in accordance with some aspects and implementations that are herein described, selected non-label objects may collectively be regarded as a layout grouping and may be arranged within a view. Each may be assigned an ordinal value, regardless of data type, according to each object's position in a first direction (e.g., horizontal position) relative to other objects of the layout grouping. The objects may be linearly aligned along a line parallel to the first direction (e.g., horizontally). Each object's position may then be minimally adjusted in the first direction (e.g., horizontally) such that the object has a minimum distance from each other object having a lower ordinal value, without overlapping any of the other objects. Such aspects and implementations should not be regarded as limiting, since other aspects and implementations are also contemplated. For example, in accordance with another aspect and implementation, a computer-readable medium contains computer-readable instructions that, when executed by a computer system, cause the computer system to perform the above-described method. In accordance with still another aspect and implementation, a computer system has a memory containing computer-readable instructions that, when executed by the computer system's processor, cause the processor to perform the method.


Moreover, description of various embodiments in terms of software programs running on a computer processor, for example, should not be interpreted as excluding other embodiments having dedicated hardware implementations including, but not limited to application specific integrated circuits (ASICs) and programmable logic arrays (PLAs). Other hardware devices can likewise be constructed to implement the methods described herein. Furthermore, alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.


Claims
  • 1. A method for automatically arranging objects within a view, the view including a layout grouping that may be selected, each object of the layout grouping having a position within the view, the method including: assigning an ordinal value to each object of the layout grouping regardless of a data type, in accordance with the position of the object in a first direction, relative to other objects of the layout grouping;automatically aligning the layout grouping along a line that is parallel to the first direction, regardless of data type; andfor each object in the layout grouping, automatically adjusting the position of the object in the first direction such that the object has a minimum distance from each object having a lower ordinal value without overlapping any other object of the layout grouping.
  • 2. The method for achieving an arrangement of objects within a view of claim 1, wherein: the line is horizontal, such that the linearly aligning of the layout grouping is along a horizontal line; andthe first direction is horizontally rightward, such that for each object in the layout grouping that does not have a true RTL property, the position of the object is minimally adjusted to the right, and for each object in the layout grouping that does have a true RTL property, the position is minimally adjusted to the left, such that the object does not overlap any other object of the layout grouping having a lower ordinal value.
  • 3. The method for achieving an arrangement of objects within a view of claim 1, wherein: the line is vertical, such that the linearly aligning of the layout grouping is along a vertical line; andthe first direction is vertically downward, such that the position of the object is minimally adjusted downward, and such that the object does not overlap any other object of the layout grouping having a lower ordinal value.
  • 4. The method for achieving an arrangement of objects within a view of claim 1, further comprising: before assigning the ordinal value to each object of the layout grouping, adding a plurality of new objects to the layout grouping and to the view such that the layout grouping includes the plurality of new objects.
  • 5. The method for achieving an arrangement of objects within a view of claim 4, further comprising: if at least one object of the layout grouping has an inheritable property that does not conflict with any inheritable property of any other object of the layout grouping, inheriting the inheritable property that does not conflict with any inheritable property of any other object into the plurality of new objects.
  • 6. The method for achieving an arrangement of objects within a view of claim 5, wherein: the resizing includes: if the layout grouping is a vertical control group: horizontally dragging a resizer that is at a right edge of a control group, adjusting a column width of the-control group in accordance with the horizontal dragging, such that the column width remains greater than zero;moving each column that may be to the right of the resizer; andif the layout grouping is a horizontal control group: vertically dragging a resizer that is at a bottom edge of a control group;adjusting a row height of the control group in accordance with the vertically dragging, such that the row height remains greater than zero; andmoving each row that may be below the resizer.
  • 7. The method for achieving an arrangement of objects within a view of claim 5, wherein inheriting the inheritable property further comprises: detecting a property change of an object within the layout grouping; andinheriting the property change into all objects of the layout grouping.
  • 8. The method for achieving an arrangement of objects within a view of claim 1, further comprising: in response to a remove-from-group command when a plurality of removable objects is selected within a table: disassociating the plurality of removable objects from all control groups;moving the plurality of removable objects away from the table; andmoving remaining control groups as necessary to minimize distances between adjacent rows and between adjacent columns.
  • 9. The method for achieving an arrangement of objects within a view of claim 1, further comprising: in response to an “undo” command, undoing the minimally adjusting and the linearly aligning.
  • 10. The method for achieving an arrangement of objects within a view of claim 1, further comprising: if the layout grouping includes at least a first object from a first table and a second object from a second table, creating a new table including the layout grouping.
  • 11. The method for achieving an arrangement of objects within a view of claim 1, further comprising: providing a position of each object of the layout grouping as an absolute position.
  • 12. The method for achieving an arrangement of objects within a view of claim 1, further comprising: if at least one object of the layout grouping has a label, creating a header group for the layout grouping if the layout grouping has no header group, such that the header group is parallel to the line to which the objects of the layout grouping are aligned;for each object of the layout grouping that does not have a corresponding label object: a) if the object has a label but not a corresponding label object, disassociating the label from the object;converting the label into a corresponding label object; andassigning default label properties from a toolbox to the corresponding label object; andb) creating, aligning, and minimally adjusting a control group that includes both the object of the layout grouping and the corresponding label object.
  • 13. The method for achieving an arrangement of objects within a view of claim 12, wherein creating a header group further comprises: determining a preferred distance between the header group and the layout grouping;assigning the preferred distance as an inheritable property of the layout grouping; wherein one of: (a) the layout grouping is linearly aligned as a first row, and the header group is linearly aligned as a second row parallel to the first row, and(b) the layout grouping is linearly aligned as a first column, and the header group is linearly aligned as a second column.
  • 14. The method for achieving an arrangement of objects within a view of claim 1, further comprising: if the layout grouping includes a first object of a first control group and a second object of a second control group, creating a new control group containing all objects of the first control group and all objects of the second control group.
  • 15. A computer-readable medium containing computer-readable instructions that when executed by a computer system cause the computer system to perform a method for achieving an arrangement of objects within a view, the view including a layout grouping that are selected and that are not labels, each object of the layout grouping having a position within the view, the method including: assigning an ordinal value to each object of the layout grouping regardless of a data type, in accordance with the position of the object in a first direction, relative to other objects of the layout grouping;for each object in the layout grouping, regardless of the data type of the object, minimally adjusting the position of the object such that the object does not overlap any other object of the layout grouping having a lower ordinal value; andlinearly aligning the layout grouping along a line in the first direction, such that the objects of the layout grouping are linearly aligned and non-overlapping with a minimum distance there-between.
  • 16. The computer-readable medium of claim 15, wherein: the first direction is horizontally rightward, such that for each object in the layout grouping that does not have a true RTL property, the position of the object is minimally adjusted to the right, and for each object in the layout grouping that does have a true RTL property, the position is minimally adjusted to the left, such that the object does not overlap any other object of the layout grouping having a lower ordinal value; andthe linearly aligning of the layout grouping is along a horizontal line.
  • 17. The computer-readable medium of claim 15, wherein: the first direction is vertically downward, such that the position of the object is minimally adjusted downward, such that the object does not overlap any other object of the layout grouping having a lower ordinal value; andthe linearly aligning of the layout grouping is along a vertical line.
  • 18. A computer system comprising: a processor;a bus coupled to the processor; anda memory containing computer-readable instructions that when executed by the processor cause the processor to perform a method for achieving an arrangement of objects within a view, the view including a layout grouping that are selected and that are not labels, each object of the layout grouping having a position within the view, the method including:assigning an ordinal value to each object of the layout grouping regardless of a data type, in accordance with the position of the object in a first direction, relative to other objects of the layout grouping;for each object in the layout grouping, regardless of the data type of the object, minimally adjusting the position of the object such that the object does not overlap any other object of the layout grouping having a lower ordinal value; andlinearly aligning the layout grouping along a line in the first direction, such that the objects of the layout grouping are linearly aligned and non-overlapping with a minimum distance there-between.
  • 19. The computer system of claim 18, wherein: the first direction is horizontally rightward, such that for each object in the layout grouping that does not have a true RTL property, the position of the object is minimally adjusted to the right, and for each object in the layout grouping that does have a true RTL property, the position is minimally adjusted to the left, such that the object does not overlap any other object of the layout grouping having a lower ordinal value; andthe linearly aligning of the layout grouping is along a horizontal line.
  • 20. The computer system of claim 18, wherein: the first direction is vertically downward, such that the position of the object is minimally adjusted downward, such that the object does not overlap any other object of the layout grouping having a lower ordinal value; andthe linearly aligning of the layout grouping is along a vertical line.