The present application claims priority to and incorporates by reference the entire contents of Japanese priority document 2007-069692 filed in Japan on Mar. 17, 2007.
1. Field of the Invention
The present invention relates to a screen data generating apparatus, an image processor, a screen data generating method, and a computer program product.
2. Description of the Related Art
A graphical user interface (GUI) screen of a display unit is available to display various data and receive operational requests from a user.
The GUI screen can be designed by laying out components such as buttons that receive user's operational requests and character display frames for content display. In recent years, there have been increasing demands for customization in which a user creates a GUI matching with his or her purpose, instead of simply using a vendor product.
Examples of a known technology for the GUI customization are disclosed in Japanese Patent Application Laid-open No. 2005-45370 and Japanese Patent Application Laid-open No. 2006-345256.
In Japanese Patent Application Laid-open No. 2005-45370, an image forming apparatus is disclosed in which selecting a panel customizing mode enables changing of functional key settings such as a display or non-display status, a position, and a size on the screen of a liquid crystal display unit.
In Japanese Patent Application Laid-open No. 2006-345256, a technology is disclosed in which a user has an ID card that stores his or her own GUI screen data, and when the user logs on to a multi function printer (MFP) using the ID card, the MFP displays the GUI screen for the user based on the screen data stored in the ID card. Additionally, a technology is also disclosed in which the ID card stores a script for generating a GUI screen data, and the user's GUI screen is displayed based on the screen data automatically generated according to the script.
However, in the display screen customization using the technology of Japanese Patent Application Laid-open No. 2005-45370, when a change is added that influences many keys, such as rearranging the keys or making some keys not be displayed and displaying the remaining keys while shifting the positions thereof close to each other, the position and the size of each key need to be designated one by one, which makes editing operation troublesome. Furthermore, in a case of a plurality of display screens to be used, customization for each screen is necessitated, which also leads to a bothering editing.
Those problems occur also in the editing of display screens other than GUI. Japanese Patent Application Laid-open No. 2006-345256 does not disclose any concrete solution to the problems.
It is an object of the present invention to at least partially solve the problems in the conventional technology.
According to an aspect of the present invention, there is provided a screen data generating apparatus that generates screen data that defines a content of a screen and includes a plurality of display elements. The screen data generating apparatus includes a structure-definition-information acquiring unit that acquires structure definition information that defines a plurality of element layout positions on the screen; an element-definition-information acquiring unit that acquires element definition information that defines contents of the display elements to be laid out on the screen; a layout-definition-information acquiring unit that acquires layout definition information that defines which of the display elements is to be laid out on which of the element layout positions; and a screen data generating unit that generates the screen data by laying out the display elements in the element layout positions on the screen according to the layout definition information.
According to another aspect of the present invention, there is provided a method of generating screen data that defines a content of a screen and includes a plurality of display elements to be displayed on a display unit. The method includes acquiring structure definition information that defines a plurality of element layout positions on the screen; acquiring element definition information that defines contents of the display elements to be laid out on the screen; acquiring layout definition information that defines which of the display elements is to be laid out on which of the element layout positions; and generating the screen data by laying out the display elements in the element layout positions on the screen according to the layout definition information.
According to still another aspect of the present invention, there is provided a computer program product including a computer usable medium having computer readable program codes embodied in the medium that, when executed, causes a screen data generating apparatus to execute the above method of generating screen data.
The above and other objects, features, advantages and technical and industrial significance of this invention will be better understood by reading the following detailed description of presently preferred embodiments of the invention, when considered in connection with the accompanying drawings.
Exemplary embodiments of the present invention are explained in detail with reference to the accompanying drawings.
The CPU 11 performs an overall control of the image processor 10 and executes computer programs stored in the ROM 12 and the NVRAM 14 to achieve the control function thereof. The CPU 11 also functions as a screen data generating apparatus that generates screen data for defining a screen content displayed on a display unit.
The ROM 12 is a nonvolatile memory unit that stores computer programs executed by the CPU 11 and fixed parameters or the like. The RAM 13 is a memory unit that temporarily stores data used and also functions as a work memory of the CPU 11. The NVRAM 14 is a rewritable nonvolatile memory unit that stores computer programs to be rewritten among computer programs executed by the CPU 11 and parameters necessary to be stored after the image processor 10 is turned off.
The panel I/F 15 is an interface that connects the operation panel 18 to the system bus 20 to allow the CPU 11 to control the panel.
The operation panel 18 includes a liquid crystal display (LCD) that displays a graphical screen, the display unit having a light-emitting diode (LED) or the like, and an operating unit having operating keys and buttons, a touch panel mounted on the LCD, and the like. The LCD displays a screen defined by various data described below as a graphical user interface (GUI) and receives a user's operation on the screen.
The engine I/F 16 is an interface that connects the engine unit 19 to the system bus 20 to allow the CPU 11 to control the engine unit 19. The engine unit 19 is an image processing unit that includes a scanner engine and a print engine to read and print images, or the like. Based on the user's operation executed by the operation panel 18 or a command received from an external device through the communication I/F 17, the CPU 11 controls the engine unit 19 to execute image reading, printing, copying, transmitting, and the like.
The communication I/F 17 is an interface that allows the image processor 10 to communicate with other apparatus via any communications channel. For example, the communication I/F 17 serves as a network interface connected to a local area network (LAN) or the like for Ethernet (registered trademark) communications. Additionally, any external apparatus such as a personal computer (PC) communicable through the communication I/F 17 can access the image processor 10 to give an instruction or change a setting thereof.
In the image processor 10, characteristics are the format of data defining a screen content displayed on the operation panel 18 and a method that generates display screen data from the data.
The title unit 100a includes a screen title message 101 and a close button 102. The main display unit 100b includes page feeding buttons 103 and 104, an indeterminate form setting button 111a, a resolution setting button 112a, a document type setting button 113a, a document size setting button 114a, a single-side setting button 115a, and a double-side setting button 116a. Additionally, the buttons 112a to 115a include corresponding title messages 112b to 115, respectively.
Each of the buttons 112a to 115a and each of the corresponding title messages 112b to 115b form each of display elements 112 to 115 describer below. The indeterminate form setting button 111a and the double-side setting button 116a independently form display elements 111 and 116 describer below, respectively.
The display components of
Each of the display components can be associated with any computer program. Then, when the operation of a display component is performed by touching or otherwise selecting a position corresponding to the display component, the CPU 11 executes a computer program associated with the display component to perform processings such as changing a display content on a screen, moving to another screen, changing settings, or job executing. Thereby, the GUI operation can be associated with performance of the image processor 10. Some display components can be associated with no performance of the image processor 10. Additionally, it is obvious that any display component other than those explained can also be considered.
When the non-selection button is touched, the pressed-down condition of the selection button is cancelled to perform a change to display the pressed-down condition of the touched button. Accordingly, it is also possible to associate a pair of display components with such a single performance.
Among the display components of
The image processor 10 generates display screen data based on three kinds of data including structure definition information, layout definition information, and element definition information prepared as data that define the contents of various screens such as the read setting screen 100. The contents and the use of the data are explained.
The data is described using Extensible Markup Language (XML). In
Based on a position attribute value, the widget element defines a rectangular display area as a reference position. In
Six widget elements are provided in the style element 220. The widget elements define display areas 121 to 126 arranged in a matrix of two rows and three columns, as shown by dotted lines in
Moreover, the display areas of the widget elements are prioritized according to the described order of the widget elements. Then, display elements are laid out in each display area in the order of descending priorities. In the example of
A source attribute of the style element 220 describes a value that specifies layout definition information referred to when laying out a display element in the display area defined by each widget element. The value can be described as a file name of the layout definition information, for example. The display elements 111 to 116 of
Among the elements shown in
The kind of a tag that describes each of the elements 201 to 204 represents the kind of the component, such as a message or button. A position attribute value indicates a layout position of a display component on the screen by the absolute coordinates on the screen defined by the structure definition information. A label attribute value indicates the content of a caption text displayed with the component. The other attributes of each element can also be described. For example, information of a computer program to be run upon operation of the display component represented by each element can be described in the tag.
Basically, the display component represented by each element is laid out on the screen regardless of the layout content of a display element in the display area defined by the style element 220. However, a page element for page switching is laid out only when not all the display elements to be laid out in the display area according to the layout definition information can be laid out therein, and otherwise the page element is not laid out. When all of the display elements can be laid out in the display areas, they can all be displayed on a single page screen. Therefore, page switching is not necessitated.
Furthermore, upon processing of the structure definition information by the CPU 11, the image processor 10 can determine which component is a page element and which is not according to the kind of the tag. In a range shown in
The position attribute value of each element included in the element definition information indicates coordinates within a display area of a layout destination. Thus, on the entire screen, the coordinates are equivalent to relative coordinates with respect to predetermined reference coordinates according to the display area.
In
In
A pulldownbutton tag shown in
In the data shown in
In each subelement, a source attribute 301 describes a value that specifies element definition information defining the content of a display element laid out in the display area. The value can be described, for example, as the file name of the element definition information. In the image processor 10, display elements are laid out in an order designated by a subelement described at the head of the character string. Thus, the described order of the subelements indicates the layout order of the display elements in the display area.
A layout attribute 302 of the subelement describes a setting that indicates the presence or absence of layout of a display element represented by the subelement. The value of “true” indicates the presence of layout, and thus, the display element represented by the subelement is laid out in the display area. If the value is “false”, it indicates the absence of layout and thus no layout is performed. Thereby, a subsequent display element is shifted to and laid out in the blank display area.
Accordingly, for example, when a display element representing a button which is not used is set to absence of layout, an unnecessary button is not displayed on the screen, which leads to simplification of the screen and easier operation. Additionally, without any change other than changing a single attribute, another element can be shifted to be displayed. As a result, no unnecessary blank is formed on the screen, thereby facilitating editing of the screen where only necessary buttons organized in compact are laid out. Furthermore, because the display element can be removed from the screen while leaving the subelement, re-display of the display element can be easily done only by changing the value of the subelement.
A fixed attribute 303 of the subelement describes a setting that indicates whether the display element represented by the subelement is fixed. The value of “true” indicates that the element is fixed, and thus, the display element represented thereby is surely laid out in a specified display area. If the value is “false”, it indicates that the element is not fixed, and thus, the display element represented thereby can be laid out in any display area.
In the case of “fixed” the display area for laying out the display element has a priority order equal to the layout order designated by the described order of the subelement. For example, a display element represented by the subelement thirdly described is always laid out in a third display area if “fixed” is set.
The setting of “fixed” is important when the absence of layout is set for a display element prior to the display element set to be fixed. As explained above, when there is a display element not to be laid out, the sequential display element is shifted to the blank area, whereby the layout positions of the display elements are changed. However, even in this case, a display element set to “fixed” can always be laid out at the same position.
Therefore, for example, when the positional change of a button is undesirable because of operational inconvenience or the like, setting the button to “fixed” allows only the specified button to be always displayed in the same position, while other buttons are shifted to the blank display areas to be displayed. Thus, operability can be improved, as well as the advantage due to the presence or absence of layout setting can be obtained.
When the “fixed” is set, an arbitrary designation of a display area for layout can also be considered.
Next, processings for generating data displayed on the screen of the display unit of the operation panel 1-8 by using the structure definition information, the element definition information, and the layout definition information are explained. The processings shown in flowcharts described below are those of an image data generating method according to an embodiment of the invention.
Next, at step S12, the CPU 11 acquires data (graphic data) of a predetermined background image to store the data in a predetermined memory area of the RAM 13. Although not shown in the example of
At step S14, the CPU 11 determines whether the acquired element is an element that represents a display component to be referred to the layout definition information, namely whether it is a style element.
When the acquired element is not a style element (“No” at step S14), the system control proceeds to step S15 to draw the image of the display component represented by the acquired element on an on-screen position indicated by a position attribute of the element. For example, this is the processing performed when the acquired element is a message element or a button element. The data of an image corresponding to each display component is separated from the data of
When the acquired element is a style element (“Yes” at step S14), the system control proceeds to step S16 to perform screen generating processing according to the layout definition information. The processing also uses the content of the style element acquired at step S13.
After step S15 or S16, the system control proceeds to step S17 to determine whether analysis of the structure definition information is completed, namely, whether drawings of all elements defining the display component in the structure definition information are completed. If the analysis is not completed (“No” at step S17), the CPU 11 acquires an element representing the next display component at step S18, and then the system control returns to step S14 to repeat the processing. When the analysis is completed (“Yes” at step S17), the system control proceeds to step S19. Throughout the processings so far, image data for a screen to be displayed can be generated in which necessary display components are written in the background image data.
At step 19, the CPU 11 determines whether there is any display element that was not laid out in the display area defined by the structure definition information in the screen generating processing according to the layout definition information at step S16. The determination can be done, for example, simply by comparison between the number of display elements to be laid out (the number of subelements with a layout attribute of “true”) and the number of display areas (the number of the widget elements of the style element). However, for some reason, if any display element cannot be laid out in some display areas, not all of the display elements can be laid out even if the number of the display elements is less than the number of the display areas.
When there is any display element that was not laid out in the display area (“YES” at step S19), a display component relating to page feeding is left on a generated screen at step S20 because the screen to be displayed needs page switching. In this case, no particular processing is necessitated, but step S20 is described to contrast with step S21.
When there is no display element that was not laid out in the display area (“NO” at step S19), the display component relating to page feeding is deleted from the generated screen at step S21 because page switching is not necessitated on the screen to be displayed. In this case, the page-feeding display component in the generated screen data can be painted out with a background color.
In any case, the system control proceeds to step S22 to allow the display unit of the operation panel 18 to display the screen according to the image data generated throughout the processings and then finishes the processings.
The image data generated throughout steps S11 to S21 in those processings is the screen data that define the content of the screen to be displayed by the display unit. The CPU 11 functions as a screen data generating unit throughout the processings. In the processing of step S22, the CPU 11 functions as a display controlling unit. The processing of step 16, which has not been explained in detail yet, has some characteristics.
First, at step S31, the CPU 11 reads the layout definition information designated by the source attribute of the style element in the structure definition information to analyze the XML structure. Then, at step S32, an acquired element number n and a laid-out element number p are cleared. The number n is a variable indicating which subelement is being laid out in the described order in the layout definition information. The number p is a variable indicating to which layout position display elements have been laid out in the order of layout positions defined by the style element.
Thereafter, at step S33, the CPU 11 determines whether the analysis of the layout definition information is completed, namely, whether the processings of all subelements (including saving) are completed. The determination can be done by checking whether the acquired element number n has reached the number of the subelements included in the layout definition information.
Usually, at first, because the determination at step 33 is “NO”, the system control proceeds to step S34 to determine whether there is a layout position left without any display element laid out. The determination can be done by checking whether the laid-out element number p has reached the number of the widget elements of the style elements in the structure definition information.
Then, usually, at first, the determination at step S34 is “YES”. Thus, the system control proceeds to step S35 to acquire the information of the next display element, namely, an (n+1)-th subelement from the layout definition information, to set a processing object. Consequently, at step S36, the acquired element number n is incremented by one.
Thereafter, at step S37, the CPU 11 determines whether the subelement as the processing object is set to “layout”, namely, whether the layout attribute value is “true”. When the layout attribute value is not “true” (“NO” at step S37), the display element represented by the subelement as the processing object is not laid out in the display area. Accordingly, the system control returns to step S33 at this point. In other words, the CPU 11 stops the processing of the subelement as the present processing object to process the next subelement in the same manner if there is a subelement left as a not-yet processed object.
When the layout attribute value is “true” (“YES” at step S37), the system control proceeds to step S38, and the CPU 11 determines whether the subelement as the processing object is set to “fixed”, namely, whether the fixed attribute value is “true”. When the fixed attribute value is not “true” (“NO” at step S38), the layout position is not restricted. Accordingly, the system control proceeds to step S41 and later steps to lay out the display element represented by the subelement as the processing object in a (p+1)-th display area.
When the fixed attribute value is “true” (“YES” at step S38), the system control proceeds to step S39, and the CPU 11 determines whether the next layout destination is a position corresponding to the order of the subelement as the processing object. The subelement currently under processing is an nth element. In the case of “fixed”, the display element represented by the nth subelement should be laid out in an nth display area. Meanwhile, the next destination is the (p+1)-th display area, so that if n is P+1, the determination at step S39 becomes “YES”. In this case, also, it is obvious that display element layout can be immediately performed. Accordingly, as in the case of “NO” at step S38, the processings at step S41 and thereafter are performed.
When the determination at step S39 becomes “NO”, the CPU 11 saves the subelement as the processing object and the value of n in a predetermined buffer at step S40 to lay out a display element corresponding to the subelement as the processing object in an appropriate display area later, and the system control returns to step S33.
Meanwhile, at step S41, the CPU 11 reads the element definition information designated by the source attribute of the subelement as the processing object to analyze the XML structure, and performs drawing processing according to the element definition information at step S42.
As shown in
The drawing processing at step S52 is performed on the image data acquired at step S12 of
With the processing of
After the CPU 11 performs the drawing processing according to the element definition information at step S42, the system control proceeds to step S43 to complete the layout of the subelement as the processing object. Moreover, the CPU 11 increments the laid-out element number p at step S44. Due to the increment, any of previously saved subelements may satisfy the condition of n=p+1, so that the CPU 11 executes interrupt processing of the saved display elements at step S45.
In the processing, first at step S61, the CPU 11 determines whether any saved subelement is present. When there is no saved subelement (“NO” at step S61), no subsequent processing is needed, so that the system control immediately returns to the initial processing. When there is any saved subelement (“YES” at step S61), processings at step S62 and thereafter are executed.
At step S62, as in step S34, the CPU 11 determines whether there is a layout position left without any display element laid out. When there is a layout position left (“YES” at step S62), the CPU 11 selects a processing object having a smallest value of the corresponding n from the saved subelements at step S63. Because the value p is increased one by one, if there is a subelement that satisfies the condition n=p+1, the subelement has the smallest value of the corresponding n.
At step S64, as in step S39 of
When the determination at step 64 becomes “YES”, it shows, at this point, that the display element represented by the subelement as the processing object can be laid out in the (p+1)-th display area. Accordingly, at steps S65 to S68, the CPU 11 executes the same processings as in steps S41 to S44 of
At step S68, when the value p is incremented, any other saved subelement may satisfy the condition n=p+1. Thus, the system control returns to step S61 to repeat the same processings.
When there is no layout position left (“No” at step S62), it shows that there is no more position for the layout of a display element. When the determination at step 64 becomes “NO”, the CPU 11 determines that there is no subelement that can be presently laid out among those saved, and the system control returns to the initial processing.
With the processings of
After the CPU 11 performs the interrupting processing of the saved display element at step S45, the system control returns to step S33 to repeat the processing of steps S33 to S46 to sequentially process each subelement included in the layout definition information until the analysis of the layout definition information is completed or all layout positions are filled.
At step S34, when no more display area is left to lay out a display element, even if any unprocessed or saved subelement is left, it cannot be laid out on the screen any longer. Accordingly, without any processing, the system control returns to the initial processing of
At step S33, when the analysis of the layout definition information is completed, the system control proceeds to step S46 to determine whether any saved subelement is present. When any saved subelement is not present (“No” at step S46), the CPU 11 determines that the layouts of display elements represented by all subelements are completed, and the system control returns to the initial processings of
Meanwhile, when any saved subelement is present (“Yes” at step S46), it is considered that the number of display elements to be laid out is small and thus, there is no display element laid out in a display area prior to a position for layout of the display element represented by the saved subelement. Accordingly, at step S47, the value p is incremented by one to skip one display area, thereby setting the next display area as a layout object area.
At step S48, as in step S34, the CPU 11 determines whether there is a layout position left without any display element laid out. In this case, the display area skipped due to the increment at step S47 is regarded as being filled with a display element. This is automatically considered if the determination at step S48 is made based on the value p.
When there is a layout position left (“YES” at step S48), the system control proceeds to step S45 to check the possibility of layouts for the saved subelements. Thereafter, the processings at steps S45 to S48 are repeated until all layouts of display elements represented by the saved elements are completed or all layout positions are filled. When either one of the conditions is satisfied, the determination at step S46 or step S48 becomes “NO”, so that the system control returns to the initial processings in
Through the processings of
The CPU 11 can make the determination at step S19 in
The layout definition information of
In a content displayed on a read setting screen of
On the screen of
The layout definition information of
In the display content of a read setting screen of
In this case, the document type setting element 113 is set to “fixed”. Accordingly, although the resolution setting element 112 is not displayed, the position of the document type setting element 113 is not shifted. In other words, the document type setting element 113 is laid out in a display area 123 as the third display area of
According to the image processor 10, the layout definition information is used to define the layout rule of display elements in the reference positions on the screen. In this manner, without changing a basic screen structure, editing processings including a layout change of a component such as a button in a predetermined frame can be performed only by slightly changing the layout definition information. This can reduce stress on a user in terms of operation, content grasp, and the like when editing screen content.
Moreover, the relative positions between display components included in a single display element can always be maintained constant. Accordingly, like a unit of “a button for setting an item” and “the explanation of the button”, display components are collected to form a unit meaningful to a user to set a display element. This can prevent a situation where the button and the explanation are displayed in totally different positions and whereby the screen display content is incomprehensible to the user, even when the layout position of the display element is changed.
The basic screen structure can be changed by editing the structure definition information. Moreover, addition or changing of a display component, a functional change thereof, or the like can be performed in a single display element laid out by editing the element definition information.
Furthermore, after the priority order of display areas and the order of laying out display elements in the display areas are determined, display elements to be laid out are placed sequentially in the order of descending priorities. Thereby, even if the user deletes a display element somewhere in the middle, a display element behind the deleted one is shifted to the position and displayed on the screen, without changing any other setting. Thus, changing each of the layout positions of a plurality of display elements is not necessitated. Without such troublesome work, the method can prevent problems where the increase of pages due to unnecessary blanks on a display screen requires extra page feeding, and concerns about the blanks lower the operability of GUI.
Moreover, the display areas are laid out in the matrix and the structure definition information includes the information that represents the positions of the display areas in the matrix. This can make it easy to intuitively grasp positional relationships among the display areas.
An image processor 10′ according to a second embodiment of the present invention is explained.
The image processor 10′ includes layout definition information different from that in the image processor 10 according to the first embodiment. Therefore, screen construction processing according to the layout definition information is different from that in the first embodiment. Accordingly, the difference therebetween is mainly explained. In the explanation, the same constituents as those in the first embodiment are denoted by the same reference numerals as in the first embodiment.
As in the image processor 10, each subelement of a function element in the image processor 10′ includes layout rule information relating to a single display element laid out in a display area defined by screen definition information.
However, in the image processor 10′, as another subelement of the function element, a group element 401 can also be described. The group element 401 designates the grouping of display elements. The group element 401 includes a plurality of subelements to be grouped (in the example of
When the grouped display elements are laid out in display areas arranged in the matrix as shown in
Among display elements, for example, as in the single-side setting element 115 and the double-side setting element 116 of
The format of a subelement is the same between when described as the subelement of the function element and when described as that of the group element. In the second embodiment, the display element does not have a function of designating the presence or the absence of “layout” and “fixed” settings. Thus, the subelement does not describe a layout attribute and a fixed attribute. Values of the attributes can be described; however, the following processings do not refer to the values thereof.
In the image processor 10′, when the CPU 11 needs to allow the display unit to display any screen, the CPU 11 generates screen data through the processings shown in the flowchart of
First, at step S71, the CPU 11 reads layout definition information designated by the source attribute of a style element in structure definition information to analyze the XML structure. Then, at step S72, the CPU 11 clears a laid-out element number p explained in the processings of
Thereafter, at step S73, the CPU 11 determines whether the analysis of the layout definition information is completed, namely, whether the processings of all subelements and the group elements (including saving) are completed. Through the analysis at step S71, elements included in the layout definition information can be grasped.
Usually, at first, because the determination at step 73 is, “NO”, the system control proceeds to step S74 to determine whether there is a layout position left without any display element laid out as in step S34 of
Then, usually, at first, because the determination at step S74 is “YES”, the system control proceeds to step S75 to acquire the information of the next display element from the layout definition information to set an element as the processing object. In this case, a subelement or a group element can be the processing object.
Thereafter, at step S76, the CPU 11 determines whether the element as the processing object is a group element. When the element is a group element (“YES” at step S76), the system control proceeds to step S77.
At step S77, the CPU 11 determines whether the number of the elements in the group represented by the group element is equal to or less than the number of columns remaining in a row that includes a (p+1)-th display area as the next layout of a display element among display areas arranged in a matrix. As the number of the elements in the group, the number of subelements of the group element can be counted, or a max attribute value of the group element can be used.
When the determination at step S77 becomes “YES”, it shows that all the display elements in the group can be laid out in display areas positioned in the adjacent columns of the row including the (p+1)-th display area. Accordingly, the system control proceeds to step S78 to perform layout processing of the grouped display elements. Conversely, when the determination at step S77 becomes “NO”, at this point, all of the display elements in the group cannot be laid out in display areas positioned in adjacent columns of the same row. Thus, at step S79, the group element as the processing object is saved in a predetermined buffer to be laid out later.
After steps S78 and S79, the system control returns to step S73 to repeat the processings. In other words, if any yet-unprocessed subelement or group element is left, the next element is set to a processing object to perform the same processings.
When the determination at step S76 becomes “NO”, the processing object is the subelement, so that the CPU 11 performs processings for laying out a display element represented by the subelement in the (p+1)-th display area at steps S80 to S83, as in the steps S41 to S44 of
Thereafter, system control returns to step S73 to repeat the processings.
As shown in
Thus, the display elements of a single group can be laid out in display areas of adjacent columns of the same row. In the processings of
First, at step S101, the CPU 11 determines whether any saved group element is present. When there is no saved group element (“NO” at step S101), processings thereafter are not necessitated, so that the system control immediately returns to the initial processing. When there is a saved group element (“YES” at step S101), the system control proceeds to step S102 and later steps.
At step S102, as in step S74 of
At step S104, as in step S77 of
When the determination at step 104 becomes “NO”, because the saved group elements cannot be laid out yet, the system control returns to the initial step without performing any layout processings. In this case, to maintain the context between groups, layouts of other group elements are not considered.
As a result, when the display elements of a single group can be laid out in display areas of adjacent columns of the same row in the matrix, the saved group elements can be laid out in that manner.
After step S84, the system control returns to step S73 to repeat the processings at steps S73 to S84 as sequentially process each of the subelements and each of the group elements included in the layout definition information until the analysis of the layout definition information is completed or all layout positions are filled.
At step S74, when no more display area is left to lay out a display element, even if any unprocessed or saved element is left, such an element cannot be laid out as a display element on the screen any longer. Accordingly, the system control returns to the initial processing in
At step S73, when the analysis of the layout definition information is completed, the system control proceeds to step S85 to determine whether any save group element is present when there is no saved group element (“No” at step S85), the CPU 11 determines that the layouts of display elements represented by all of the subelements and the group elements are completed, and thus system control returns to the initial processings of
Meanwhile, when any saved group element is present (“Yes” at step S85), if the value p is incremented to allows the position of a display area for element layout to be shifted to the next row in the matrix, it is still possible to lay out the display element of the group represented by the saved group element.
Accordingly, the CPU 11 increments the value p by one at step S86 and determines at step S87 whether any layout position is present, as in step S48 of
Throughout the processings of
The CPU 11 can make the determination at step S19 in
On the screen of
The layout definition information of
In this case, after layout of the non-grouped resolution setting element 112 in the first display area, the single-side setting element 115 and the double-side setting element 116 can be laid out sequentially in columns remaining in the same row. As in
The layout can be automatically performed by allowing the CPU 11 to refer to the grouping setting included in the layout definition information and the numbers of columns and rows included in the structure definition information without concrete layout destination is to be described in the layout definition information. Thus, if a user sets the grouping of display elements to be adjacently laid out in layout definition information, the display elements can be laid out in mutually adjacent positions, regardless of their relative positions with respect to other display elements.
Even when all of the grouped display elements cannot be laid out in display areas and their layouts are extended over a plurality of pages, they are not arranged across two pages. This can ensure that state of all of the grouped display elements can be referred to on a single screen.
Although the embodiments have been explained with reference to the drawings, it is obvious that the apparatus structures, the details of processing contents, the contents and use of the display screen, the data format, and the like are not restricted to those concretely explained in each of the embodiments.
For example, it is not always necessary to provide functions including settings of the presence or absence of “layout” and “fixed”, grouping, and page-element automatic deletion. Only part of the functions can be provided. Moreover, the description format of various data such as the structure definition information, the layout definition information, and the element definition information are not restricted to XML.
The embodiments have explained the example that defines the display areas arranged in the matrix based on the structure definition information. However, the display areas can be laid out in arbitrary positions, in arbitrary orders, and in arbitrary sizes. For example, display areas can be arranged also in the positions of the screen title message 101, the close button 102, the page feeding buttons 103 and 104, so that those components can also be laid out as display elements according to layout definition information.
When a display element is laid out in a display area, for example, part of the element protruded from the display area can be controlled not to be drawn, so that the display element is always fallen within a range of the display area. Alternatively, such a protrusion can be permitted regardless of the boundary of the display area.
Furthermore, a reference position defined by structure definition information can be defined not as an area but simply as positional coordinates as the references of relative positions between display elements laid out. In this case, laying out a display component included in a display element in a relative position with respect to a reference position can be regarded as laying out the display element in the reference position.
Furthermore, in the embodiments, throughout the processings up to step S17 of
Furthermore, the screen data or the image data after drawing can be output to an external apparatus or stored in a storage medium to allow the other apparatus to display a screen content according to the screen data or the image data that is output or stored. In this case, the image processor simply has a function of generating screen data that defines the screen content based on structure definition information, element definition information, and layout definition information, which are generated by a user or provided by a manufacturer. Even only with this function, operability can be improved in screen editing.
Obviously, the applicable objects of the present invention are not restricted to image processors such as printers, fax machines, copiers, scanners, and digital multifunction products. The present invention can be applied as a unit that generates screen data defining a screen content displayed on a display unit included in each of arbitrary electronic apparatuses of network home electric appliances, vending machines, medical equipment, power supplies, air conditioning systems, measuring systems of gas, water, electricity supply, and the like, automobiles, aircrafts, all-purpose computers, and the like. Moreover, screen use is not restricted to GUI, and such a screen can be simply applied to an information screen.
Furthermore a computer program product according to the embodiments of the present invention stores a computer program that allows a computer to control hardware to function as the screen data generating apparatus. The CPU runs the computer program stored in the RAM from the computer program product, thereby achieving the same advantageous effects as those in the embodiments and the modified examples. Moreover, the computer program can also be provided by downloading or the like instead of the distribution of the computer program product.
Furthermore, the structures and the modified examples can be applied in appropriate combinations in consistent ranges.
According to one aspects of the invention, stress due to content editing on the screen of the display unit is reduced.
Although the invention has been described with respect to specific embodiments for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art that fairly fall within the basic teaching herein set forth.
Number | Date | Country | Kind |
---|---|---|---|
2007-069692 | Mar 2007 | JP | national |