Dynamic extension view with multiple levels of expansion

Application extension management may be provided. A plurality of related documents may be scanned to determine whether an activation trigger associated with an application extension has been triggered. In response to determining that the activation trigger associated with the application extension has been triggered, the application extension may be triggered and a user interface element associated with the application extension may be displayed according to a display rule.

RELATED APPLICATIONS

Related U.S. patent application Ser. No. 13/361,097, filed on Jan. 30, 2012 and entitled “Extension Activation for Related Documents,”assigned to the assignee of the present application, is hereby incorporated by reference in its entirety.

Related U.S. patent application Ser. No. 13/361,219 (now U.S. Pat. No. 8,843,822), filed on Jan. 30, 2012 and entitled “Intelligent Prioritization of Activated Extensions,”assigned to the assignee of the present application, is hereby incorporated by reference in its entirety.

BACKGROUND

A dynamic extension view may be provided. Software application extensions are computer-executable programming modules that may provide additional information displays and/or functionality to existing software applications. In conventional systems, these extensions can be difficult to manage via a traditional menu or multi-pane structure. In many situations, extension lists are presented to end-users in a rectangular pane wherein multiple contextual extensions may be shown at once. Since each extension needs its own rectangular pane to provide information or functionality to the user, showing multiple extensions can quickly clutter the host application's user interface.

SUMMARY

Application extension management may be provided. A plurality of related documents may be scanned to determine whether an activation trigger associated with an application extension has been triggered. In response to determining that the activation trigger associated with the application extension has been triggered, the application extension may be triggered and a user interface element associated with the application extension may be displayed according to a display rule.

DETAILED DESCRIPTION

Dynamic extension views may be provided. Software application extensions are computer-executable programming modules that may provide additional information displays and/or functionality to existing software applications. Such extensions may be distributed by the original developer of the software application and/or developed by companies and/or individuals not associated with the original developer of the software applications. For example, a third party may develop a mapping extension for use in an e-mail application. Such extensions may be activated within the user interface of the software application and/or may be displayed in new user interface panes (e.g., a separate window.)

Several mechanisms may be used to reduce extension clutter and optimize the end-user's experience. For example, extensions may not be expanded by default. Instead, a non-intrusive user interface (UI) element may be presented to the end-user to signal that extensions are available. The end-user may then click on that UI element to expand the extension pane. For another example, only one extension may be visible at a time. A UI element may list some and/or all of the available extensions, but only one extension may be selected at any given time. The end-user may freely switch from one extension to another and/or collapse/expand the extension pane at will. The UI element may comprise a conversation pane, which shows a stacked list of messages. Extensions may be displayed on each individual message and the user may expand/collapse/switch extension on any individual message.

FIG. 1is a block diagram of an operating environment100for providing a dynamic extension view comprising a user workstation110. User workstation110may comprise a document processing application115and may be operative to interact with a server120via a network125. Server120may be operative to execute a plurality of applications and/or services. Document processing application115may comprise, for example, a word processing, spreadsheet, presentation, web browser, e-mail and/or other application. User workstation110may be operative to output application data and/or user interfaces to a display device140, such as a monitor and/or touchscreen. User workstation110may comprise, for example, an electronic communications device such as a computer, laptop, cellular and/or IP phone, tablet, game console and/or other device. Document processing application115may be operative to communicate with server120and receive access to a plurality of extensions as configured in an extension repository150. Extension management application130may be operative to provide information technology (IT) administrators with a centralized interface for managing extension settings and access permissions on a per-user, user group, and/or organization wide basis.

FIG. 2Ais a block diagram of a user interface200for providing dynamic extension views. User interface200may comprise a conversation pane205comprising a plurality of messages210(A)-(G). User interface200may highlight a selected message, such as message210(B), and display additional data associated with the selected message in a message pane215. For example, message pane215may display user interface elements such as a message header220and a message text225. Message pane215may further comprise UI element230that may indicate that extensions associated with the message are available. For each of plurality of messages210(A)-(G), an entry point, such as entry point UI element240associated with message210(B), may be displayed that lets the end-user know that the message has activated extensions. If no extensions are activated for the message, the entry point may not be shown.

UI element230may list the name of an available extension and may also indicate the number of additional extensions that are available. For example, if only one extension is available, UI element230may read: “Show <extension name>.” If more than one extension is available, UI element230may read: “Show <extension name>+N more extensions.” When UI element230is clicked by a user, an extension pane250may be expanded as illustrated inFIG. 2B, below, and display the content of the extension that is explicitly named in the entry point. In at least some embodiments of the invention, selection of UI element230may result in display of a tabular interface245comprising a tab for each of the available extensions.

FIG. 2Bis a block diagram of user interface200illustrating an expanded extension pane250. UI element230may changes into “Hide extensions,” which, when selected, may collapse extension pane250. If more than one extension is activated and/or displayed, extension pane250may display a tabular interface that allows the end-user to switch between extensions. Consistent with embodiments of the invention, the tabular interface may be displayed instead of the “Show . . . ” entry point, a single extension +a “Show all” command that reveals additional extensions may be displayed, and/or extensions may be displayed in a separate UI element (e.g., another window) instead of showing them inline in message pane215.

FIG. 3is a flow chart setting forth the general stages involved in a method300consistent with an embodiment of the invention for providing application extension management. Method300may be implemented using a computing device400as described in more detail below with respect toFIG. 4. Ways to implement the stages of method300will be described in greater detail below. Method300may begin at starting block305and proceed to stage310where computing device400may display a list of a plurality of related documents in a user interface pane. For example, the plurality of related documents may be displayed in conversation pane205. The plurality of related documents may comprise, for example, a plurality of email messages, a plurality of web pages, a plurality of documents each associated with a common project, a plurality of word processing documents, a plurality of spreadsheet documents, a plurality of presentation documents, and/or a plurality of documents of differing types.

Method300may then advance to stage315where computing device400may determine whether at least one document of the plurality of related documents satisfies an activation trigger associated with at least one application extension. For example, a plurality of application extensions in extension repository150may be associated with document processing application115. The related documents may comprise, for example, a thread of email messages that may be scanned to determine whether content of at least one of those messages satisfies an activation trigger for one and/or more of the application extensions, such as where an address block triggers a map display application extension.

In response to determining that the at least one of the plurality of related documents satisfies the activation trigger associated with the at least one application extension, method300may advance to stage320where computing device400may display an indicator on the list of the plurality of related documents that the at least one document satisfies the activation trigger associated with the at least one application extension. For example, an entry point, such as entry point UI element240associated with message210(B), may be displayed that lets the end-user know that the message has available extensions.

Method300may then advance to stage325where computing device400may receive a selection of the at least one of the plurality of related documents. For example, a user may select one message of a thread of related messages in an email application.

Method300may then advance to stage330where computing device400may display at least a portion of the selected at least one document in a second user interface pane. For example, content associated with message210(B) may be displayed in message pane215.

Method300may then advance to stage335where computing device400may display a selectable user interface element proximate to the second user interface pane. For example, UI element230may be displayed in conversation pane215. The selectable user interface element may comprise, for example, a name of the at least one application extension, a count of a plurality of application extensions associated with the selected at least one document, and/or a tab interface comprising tabs for each of the plurality of application extensions associated with the selected at least one document.

Method300may then advance to stage340where computing device400may receive a selection of the selectable user interface element. For example, a user may select the name of an application extension in UI element230.

Method300may then advance to stage345where computing device400may display data associated with the at least one application extension. For example, a map display associated with a map extension may be displayed in a portion of the user interface associated with the at least one document, an expanded portion of the user interface associated with the at least one document, and/or a new user interface window. Method300may then end at stage350.

An embodiment consistent with the invention may comprise a system for providing application extension management. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to determine whether an activation trigger associated with an application extension has been triggered and, if so, activate the application extension and display a user interface element associated with the application extension according to a display rule. The display rule may be defined, for example, by a document management application, a user preference, metadata in the document, and/or the application extension's configuration.

Another embodiment consistent with the invention may comprise a system for providing application extension management. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to display a list of a plurality of related documents in a user interface pane, determine whether at least one document of the plurality of related documents satisfies an activation trigger associated with at least one application extension, and, in response to determining that the at least one of the plurality of related documents satisfies the activation trigger associated with the at least one application extension, display an indicator on the list of the plurality of related documents that the at least one document satisfies the activation trigger associated with the at least one application extension and determine whether the at least one document comprises an actively selected document. In response to determining that the at least one document comprises the actively selected document, the processing unit may be operative to display at least a portion of the actively selected document and a user interface element associated with the at least one application extension. The processing unit may be further operative to receive a selection of the user interface element associated with the at least one application extension and display data associated with the application extension. The data associated with the application extension may be displayed, for example, inline in the at least one document and/or in a new user interface window.

Yet another embodiment consistent with the invention may comprise a system for providing application extension management. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to display a list of a plurality of related documents in a user interface pane, determine whether at least one document of the plurality of related documents satisfies an activation trigger associated with at least one application extension, and, if so, display an indicator on the list of the plurality of related documents that the at least one document satisfies the activation trigger associated with the at least one application extension. The processing unit may be further operative to receive a selection of the at least one of the plurality of related documents, display at least a portion of the selected at least one document in a second user interface pane, display a selectable user interface element proximate to the second user interface pane, receive a selection of the selectable user interface element, and display data associated with the at least one application extension in at least one of the following: a portion of the user interface associated with the at least one document, an expanded portion of the user interface associated with the at least one document, and a new user interface window.

The embodiments and functionalities described herein may operate via a multitude of computing systems, including wired and wireless computing systems, mobile computing systems (e.g., mobile telephones, tablet or slate type computers, laptop computers, etc.). In addition, the embodiments and functionalities described herein may operate over distributed systems, where application functionality, memory, data storage and retrieval and various processing functions may be operated remotely from each other over a distributed computing network, such as the Internet or an intranet. User interfaces and information of various types may be displayed via on-board computing device displays or via remote display units associated with one or more computing devices. For example user interfaces and information of various types may be displayed and interacted with on a wall surface onto which user interfaces and information of various types are projected. Interaction with the multitude of computing systems with which embodiments of the invention may be practiced include, keystroke entry, touch screen entry, voice or other audio entry, gesture entry where an associated computing device is equipped with detection (e.g., camera) functionality for capturing and interpreting user gestures for controlling the functionality of the computing device, and the like.FIG. 4and the associated descriptions provide a discussion of a variety of operating environments in which embodiments of the invention may be practiced. However, the devices and systems illustrated and discussed with respect toFIG. 4are for purposes of example and illustration and are not limiting of a vast number of computing device configurations that may be utilized for practicing embodiments of the invention, described herein.

With reference toFIG. 4, a system consistent with an embodiment of the invention may include a computing device, such as computing device400. In a basic configuration, computing device400may include at least one processing unit402and a system memory404. Depending on the configuration and type of computing device, system memory404may comprise, but is not limited to, volatile (e.g., random access memory (RAM)), non-volatile (e.g., read-only memory (ROM)), flash memory, or any combination. System memory404may include operating system405, one or more programming modules406, and may include document processing application115. Operating system405, for example, may be suitable for controlling computing device400's operation. Furthermore, embodiments of the invention may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated inFIG. 4by those components within a dashed line408.

Computing device400may have additional features or functionality. For example, computing device400may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG. 4by a removable storage409and a non-removable storage410. Computing device400may also contain a communication connection416that may allow device400to communicate with other computing devices418, such as over a network in a distributed computing environment, for example, an intranet or the Internet. Communication connection416is one example of communication media.

The term computer readable media as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory404, removable storage409, and non-removable storage410are all computer storage media examples (i.e., memory storage.) Computer storage media may include, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by computing device400. Any such computer storage media may be part of device400. Computing device400may also have input device(s)412such as a keyboard, a mouse, a pen, a sound input device, a touch input device, a capture device, etc. A capture device may be operative to record a user and capture spoken words, motions and/or gestures made by the user, such as with a camera and/or microphone. The capture device may comprise any speech and/or motion detection device capable of detecting the speech and/or actions of the user. For example, the capture device may comprise a Microsoft® Kinect® motion capture device comprising a plurality of cameras and a plurality of microphones. Output device(s)414such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used.

As stated above, a number of program modules and data files may be stored in system memory404, including operating system405. While executing on processing unit402, programming modules406may perform processes and/or methods as described above. The aforementioned process is an example, and processing unit402may perform other processes. Other programming modules that may be used in accordance with embodiments of the present invention may include electronic mail and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc.

Embodiments of the invention may be practiced via a system-on-a-chip (SOC) where each and/or many of the components illustrated above may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionalities, all of which may be integrated (or “burned”) onto the chip substrate as a single integrated circuit. When operating via an SOC, the functionality, described herein, with respect to training and/or interacting with any component of operating environment100may operate via application-specific logic integrated with other components of the computing device/system on the single integrated circuit (chip).

All rights including copyrights in the code included herein are vested in and the property of the Applicants. The Applicants retain and reserve all rights in the code included herein, and grant permission to reproduce the material only in connection with reproduction of the granted patent and for no other purpose.