This application claims priority under 35 U.S.C. §119 to European Patent Application EP05101005.6, filed Feb. 11, 2005, titled “METHOD AND COMPUTER SYSTEM FOR EDITING DOCUMENTS, which is incorporated herein by reference in its entirety.
This description relates to electronic data processing, and more particularly, relates to methods, computer program products and systems for editing documents.
For the development of software applications so called integrated development environments (IDE) can be used by software developers. When using IDEs for developing applications for multiple mobile devices a developer may need to develop and test an application for various screen resolutions. This is because each mobile device typically has a different screen resolution depending on the mobile device's display. Usually, a developer creates a graphical application user interface (UI) for an application, which is tailored to a specific device. This task is repeated for each device which is intended to run the application. For example, by using a visual toolkit, a developer can design and test the application for different devices or device classes, such as personal digital assistants (PDAs) or mobile phones. Typically a corresponding device emulator is used to preview the application layout as it will look like on the display of the corresponding device. However, during the first development phase the developer may not know whether the application will fit the device and it is likely that the application will not fit. Further, executing the application on a set of devices or device emulators causes a lot of efforts in installing the emulators and/or getting the devices. Further, once the developer can see the test result on a device/emulator, he/she may not be able to directly change the visual representation on the device or emulator itself. Therefore, the developer may need to use the visual toolkit again.
Browser resize tools may allow resizing the browser to any kind of screen resolution. This helps a web designer to design his application for various screen sizes. Also, a device emulator emulates a browser or a device including the browser that is installed on the device. They can be used for previewing the application as well.
In one aspect, a computer system for developing a software application includes an editor unit configured to define a layout of a graphical user interface of the software application. For example, the software application can be a computer program that is able to perform specific functions, such as creating a customer order or generating a report. The computer system further includes a view zone generator unit configured to determine the resolution of a device display being used for displaying the layout. The view zone generator unit then calculates a view zone that is adjusted to the determined resolution, wherein the view zone corresponds to the visible portion of the layout on the device display. Finally the calculated view zone is outlined in the editor unit. By using such a computer system an application developer can, in one implementation, adjust the layout of a software application for various devices or device classes through the user interface of the editor unit because editing of layout elements may be supported in the same editor UI where the resolution restrictions of the respective device display are made visible for the developer. For the developer it becomes immediately apparent, which layout elements of an application layout are visible on which device. By using standard editing functions, the layout can be optimised for one or more devices or device classes.
Further aspects may include a computer program product that may be run by the computer system, and/or a computer implemented method for achieving some or all of the above-described results.
Alternative embodiments can be implemented by further including a device selector unit, which is configured to receive an instruction to select a device or a device class associated with the device display being used for displaying the layout. A device repository may store information about the resolution of device displays for a plurality of devices or device classes. The view zone generator unit can retrieve resolution values from the device repository in accordance with the selections of the device selector unit. This method may be repeated multiple times for a plurality of devices. The view zone generator unit can then outline the calculated view zones for all selected devices or device classes in the same layout view. In such implementations, the developer may thus adjust the layout to all selected devices or device classes in one shot.
These and other aspects may be realized and attained using the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are by way of explanation and example only, and are not restrictive of the invention as described.
The storage medium 910 can store a computer program 100 that implements at least an editor unit 110 and a view zone generator unit 130, which are interfaced to each other.
The editor unit 110 is configured to define a layout 300 of a graphical user interface of a software application. For example, integrated development environments (IDEs) may include such editor units. The editor unit 110 supports standard visual editing functions, such as, for example, inserting, moving or deleting of layout components in a graphical layout view. The editor unit 110 may also support editing functions, such as drag & drop or drag & relate.
The view zone generator unit 130 is configured to determine the resolution of a device display being used for displaying the layout 300. That is, a software application may be developed for a specific user device. The various devices can have different display sizes. For example, a laptop computer has a much larger display than a personal digital assistant (PDA) or a mobile phone. Therefore, it may be convenient to have different application layouts for a software application, where each layout is tailored to the display of a specific device or device class. A device class in this context corresponds, for example, to a group of devices that all have the same display resolution. The layout may be tailored to the device by a developer or automatically generated by an appropriate tool. Dependent on the used device, the user sees an appropriate layout of the software application. For example, when the user uses a laptop, the resolution of the device display may be 1024×768 pixels, whereas when using a PDA, the resolution of the device display may be limited, for example, to 480×320 pixels. For example, an application developer can provide the resolution to the editor unit 110 or view zone generator unit 130. Alternatively, the display resolution values for various devices or device classes may be stored in a corresponding device repository, from where the view zone generator unit 130 can retrieve the corresponding resolution.
The view zone generator unit 130 then calculates a view zone 350 (cf.
The view zone generator unit 130 then outlines the calculated view zone 350 in the editor unit 110. For example, the view zone can be outlined by a bold line that roughly corresponds to the shape of the respective device display (e.g., a rectangular shape). The user can now see which layout elements of the layout 300 are also visible on the respective device display and which layout elements will be hidden and only be accessible on the device display through scrolling. However, scrolling on small displays may be undesirable for the user's control of the small device. Especially a need for horizontal scrolling in an application layout is generally considered to be poor application layout design.
In the example, only layout element LE2 is completely inside the view zone 350. The text rows of layout element LE1 are at least partially outside the view zone and the layout elements LE3 to LE5 are completely out side the view zone and, therefore, not visible at all when the application layout 300 is run on a device with a display that corresponds to the view zone 350. The layout elements outside the view zone would only be accessible through scrolling for the user of the respective device.
An application developer immediately can see, which layout elements of the application will be invisible when the application is run on the respective device. The developer can then instantly modify the layout 300 in the editor unit 110 to make the layout 300 fit in with the view zone 350. By using the outlined view zone 350, the developer may see the total layout and can adjust it according to the respective display size.
In the receiving layout instructions step 410, the application developer can give layout instruction to the computer system 900 (cf.
For example, in one implementation a View Designer tool which embeds a browser for layout visualization can be used for displaying the layout. To visualize the layout 300 (graphical user interface) a document object model (DOM) is built in memory (e.g., storage medium 920) and rendered by the browser. For example, HTML, XHTML or other markup languages may be used for rendering the layout 300 and Scalable Vector Graphics (SVG) may be used for rendering the view zone 350 according to respective W3C specifications. The following coding example 1 illustrates how the namespace of VML (Vector Markup Language) is included in the head portion of a document describing the layout. VML can be used to generate view zones marked up in VML.
Coding Example 1:
In the determining device display resolution step 430, the view zone generator unit 130 uses a device or device class attribute to retrieve the resolution of the respective device or device class, which is to be used for displaying the layout 300. For example, the developer can assign a corresponding attribute directly to the layout. Details of the determining step 430 in an alternative embodiment of the computer system 900 are explained in detail in
The steps receiving device selection 432, retrieving device resolution 434 and calculating view zone 440 may be repeated for a plurality of devices or device classes. The outlining step 450 can outline the calculated view zones for all selected devices or device classes. The optional repetition of the described sub-process is illustrated by the dashed arrow.
In the calculating view zone step 440 the view zone generator unit calculates the view zone 350 that corresponds to the visible portion of the layout 300 on the respective device display in accordance with the determined resolution.
The following coding example 2 illustrates how a view zone for a given mobile phone (currentDevice) can be calculated. The view zone in this example has a rectangular shape.
Coding Example 2:
Rectangle rect=new getRectangleForDevice(currentDevice);
In the outlining view zone step 450, the view zone is outlined in the layout view of the layout editor UI 510 (cf.
Coding Example 3:
The developer may switch the targeted device, i.e. using a menu or the device switch, which causes the zoning area to adjust to the new device. The correct resolutions for various devices can be stored in a device repository.
The device selector unit 150 can be interfaced to the editor unit 110 and to the view zone generator unit 130, or, in an alternative implementation, can be an integral part of the editor unit 110.
The device selector unit 150 is configured to receive an instruction to select a device or a device class associated with the device display being used for displaying the layout 300. For example, the application developer can select a device or device class from a drop down list of devices/device classes. For example, this drop down list can be called from within the layout editor UI. Once the view zone generator unit 130 has received the information about the selected device/device class it can retrieve the resolution of the device display that is associated with the selected device/device class from the device repository 140. For example, the device repository can be implemented as an assignment table in a relational database, where for each device or device class a corresponding data record stores the display resolution of the device/device class. The information may also be stored in a structured document, such as an extensible markup language (XML) file or in any other appropriate data structure. The device repository can be stored in any storage medium of the computer system 900 or can even be remotely stored in storage media that are accessible by the computer system 900.
In case the developer selects the device/device class D1, e.g., by selecting the corresponding tab, the view zone generator retrieves the resolution information for D1 from the device repository and finally outlines the view zone 350.
In case the developer selects D2, then the view zone generator retrieves the resolution information for D2 from the device repository and finally outlines the further view zone 350′, which is illustrated by a dotted line.
The developer can easily “switch” through the various view zone outlines and verify, whether the layout 300 as defined can be displayed on all relevant devices/device classes.
In an alternative implementation the developer can select a plurality of devices/device classes at the same time (e.g., a subset of devices/device classes that are most relevant for running the layout) and the view zone generator unit 130 outlines the corresponding view zones all at once in the layout editor user interface 510. To distinguish between the various devices/device classes, the different view zones may be outlined by using different colours or line styles. In this implementation, the developer can adjust the layout for all devices simultaneously by placing the relevant layout elements in the cross section of all outlined view zones.
In the example, the text property of the layout element LE1 is modified by deleting the text portions that exceed the outline of view zone 350. The deleted text portions are illustrated by being crossed out.
Further the layout elements LE3 to LE5 have all been moved to a new position within the view zone 350 to become visible on the respective device. The original position is illustrated by the crossed out layout elements. For example, the move of the layout elements can be performed by using the drag & drop function of the layout editor 110.
Those skilled in the art can implement further embodiments of the invention by taking benefit of a broad range of functions provided by an IDE.
Embodiments of the invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The invention can be 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 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 described above, can be written in any form of programming language, including compiled or interpreted languages, and it 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 of the invention can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can 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. The essential elements of a computer are at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also 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 can be supplemented by, or incorporated in special purpose logic circuitry.
To provide for interaction with a user, the invention can 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.
The invention can 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 of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Number | Date | Country | Kind |
---|---|---|---|
05101005.6 | Feb 2005 | EP | regional |