Providing smart user interfaces based on document open and/or edit context

Methods, systems, and computer program products provide intelligent user interfaces based on a context or mode of a document. A method involves opening the document in a context that only facilitates reading, disabling editing commands associated with the document and/or disabling typing functionality for editing the document, and displaying a transition button via the intelligent user interface. The transition button is operative, when selected, to initiate transition of the document between the context that only facilitates reading and a context that facilitates editing. The method also involves receiving a selection of the transition button, in response to receiving the selection and transitioning from the context that only facilitates reading to the context that facilitates editing. Transitioning to the editing context includes enabling the editing commands and typing functionality. The method may also involve transitioning from the context that facilitates editing back to the context that only facilitates reading.

BACKGROUND

Certain document files are not intended for editing or at minimum should not be saved over the original document file. For instance, in previous server based collaboration systems, transitioning between reading and editing modes is error prone and non-intuitive. For instance, when a user selects a file to read and not for editing, an application is launched and the document is placed in a “read-only” state. This process avoids having locks placed on document files that are mostly read and not edited. However, the confusing downside is that the “read-only” state has features that do not exhibit a “read-only” state. The title-bar reads “Read-Only”, but the file isn't truly “read-only” in the file system. For instance, typing functionality and the commands are still operative and when “SAVE” is selected or pressed, a lock for the file is retrieved in the form of a “Save As” dialog box. Thus, some features of the “read-only” state give the impression that the document file is being edited, however the document file is not really being edited until “Save” is selected. This functionality confuses users as to the reality of the state in which they are operating. Consequently, some users don't notice the title-bar, edit their long document, and press “Save” to find that another user is editing the document elsewhere.

Other scenarios that do not even involve a server are also impacted. For instance documents that are electronically signed ideally should invalidate the signature when the document is edited. However, in previous systems despite some warning dialogs, signature blocks are broken with relative ease. Another scenario where a read-only” state is not completely apparent involves information rights protected documents that permit authorized users to make changes after authentication. Therefore, an unaddressed need exists in the industry to address the aforementioned deficiencies and inadequacies.

SUMMARY

Embodiments of the present invention solve the above and other problems by providing methods, systems, and computer-readable mediums for providing intelligent user interfaces based on a mode or context of an electronic document. In general, the present invention allows users of electronic documents to distinguish clearly between what is “read-only” context and “editing” context of an electronic document. Embodiments of the present invention also allow the users to easily transition out of a read-only context state and into an editing context state whenever a user desires to transition. The experience is kept clean and light to help users clearly understand that the “read-only” context is a “mode” that is optimized for non-editing. Features of embodiments of the present invention include disabling and hiding most of the commands that would “dirty” a document and blocking a user from typing in order to prevent accidental edits that will not be saved. This feature also encourages users to press a transition button to get out of the “read-only” mode when a user wants to edit.

One embodiment is a method for providing an intelligent user interface based on a context, state, or mode of a document. The method involves opening the document in a context that only facilitates reading, disabling editing commands associated with the document and/or disabling typing functionality for editing the document, and displaying a transition button via the intelligent user interface. The transition button is operative, when selected, to initiate transition of the document between the context that only facilitates reading and a context that facilitates editing. The method also involves receiving a selection of the transition button, in response to receiving the selection and transitioning from the context that only facilitates reading to the context that facilitates editing. Transitioning to the editing context includes enabling the editing commands and typing functionality. The method may also involve transitioning from the context that facilitates editing back to the context that only facilitates reading.

Another embodiment is a computer program product including a computer-readable medium having control logic stored therein for causing a computer to provide an intelligent user interface based on a context of a document. The control logic includes computer-readable program code for causing the computer to open the document in a context that only facilitates reading, disable and hide editing commands associated with the document, disable typing functionality for editing the document, and display a transition button via the intelligent user interface. The transition button is operative when selected to initiate transition of the document between the context that only facilitates reading and a context that facilitates editing.

The computer program product also includes computer-readable program code for causing the computer to receive a selection of the transition button, in response to receiving the selection and transition from the context that only facilitates reading to the context that facilitates editing. Transitioning to the context that facilitates editing includes revealing editing commands and enabling editing commands and typing functionality. The computer program code is also operative to cause the computer to transition from the context that facilitates editing back to the context that only facilitates reading.

Still another embodiment is a system for providing an intelligent user interface based on a mode of a document. The system includes a client computer with a display unit. The client computer is operative to open the document in a mode that only facilitates reading, disable editing commands associated with the document, and disable typing functionality for editing the document. The client computer is also operative to display via the display unit a transition button operative when selected to initiate transition of the document between the context that only facilitates reading and a context that facilitates editing. The system also includes a server computer in communication with the client computer. The server computer is operative to store the document, share the document among multiple users, and issue locks for editing purposes.

These and other features and advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed.

DETAILED DESCRIPTION

As briefly described above, embodiments of the present invention are directed to methods, computer program products, and systems for providing an intelligent user interface based on a context of a document. These embodiments may be combined, other embodiments may be utilized, and structural changes may be made without departing from the spirit or scope of the present invention. The following detailed description is therefore not to be taken in a limiting sense and the scope of the present invention is defined by the appended claims and their equivalents.

Referring now to the drawings, in which like numerals refer to like elements through the several figures, aspects of the present invention and an exemplary operating environment will be described.FIGS. 1-2and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. While the invention will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that the invention may also be implemented in combination with other program modules.

FIG. 1is a block diagram illustrating client computing apparatuses102aand102b, a server110and a network architecture that provide an illustrative operating environment100for illustrative embodiments of the present invention. An application program105resides on the client computing apparatus102aand includes a smart reading module (SRM)107. According to an embodiment of the present invention, the application program105comprises a multiple functionality software application suite for providing functionality from a number of different software applications. An example of such a multiple functionality application suite105is OFFICE manufactured by Microsoft Corporation. The SRM107is operative to assist users of an electronic document, such as electronic documents108,112, and114, in reading the electronic document in a “read-only” context. The electronic document108is a digitally signed electronic document.

The SRM107facilitates the reading of electronic documents whether the document resides on the client computing apparatuses102aand102bor on the server computer110where the document is accessed via a network18. The server computer110is operative to communicate utilizing FRONTPAGE server extension protocol-remote procedure call (FPSE-RPC) protocol and/or Distributed Authoring and Versioning (DAV) protocol. FPSE-RPC or DAV protocols are utilized to open the document file into locked and unlocked states on the server110. Web-based DAV is an IETF standard set of platform-independent extensions to HTTP that allows users to collaboratively edit and manage files on remote Web servers. WebDAV features XML properties on metadata, locking, which prevents authors from overwriting each other's changes, namespace manipulation, and remote file management. The electronic document114may be a shared document available for collaborative reading and/or editing for multiple users via client computers such as in systems utilizing SHAREPOINT from Microsoft Corporation. Additional details regarding the SRM107will be described below with respect toFIGS. 2-5.

Turning now toFIG. 2, an illustrative architecture for a personal or server computer102for practicing the various embodiments of the invention will be described. The computer architecture shown inFIG. 2illustrates a conventional personal or server computer, including a central processing unit4(“CPU”), a system memory6, including a random access memory8(“RAM”) and a read-only memory (“ROM”)10, and a system bus12that couples the memory to the CPU4. A basic input/output system containing the basic routines that help to transfer information between elements within the computer, such as during startup, is stored in the ROM10. The personal computer102further includes a mass storage device14for storing an operating system16, application programs, such as the application program105, and data.

The mass storage device14is connected to the CPU4through a mass storage controller (not shown) connected to the bus12. The mass storage device14and its associated computer-readable media, provide non-volatile storage for the personal computer2. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the personal computer102.

According to various embodiments of the invention, the personal computer102may operate in a networked environment using logical connections to remote computers through a TCP/IP network18, such as the Internet. The personal computer102may connect to the TCP/IP network18through a network interface unit20connected to the bus12. It should be appreciated that the network interface unit20may also be utilized to connect to other types of networks and remote computer systems. The personal computer2may also include an input/output controller22for receiving and processing input from a number of devices, including a keyboard or mouse (not shown). Similarly, an input/output controller22may provide output to a display screen or unit23, a printer, or other type of output device.

As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device14and RAM8of the personal computer102, including an operating system16suitable for controlling the operation of a networked personal computer, such as the WINDOWS operating systems from Microsoft Corporation of Redmond, Wash. The mass storage device14and RAM8may also store one or more application programs. In particular, the mass storage device14and RAM8may store the application program105for providing a variety of functionalities to a user. For instance, the application program105may comprise many types of programs such as a word processing application, a spreadsheet application, a desktop publishing application, and the like. According to an embodiment of the present invention as described above, the application program105comprises a multiple functionality software application suite for providing functionality from a number of different software applications.

Some of the individual program modules that may comprise the application suite105include a word processing application125, a slide presentation application135, a spreadsheet application140and a database application145. An example of such a multiple functionality application suite105is OFFICE manufactured by Microsoft Corporation. One or more of the program modules are capable of producing electronic documents such as the electronic documents108,112, and114(FIG. 1). Other software applications illustrated inFIG. 2include an electronic mail application130and a web browser113, such as INTERNET EXPLORER from Microsoft Corporation. Additional details regarding providing an intelligent user interface based on a context of a document will be described below with respect toFIGS. 3-5.

FIG. 3is a computer screen display illustrating a user interface300displaying a “read-only” context of a document according to an illustrative embodiment of the present invention. A word processing application such as, the word processing application125, displays an electronic document while in ‘read-only’ context. The SRM107acknowledges the ‘Read-Only’ state with an application header310and a current state indicator304. The SRM107also provides an edit instruction303to direct a user to a transition button302to make changes to the electronic document. A ‘Write’ menu selection307, as well as other menu selections, is available. However, the SRM107disables commands associated with the ‘Write’ menu selection307. The SRM107also hides or fades some commands and disables typing functionality for the purposes of editing.

FIG. 4is a computer screen display illustrating the user interface ofFIG. 3displaying disabled edit commands according to an illustrative embodiment of the present invention. As illustrated, some editing commands such as a document font command401and formatting selections402are faded thereby indicating a ‘read-only’ context to users. As briefly described above, embodiments of the present invention allow the users to easily perceive and transition out of a ‘read-only’ context state and into an editing context state whenever a user desires to transition. The experience is kept clean and light to help users clearly understand that the “read-only” context is a “mode” that is optimized for non-editing. Features of embodiments of the present invention include disabling and hiding most of the commands that would “dirty” a document because users should not be editing the document in a ‘read-only’ state. The features also include blocking a user from typing in order to prevent accidental edits that will not be saved and to prevent an annoying prompt on close asking a user to save. These features also encourage users to press or select the transition button302to get out of the “read-only” mode when a user wants to edit.

The transition button302is the main way to transition out of the read-only mode. In embodiments involving a collaborative server based system, the transition button302when selected serves as a mechanism to retrieve a write-lock on the electronic document file. In embodiment where the document file resides on a client or personal compute and is ‘read-only’, then the transition button302will serve as a mechanism to save a copy of the document elsewhere for editing. Additionally, this ‘read-only’ state can be leveraged for other cases that are intended to be more “read-only”, such as opening a word processor document attachment in email, documents that are digitally signed, documents that are information rights management (IRM) protected for read permissions, documents marked “read-only” in the file system, and password protected documents.

FIG. 5is an illustrative routine or operational flow performed in providing an intelligent user interface based on a context of a document according to illustrative embodiments of the invention. When reading the discussion of the routines presented herein, it should be appreciated that the logical operations of various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations illustrated inFIG. 5, and making up the embodiments of the present invention described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims set forth herein.

FIG. 5is an illustrative operational flow or routine performed in providing an intelligent user interface based on a context of a document for documents that reside on a server and documents that reside on a client computer according to illustrative embodiments of the present invention. The routine500begins at operation502for a shared document that resides on a server computer. At operation502the SRM107opens the document in ‘read-only’ mode that includes disabling editing commands and typing functionality. This mode only facilitates reading the document. Documents may be opened using a File/Open menu selection or a most recently used (MRU) file selection. Other options include opening the document from network places and opening documents that utilize digital signatures or IRM permissions. The routine500then continues to operation505.

At operation505, the SRM107determines whether the document is checked out to the same present user. When the document is already checked out to the same user, the routine500continues from operation505to operation514described below. When the document is not checked out to the user, the routine500continues to operation507.

At operation507a determination is made as to whether checkout of the document is required. When checkout is required, the routine500continues from operation507to operation508where the SRM107displays a transition button operative, when selected, to checkout and transition the document to a context that facilitates editing. Determining what transition button to display can be important, because the ‘read-only’ mode can be a fairly focused and restrictive mode.

Next, at operation510, the SRM107receives a selection or press of the transition button operative, when selected, to checkout and transition the document to a context that facilitates editing. Then at operation511, the SRM107determines whether the document has been checked out to someone other than the present user utilizing a long-term lock whereby the document remains checked out even when the user closes a reading session. When the document is checked out to another user, the routine500continues to operation532described below. When the document is not checked out to another user, the routine500continues from operation511to operation512.

At operation512, in response to receiving the selection, the SRM107checks out the document file to the user utilizing a long-term locking mechanism. The routine500then continues to operation514where the SRM107opens an edit mode or a read/write mode in the application program presenting the document. Transitioning to the context that facilitates editing includes enabling the typing functionality for editing the document and enabling the editing commands. The routine500then returns control to other routines at return operation517. In the alternative, the SRM107may transition the document back into ‘read-only’ mode by either checking in the document file to a server from required or non-required check out, or by signing a document with a digital signature in preparation for others to sign. Thus, the document is transitioned from the context that facilitates editing back to the context that only facilitates reading.

When at operation507, the SRM107determines that checkout is not required, the routine500continues from operation507to operation520. At operation520, the SRM107displays a transition button operative, when selected, to transition the document to a context that facilitates editing. Next, at operation522, the SRM107receives a selection or press of the transition button operative, when selected, to transition the document to a context that facilitates editing. Then at operation523, the SRM107determines whether the document has been checked out to someone other than the present user. When the document is checked out to another user, the routine500continues to operation532described below. When the document is not checked out to another user, the routine500continues from operation523to operation524.

At operation524, in response to receiving the selection, the SRM107retrieves a short-term lock that terminates when the read and/or edit session is closed. The routine500then continues to operation527where the SRM107opens an edit mode or a read/write mode in the application program presenting the document. The routine500then continues to return operation517described above.

In contrast, when the document resides on a client computer, the routine500begins at operation528where the SRM107opens the document in ‘read-only’ mode that includes disabling editing commands and typing functionality. The routine500then continues to operation530.

At operation530, the SRM107determines whether the document has been digitally signed. When the document is not digitally signed, the routine500continues to operation532where the SRM displays a transition button operative, when selected, to save a copy of the document and transition the copy to a context that facilitates editing. When the ‘Save a Copy’ transition button is selected, a copy of the document is saved elsewhere for editing. At operation530, when the document is digitally signed, the routine500continues from operation530to operation540.

At operation540, the SRM107displays a transition button operative, when selected, to invalidate the digital signature and transition the document to a context that facilitates editing. This button explicitly indicates that editing the document will invalidate digital signatures. Next, the routine500continues from operation532or operation540to operation534.

At operation534, the SRM107receives a selection or press of the ‘Edit and Invalidate Signature’ button or the ‘Save a Copy’ button depending on whether the document was digitally signed. Then at operation537, in response to receiving the selection, the SRM107displays a ‘Save As’ dialog in order to save a copy of the document elsewhere for editing purposes. The routine500then returns control to other routines at return operation517.

Based on the foregoing, it should be appreciated that the various embodiments of the invention include methods, systems, and computer-readable mediums for providing an intelligent user interface based on a context of a document. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.