Patent Description:
In recent years, various functions such as a scanning function and a copying function are installed on the image forming apparatus. In such an image forming apparatus, a system program has been generated to configure a screen for inputting one or more setting values required to execute each of the functions such as the scanning function and the copying function installed on the image forming apparatus in advance. Conventionally, when an additional program, such as an application program, is developed and installed on such an image forming apparatus to add a new function, and a new setting value is required to be input to execute the newly added function, the system program is required to be changed in a manner that the setting value for executing the newly added function can be input. There is a known plug-in program that is dynamically operable in conjunction with a system program and in which information for inputting a setting value required to execute an additional function is described. With this plug-in program, the system program is not required to be changed, even when, for example, an additional program, such as an application program, requiring a new setting value is newly installed.

<CIT> proposes an image processing apparatus including a downloading unit configured to download a plurality of software pieces. <CIT> proposes an information processing apparatus including a display unit and a plurality of applications. <CIT> proposes an MPD comprising a storage part for storing a functional component including a functional program for calling and executing an application. <CIT> proposes an information processing apparatus including a setting value input unit, a first memory, and a second memory.

Aspects of the invention are set out in the accompanying claims.

When a conventional image forming apparatus newly installs an additional program such as an application program requiring a new setting value, a plug-in program corresponding to the additional program is required to be developed. In addition, installing the plug-in program on the conventional image forming apparatus is burdensome and takes time.

An object of an embodiment of the disclosure is to provide an image forming apparatus that can easily add settings of an additional application to a setting screen for receiving application settings.

In view of the above, the disclosure provides an image forming apparatus including a setting receiving unit, a storage unit, an installation unit, and an addition unit. At least one first application is installed on the image forming apparatus. The setting receiving unit displays at least one first setting screen for setting the first application and receives an input of setting value corresponding to the first application. The storage unit stores first information used, by the setting receiving unit, to display the first setting screen for setting the first application. The installation unit installs a second application on the image forming apparatus. The addition unit adds, to the storage unit, second information used for displaying at least one second setting screen for setting the second application. The setting receiving unit displays the second setting screen based on the second information added to the storage unit and to receive an input of setting value of the second application.

According to an embodiment of disclosure, it is possible to easily add settings of an additional application to a setting screen for receiving application settings.

Referring to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, embodiments of the present disclosure are described.

An image forming apparatus <NUM> according to a first embodiment has a hardware configuration as illustrated in <FIG> is a block diagram illustrating an example of a hardware configuration of the image forming apparatus <NUM> according to the present embodiment. As illustrated in <FIG>, the image forming apparatus <NUM> includes a controller <NUM>, a control panel <NUM>, an external device interface (I/F) <NUM>, a communication I/F <NUM>, a printer <NUM>, and a scanner <NUM>.

The controller <NUM> includes a central processing unit (CPU) <NUM>, a random-access memory (RAM) <NUM>, a read-only memory (ROM) <NUM>, a non-volatile random-access memory (NVRAM) <NUM>, and a hard disk drive (HDD) <NUM>. The ROM <NUM> stores various programs and data. The RAM <NUM> temporarily stores programs and data. The NVRAM <NUM> stores setting information, for example. The HDD <NUM> stores various programs and data.

The CPU <NUM> reads programs, data, setting information, and the like from the ROM <NUM>, the NVRAM <NUM>, the HDD <NUM> and the like, onto the RAM <NUM> to execute processing for controlling the overall operation of the image forming apparatus <NUM> or for implementing functions of the image forming apparatus <NUM>.

The control panel <NUM> includes an input device that receives a user input, and a display device that displays various types of information. The external device I/F <NUM> is an interface that connects the image forming apparatus <NUM> to an external device. As an example of the external device, a recording medium 603a is used. The external device I/F <NUM> enables the image forming apparatus <NUM> to read or write data from or to the recording medium 603a. Examples of the recording medium 603a include an integrated circuit (IC) card, a flexible disc, a compact disc (CD), a digital versatile disc (DVD), a secure digital (SD) memory card, and a universal serial bus (USB) memory.

The communication I/F <NUM> is an interface that connects the image forming apparatus <NUM> to a network. With this configuration, the image forming apparatus <NUM> transmits or receives (communicates) data via the communication I/F <NUM>. The printer <NUM> is a printing device that prints print data on a sheet of paper. The scanner <NUM> is a reading device that scans a document to obtain image data (electronic data).

The hardware configuration illustrated in <FIG> is merely an example, and there may be various other configurations, such as a configuration without one of the printer <NUM> and the scanner <NUM>, a configuration having device implementing a function of performing image forming processing other than the functions implemented by the printer <NUM> and the scanner <NUM>, and a configuration combining thereof.

A description is now given of a functional configuration of the image forming apparatus <NUM> according to the present embodiment. <FIG> is a block diagram illustrating an example of a functional configuration of the image forming apparatus <NUM> according to the present embodiment. The functional configuration of the image forming apparatus <NUM> may include other functional unit in addition to the functional units illustrated in <FIG>.

The image forming apparatus <NUM> illustrated in <FIG> includes an installer <NUM>, existing applications (first applications) 12A to 12C, an additional application (second application) 12E, a system program <NUM> having a setting function, a setting value storage unit <NUM>, a template storage unit <NUM>, and a function control unit <NUM>. The existing applications 12A to 12C and the additional application 12E are collectively or individually referred to as applications <NUM> or an application <NUM>, when being unnecessary to be distinguished from each other.

The installer <NUM> is an example of a program for installing an application program on the image forming apparatus <NUM>. The existing applications 12A to 12C are examples of application programs installed on the image forming apparatus <NUM> in advance.

The additional application 12E is an example of an application program that is additionally installed on the image forming apparatus <NUM> by the installer <NUM>. In the present embodiment, the additional application 12E writes, in the setting value storage unit <NUM>, setting values and setting information used by the system program <NUM> to display a setting screen. In addition, the application 12E provides a predetermined function based on the setting values and setting information stored in the setting value storage unit <NUM>.

In addition to the setting values and setting information associated with the additional application 12E written by the additional application 12E, the setting value storage unit <NUM> stores setting values and setting information associated with each of the existing applications 12A to 12C. The system program <NUM> is an example of a program that provides a setting function to a user. The system program <NUM> generates and displays a setting screen based on the setting values and setting information associated with the application <NUM> stored in the setting value storage unit <NUM>.

The template storage unit <NUM> stores template information for performing a screen rendering process, which is described later. The template information includes a rendering template illustrated in <FIG> and a screen template illustrated in <FIG>, which are described later. In cooperation with the application <NUM>, the function control unit <NUM> provides a screen forming function based on the setting values and setting information stored in the setting value storage unit <NUM>.

For example, in response to an instruction to use the copying function from the application <NUM>, the function control unit <NUM> acquires a sheet from a priority feed tray according to the setting values and setting information and executes copying.

<FIG> is a table illustrating an example of the setting values and setting information stored in the setting value storage unit <NUM>. Setting values and setting information <NUM> illustrated in <FIG> indicate a plurality of records each of which includes a setting value and setting information associated with the one of the existing applications 12A to 12C. Setting values and setting information <NUM> illustrated in <FIG> indicate a plurality of records each includes a setting value and setting information associated with the additional application 12E.

Each record of setting value and setting information illustrated in <FIG> includes items of setting owner, identification information (ID), setting type, input range, title, setting value, and location. The item of setting owner indicates the application <NUM> corresponding to each record of setting value and setting information. The item of ID is an example of identification information for identifying each record of setting value and setting information in <FIG>. The item of setting type indicates a type of setting value, such as a numeric type, a character string type, or a select-one type.

The item of input range indicates a range of setting value. The item of title indicates a title for identifying a corresponding setting value on the setting screen, for a user. The item of setting value indicates a setting value set in a record of setting value and setting information, and the setting value is to be displayed on the setting screen. The item of location indicates an arrangement related to a corresponding record of setting value and setting information in a setting configuration, which is described later.

For example, a location of "Other Settings> Application E Settings" corresponding to an ID of "E001" illustrated in <FIG> indicates a piece of content information of "E001" of a piece of configuration information of "Application E Settings" on the setting configuration. A location corresponding to the ID of "E003" illustrated in <FIG> indicates a piece of content information of "E003" of the piece of configuration information of "Application E Settings" and a piece of configuration information of "Power Saving Settings" in the setting configuration. As described above, it is also possible to locate a single piece of content information related to a single record of setting value and setting information at plural locations.

The system program <NUM> has a setting configuration as illustrated in <FIG> is a diagram illustrating an example of the setting configuration of the system program <NUM>. As illustrated in <FIG>, the setting configuration including pieces of configuration information and pieces of content information is represented as a tree structure. Hereinafter, a piece of configuration information is simply referred to as a configuration, and a piece of content information is simply referred to as content or a piece of content. The setting configuration illustrated in <FIG> corresponds to the setting values and setting information illustrated in <FIG>. In <FIG>, a piece of content <NUM> is content arranged according to a record of setting value and setting information corresponding the ID of "E003" illustrated in <FIG>. In <FIG>, a configuration <NUM> and pieces of content <NUM>, <NUM>, and <NUM> are a configuration and content arranged according to the corresponding records of setting values and setting information corresponding to the IDs of "E001", "E002" and "E003" illustrated in <FIG>.

The system program <NUM> may store, in advance, a setting configuration of each of the existing applications 12A to 12C, as a basic setting configuration, and when the setting function is activated, an additional setting configuration corresponding to the setting values and setting information <NUM> illustrated in <FIG> (the configuration <NUM> and the pieces of content <NUM>, <NUM>, <NUM>, and <NUM>) is combined with the basic setting configuration. For example, the system program <NUM> stores, as data, a setting configuration written in a data description language such as JavaScript Object Notation (JSON) as illustrated in <FIG>.

In the example of the setting values and setting information of <FIG> and the setting configuration of <FIG>, the system program <NUM> generates and displays a setting screen that transitions as illustrated in <FIG>, for example. <FIG> is an illustration of a screen transition of setting screen generated by the system program <NUM>. For example, a setting screen <NUM> corresponding to the configuration of "system settings" of <FIG> displays buttons corresponding to each of the configuration of "power saving settings" and the configuration of "administrator settings", which are "children" of the configuration of "system settings". When the "power saving settings" button is selected, a setting screen <NUM> corresponding to the configuration of "power saving settings" of <FIG> is displayed. The setting screen <NUM> displays setting content corresponding to each of the content of "B002" and the content of "E003", which are "children" of the configuration of "power saving settings". On the setting screens <NUM> and <NUM> illustrated in <FIG>, the configurations and the content associated with the additional application 12E are not added.

On the setting screen <NUM> illustrated in <FIG>, the configuration <NUM> associated with the additional application 12E is added. On the setting screen <NUM> illustrated in <FIG>, the pieces of content <NUM>, <NUM>, and <NUM> associated with the additional application 12E are added. On the setting screen <NUM> illustrated in <FIG>, the piece of content <NUM> associated with the additional application 12E is added.

As described above, in the image forming apparatus <NUM> according to the present embodiment, the installed additional application 12E writes, in the setting value storage unit <NUM>, the setting values and setting information associated with the additional application 12E. The setting values and setting information, which are written in the setting value storage unit <NUM> by the installed additional application 12E are the information, as illustrated in <FIG>, required to generate and display the setting screens.

The system program <NUM> that provides the setting function reads out the setting values and setting information written in the setting value storage unit <NUM> to generate and display the setting screens <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> of the existing applications 12A to 12C and the additional application 12E. According to the present embodiment, the setting function of the additional application 12E can be added to the setting function of the existing applications 12A to 12C without changing the system program <NUM>.

A detailed description is now given of operation of the image forming apparatus <NUM> according to the present embodiment. <FIG> and <FIG> (<FIG>) are a sequence diagram illustrating an example of a process in which an additional application is installed on the image forming apparatus <NUM> and then a setting screen is displayed by the setting function.

In S11, the installer <NUM> receives an operation of installing the additional application 12E from a user. In S12, the installer <NUM> installs the application 12E. In S13, the installer <NUM> notifies the system program <NUM> of the installation of the application 12E.

In S14, the system program <NUM> transmits a request to the application 12E to store setting values. Hereinafter, the request is also referred to as a setting value storage request. In S15, upon receiving the setting value storage request from the system program <NUM>, the application 12E writes the setting values and setting information associated with the application 12E into the setting value storage unit <NUM>.

For example, in the example of <FIG>, the setting values and setting information <NUM> associated with the existing applications 12A to 12C are stored in the setting value storage unit <NUM>, in advance, and the setting values and the setting information <NUM> associated with the additional application 12E are added by the processing of S15. In S16, the application 12E reports to the system program <NUM> that the setting values and setting information <NUM> associated with the additional application 12E has been stored, in response to the setting value storage request. This notification is also referred to as a setting value storage response.

In S17, the system program <NUM> receives an operation for activating the setting function from the user. In S18, the system program <NUM> reads the setting values and setting information associated with the applications <NUM> stored in the setting value storage unit <NUM> illustrated in <FIG>. In S19, the system program <NUM> combines the setting configuration of the existing applications 12A to 12C with the setting configuration of the additional application 12E. For example, in the example of <FIG>, the configuration <NUM> and the pieces of content <NUM>, <NUM>, and <NUM> are added to the setting configuration.

By the processing of S19, the setting configuration described by, for example, JSON retained by the system program <NUM> is updated as one illustrated in <FIG> (<FIG> and <FIG>). <FIG> (<FIG> and <FIG>) is a diagram of an example of data describing a setting configuration.

The JSON is a collection of pairs of a name (Key) and a value (Value). A configuration enclosed by "{}" is referred to as an object, and a configuration enclosed by "[]" is referred to as an array. For example, in a case of ʺʺid":"settings:system:ecoʺʺ of an object <NUM> in <FIG>, "id" is a name (Key) and "settings:system:eco" is a value (Value).

In addition, the object <NUM> defines a power setting screen (configuration). The "children" of the object <NUM> has a value that is an array defining two pieces of setting content (content). Accordingly, an object <NUM> and an object <NUM>, each of which has an array configuration, are described as the value of "children" of the object <NUM>. Namely, each of the object <NUM> and the object <NUM> represent as a "child" of the object <NUM>. In addition, an object <NUM> defines an application E setting screen (configuration), and a value of "children" of the object <NUM> is an array defining three pieces of setting content (content). In addition, dependency of a plurality of objects indicates how the screen transitions among screens each of which is defined by the corresponding one of the plurality of objects. For example, the object <NUM> is described as a value of "child" of the object <NUM>. This indicates that a screen defined by the object <NUM> can transition to a screen defined by the object <NUM>.

In addition, in the item of "location" of the setting value and setting information illustrated in <FIG>, in a case of the object <NUM> illustrated in <FIG>, a value of "settings:system:eco" of "id:"settings:system:eco", is stored. In the example of <FIG> (<FIG> and <FIG>), the object <NUM> having "type": "category" is "configuration", and the object <NUM> and the object <NUM>, which are without "type":"category", are "content". In the example of <FIG> (<FIG> and <FIG>), the pieces of "content" are arranged in ascending order of the IDs. A detail of the setting content is stored in the corresponding record of the setting value and setting information illustrated in <FIG>. As described above, the dependency of among setting screens (screen transition relation) is defined as the setting configuration as illustrated in <FIG> (<FIG> and <FIG>).

Returning to S20 in <FIG>, the system program <NUM> generates, for example, the setting screen <NUM> based on the setting configuration, which is combined in S19, as illustrated in <FIG> (<FIG> and <FIG>). In S21, the system program <NUM> displays the setting screen <NUM>.

When "Other settings" is selected on the setting screen <NUM> in S22, the process proceeds to S23, and the system program <NUM> generates, for example, the setting screen <NUM> based on the setting configuration as illustrated in <FIG> (<FIG> and <FIG>), which is combined in S19, for example. In S24, the system program <NUM> displays the setting screen <NUM>.

When "application E settings" is selected on the setting screen <NUM> in S25, the process proceeds to S26, and the system program <NUM> reads out the information required to generate and display the setting screen <NUM> from the setting value storage unit <NUM>. In S27, the system program <NUM> generates, for example, the setting screen <NUM> based on the setting configuration as illustrated in <FIG> (<FIG> and <FIG>), which is combined in S19 and the setting values and setting information read out in S26. In S28, the system program <NUM> displays the setting screen <NUM>.

As illustrated in the sequence diagram illustrated in <FIG> and <FIG> (<FIG>), the system program <NUM> sets the value of "children" to a rendering target. That is, in the present embodiment, the value of "children" or "child" of "child" is not a rendering target. For example, when generating the setting screen <NUM>, the system program <NUM> sets "system settings", "copy settings", "scan settings", and "other settings" described as the value of "children" of the object of the setting screen <NUM> to rendering targets. In addition, "power saving settings" and "administrator settings" described as the value of "children" of the object of the setting screen <NUM> are rendering targets.

As described above, the sequence diagram illustrated in <FIG> and <FIG> (<FIG>) illustrates the example of the process of sequentially generating the selected setting screens, however all the setting screens may be generated at once. Further, in addition to the JSON, the setting configuration illustrated in <FIG> (<FIG> and <FIG>) may define the setting screens using another format such as an eXtensible Markup Language (XML) or a HyperText Markup Language (HTML).

Each setting screen generated in S20, S23 and S27 follows steps of a flowchart illustrated in <FIG>, for example. <FIG> is a flowchart illustrating an example of a process of rendering a screen (screen rendering process). In the screen rendering process illustrated in <FIG>, a setting screen is rendered using the rendering template illustrated in <FIG> and the screen template illustrated in <FIG>, which are stored in the template storage unit <NUM>.

In S51, the system program <NUM> renders the value of "title" of "parent" in the "screen title display position" of the screen template illustrated in <FIG>. The processing of S52 to S57 is repeated by the number of "children".

In S52, the system program <NUM> determines whether a type of a "child" element (object) is "configuration" or "content". If the type of the "child" element is "configuration", the process performed by the system program <NUM> proceeds to S53 and renders the rendering template, of which the type of the element is "configuration", illustrated in <FIG>, on the screen template illustrated in <FIG>.

On the other hand, if the type of the "child" element is not "configuration", but "content", the process proceeds to S54, and the system program <NUM> determines the setting type of the "child" element. If the setting type of the "child" element is the "numeric type", the process proceeds to S55 and the system program <NUM> renders a rendering template corresponding to the element type of "content" and the setting type of "numeric type", on the screen template illustrated in <FIG>.

If the setting type of the "child" element is the "character string type", the process proceeds to S56 and the system program <NUM> renders a rendering template corresponding to the element type of "content" and the setting type of "character string type", on the screen template illustrated in <FIG>. If the setting type of the "child" element is the "select-one type", the process proceeds to S57 and the system program <NUM> renders a rendering template corresponding to the element type of "content" and the setting type of "select-one type", on the screen template illustrated in <FIG>.

A specific example of the screen rendering process illustrated in <FIG> is performed as illustrated in <FIG> and <FIG> (<FIG>), for example. <FIG> (<FIG> and <FIG>) is a diagram illustrating an example of the screen rendering process. The diagram of <FIG> (<FIG> and <FIG>) illustrates the process of rendering the setting screen <NUM> based on the object <NUM> illustrated in <FIG>.

The system program <NUM> renders the value of "application E settings" of the "title" of the "parent" of the setting configuration <NUM> in the "screen title display position" of the screen template <NUM>. In addition, the system program <NUM> sequentially reads "child" elements of the setting configuration <NUM>. The system program <NUM> renders the rendering template <NUM> corresponding to the setting type of each read "child" element on the screen template.

For example, the system program <NUM> reads the rendering template of the setting type of "numeric type" corresponding to the setting type of the "child" element having the ID of "E001" and renders the read template on the screen template <NUM>. That is, the setting content of "reset timer" of the setting screen <NUM> is rendered, accordingly. In addition, the system program <NUM> reads the rendering template of the setting type of "select-one type" corresponding to the setting type of the "child" element having the ID of "E002" and renders the read template on the screen template <NUM>. That is, the setting content of "default color mode" of the setting screen <NUM> is rendered, accordingly. In addition, the system program <NUM> reads the rendering template of the setting type of "select-one type" corresponding to the setting type of the "child" element having the ID of "E003" and renders the read template on the screen template <NUM>. That is, the setting content of "application E power saving priority settings" of the setting screen <NUM> is rendered, accordingly.

As a result, the system program <NUM> can generate the setting screen <NUM> of the additional application 12E without changing the system program <NUM>, and display the setting screen <NUM> on a web browser or the like installed on the image forming apparatus <NUM>.

A specific example of a screen rendering process for the setting screen <NUM> is performed as follows, based on the object <NUM> illustrated in <FIG>, for example.

The system program <NUM> renders the value of "title" that is "other settings" in the "screen title display position" of the screen template. In addition, the system program <NUM> sequentially reads out the "child" elements and renders the rendering template corresponding to the setting type of each "child" element on the screen template.

For example, the system program <NUM> determines that the element type of the "child" element of "application A settings" is "configuration" (S52) and renders the rendering template corresponding to the element type of "configuration" on the screen template illustrated in <FIG> (S53), namely, renders an "application A settings" button of the setting screen <NUM>. Subsequently, the system program <NUM> determines that the element type of the next "child" element of "application E settings" is "configuration" (S52) and renders the rendering template corresponding to the element type of "configuration" on the screen template illustrated in <FIG> (S53), namely, renders an "application E settings" button of the setting screen <NUM>.

As a result, the system program <NUM> can generate the setting screen <NUM> including a button for displaying the setting screen <NUM> for setting the additional application 12E without changing the system program <NUM>, and can display the setting screen <NUM> on a web browser or the like installed on the image forming apparatus <NUM>. The web browser is an example of a program having a display function.

For example, the image forming apparatus <NUM> illustrated in <FIG> may include a plurality of devices, such as a device that serves as an operation device and a device that serves as a main device. <FIG> is a block diagram illustrating an example of a hardware configuration of an operation device <NUM> and a main device <NUM> included in the image forming apparatus <NUM>.

As illustrated in <FIG>, the operation device <NUM> includes a CPU <NUM>, a ROM <NUM>, a RAM <NUM>, a flash memory <NUM>, a control panel <NUM>, a connection interface (I/F) <NUM>, and a communication I/F <NUM>, and the above-mentioned hardware elements are connected to each other through a bus <NUM>.

The CPU <NUM> executes various types of programs stored in the ROM <NUM> or the flash memory <NUM> using the RAM <NUM> as a work area to control the overall operation of the operation device <NUM> and to implement each of the function. The flash memory <NUM> is a nonvolatile storage medium, and stores various programs executed by the CPU <NUM> and various data.

The control panel <NUM> has a display/operation unit and a hardware key for allowing a user to perform various operations. The display/operation unit of the control panel <NUM> can further display an internal state of the image forming apparatus <NUM>. The connection I/F <NUM> is an interface to communicate with the main device <NUM> through a communication path <NUM>. Here, a USB standard interface is used as an example of the connection I/F <NUM>. The communication I/F <NUM> is an interface for communicating via a network.

The main device <NUM> includes a CPU <NUM>, a ROM <NUM>, a RAM <NUM>, an HDD <NUM>, an engine <NUM>, a connection I/F <NUM>, and a communication I/F <NUM>, and the above-mentioned hardware elements are connected to each other through a bus <NUM>.

The CPU <NUM> executes various types of programs stored in the ROM <NUM> or the HDD <NUM> using the RAM <NUM> as a work area to control the overall operation of the main device <NUM> and to implement each of the function. The HDD <NUM> is a nonvolatile storage medium, and stores various programs executed by the CPU <NUM> and various data.

The engine <NUM> is hardware for performing information processing for implementing image processing functions such as a copy function, a scan function, a facsimile communication function, a print function, and the like. The engine <NUM> includes, for example, a scanner that scans and reads a document, a plotter that performs printing on a sheet material such as paper, and a communication device that performs facsimile communication. The engine <NUM> may further include a finisher that sorts printed sheet materials and an automatic document feeder (ADF) that automatically feeds documents. The connection I/F <NUM> is an interface to communicate with the operation device <NUM> through the communication path <NUM>. Here, a USB standard interface is used as an example of the connection I/F <NUM>. The communication I/F <NUM> is an interface for communicating via a network.

A description is now given of a functional configuration of the image forming apparatus <NUM> having the hardware configuration in which the operation device <NUM> and the main device <NUM> are separately provided as illustrated in <FIG>. <FIG> is a block diagram illustrating another example of the functional configuration of the image forming apparatus <NUM> according to the present embodiment. The functional configuration of the image forming apparatus <NUM> may include other functional unit in addition to the functional units illustrated in <FIG>.

The operation device <NUM> of the image forming apparatus <NUM> illustrated in <FIG> includes the installer <NUM>, the existing applications 12A to 12C, the additional application 12E, and the system program <NUM> having a setting function. In addition, the main device <NUM> of the image forming apparatus <NUM> illustrated in <FIG> includes the setting value storage unit <NUM>, the template storage unit <NUM>, and the function control unit <NUM>. The installer <NUM>, the existing applications 12A to 12C, the additional application 12E, the system program <NUM> having the setting function, the setting value storage unit <NUM>, the template storage unit <NUM>, and the function control unit <NUM> are the same as those in <FIG>, and a description thereof is omitted in the following.

In addition, the installer <NUM>, the existing applications 12A to 12C, the additional application 12E, the system program <NUM> having the setting function, the setting value storage unit <NUM>, and the template storage unit <NUM>, namely the elements other than the function control unit <NUM>, may be included in any one of the operation device <NUM> and the main device <NUM>.

As described above, according to the present embodiment, it is possible to easily add the settings of the additional application 12E to the setting screen for transitioning the screen of the existing applications 12A to 12C.

Numerous additional modifications and variations are possible in light of the above teachings. For example, elements and/or features of different illustrative embodiments may be combined with each other and/or substituted for each other within the scope of this disclosure and appended claims.

The above-described embodiments are illustrative and do not limit the present invention. Thus, numerous additional modifications and variations are possible in light of the above teachings. For example, elements and/or features of different illustrative embodiments may be combined with each other and/or substituted for each other within the scope of the present invention.

The present invention can be implemented in any convenient form, for example using dedicated hardware, or a mixture of dedicated hardware and software. The present invention may be implemented as computer software implemented by one or more networked processing apparatuses. The processing apparatuses can compromise any suitably programmed apparatuses such as a general-purpose computer, personal digital assistant, mobile telephone (such as a WAP or <NUM>-compliant phone) and so on. Since the present invention can be implemented as software, each and every aspect of the present invention thus encompasses computer software implementable on a programmable device. The computer software can be provided to the programmable device using any conventional carrier medium (carrier means). The carrier medium can compromise a transient carrier medium such as an electrical, optical, microwave, acoustic or radio frequency signal carrying the computer code. An example of such a transient medium is a Transmission Control Protocol/Internet Protocol (TCP/IP) signal carrying computer code over an IP network, such as the Internet. The carrier medium can also comprise a storage medium for storing processor readable code such as a floppy disk, hard disk, CD ROM, magnetic tape device or solid state memory device.

Each of the functions of the described embodiments may be implemented by one or more processing circuits or circuitry. Processing circuitry includes a programmed processor, as a processor includes circuitry. A processing circuit also includes devices such as an application specific integrated circuit (ASIC), digital signal processor (DSP), field programmable gate array (FPGA), and conventional circuit components arranged to perform the recited functions. For example, the setting receiving unit, the storage unit, the installation unit, the addition unit, and the setting receiving unit may be implemented by processing circuitry, which may operate in cooperation with hardware of any desired apparatus, such as the image forming apparatus as described above.

Claim 1:
An image forming apparatus (<NUM>) installed with at least one first application (12A), the image forming apparatus (<NUM>) comprising:
a setting receiving unit configured to display a plurality of first setting screens (<NUM>, <NUM>) for setting the first application (12A) and to receive an input of a setting value of the first application (12A);
a storage unit (<NUM>) configured to store first information used, by the setting receiving unit, to display the plurality of first setting screens (<NUM>, <NUM>) for setting the first application (12A);
an installation unit (<NUM>) configured to install a second application (12E) on the image forming apparatus (<NUM>); and
an addition unit configured to add, in response to installation of the second application (12E), second information used for displaying at least one second setting screen (<NUM>, <NUM>) for setting the second application (12E) to the storage unit (<NUM>), the second information including location information indicating a location of the at least one second setting screen (<NUM>, <NUM>) in a screen transition among the plurality of first setting screens (<NUM>, <NUM>), wherein
the setting receiving unit controls the screen transition among the plurality of first setting screens (<NUM>, <NUM>) and the at least one second setting screen (<NUM>, <NUM>) to be displayed, based on the location information of the second information added to the storage unit (<NUM>), the second setting screen (<NUM>, <NUM>) being operative to receive an input of a setting value corresponding to the second application (12E), and
characterised in that:
the adding second information used for displaying at least one second setting screen (<NUM>, <NUM>) for setting the second application (12E) to the storage unit (<NUM>) comprises setting a plurality of locations for a single (i) setting value and (ii) setting information.