Existing browsers of structured relationship information typically allow navigation between individual items in a hierarchical way. For example, a parent/child relationship may exist between two items such as a folder and a file. A browser may then represent the folder with a visual “container” which is linked to a container that represents the file. Using this type of structure can allow the user to traverse the hierarchy defined by the parent/child relationship.
This type of structure, however, only displays individual items that are hierarchically-related. In addition, navigating between different objects that are not hierarchically-related generally requires the user to initiate a new navigation using a new root object, such as a folder.
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 to be used to limit the scope of the claimed subject matter.
In one or more embodiments, a cascading item and action browser enables items and associated actions to be displayed. In at least some embodiments, items are presented in a column and can be selected by a user. Responsive to selecting a particular item or items, actions that can be performed on or relative to a selected item or items can be presented in a second adjacent column. From here, users can select one or more actions that can be performed on items presented in the first-mentioned column. Results of the action or actions being performed, at least some of which can include additional items, can then be presented in a next-adjacent column. Navigation through the items and actions displayed in their respective columns can then continue in a cascaded fashion.
In at least some embodiments, individual columns that are displayed by the cascading item and action browser can be displayed in a common container or window. This provides for a degree of visual continuity between items and actions that are presented in the various columns.
The same numbers are used throughout the drawings to reference like features.
Overview
In one or more embodiments, a cascading item and action browser enables items and associated actions to be displayed. In at least some embodiments, items are presented in a column and can be selected by a user. Responsive to selecting a particular item or items, actions that can be performed on or relative to a selected item or items can be presented in a second adjacent column. From here, users can select one or more actions that can be performed on items presented in the first-mentioned column. Results of the action or actions being performed, at least some of which can include additional items, can then be presented in a next-adjacent column. Navigation through the items and actions displayed in their respective columns can then continue in a cascaded fashion.
In at least some embodiments, individual columns that are displayed by the cascading item and action browser can be displayed in a common container or window. This provides for a degree of visual continuity between items and actions that are presented in the various columns.
In the illustrated and described embodiments, any suitable type of item can be used and represented in a particular column. To this end, items can constitute a wide variety of different types of items. Items can include, by way of example and not limitation, files, resources (such as computer resources), webpages, software objects, and/or records to name just a few. Further, examples of items can include, by way of example and not limitation, binary files, machine code, programming Classes, Methods, Fields, Properties, & Events, source code files, projects, references; Application Lifecycle Management resources such as source control systems, work items, defects, bugs, tasks, teams, programmers, change-sets, change-lists; software architectural elements like layers, sequences, flowcharts (and sub-elements), components, deployments, use cases, design patterns; software metrics like complexity measures, lines of code count, recursion depth, degree of distribution, performance speed and size characteristics. Further examples of items can include, by way of example and not limitation, photos, photographic categories, photographers, photographic subjects; network components such as hubs, routers, repeaters, end-nodes; music files, genres, composers, artists, lyricists, movies, directories, actors, writers; social groups, individuals, religions, practitioners, leaders; diseases, infected groups, non-infected groups; geographies, countries, regions, cities, states, counties, neighborhoods, families, males, females, highways, freeways, train tracks, roads, airstrips; criminal organizations, enterprises, crimes, victims, law-enforcement personnel, lawyers, attorneys, judges; corporate boards, CEOs, directors, conglomerates, regulatory agencies, commissioners, government officials, Representatives, Senators, Executive staff, languages, grammars, words, letters, novels, scripts and the like.
In the discussion that follows, a section entitled “Operating Environment” describes but one operating environment that can be utilized to practice the principles described herein in accordance with one or more embodiments. Following this, a section entitled “Example Cascading Item and Action Browser” describes an example browser in accordance with one or more embodiments. Following this, a section entitled “Example Method” describes a method in accordance with one or more embodiments. A section entitled “Example System” describes an example system that can be utilized to implement one or more embodiments.
Operating Environment
Computing device 102 includes or otherwise has access to a database that includes information about items, their relationships to other items, and their relationships to actions that can be performed on or relative to the items. Any suitable database can be used. In at least some embodiments, the database is implemented as an XML database that uses XML to express relationships between various items and actions. The database can be a local database that is accessible to computer device 102. Alternately or additionally, the database can be located remotely and can be accessible via a network such as the Internet.
In operation, when the cascading item and action browser is launched, a user interface window is presented to the user and can include an initially-populated first column of items. In
If a user selects one or more items in column 126, another column can be provided and can display actions associated with the selected item or items. An example of such a column is shown at 128. In this manner, a user can select items and actions and can have a cascaded column structure rendered for them that provides a degree of visual continuity between items selected by the user, actions that can be performed on selected items, and the outcome of those actions.
Computing device 102 can be embodied as any suitable computing device such as, by way of example and not limitation, a desktop computer, a portable computer, a handheld computer such as a personal digital assistant (PDA), cell phone, and the like. One example of a computing device is shown and described below in relation to
Having discussed the general notion of an example operating environment in which various embodiments can operate, consider now a discussion of an example cascading item and action browser.
Example Cascading Item and Action Browser
Assume now that a user selects both of the listed projects, as indicated by the dashed line. In at least some embodiments, responsive to the user's selection, the browser renders a second column, such as that shown at 300 in
Having a number of actions listed in column 300 provides the user with an opportunity to select an action or actions and have that action or actions performed on items that were selected in column 200. In the present example, the user has selected two actions—“Contains” and “Produces”—as indicated by the dashed line. Responsive to this selection, the browser creates another column, such as column 400 in
So, at this point, a first column 200 has been presented and initially populated with items. From this column, the user made a selection and, responsively, the browser produced a second adjacent column 300 and populated the column with actions that were relevant to the user's selection. From the second column, the user was able to choose one or more actions that pertain to or are otherwise relevant to the items selected in column 200. Responsive to the user's choice of an action or actions in column 300, a fourth adjacent column 400 was produced and populated with the items that constituted the result or outcome of an action selected by the user from column 300.
Continuing now, assume the user makes an item selection in column 400 as indicated by the dashed line. In this case, the user has selected four classes. Responsive to the user's selection, a fifth adjacent column 500 is produced and populated with actions that pertain to the items selected by the user in column 400. An example of such a column is shown in
Assume now that the user selects the “Contained By” action to ascertain if the classes selected in column 400 are contained by any entities. Responsive to this selection, a sixth adjacent column is produced, such as that shown at 600 in
It should be noted that the above example illustrates how structured relationship information can be navigated in a non-hierarchical fashion. Specifically, in this case, classes are related to namespaces, files, projects and assemblies. These relationships are not necessarily hierarchical in nature.
Assume now, in
From here, a user can continue to make selections and have additional columns produced in a cascading fashion. In the illustrated and described embodiment, the cascading item and action browser enables columns of data to be traversed up and down relevant hierarchies, and also enables traversal using a variety of relationships that may not necessarily be hierarchical.
Example Method
Step 800 displays a column with one or more items. This step can be performed responsive to a user opening or otherwise launching a browser such as the cascading item and action browser described above. For example, when a browser is launched from within an application such as a photo application, the first-displayed column might be populated with photos or files associated with photos that the user has taken. Step 802 ascertains whether the user has selected one or more items. If the user has not selected one or more items, the method returns to step 800 as shown. If, on the other hand, the user has selected one or more items, step 804 displays a column with relevant actions listed. As noted above, the displayed actions are relevant to the user's selection in the previous column. So, in the photo application example mentioned just above, if a user selects a particular photo, the next-displayed column of actions might include such actions as: “share same tag” for returning items that share the same tag as a selected item, “taken same day” for returning items that were taken on the same day, “contain same subject” for returning items that contain the same subject as in a selected item, and the like.
Step 806 ascertains whether the user has selected an action or actions. If the user has not selected an action or actions, the method returns to step 804. If, on the other hand, the user has selected an action or actions, step 808 displays a column with relevant items. The step can be performed in any suitable way and using any suitable items. In the example just above, this step is performed by returning items that satisfy a relationship that is described by an action. Step 800 then returns to step 802. As such, the item-action selection process can continue in a repetitive fashion to build a cascaded column structure as described above.
Example System
Computing device 900 includes one or more processors or processing units 902, one or more memory and/or storage components 904, one or more input/output (I/O) devices 906, and a bus 908 that allows the various components and devices to communicate with one another. Bus 908 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. Bus 908 can include wired and/or wireless buses.
Memory/storage component 904 represents one or more computer storage media. Component 904 can include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). Component 904 can include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., a Flash memory drive, a removable hard drive, an optical disk, and so forth).
One or more input/output devices 906 allow a user to enter commands and information to computing device 900, and also allow information to be presented to the user and/or other components or devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, and so forth.
Various techniques may be described herein in the general context of software or program modules. Generally, software includes routines, programs, objects, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. An implementation of these modules and techniques may be stored on or transmitted across some form of computer readable media. Computer readable media can be any available medium or media that can be accessed by a computing device. By way of example, and not limitation, computer readable media may comprise “computer storage media”.
“Computer storage media” include 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 include, but are not limited to, RAM, ROM, 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 the desired information and which can be accessed by a computer.
Various embodiments provide a cascading item and action browser that enables items and associated actions to be displayed. In at least some embodiments, items are presented in a column and can be selected by a user. Responsive to selecting a particular item or items, actions that can be performed on or relative to a selected item or items can be presented in a second adjacent column. From here, users can select one or more actions that can be performed on items presented in the first-mentioned column. Results of the action or actions being performed, at least some of which can include additional items, can then be presented in a next-adjacent column. Navigation through the items and actions displayed in their respective columns can then continue in a cascaded fashion.
In at least some embodiments, individual columns that are displayed by the cascading item and action browser can be displayed in a common container or window. This provides for a degree of visual continuity between items and actions that are presented in the various columns.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.