One exemplary embodiment relates generally to service marketplace portal applications, and more particularly to a method and system to improve usability of a web application by providing a zoom function.
Web Applications may be run on different displaying devices like monitors, hand-held devices, mobile telephones, and other devices. Because the display area on such devices may vary, the presentation of information may be affected by the dimensions of a particular display device. For example, a personal digital assistant (PDA) has a smaller display area than a desktop computer monitor, and therefore, the amount of information that can be displayed on a PDA may be less than the amount of information that can be displayed on a desktop computer monitor. Some displaying devices may enable a user to choose from different resolution settings of a display device, which may result in an increase or in a reduction of the size of the features displayed on the displaying device.
In one embodiment, a method and system to improve usability of a web application by providing a zoom function. According to one aspect, an interface system for a portal application is provided, the interface system including a view generator to generate an aggregate view including a plurality of display areas, each display area of the plurality of display areas being associated with a respective service accessible via the portal application; and an extractor to receive, from the user, a selection indicating a user-selected portion of the aggregate view. The view generator is configured to generate a zoom view corresponding to the user-selected portion of the aggregate view. Other features of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
A method and system to generate an interface for a web application by providing a zoom function are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details.
The zoom functionality may be a useful tool to allow a user to zoom in on a desired portion of an aggregate view, in the exemplary form of a portal screen area. The portal screen area may be an interface for a portal applcation, which in turn facilities access to a number of other applications and/or services. In one embodiment, zoom functionality in an exemplary form of a zoom tool may be provided to allow a user to freely select a desired area of the portal screen area. The user-selected area may be utilized to indicate the portion of the portal screen to be zoomed in. In another embodiment, certain areas of the portal screen area may be zoomed in.
A zoom tool may provide a zoom in functionality as well as a zoom out functionality, and be integrated into portal environment by means of, for example, providing a zoom control button, which may be located on the toolbar in the portal header. A zoom control button may be configured to allow a user to define an area (e.g., to draw a rectangle) within the portal screen indicating the area to be zoomed in, responsive to the user clicking on the zoom control button. The user-selected area of the portal screen may then be zoomed in to provide the user with a more convenient view of the selected area. In one embodiment, a zoom in control button may be provided to effectuate zoom in functionality, and a zoom out control button may be provided to effectuate zoom out functionality. A zoom tool, in one exemplary embodiment, may allow a user to perform several zoom in operations on a portal screen, each zoom in operating resulting in a zoomed in image of the respective selected portion of the portal screen. Similarly, a user may be enabled to perform several zoom out operations to access each consecutive zoomed in image in reverse order. In one embodiment, a zoom tool may include a specific control button in the tool bar or a customizable shortcut to reset a zoomed in view on the portal screen to its initial size bypassing intermediate zoomed in views. In one embodiment, a zoom tool may include a shortcut so that a user is enabled to activate a zoom function using only a keyboard.
In one exemplary embodiment, the portal interface 22 may facilitate user access to one or more applications hosted on the application server 28, such as, for example, employee self service application, or resource and project management application.
The portal interface 22 is shown to invoke the content interface 24 within which content associated with a web-based application may be presented to a user. Specifically, the content interface 24 may communicate with the one or more applications hosted on the application server 28, at least one of which may be responsible for the delivery of content to the content interface 24. Both the portal interface 22 and the content interface 24 may communicate with the server system 16 via the network 14.
The server system 16, in one exemplary embodiment, may include a web server 26, an application server 28, and a database (DB) server 30. The database server 30 may be connected a database 32. The application server 28 may be deployed to support one or more applications, and may utilize the database server 30 to store and to retrieve data from a database 32. The database 30 may, for example, store data such as project information in an exemplary form of projects table 34, employee benefits information in an exemplary form of benefits table 36, and other information. The data within the database 32 may be stored in any one of a number of forms, such as, for example, flat files, relational tables objects, or as XML (eXtensible Markup Language) data structures. The application servers 28 may also be coupled to one or more web servers 26, so as to facilitate the delivery of web content, including content containing embedded code, such as Java, to the portal interface 22 and the content interface 24. In one embodiment, service marketplace portal application 29 resides on the application server 28.
The system 40 allows a user the client system 12 to select, either freely or by selecting predefined portions, a desired portion of the portal screen request and to zoom in and out of the desired portion of the portal screen. The service marketplace portal application 29 may include an extractor 42, dynamic page components 44, view generators 46, and a display component 48. The extractor 42 may be configured to receive a client's request for a zoom operation. The zoom operation may include a zoom in operation and a zoom out operation. A user may be provided with a zoom in control button to effectuate the zoom in operation and with a zoom out control button to effectuate the zoom out operation.
A request for a zoom operation is obtained by the extractor 42 and communicated to the dynamic page component 44. The dynamic page component 44 processes an event associated with the request for a zoom operation and enables the user to select a desired portion of the portal screen. The user may be enabled to identify a desired portion of the portal screen by drawing a rectangle on the screen indicating the desired portion of the portal screen that the user is interested in zooming in. The extractor 42 obtains the selection of a desired portion of the screen and communicates information associated with the selection to the dynamic page component 44. The dynamic page component 44 processes the request utilizing the view generator 46. The view generator 46 may be configured to access a service data database 50 and to retrieve data necessary to generate a requested view. The service data database 50, in one embodiment, may correspond to the database 32 of
Similarly, when a user activates a zoom out button, the extractor 42 receives a request for a zoom out function and communicates the information associated with the request for a zoom out function to the dynamic page component 44. The dynamic page component 44 communicates information associated with the request for a zoomed out view to the view generator 46. The view generator 46 generates a zoomed out view. The dynamic page component 44 generates a dynamic web page utilizing the view generated by the view generator 46. The dynamic web page is then rendered to the user by the display component 48. The views may be communicated to the user in an exemplary form of HTTP pages.
At operation 76, the method 60 determines whether a zoom out event has been triggered. The zoom out event may be triggered responsive to a user activating a zoom out control button. The zoom out control button may be provided on the tool bar of the portal header. If a zoom out event was triggered, the extractor 42 receives the request for the zoom out functionality. The extractor 42 communicates the request to the dynamic page component 44, which in turn utilizes the view generator 46 to generate a dynamic page including the zoomed out view. The view generated by the view generator 46 responsive to the zoom out request from the user may be the source view or a view immediately preceding the current view. It will be noted that the source view is not necessarily a full view of the original web page. It may be one of the intermediate views if the user is enabled to zoom in on a web page repeatedly, thereby generating several zoomed views. A web page including the zoomed out view is rendered to the user at operation 74. The method 60 ends at operation 80.
The reusable software component 420 may be used to get and set “dynamic” data. The dynamic page component 416 may provide the reusable software component 420 with data to be utilized to generate a zoomed in view and a zoomed out view of a portal screen, and the JSP program 418 may read such data. For example a user input indicating a desired portion of a portal screen may be stored in the reusable software component 420 and then utilized when a zoomed view is displayed by the JSP program 418. Thus, the dynamic page component 416 may provide data associated with a request from the web page 412 to a reusable software component 420 (e.g., the view generator 46). The dynamic page component 416 may delegate generation of an output to the JSP program 418. The reusable software component 420 provides the requested data to the JSP program 418. Finally, the JSP program 418 generates HTML output resulting in a web page 422.
It will be noted that the exchange of data between the dynamic page component 416 and a JSP program 418 may also be effectuated utilizing a session object, a context object, or a request object.
In one exemplary embodiment, the dynamic page component 416 includes an initialization method 510 (doInitialization), a processing after input method 520 (doProcessAfterInput), and a processing before output method 530 (doProcessBeforeOutput). The doInitialization method is called when the application is started. The call is made when the page is directly called per Uniform Resource Identifier (URI) without parameters and no event occurred. This method may be used to initialize data and to set up models. The doInitialization event may also be caused when another portal component on the same page sends an event. The doProcessAfterInput method is called when a web client sends a form to a web server. Except on doInitialization, the call to doProcessAfterInput is performed every time an event occurs on the client side (e.g., when a user activates a zoom control button). The doProcessBeforeOutput method is called before the form is sent to the web client. The call is performed every time even on doInitialization.
The exemplary computer system 700 includes a processor 702 (e.g., a central processing unit (CPU) a graphics processing unit (GPU) or both), a main memory 704 and a static memory 706, which communicate with each other via a bus 708. The computer system 700 may further include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 700 also includes an alphanumeric input device 712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse), a disk drive unit 716, a signal generation device 718 (e.g., a speaker) and a network interface device 720.
The disk drive unit 716 includes a machine-readable medium 722 on which is stored one or more sets of instructions (e.g., software 724) embodying any one or more of the methodologies or functions described herein. The software 724 may also reside, completely or at least partially, within the main memory 704 and/or within the processor 702 during execution thereof by the computer system 700, the main memory 704 and the processor 702 also constituting machine-readable media. The software 724 may further be transmitted or received over a network 726 via the network interface device 720.
While the machine-readable medium 722 is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
Thus, a method and system to generate an interface for a web application by providing a zoom function have been described. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.