With the technical progress of providing quality online web application experiences, information management and collaborative computing environments are becoming more and more utilized due in part to additional processing and other available resources. For example, employees can readily interact with data on enterprise servers using web applications. Remote users can use a web application to access a project management application. Web-based applications generally transact data with a server or servers according to individual posting operations to commit data to a server as the user interacts with the application.
Traditional interaction paradigms used in web-based applications are commonly triggered by single click operations followed by a sometimes expensive page refresh. For example, a user can use a menu of a spreadsheet application and database application to iteratively manipulate aspects of a multidimensional column or row. Unfortunately, multiple user iterations and inputs, and/or refresh operations, may be required to produce some user change, such as changing some aspect of a multidimensional column. Such user reiterations are required due in part to inadequate header functionality to provide a quality web-based experience. Traditional headers have limited interactive features and often require the user to navigate away from a current page or selection and may also require one or more potentially costly web calls. Incurring the cost of the use of web calls and refresh operations can be an inefficient and costly process.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
Embodiments provide integrated control features that can be used to effectively manage and configure data structure information. In an embodiment, a system includes a web-based application that includes an integrated header control interface having a number of dynamic control sections or zones. In one embodiment, a method provides an integrated header control interface that includes dynamic control sections that can be used to select, drag and/or drop, resize, sort data, filter data, and/or manage other aspects of a column-based and/or row-based data structure. Other embodiments are included and available.
These and other features and advantages 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 explanatory only and are not restrictive of the invention as claimed.
As shown in
With continuing reference to
The reorder component 112 of an embodiment can be used to receive reorder control inputs associated with user interaction with a provided integrated control interface to reorder or move a portion of a data structure. For example, a user can use a reorder section or portion of a web-based control interface that is integrated into a header to reorder a column of a web-based spreadsheet application, web-based database application, or other columnar data structure.
The resize component 114 of an embodiment can be used to receive resize control inputs associated with user interaction with a provided integrated control interface to resize a portion a data structure. Continuing the preceding example, a user can use a resize section or portion of the web-based control interface that is also integrated into the header to reorder a column of a web-based spreadsheet application, web-based database application, or other columnar data structure.
The select-all component 116 of an embodiment can be used to receive select-all control inputs associated with user interaction with a provided integrated control interface to select all content or all values of a portion of a data structure. Still continuing the preceding example, a user can use a select-all section or portion of the web-based control interface that is also integrated into the header to select all of the content of a column of a web-based spreadsheet application, web-based database application, or other columnar data structure.
The manager component 118 of an embodiment can be used to receive management and configuration control inputs associated with user interaction with a provided integrated control interface to manage and configure a portion of a data structure. Continuing further with the preceding example, a user can use a manage and configure section or portion of the web-based control interface that is also integrated into the header to manage other aspects of a column of a web-based spreadsheet application, web-based database application, or other columnar data structure. In one embodiment, manager component 118 can be used to hide columns, configure columns, sort columns, filter columns, and/or perform other column-based operations, but is not so limited.
In one embodiment, the environment 100 can include web-based and other application functionality including using hypertext markup language (HTML) features, extensible hypertext markup language (XHTML), cascading style sheet (CSS) features, document object model (DOM) features, extensible markup language (XML) features, ECMAScript (e.g., JavaScript, ActionScript, JScript, etc.) and/or other features to provide a web-based integrated header control interface experience. For example, the serving infrastructure 104 can include a number of networked servers that provide various services and/or features (e.g., MICROSOFT PROJECT SERVER features, MICROSOFT SHAREPOINT FOUNDATION features, MICROSOFT SHAREPOINT SERVER features, etc.) used to provide information management functionalities that include providing one or more integrated control features.
While a certain number and types of components are described above, it will be appreciated that other numbers and types can be included according to various embodiments. Accordingly, component functionality can be further divided and/or combined with other component functionalities according to desired implementations. For example, combined resources of one or more server components and one or more client components can be used to provide certain header control features.
In an embodiment, components of a processor-based serving system can be used to dynamically provide control features of each control header based in part on user input received from a client computing device or system. In another embodiment, components of a processor-based serving system can be used in conjunction with components of a client computing device to dynamically provide control features of each control header. As shown in the example web-based application 200 of
In one embodiment, control section 220 operates to select all content of column 214, control sections 222 and 223 operate to resize column 214, control section 224 operates to relocate column 214, and/or control section 226 operates to manage and/or configure other aspects of column 214. It will be appreciated that a client and one or more servers can be used to provide control section functionality. For example, use (e.g., tap, click, etc.) of control section 220, control section 222, and/or control section 224 can be performed without or absent requiring web-service calls to support each associated feature. In an alternative embodiment, activation of control section 226 includes a web-service call operation to populate parameters of filter controls.
In one embodiment, each control header can be is represented using an HTML TH element. The TH element can be tagged with metadata including a key of a grid column represented by the TH element. The TH element contains a number of DIV elements, wherein each DIV element can correspond to a control section of a header control interface. Each section can include custom properties that provide metadata about which action (if any) the section enables, allowing for quick access to the corresponding DOM element. Correspondingly, event handling and rendering are bound together to thereby make the task of only enabling certain actions on a given column header interface and managing interactions with the column header interface straightforward (e.g., hover, one-click, etc.) and robust.
For example, the following HTML can be used to generate a control header for “Project Name” columns when a corresponding column is “active”. Correspondingly, the example HTML can be used to provide a control header having a dynamic control interface based in part on control inputs from an input device or user interface (e.g., mouse or finger used to hover a cursor display over a column or control header) as follows:
As shown for the exemplary control header 204 of
The Section Image and Cursor image columns depict a number of exemplary header and cursor display states for a corresponding section and/or action. For example, section and cursor images can be provided based in part on a hover operation over a corresponding header control and/or column. Tool tips can be provided after a user has hovered over a control portion for some defined period of time.
In an embodiment, an integrated header control interface includes dynamic control sections including: a move control section that operates to move a select column from a first columnar position to a different columnar position; a resize control section that operates to resize an adjacent column to the left of a select column; an eyebrow control section that operates to select all content associated with a select column; a menu control section operates to expand a column header menu of a select column; a resize right control section that operates to resize a select column; a sort section that operates to identify a sort direction or order; and a filter state section that operates to identify a filter application or operation.
As shown in
Control input to the highlighted resize control section causes the header to the left of the select column header to be highlighted, identifying that the adjacent column will be resized using the resize control section. Control input to the highlighted eyebrow section selects an entire column. Control input to the highlighted menu control section operates to expand a column header menu that includes further options, such as filter, sort, and other columnar and/or data management operations.
Control input to the highlighted resize right control section causes the column to be resized to the right and highlights an adjacent header's resize right control section. The highlighted sort section identifies that a particular column has been sorted including the sort direction or order. The sort section can be hidden if no filter is applied. In one embodiment, a sort icon of a sort section can be toggled to change a sort order. The highlighted filter state section indicates that a filter or filter operation has been applied for a particular column. The filter state section can be hidden if no filter is applied. In one embodiment, each control section can be dynamically displayed based on where an input device is located with respect to a particular column and/or header control.
In one embodiment, a TH element can be used in part to provide control header features as part of a web-based application environment accessed using a web browser or component. For example, a TH element can be built using javascript as follows:
When a user interacts with an integrated header interface (e.g., move/click operations, etc.), a target element of the interaction or action is provided by the browser component. The target element can be used as an input to a number of interaction handling functions (see actions of
Given the target element, the following code can be used to determine the column header action the user intended by a click/tap operation. In one embodiment, the InitiateAction function contains the detailed implementation of each action. For example, in the case of a resize control section, the control feature includes setting state and updating the width of the given column on future input (e.g., mouse moves) until a user releases focus (e.g., mouse up). Note that property “co1Action” of one embodiment corresponds to a value of the Action ID column of
As one example, if a user continues hovering over a column header, the column header can determine whether to display a dropdown arrow as part of providing a dynamic control section using a CanExpandMenu result.
At 302, a user uses a web computing interface to access and use features of a web-based application. For example, a user can use a browser to access an information management system to work on aspects of an ongoing project. At 304, an integrated control interface is provided as part of providing user interaction features of the web-based application. In an embodiment, the process 300 at 304 includes using a server component to process client requests including providing control headers having integrated control features for each column of an information management file. The integrated control features can be dynamically presented and used to provide a rich interaction experience while using a web-based application.
At 306, the process 300 provides select control features based in part on interactive inputs to the integrated control interface. In an embodiment, the process at 304 provides an integrated header control interface that includes integrated header control features that respond to user inputs including: sort features including a sort indicator for a sorted column, filter features including a filter indicator for a filtered column, context menu option features, resize features, select column features, move or reorder column features, column definition features, and/or other header control features. While a certain number and order of operations is described for the exemplary flow of
As shown by the example of
In various embodiments components of at least one client computer operate in conjunction with one or more server components to provide header controls that include integrated header control interfaces. For example, a dedicated server can be used to provide integrated header control features to a client after accessing a web-based application. In one embodiment, once accessed, header control parameters can be stored locally and/or remotely.
In addition to computing systems, devices, etc., various embodiments can be implemented as a computer process (e.g., a method), an article of manufacture, such as a computer program product or computer readable media, computer readable storage medium, and/or as part of various communication architectures. An exemplary computer program product can include computer storage media that includes useable control and/or communication instructions.
The embodiments and examples described herein are not intended to be limiting and other embodiments are available. Moreover, the components described above can be implemented as part of networked, distributed, and/or other computer-implemented environment. The components can communicate via a wired, wireless, and/or a combination of communication networks. Network components and/or couplings between components of can include any of a type, number, and/or combination of networks and the corresponding network components include, but are not limited to, wide area networks (WANs), local area networks (LANs), metropolitan area networks (MANs), proprietary networks, backend networks, etc.
Client computing devices/systems and servers can be any type and/or combination of processor-based devices or systems. Additionally, server functionality can include many components and include other servers. Components of the computing environments described in the singular tense may include multiple instances of such components. While certain embodiments include software implementations, they are not so limited and encompass hardware, or mixed hardware/software solutions. Other embodiments and configurations are available.
Referring now to
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Referring now to
The mass storage device 14 is connected to the CPU 8 through a mass storage controller (not shown) connected to the bus 10. The mass storage device 14 and its associated computer-readable media provide non-volatile storage for the computer 2. 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 or utilized by the computer 2.
By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, 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. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state 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 the desired information and which can be accessed by the computer 2.
According to various embodiments of the invention, the computer 2 may operate in a networked environment using logical connections to remote computers through a network 4, such as a local network, the Internet, etc. for example. The computer 2 may connect to the network 4 through a network interface unit 16 connected to the bus 10. It should be appreciated that the network interface unit 16 may also be utilized to connect to other types of networks and remote computing systems. The computer 2 may also include an input/output controller 22 for receiving and processing input from a number of other devices, including a keyboard, mouse, etc. (not shown). Similarly, an input/output controller 22 may provide output to a display screen, 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 device 14 and RAM 18 of the computer 2, including an operating system 24 suitable for controlling the operation of a networked personal computer, such as the WINDOWS operating systems from MICROSOFT CORPORATION of Redmond, Wash. The mass storage device 14 and RAM 18 may also store one or more program modules. In particular, the mass storage device 14 and the RAM 18 may store application programs, such as word processing, spreadsheet, drawing, e-mail, and other applications and/or program modules, etc.
It should be appreciated that various embodiments of the present invention can be 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, logical operations including related algorithms can be 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, firmware, 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.
Although the invention has been described in connection with various exemplary embodiments, those of ordinary skill in the art will understand that many modifications can be made thereto within the scope of the claims that follow. Accordingly, it is not intended that the scope of the invention in any way be limited by the above description, but instead be determined entirely by reference to the claims that follow.