This description relates to management of display of layout elements.
Layout elements, which can be processed for display within specified locations within an application, can have various types of fields configured to contain objects for display. A field configured to include an object for display therein can be referred to as an object field. The layout elements may define, for example, at least a portion of a user interface of an application. When objects of different sizes are included within the fields from these layout elements, the fields may not be aligned in a desirable fashion. The misalignment may be caused by, for example, expansion of the dimensions of the various fields in a non-uniform fashion between different layout elements based on the varying sizes of the objects included within the fields. Thus, a need exists for systems, methods, and apparatus to address the shortfalls of present technology and to provide other new and innovative features.
According to one general aspect, a computer system can include instructions stored on a non-transitory computer-readable storage medium. The computer system can include a data handler configured to receive data for display within a plurality of layout elements. Each layout element from the plurality of layout elements can be identified for display within an application. The computer system can include a boundary generator configured to associate a first plurality of variable-size fields with a first column and associate a second plurality of variable-size fields with a second column. Each layout element from the plurality of layout elements can include at least one variable-size field from the first plurality of variable-size fields and at least one variable-size field from the second plurality of variable-size fields. The boundary generator can be configured to define a pair of alignment boundaries using a predicted size of each of the variable-size fields from the first plurality of variable-size fields. The predicted size of each of the variable-size fields from the first plurality of variable-size fields can be based on each of the variable-size fields from the first plurality of variable-size fields being populated with at least a portion of the data and being sized independent of the remaining variable-size fields from the first plurality of variable-size fields. The computer system can include an application display engine configured to align a boundary of each variable-size field from the first plurality of variable-size fields with a first alignment boundary from the pair of alignment boundaries. The application display engine can be configured to align a boundary of each variable-size field from the second plurality of variable-size fields with a second alignment boundary from the pair of alignment boundaries.
According to another general aspect, a method can include executing instructions recorded on a non-transitory computer-readable storage media using at least one processor. The method can include identifying a plurality of layout elements targeted for display within an application. The plurality of layout elements can include a first layout element including a first plurality of variable-size fields oriented along a first line. The plurality of layout elements can include a second layout element including a second plurality of variable-size fields oriented along a second line. The first plurality of variable-size fields from the first layout element can be defined such that defining of a variable-size portion of each variable-size field from the first plurality of variable-size fields, when populated with a first portion of data and displayed within the first layout element, is independent from defining of a variable-size portion of each variable-size field from the second plurality of variable-size fields when populated with a second portion of the data and displayed within the second layout element. The method can also include defining an alignment boundary non-parallel to the first line and non-parallel to the second line based on a set of variable-size fields that includes a subset of the first plurality of variable-size fields and a subset of the second plurality of variable-size fields.
According to yet another general aspect, a non-transitory computer-readable storage medium storing code representing instructions that when executed are configured to cause a processor to perform a process. The code can include code to receive a plurality of instructions defining a layout element stored in a layout element database. At least a portion of the plurality of instructions can define a variable-size field within the layout element. The code can also include code to receive a first data identified for display in a first instance of the variable-size field in a first instance of the layout element. The code can also include code to receive a second data identified for display in a second instance of the variable-size field in a second instance of the layout element, and code to predict that a size of a variable-size portion of the second instance of the variable-size field, when the second data is displayed within the second instance of the variable-size field, is greater than a size of a variable-size portion of the first instance of the variable-size field when the first data is displayed within the first instance of the variable-size field. The code can also include code to define an alignment boundary within an application based on the size of the variable-size portion of the second instance of the variable-size field. The application can be a placement target of the first instance of the layout element and the second instance of the layout element.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
The layout manager 130 can be configured to display the fields 10 within multiple layout elements 13 of the application 20 so that at least some of the fields 10 are aligned along at least one of the alignment boundaries A1 and A2. Specifically, the layout manager is configured to display the fields 10 so that the fields 10, even though they are included in different layout elements 13, may be aligned in a desirable fashion when objects of different sizes are included within the fields 10. The processing of layout elements so that the fields 10 included therein are aligned along the alignment boundaries A1, A2 can be referred to as a layout process. Without the layout process described herein, the fields 10 of the layout elements 13 may be particularly misaligned in an undesirable fashion when the layout elements 13 are configured to be independently processed (e.g., executed) for display. In some embodiments, because the layout elements 13 can be independently processed, the layout elements 13 can be serially processed for display and/or processed for display in parallel with one another. A field configured to include an object to be displayed therein can be referred to as an object field. In some embodiments, some of the object fields can be referred to as form panes, list panes, section groups, and so forth.
Each of the layout elements 13 shown in
Management of the master layout elements 27 can be handled by a layout element manager 132 of the layout manager 130. For example, the layout element manager 132 can be configured to retrieve one or more of the master layout elements 27 in response to a request from another component from the layout manager 130. An example of master layout elements stored within a layout element database is described in more detail in connection with
As shown in
An object handler 134 of the layout manager 130 can be configured to receive the objects that are to be included in the layout elements 13. In some embodiments, the object handler 134 can be configured to interface with the application 20 to determine (or receive instructions about) which objects should be included in the fields 10 of the layout elements 13. The object handler 134 of the layout manager 130 can be configured to interface with the other components of the layout manager 130 during the layout process.
The fields 10 included in the layout elements 13 are one of two types of fields—variable-size fields 15 or fixed-size fields 17. The fixed-size fields 17 have dimensions (e.g., horizontal and/or vertical dimension(s)) that are fixed (e.g., predefined), and the variable-size fields 15 have one or more dimensions (e.g., horizontal and/or vertical dimension(s)) that are defined based on one or more dimensions of the object included within the field. The dimension(s) of the variable-size field can be dynamically defined when an object is placed within the variable-size field for display within a display (such as display 120). The variable-size fields 15 include variable-size fields 12A, 12B, 14A, and 14B, and the fixed-size fields 17 include fixed-size fields 12C and 14C. In this embodiment, variable-size field 12A and the variable-size field 14A are instances of the same variable-size field (not shown) from the master layout element 27B. Similarly, fixed-size field 12C and fixed-size field 14C are instances of the same fixed-size field from the fixed-size field (not shown) from master layout element 27B.
Each of the master layout elements 27 is defined based on a set of instructions (not shown). Accordingly, each instance of the master layout elements 27 can be independently processed (e.g., executed, displayed) based on a common set of instructions. For example, portions of layout element 12 (e.g., variable-size fields 12A and 12B) can be determined and displayed based on the set of instructions associated with master element 27B independent of portions of layout element 14 (e.g., variable-size fields 14A and 14B). In some embodiments, the set of instructions can be, for example, XML-based instructions, a set of parameter values, executable code, and/or so forth.
The variable-size fields 15 are configured to be resized (e.g., expanded, contracted) according to the size of the object included within the variable-size fields 15. For example, variable-size field 12A and 14A, which are instances of the same variable-size field from master layout element 27B, when containing objects of different sizes can have different dimensions. Specifically, variable-size field 12A, which includes the text “text12356,” has a horizontal dimension X (also can be referred to as width X in this case) that has been sized to fit the text “text1234567.” The size of the variable-size field 12A is contrasted with the horizontal dimension of variable-size field 14A, which has a horizontal dimension V (also can be referred to as width V in this case) that is shorter than the horizontal dimension X. The horizontal dimension V is shorter than the horizontal dimension X because the horizontal dimension V of the variable-size field 14A is sized to fit the text “text12,” which is shorter than the text “text1234567.” In other words, because the text “text12” is shorter than the text “text1234567,” the sizes of the variable-size fields 12A and 14A are different from one another.
At least a portion of a set of instructions can define (e.g., specify) certain characteristics of a master layout element from the master layout elements 27 so that a size, a shape, an appearance (if visible), a basic orientation, and/or so forth, of instances of the master element can be defined. For example, a portion of the set of instructions can specify that master layout element 27B should have a specified (e.g., fixed, predefined) length (in a horizontal direction) and a specified (e.g., fixed, predefined) width (in a vertical direction). Accordingly, layout element 12 and layout element 14, which are both instances of master layout element 27B, have a specified length and a specified width when displayed within the display 120.
At least a portion of a set of instructions can also define (e.g., specify) a number, an appearance (if visible) a location, and type of fields within one or more of the master layout elements 27. For example, the set of instructions defining master layout element 27B can be used to define the number and types of fields within layout element 14, which is an instance of master element 27B. Although the fields 10 shown in
The layout manager 130 is configured to display the fields 10 (i.e., variable-size fields 15 and/or fixed-size fields 17) within the layout elements 13 of the application 20 so that fields 10, even though they may be included in different layout elements 13 and may have variable-sizes, may be aligned in a desirable fashion when objects are included within the fields 10. Because the variable-size fields 15 have one or more dimensions that depend on one or more dimensions of the objects included therein, the variable-size fields 15 and/or fixed-size fields 17 can be displayed in an undesirable (e.g., misaligned) fashion when objects of different sizes are included in the variable-size fields 15. Accordingly, the layout manager 130 has a boundary generator 133 configured to define boundaries A1 and A2 based one or more objects to be displayed within one or more of the variable-size fields 15. The boundaries A1 and A2 can be defined so that when the variable-size fields 15 are aligned along the respective boundaries A1 and A2 by the application display engine 131, the objects can be displayed within the variable-size-fields in a desirable fashion.
Boundary generator 133 can be configured to define the alignment boundaries A1 and A2 before the variable-size fields 12A and 14A (or any portions of the layout elements 13) are displayed. The alignment boundaries A1 and A2 are represented by dashed lines because, in this embodiment, the alignment boundaries are not actually displayed within the display 120. In some embodiments the alignment boundaries A1 and A2 can be configured so that they are displayed (at least temporarily) within the display 120.
Because layout element 12 and layout element 14 are independently processed based on the set of instructions defining master layout element 27B, and because the variable-size fields 15 have dimensions that depend on the dimensions of the objects displayed therein, the alignment boundaries (e.g., alignment boundary A2) may not be statically predefined. Specifically, the distance between the alignment boundaries A1 and A2 may not be statically predefined without calculating (e.g., predicting) the dimensions of the variable-size fields 15 when the respective objects are displayed therein. Instead, the distance between the alignment boundary A1 and the alignment boundary A2 are dynamically defined based on the predicted dimensions (e.g., predicted horizontal dimensions, predicted widths) of variable-size fields 12A and 14A when textual objects (i.e., “text1234567” and “text12”) are included within the variable-size fields 12A and 14A. In some embodiments, one or more of the variable-size fields 15 can have a minimum dimension as defined within, for example a set of instructions. In some embodiments, because the layout elements 13 can be independently processed, the layout elements 13 can be serially processed for display and/or processed for display in parallel with one another.
For example, before the variable-size fields 12A and 14A (or any portions of the layout elements 13) are displayed, a distance Q between the alignment boundary A1 and the alignment boundary A2 can be determined (e.g., defined, calculated) by the boundary generator 133 so that the predicted widths of each of the variable-size fields 12A and 14A, when textual objects “text1234567” and “text12” are respectively displayed therein, will be less than the distance Q between the alignment boundary A1 and the alignment boundary A2. Accordingly, when the variable-size fields 12B is displayed within the display 120, as shown in
In this embodiment, the alignment boundary A1, which is the leftmost alignment boundary, has a location (e.g., a horizontal location within the application 20) that is statically predefined. After the distance Q between the alignment boundary A1 and the alignment boundary A2 has been defined by the boundary generator 133, the location of the alignment boundary A2 can be determined. In other words, the location of the alignment boundary A2 is determined based on the distance Q and the location of the alignment boundary A1, which functions as an initial alignment boundary (and can be referred to as such). In some embodiments, the locations of several alignment boundaries, such as the location of alignment boundary A2, can depend on the location of an initial alignment boundary, such as the location of alignment boundary A1.
As shown in
The predefined location of the alignment boundary A1, in some embodiments, can be a fixed alignment location, which can be referred to as a starting alignment location or as a starting alignment position. In some embodiments, starting alignment location can be a default starting alignment location which is defined based on a default location. In some embodiments, the alignment boundary A1 can have a location that is a predefined spacing from the left edge of each of the layout elements 13. In some embodiments, alignment boundaries that are not the initial alignment boundary and/or do not have a predefined fixed position can be referred to as floating alignment boundaries or as variable location alignment boundaries.
Although not shown in
In some embodiments, a variable-size field can have a shape different than the variable-size fields 15 shown in
Although not shown, an additional alignment boundary, which can be disposed between the variable-size fields 12B and 14B and the fixed-size fields 12C and 14C, can be determined (e.g., defined, calculated). The additional alignment boundary can be defined so that a distance between the alignment boundary A2 and the additional alignment boundary will be greater than the predicted width of each of variable-size fields 12B and 14B when the textual objects (i.e., “text1,” “text123”) are respectively displayed therein. Accordingly, the fixed-size fields 12C and 14C can be aligned along the additional boundary (when actually displayed by the application display engine 131 of the layout manager 130) without overlapping with the variable-size fields 12B and 14B (when the fixed-size fields 12C and 14C are displayed).
In some embodiments, the boundary generator 133 can be configured to define the alignment boundary A1 and/or the alignment boundary A2 so that one or more of the fields 10 may be overlapping. For example, although not shown, the boundary generator 133 of the layout manager 130 can be configured to define the distance Q so that when variable-size field 12B is aligned along the alignment boundary A2, variable-size field 12B will be overlapping with at least a portion of variable-size field 12 A.
In some embodiments, the boundary generator 133 can be configured to define the alignment boundary A1 and/or the alignment boundary A2 so that a distance between the alignment boundary A1 and the alignment boundary A2 will include a default spacing. For example, the boundary generator 133 can be configured to define the distance Q so that the distance Q is greater than or equal to the horizontal dimension X plus a default spacing. In some embodiments, the distance Q can include more than one default spacing.
In some embodiments, a default spacing between an edge of a field and an alignment boundary can be determined based on a preference stored in, for example, the memory 140. The preference can be a preference defined by, for example, an administrator and/or a user. In some embodiments, the default spacing can be defined based on one or more portions of this set of instructions associated with the master layout element such as master layout element 27B. In some embodiments, the fields 10 can be separated by at least a minimum spacing, which can be defined within a preference or based on a set of instructions associated with the master layout element such as master layout element 27B.
As described above, the boundary generator 133 is configured to dynamically define the alignment boundaries A1 and A2 based on an analysis of the dimensions of variable-size fields 15 (i.e., variable-size field 12A and 14A) that are included in multiple layout elements 13 and based on the dimensions of objects that are to be included in the variable-size fields 15. If the dimensions of the objects that are to be included in the variable-size fields 15 are different than those shown in
As shown in
In some embodiments, the alignment boundaries A1 and A2 can be defined based on a predicted dimension different than a maximum predicted width. For example, in some embodiments, alignment boundaries (such as alignment boundaries A1 and A2) can be defined based on, for example, an average predicted width, or even a minimum predicted width.
In some embodiments, the distance between a pair of alignment boundaries can be defined based on less than all of the variable size fields disposed between the pair alignment boundaries. The variable size fields that are excluded from the calculation of the distance between the pair alignment boundaries can be based on a preference stored in the memory 140 and/or based on a set of instructions associated with the variable size field that is excluded from the calculation.
Although not shown in
In some embodiments, alignment boundaries such as alignment boundaries A1 and A2 can be defined based on any portion(s) of a layout element 13 that does not have a predefined dimension. For example, if layout element 12 had a horizontal dimension that was not predefined, a pair of alignment boundaries can be defined so that the left edge of layout element 12 can be aligned along a first alignment boundary from the pair of alignment boundaries and the right edge of layout element 12 can be aligned along a second alignment boundary from the pair of the alignment boundaries.
As shown in
Although not shown in
Although not shown in
In some embodiments, one or more alignment boundaries may not be a straight line. For example, an alignment boundary can have a curved shape. In some embodiments, the shape of an alignment boundary can be defined based on a preference stored in, for example, the memory 140. In some embodiments, the shape of an alignment boundary can be determined by the boundary generator 133 based on an algorithm (e.g., a spline algorithm) and/or equation.
The alignment boundaries A1 and A2 can define at least a part of an alignment grid that is overlaid on top of the layout elements 13. In this embodiment, the alignment grid defined by the alignment boundaries A1 and A2 can supersede alignment as defined within the set of instructions associated with master layout element 27B. In other words, conflicts between alignment as defined within the set of instructions associated with the master layout element 27B and the alignment grid defined by alignment boundaries (such as alignment grid defined by the alignment boundaries A1 and A2) can be resolved so that portions of the layout elements 13, such as the fields 10, will be aligned with the alignment grid. In some embodiments, alignment as defined within the set of instructions associated with master layout element 27B can have priority over alignment boundaries such as the alignment boundaries A1 and A2.
As shown in
In some embodiments, the master layout elements 27 can be, for example, defined as, or can include, any type of executable software module such as a computer program based on, but not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, code used to produce a web service, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, one or more of the master layout elements 27 may be implemented using Java, C++, or other programming languages (e.g., object-oriented programming languages) and development tools. In some embodiments, one or more of the master layout elements 27 can be, or can be associated with, a background process with functionality that is not visible on the display 120. In some embodiments, one or more of the master layout elements 27 can define at least a portion of one or more applications or can be associated with one or more applications such as application 20.
Although not shown, in some embodiments, the memory 140 can be implemented as more than one memory component (e.g., more than one random-access memory (RAM) component or disk drive memory). In some embodiments, the memory 140 can be, or can include, a non-local memory (e.g., a memory not physically). For example, the memory 140 can be, or can include, a memory shared by multiple layout managers (not shown) such as layout manager 130. In some embodiments, the memory 140 can be associated with a server device (not shown) configured to service several layout managers.
In some embodiments, one or more portions of the components shown in the layout manager 130 in
Although not shown in
As shown in
A first plurality of variable-size fields is associated with a first column and a second plurality of variable-size fields is associated with a second column (block 320). As shown in block 210, each layout element from the plurality of layout elements includes at least one variable-size field from the first plurality of variable-size fields and at least one variable-size field from the second plurality of variable-size fields. In some embodiments, the first plurality of variable size fields can be associated with the first column and the second plurality of variable size fields can be associated with by an application display engine (e.g., application display engine 131 shown in
In some embodiments, the first plurality of variable-size fields can be associated with the first column based on a set of instructions indicating that the first plurality of variable-size fields should be associated with the first column. In other words, the set of instructions can specify, or can be used to determine, that the first plurality of variable-size fields are associated with the first column. Similarly, the second plurality of variable-size fields can be associated with the second column based on the set of instructions indicating that the second plurality of variable-size fields should be associated with the second column.
A pair of alignment boundaries using a predicted size of each of the variable-size fields from the first plurality of variable-size fields is defined based on each of the variable-size fields from the first plurality of variable-size fields being populated with at least a portion of the object and being sized independent of the remaining variable-size fields from the first plurality of variable-size fields (block 220). The pair of alignment boundaries can be defined before any of the variable-size fields from the first plurality of variable-size fields for the second plurality of variable-size fields are actually displayed within a display. In some embodiments, the pair of alignment boundaries can be vertically oriented within a display and/or within an application. The pair of alignment boundaries can be defined so that the distance between a first alignment boundary from the pair of alignment boundaries and a second alignment boundary from the pair of alignment boundaries is greater than a predicted width or height of any of the variable-size fields when including the object.
In some embodiments, the object can be represented as a textual object. Each of the variable-size fields from the first plurality of variable-size fields are sized independent of the remaining variable-size fields from the plurality of variable-size fields because each of the variable-size fields can be associated with an independently processed layout element. In some embodiments, at least some of the layout elements can be processing in a serial fashion or in parallel. In some embodiments, the pair of alignment boundaries can be defined by a boundary generator of a layout manager. In some embodiments, different objects such as an image can be included in the variable-size fields, in addition to, or in lieu of, the object.
A boundary of each variable-size field from the first plurality of variable-size fields is aligned with a first alignment boundary from the pair of alignment boundaries (block 230). The boundary of each variable-size field from the first plurality of variable-size fields can be aligned with the first alignment boundary via an application display engine. In some embodiments, the boundary of each variable-size field from the first plurality of variable-size fields can be an edge boundary.
A boundary of each variable-size field from the second plurality of variable-size fields is aligned with a second alignment boundary from the pair of alignment boundaries (block 240). The boundary of each variable-size field from the second plurality of variable-size fields can be aligned with the second alignment boundary via an application display engine. In some embodiments, the boundary of each variable-size field from the second plurality of variable-size fields can be an edge boundary. In some embodiments, the first alignment boundary may be non-parallel with the second alignment boundary. In some embodiments, the method shown in
Referring now to
As shown in
As shown in
The variable-size field 31, the variable-size field 41, and the variable-size field 51, which are respectively associated with layout element 30, layout element 40, and layout element 50, are, by default, aligned along line B1. In this embodiment, because the variable-size fields 31, 41, and 51 are configured to expand to the right (or contract to the left) depending on the text included therein, the left edge of each of variable-size fields 31, 41, and 51 have a fixed starting alignment position aligned along line B1. In other words, line B1 can function as an initial alignment boundary.
In this embodiment, the layout element 60 has fields 61 and 62 that are not specified for alignment along alignment boundary. In other words, the layout element 60 is not selected for alignment. In some embodiments, the layout element 60, or portion thereof, may be determined as ineligible for alignment along an alignment boundary based on a set of instructions defining the layout element 60. In some embodiments, the layout element 60 can be disposed within a zone (e.g., a region, an area) that has been identified for exclusion from alignment. In some embodiments, the zone can be referred to as an exclusion zone. In some embodiments, an exclusion zone can include all or a portion of one or more layout elements.
In this embodiment, the alignment boundaries C1 and C2 are defined so that the variable-size fields associated with column 81 are disposed between the alignment boundaries C1 and C2. Accordingly, the distance between the alignment boundaries C1 and C2 is defined based on the variable-size fields associated with column 81. Similarly, the alignment boundaries C2 and C3 are defined so that the variable-size fields associated with column 82 are disposed between the alignment boundaries C2 and C3. Accordingly, the distance between the alignment boundaries C2 and C3 is defined based on the variable size fields associated with column 82.
As shown in
As shown in
In some embodiments, the number of alignment boundaries can be correlated with the number of columns of variable-size fields. For example, at least three pairs of alignment boundaries can be defined for three columns of variable-size fields.
Each of the layout elements shown in
Each of the master layout elements stored in the layout element database 340 includes different categories of fields. In this embodiment, the categories of fields are represented by the words in brackets. The master layout element MLE1 has a variable-size field M11 configured to receive a label-category textual object (as represented by “[label]” appearing in the variable-size field M11), a variable-size field M12 configured to receive a description-category textual object (as represented by “[desc]” appearing in the variable-size field M12), and a fixed-size field M13 configured to receive an description-type textual object. A label-category textual object can be a textual-object used as a label in, for example, a magazine, catalog, and/or database. A description category textual object can be a textual object used to, for example, describe the details associated with a label. The categories described above are presented by way of example only and different categories of objects can be used.
The fixed-size field M13 is defined so that a location of an alignment boundary is not defined based on the fixed-size field M13. In other words, the set of instructions defining the fixed-size field M13 are defined so that a layout manager such as layout manager 130 will not use a width of the fixed-size field M13 to define (e.g., determine the location of) an alignment boundary. Alternatively, the set of instructions defining the master layout element MLE1 can be defined so that only the variable-size fields M1 and M12 are used to define (e.g., determine the location of) an alignment boundary. In some embodiments, the layout element database 340 can be managed by a layout element manager such as layout element manager 132 shown in
Referring back to
Because the layout element 30 and the layout element 40 are instances of the master layout element MLE1, the fixed-size field 33 (which is included in layout element 30) and the fixed-size field 43 (which is included in layout element 40) are not used to determine the locations of the alignment boundaries C2 and C3. The fixed-size field 33 and the fixed-size field 43 are both instances of the fixed-size field M13 of the master layout element MLE1 shown in
In some embodiments, the set of instructions defining the master layout elements of layout elements 30, 40, and 50 can be used to determine which fields should be associated with column 81 or column 82. For example, the set of instructions defining master layout element MLE1 can include one or more parameter values (e.g., tags, XML tags) that indicate the variable-size field M11 and variable-size field M12 are associated with different columns.
In some embodiments, the fixed-size field 33 and the fixed-size field 43 may not be used to define (e.g., determine the locations of) the alignment boundaries C1, C2 and/or C3 because the fixed-size field 33 and fixed-size field 43 span more than one column. For example, as shown in
Although not shown in
Although not shown in
As shown in
Although not shown in
Although not shown in
In some embodiments, one or more of the master layout elements, such as master layout element MLE1 shown in
For example, a datalist may be bound to a master layout element. A first row of entries (e.g., data from the first row) from the datalist can be populated within fields (e.g., variable-size fields, fixed-size fields) of a first instance of the master layout element, and a second row of entries (e.g., data from the second row) from the datalist can be populated within fields (e.g., variable-size fields, fixed-size fields) of a second instance of the master layout element. The first instance of the master layout element and the second instance of the master layout element can be aligned along alignment boundaries in accordance with the techniques described in connection with
In some embodiments, a single datalist can be bound to multiple master layout elements. For example, a datalist may be bound to a first master layout element and the datalist may be bound to a second master layout element. In some scenarios the data of the datalist may be populated within instances of the first master layout element in response to, for example, selection by a user, and in some scenarios, the data of the datalist may be populated within instances of the second master layout element in response to, for example, selection by a user.
In some embodiments, multiple different datalists can be bound to a particular master layout element. For example, a first datalist can be bound to a master layout element, and a second datalist can also be bound to the same master layout element. Accordingly, data from the first datalist can be populated within a first set of instances of the master layout element, and data from the second datalist can be populated within a second set of instances of the master layout element. The first set of instances of the master layout element can be aligned along the same or different alignment boundaries as the second set of instances of the master layout element.
In some embodiments, portions of a single datalist may be bound to multiple master layout elements. In some embodiments, a first portion of a datalist may be bound to a first master layout element, and a second portion of the datalist may be bound to a second master layout element different from the first master layout element. Accordingly, data from the first portion of the datalist can be populated within a set of instances of the first master layout element, and data from the second portion of the datalist can be populated within a set of instances of the second master layout element. The instances of the first master layout element can be aligned along the same or different alignment boundaries as the instances of the second master layout element.
In some embodiments, the master layout element can be bound to (e.g., associated with) the configuration of one or more alignment boundaries (after the locations of the alignment boundaries have been initially computed) as well as a datalist. In other words, the configuration of the alignment boundaries (e.g., the locations of the alignment boundaries) can be stored and then bound to (e.g., associated with) a particular master layout element and/or data list for later retrieval and use.
Although not shown in
As shown in
As shown in
The variable-size fields 84 and 87 can be disposed between the alignment boundaries D1 and D2 because the variable-size fields 84 and 87 are associated with a row. Similarly, the variable-size fields 85 and 88 can be disposed between the alignment boundaries D2 and D3 because the variable-size fields 85 and 88 are associated with another row. Although not shown, other fields (e.g., other variable-size fields) can be excluded from alignment based on a set of instructions associated with the common master layout element of layout element 400 and layout element 402 and/or if they span more than one row.
Although not shown in
In some embodiments, one or more of the variable-size fields (from the first plurality of variable-size fields or the second plurality of variable-size fields) can be configured to expand (based on one or more objects included therein) in more than one direction. For example, if the first line is horizontally oriented, a variable-size field from the first plurality of variable-size fields can be configured to expand to the left along the first line and to the right along the first line when an object is included in the variable-size field. In some embodiments, objects to be included within the variable-size fields can be identified by an object handler such as object handler 134 shown in
An alignment boundary nonparallel to the first line and non-parallel to the second line are defined based on a set of variable-size fields that includes a subset of the first plurality of variable-size fields and a subset of the second plurality of variable-size fields (block 520). In some embodiments, the alignment boundary can be horizontally oriented and the first line can be vertically oriented, or vice versa. In some embodiments, the alignment boundary can be defined by a boundary generator such as boundary generator 133 shown in
Each variable-size field from the set of variable-size fields are aligned along the alignment boundary (block 530). In some embodiments, each variable-size field from the set of variable-size fields can be aligned along the alignment boundary by an application display engine such as application display engine 131 shown in
Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device (computer-readable medium) or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a LAN and a WAN, e.g., the Internet.
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the scope of the embodiments. It should be understood that they have been presented by way of example only, not limitation, and various changes in form and details may be made. Any portion of the apparatus and/or methods described herein may be combined in any combination, except mutually exclusive combinations. The embodiments described herein can include various combinations and/or sub-combinations of the functions, components and/or features of the different embodiments described.