WO2006036290A1 - File system shell - Google Patents
File system shell Download PDFInfo
- Publication number
- WO2006036290A1 WO2006036290A1 PCT/US2005/027258 US2005027258W WO2006036290A1 WO 2006036290 A1 WO2006036290 A1 WO 2006036290A1 US 2005027258 W US2005027258 W US 2005027258W WO 2006036290 A1 WO2006036290 A1 WO 2006036290A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- user
- items
- list
- filter
- pane
- Prior art date
Links
- 230000007717 exclusion Effects 0.000 claims description 48
- 238000003860 storage Methods 0.000 claims description 45
- 230000003068 static effect Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 32
- 230000000694 effects Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 abstract description 55
- 238000000034 method Methods 0.000 description 308
- 238000010586 diagram Methods 0.000 description 155
- 230000000875 corresponding effect Effects 0.000 description 136
- 230000008569 process Effects 0.000 description 84
- 230000008859 change Effects 0.000 description 45
- 230000015654 memory Effects 0.000 description 41
- 230000002452 interceptive effect Effects 0.000 description 37
- 230000009471 action Effects 0.000 description 35
- 230000004044 response Effects 0.000 description 34
- 238000001914 filtration Methods 0.000 description 33
- 230000007246 mechanism Effects 0.000 description 23
- 230000006399 behavior Effects 0.000 description 22
- 230000003993 interaction Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 18
- 230000004048 modification Effects 0.000 description 18
- 238000012986 modification Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000000007 visual effect Effects 0.000 description 16
- 230000008901 benefit Effects 0.000 description 13
- 230000000670 limiting effect Effects 0.000 description 12
- 230000008520 organization Effects 0.000 description 12
- 239000002609 medium Substances 0.000 description 11
- 238000003825 pressing Methods 0.000 description 11
- 238000013459 approach Methods 0.000 description 9
- 238000003780 insertion Methods 0.000 description 9
- 230000037431 insertion Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 230000004069 differentiation Effects 0.000 description 8
- 230000008676 import Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 7
- 241001466804 Carnivora Species 0.000 description 6
- 230000001944 accentuation Effects 0.000 description 6
- 230000002730 additional effect Effects 0.000 description 6
- 241001553178 Arachis glabrata Species 0.000 description 5
- 241000282323 Felidae Species 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 235000020232 peanut Nutrition 0.000 description 5
- 235000017060 Arachis glabrata Nutrition 0.000 description 4
- 235000010777 Arachis hypogaea Nutrition 0.000 description 4
- 235000018262 Arachis monticola Nutrition 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005553 drilling Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 241000282472 Canis lupus familiaris Species 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 3
- 230000001351 cycling effect Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000010187 selection method Methods 0.000 description 3
- 241000124008 Mammalia Species 0.000 description 2
- 241000282322 Panthera Species 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 235000009508 confectionery Nutrition 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000011435 rock Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 241000287219 Serinus canaria Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 239000005441 aurora Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- XMQFTWRPUQYINF-UHFFFAOYSA-N bensulfuron-methyl Chemical compound COC(=O)C1=CC=CC=C1CS(=O)(=O)NC(=O)NC1=NC(OC)=CC(OC)=N1 XMQFTWRPUQYINF-UHFFFAOYSA-N 0.000 description 1
- 235000012813 breadcrumbs Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 210000002683 foot Anatomy 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 206010025135 lupus erythematosus Diseases 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 239000006163 transport media Substances 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 150000003641 trioses Chemical class 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
Definitions
- the present invention relates to file systems, and more particularly, to a file system shell.
- a user may have a large number of files which are difficult to organize. Some users implement a rigid sense of placement for the files, and thus create strict hierarchies for them. The management of such files become increasingly complex and difficult as the number of available documents grows, making search and retrieval also difficult. This problem is further exacerbated when additional files are utilized from other locations, such as shared files, etc.
- Users also have to deal with files being in different locations, such as on different devices, on other PCs, or online. For example, users can select to listen to their music- on the computer (as may be accessible to a music program) or can go online and listen to music from Web sites, however there is a strict division between these two sources. Music coming from different locations is organized differently, and not kept in the same fashion or place. As another example, files stored on a corporate network may inherently be separated from files a user has on a current machine.
- Sharing and publishing files is often hard to do, and it may often be even more difficult to retrieve such a file from someone who makes it available. Users typically have to memorize or map the various sites and names that they need for finding files on a network.
- Name spaces may vary, which can cause confusion to the user as to what is "correct.” This is particularly true on a network where there are different naming conventions, limitations, and so on. For example, certain operating systems may require short names with no spaces in order for them to be visible.
- Programs also often save files to their own directory or other name spaces, which can make it difficult for users to find their way back to the files. Programs often have default directories and places they save documents. A user often has to search through their hard disk and make guesses about where a file is stored.
- a conventional graphical interface control As users navigate within a file system on a computer, a conventional graphical interface control, referred to as an address bar, shows the users where they are in the file system hierarchy.
- the conventional address bar shows the current location in terms of the file system's hierarchical structure of folders, subfolders, and files. Altering the user's location displayed in the conventional address bar is typically performed in one of two manners. The first is to manually edit the address in the address bar. Manually editing the address in the address bar permits a user to relocate to any number of locations in the file system hierarchy, but requires the user to have specific information regarding the organization of the file system on the computer, i.e., a specific file system location.
- the second method involves using external navigation tools which, when manipulated, update the address bar to reflect the new address or location. While bypassing the manual edit of the address in the address bar, manipulating external navigation tools still requires the user to have specific information concerning the organization of the file system and traverse the hierarchical structure.
- conventional address bars cannot reference files or data stored among multiple file system locations, such as folders or drives, due to a one-to-one relationship between the address in the address bar and a specific location in the file system hierarchy.
- the prior art lacks an address bar that allows users to specify addresses that display files stored among multiple file system locations or having any of various properties.
- the prior art further lacks an address bar that also permits users to easily modify the address of the address bar without manually editing the address, or requiring specific knowledge concerning the organization of the underlying file system.
- an address bar that presents alternative selections of files to the user from which the user may select to navigate to those selections of files. Such an address bar could also selectively present a conventional address bar interface to the user enabling the user to interact with the address bar according to previous experience according to user preferences.
- Microsoft Corporation's WINDOWS® XP operating system includes an image browser for use in the My Pictures folder.
- the My Pictures folder is endowed with special features which enable users to view pictures as photos, not just as document icons.
- My Picture's image browsing features include the ability to view thumbnail-size and large versions of photos, rotate photos that are sideways, and create a slide show. A user can also view a photo's details, such as its dimensions, the date and time it was taken, and the name of the camera that took it.
- the preview control area in the My Picture's folder contains an enlarged preview image of a user-selected image, iterator buttons to assist a user in iterating through a series of pictures and controls for rotating pictures in a clockwise or counterclockwise direction.
- a system and method utilizing virtual folders is provided.
- the virtual folders expose regular files and folders (also known as directories) to users in different views based on their metadata instead of the actual physical underlying file system structure on the disk.
- the system is able to take a property that is stored in the database and represent it as a container that is like a folder. Since users are already familiar with working with folders, by presenting the virtual folders in a similar manner, users can adapt to the new system more quickly.
- the virtual folders are provided according to a method that is utilized in a computer system having a display and a memory for storing the items.
- a metadata property is selected.
- the system searches for items that have the selected metadata property, and a virtual folder display object is provided that represents the collection of items that have the metadata property.
- the system includes a folder processor that obtains queries from a user and a relational database for storing information about the items.
- the folder processor first obtains a query from a user and passes the query to the relational database.
- the relational database provides results back to the folder processor, and based on the results from the relational database, the folder processor provides the results to the user as virtual folders.
- the results that are provided back to the folder processor include database rows and columns. The database rows and columns are converted by the folder processor into an enumerator structure, which is then used to populate the display with the resulting virtual folders.
- users are able to work with the virtual folders through direct manipulation.
- the mechanisms that are provided for manipulating the virtual folders are similar to those that are currently used for manipulating conventional physical folders (e.g., clicking and dragging, copying, pasting, etc.).
- the method for performing the direct manipulation of the virtual folders is provided in a computer system having a display and a memory for storing the items.
- groups of items are represented as virtual folders.
- defined actions are provided that can be performed for direct manipulation of the virtual folders, wherein when a defined action is performed, the virtual folder is manipulated as directed by the defined action.
- An example of a defined action would be clicking and dragging a virtual folder.
- the action of clicking and dragging a first virtual folder to a second virtual folder performs the function of copying the items from the first virtual folder to the second virtual folder.
- the copying of items to a virtual folder may involve adding or otherwise altering selected metadata properties that are associated with the items.
- filters are provided for manipulating the virtual folders.
- the filters are essentially tools for narrowing down a set of items.
- the filters are dynamically generated based on the properties of the separate items. For example, for a set of items, the filter mechanism may review the properties, and if the items generally have "authors" as a property, the filter can provide a list of the authors. Then by clicking on a particular author, the items that don't have the author disappear. This allows the user to narrow the contents.
- a method for filtering items is provided in a computer system having a display and a memory for storing items with metadata properties.
- Display objects are provided on the display that each represent one or more items.
- the metadata properties of the items that are represented by the display objects are evaluated.
- a filter term is provided on the display that corresponds to a metadata property that is shared by a plurality of the items, wherein the selection of the filter term causes the items that are represented on the display to be reduced to those items that share the specified metadata property.
- a plurality of items is represented on the display, and a filter term is dynamically generated based on the metadata properties of the items.
- the filter term When the filter term is selected, it reduces the items that are represented on the display to those that have the metadata property that corresponds to the filter term.
- a plurality of items is represented on the display, and a filter area is provided in which a user can select a filter term by selecting a checkbox control.
- a checkbox control is selected by the user, the items that are represented on the display are reduced to those that contain the filter term.
- additional items may be filtered as each new character is added to the filter term.
- a graphical user interface including a plurality of display objects, each display object representing one or more items and a property control corresponding to a property that is shared by a plurality of the items. Selection of the property control causes a list of filter terms to be presented on the display.
- the filter terms may be presented in a drop down menu in which each filter has a corresponding checkbox control.
- selection of a first check box control may cause the items that are represented on the display to only include items that satisfy the filter term corresponding to the first check box control.
- Selection of a second check box control when the first check box control is currently selected causes the items that are represented on the display to include items that satisfy either the first respective filter term corresponding to the first check box control or a second respective filter term corresponding to the second check box control.
- the filter terms cause a logical OR operation to be performed on the items in the view.
- the second check box control may be deselected causing the items represented on the display to include only items that satisfy at least one respective filter term corresponding to a currently selected check box control.
- selection of a property control may cause a list of arrangement commands to be presented on the display separated from the list of filter terms.
- the selection of an arrangement command may cause the items to be rearranged on the display.
- Illustrative arrangement commands including sorting, stacking or group by the property associated with the selected property control.
- trie property control may be a split button. According to this aspect, selection of a first button portion may cause the list of filter terms to be presented on the display and selection of the second button portion may cause the display objects to be sorted by the property.
- a scope is utilized in a method for displaying items in a computer system having a display.
- the method involves defining a scope of the physical memory locations from which items are to be drawn, the scope comprising the present computer memory and at least one other physical location.
- a query is received, in response to the query items are drawn from the physical locations as defined in the scope, and the items that are drawn from the query are then presented in a view on the display.
- the at least one other physical location may be another computer, a location on a network, or an external storage device.
- the view on the display can be switched to a physical folder view which indicates the physical locations -where the items are physically stored.
- non-file items may be represented in the virtual folders.
- files that are stored in memory are located in a physical store.
- the virtual folders can be made to include items that are not currently represented in the physical store. Examples of non-file items are e-mails, and contacts.
- a method for presenting non-file items is implemented in a computer system with a display and a memory for storing items. The method includes providing a database that allows both non-file items and file items to be searched by a query. Once a query is received, both non-file items and file items that match the query are drawn, and the items that match the query are then presented on the display.
- a relational database is provided that includes selected information about file items, and which may hold certain non-file items in their entireties.
- an address bar for selecting content stored in a physical or virtual location.
- the address bar may comprise a plurality of segments. Each segment may correspond to a filter or selection criteria for selecting stored content.
- a segment may include more than one filter or selection criteria, where the content corresponding to each of the filters or selection criteria in a segment may be represented.
- a logical "or" operation referred to as "OR” filtering occurs where content corresponding to separate selection criteria from two or more different locations, whether virtual or physical, can be accessed.
- Each segment is an interactive segment that can respond to user interactions to modify the address of the address bar. Selecting a segment in the address bar causes those segments subsequent to the selected segment to be removed from the address bar.
- selecting a child control associated with a segment in the address bar causes a list of selectable child filters or selection criteria to be displayed to the user.
- the child filters or selection criteria are children of the filter(s) or selection criteria included with the segment. Selecting one of trie child filters or selection criteria from the list of child filters or selection criteria causes the current (child) filter or selection criteria of the segment displayed in the address bar, if different from the selected child filter or selection criteria, to be replaced with the selected child filter or selection criteria. Additionally, those segments subsequent to the segment of the replaced child filter or selection criteria are removed from the address bar.
- a shell browser which includes a window and an edit control.
- the window displays a group of items and also displays metadata values associated with one or more of tfcie displayed items.
- the edit control permits user modification of at least a portion of the metadata values displayed in the window.
- a graphical user interface is embodied on a computer-readable medium and is executable on a computer.
- the graphical user interface includes a first screen area which displays a set of items in a shell browser and a second screen area which displays metadata associated with one or more of the displayed items.
- the graphical user interface also presents the user with means within the shell browser for modifying the displayed metadata.
- computer-implemented methods for enabling a user to modify metadata ⁇ vithin a shell browser.
- One such method includes displaying a plurality of items, receiving a first input from the user representing a selection of at least one displayed item, displaying metadata associated with the selected item(s) and providing an edit control for user modification of the displayed metadata.
- Another such method includes displaying a welcome pane and metadata associated with the welcome pane and providing an edit control for user modification of the displayed metadata.
- a data structure containing metadata associated with one or more items is displayed in. a shell browser.
- the data structure which is stored on one or more computer-reada.ble media, includes a field containing user modifiable metadata associated with the one or more displayed items, and the user modifiable metadata contained in the data structure is also displayed in the shell browser.
- a shell browser which includes a default previewer and an extensibility mechanism.
- the default previewer provides a standard level of functionality for multiple item types.
- the extensibility mechanism enables functionality beyond the standard level provided by the default previewer for one or more of the item types.
- a shell browser is provided which includes a first previewer and a second previewer.
- the first previewer provides a standard level of functionality for multiple item types
- the second previewer provides an alternative or extended level of functionality for one or more of the multiple item types.
- the shell browser is configured to selectively deploy either the first previewer or trie second previewer for the one or more item types.
- a graphical user interface for a shell browser which supports multiple item types is provided.
- the graphical user interface includes a first screen area for displaying a set of items in the shell bro ⁇ vser and means for selecting a previewer for the displayed items from a plurality of available previewers.
- a computer-implemented method for selecting a previewer in a shell browser which supports multiple item types.
- the method includes providing a plurality of previewers in the shell browser for a particular item type and selecting one of the previewers for the particular item type. The method then associates the selected previewer with the particular item type.
- a computer-implemented method for enabling the use of third party previewers in a shell browser which, supports multiple item types.
- the method includes providing a shell browser having a default previewer for the multiple item types and providing an extensibility mechanism which enables a third party to develop an alternative previewer for at least one of the multiple item types.
- a data structure which contains information indicative of a plurality of previewers in a shell browser.
- the data structure which is stored on one or more computer-readable media, includes a first field containing information indicative of a default previewer which supports multiple item types.
- a second field contains information indicative of an alternative previewer for a first item type, and a third field contains information indicative of whether to invoke ttie default previewer or the alternative previewer when items of the first item type are displayed in the shell browser.
- different types of items are grouped into libraries for which a similar set of basic UI features are provided.
- a similar set of basic UI features is provided for different types of libraries, such as a document library, a photo library, and a music library.
- This set of basic UI features may include features such as filtering, creating new categories, editing the metadata of the items, altering the pivots, etc.
- the similar set of basic UI features for the libraries allows a user to process and organize different types of items using attributes and features they are already familiar with.
- Another aspect of the invention provides a method of specifying a scope of items on a computer system or network via a graphical user interface dual-component control by displaying a first component including a tree-like display of a plurality of hierarchically arranged items, where each item can be explicitly selected by a user for inclusion and/or exclusion from the scope.
- the GUI also displays a second component including a basket, or list, identifying the items explicitly included in and/or explicitly excluded from the scope.
- the control changes a state of the specific item from a previous state to a new state, and changes a state of each descendant of the specific item to a new implicit state based on the new state of the specific item.
- a state of each item of the plurality of hierarchically arranged items may indicate any of an unselected state, an explicitly included state, an implicitly included state, an explicitly excluded state, and an implicitly excluded state.
- the list of items may identify an explicitly included item corresponding to each explicitly excluded item.
- one or more computer readable media store computer executable instructions which, when executed, cause a computer system to provide on a video display a graphical user interface control for specifying a user-defined scope.
- the GUI control exhibits certain behavior, including displaying a plurality of hierarchically arranged items, e.g., in an expandable/collapsible tree-like manner, where each item of the plurality of hierarchically arranged items can be explicitly selected by a user for inclusion and/or exclusion from the scope.
- the control implicitly selects all descendants of the explicitly selected item for inclusion in or exclusion from the scope, respectively.
- the control also displays, separately from the plurality of hierarchically arranged items, a first list of items explicitly included in the scope and a second list of items explicitly excluded from the scope, where each item in the second list corresponds to an item in the first list.
- the control when the user explicitly selects an unselected or implicitly excluded item, the control changes a state of the explicitly selected item to be explicitly included in the scope, and changes a state of each descendant of the explicitly selected item to be implicitly included in the scope.
- the control changes the state of the explicitly selected item to be explicitly excluded from the scope, and changes the state of each descendant of the explicitly selected item to be implicitly excluded from the scope.
- control may present a first inclusion indicator corresponding to each displayed explicitly included item, a second inclusion indicator, less prominent than each first inclusion indicator, corresponding to each displayed implicitly included item, and an exclusion indicator corresponding to each displayed explicitly excluded item.
- the tool may include a "basket" control that receives objects to be included in a collection.
- the basket control also referred to as a list pane, may, for example, include interfaces for receiving and displaying the data objects that are selected by a user to be included in a collection.
- a user may thus build a collection of data objects simply by providing the data objects to the basket control.
- a collection creation component then provides a collection with one or more data items corresponding to the objects submitted to the basket control.
- a collection can be compiled with any desired data objects, including discrete data (such as text), data files, pointers to data files, queries or exclusions for identifying data files based upon designated criteria, both virtual and physical folders containing one or more data objects, and even other collections of data objects.
- the basket control may be employed by itself to make collections, or it may be hosted by another software object.
- various implementations of the invention may additionally include a "listmaker" control that conveniently contains both the basket control and one or more user interfaces that a user can employ to provide data objects to the basket control.
- the listmaker control may include a viewing graphical user interface (such as a file browser) for viewing data objects and a navigation toolbar for navigating the viewing graphical user interface.
- the listmaker control may then be hosted as desired by software developers in a variety of software applications.
- One or more aspects of the invention may be directed to computer systems, stored software, and/or methods for creating a static list of data objects stored on a computer system.
- aspects of the invention may display on a computer display device a graphical user interface (GUI) frame, e.g., an explorer frame, comprising a primary view pane and a list pane.
- GUI graphical user interface
- the primary view pane displays data objects stored on the computer system in a first predefined location, e.g., a virtual or physical folder identified by a user, and the list pane displays information corresponding to items in a static list associated with the list pane.
- Each item in the static list corresponds to a data object, and includes information pertaining to the data object, e.g., a pointer to the data object, the item's order in the list, annotations regarding the item, etc.
- a user may provide input identifying a first data object displayed in the primary view pane to be added to the static list such that an item corresponding to the first data object is added to the static list.
- Information about the first item e.g., icon, name, annotations, etc., may be displayed in the list pane.
- the user can specify a second predefined location, causing the primary view pane to display data objects stored in the second predefined location without changing the static list with which the list pane is associated.
- each static list may have a persistence model where the contents of the static list are discarded unless the user has expressed an intent, explicit or implied, to save the static list. Implied intent can be indicated by the user renaming the static list from a default name to a user-defined name.
- aspects of the present invention provide a system and method in which the user is given a preview representation of a file that is about to be created.
- the preview may appear as part of a save file dialog, and may show an indicia corresponding to the new to-be- created file, and may show how the new file may be visually represented in the GUI after the save is performed.
- the preview may exhibit certain behaviors, such as having a unique appearance, always appearing as a first element, to be easily noticed by the user. Users may also interact with the preview to manage the file and/or edit its properties even before the file is saved.
- the preview may also intelligently guide the user through the save process by, for example, refusing to allow the user to save the file to an invalid location, or automatically populating metadata fields based on user navigation through the GUI.
- Another aspect of the present invention may provides a system and method in which the user is given an improved file browsing interface by specializing an explorer or shell browser view.
- the browsing interface may vary depending on the contents to be displayed.
- the browsing interface may customize the user interface options presented in the browser panel in accordance with the contents to be displayed.
- the browser may rearrange, remove, and/or add displayed properties in accordance with the contents.
- Other aspects of the browser's features, appearance, and/or organization may be customized based on the contents.
- One or more templates may be provided and/or created to provide a predetermined set of criteria for generating a browser panel.
- Software interfaces may be provided to allow development of additional browser panels by users and/or applications. User interaction with such a browser may cause further alterations in the browser's appearance and/or functionality.
- a shell browser with an integrated page space control provides navigational tools for storage systems of computers, their operating systems, networks, and the like.
- navigation tools and/or their corresponding user interfaces and displays may be provided in multiple different windows, application programs, and the like.
- navigation tools or and/or their corresponding user interfaces and display panel(s) may include windows or panes that include "links" to various different files, lists, folders, pages, and/or other storage elements.
- navigational tools in accordance with at least some aspects of this invention may be customized for different application programs, for portions of applications programs, for portions of operating systems, by different users, and the like (e.g., by independent software providers from those providing the computer operating system) to be better suited or targeted for navigating information relating to that set of files, etc., and/or to that user.
- the navigational tools in accordance with at least some examples of this invention also may provide useful ways of organizing and/or displaying information regarding the user's files, e.g., by hierarchical properties, lists, auto lists, folders, etc.
- Systems and methods according to at least some examples of the invention also may make it easy for users to assign properties to files, change assigned properties associated with files, and the like, optionally with the use of hierarchical properties. Additionally, in accordance with at least some examples of the invention, navigational tools may be provided for searching, locating, and viewing information relating to stored or accessible files, e.g., in a query-based file and/or retrieval system.
- Additional aspects of the invention relate to computer-readable media including computer-executable instructions stored thereon for performing various methods and/or operating various systems, including systems and methods having navigational tools for organizing, searching, locating, and/or displaying information relating to files located in a computer storage system and/or accessible through a computer system as described above (and as will be described in more detail below).
- One or more illustrative aspects of the present invention provide a method and system of creating and customizing multiple roots in a navigation pane or panel or page space control.
- a user may be able to bypass needless navigation by allowing direct access to relevant documents, applications and other data through such alternative roots.
- a user may customize a navigation pane by dragging a desired root or structure to a specific position in the navigation pane.
- the user may organize and reorganize the roots in a navigation pane by clicking and dragging the roots to particular positions relative to the other roots on the pane. Dragging the roots to the desktop may further create a shortcut to that root.
- Users may further have the option of adjusting the properties of each root, allowing further customizability.
- the multiple roots system permits roots to comprise other types of nodes beyond the typical physical locations (i.e., physical folders) used in current systems. More specifically, the multiple roots system allows users to define lists and autolists as roots in the navigation pane. These lists and autolists may comprise files or other data that satisfy a specified set of rules or filters. Additionally, roots may comprise custom extensions that correspond to a user's email (e.g., MSN® Hotmail Drive). These enhancements to the navigation system permit the user significantly greater flexibility in customizing a preferred set of navigation controls in a variety of applications. [070] Aspects of the present invention may provide a system and method for user modification of properties (or metadata).
- a shell browser which includes a display of file properties that may include multi-value properties.
- the user may edit the multi-value property, and the system may intelligently assist the user in editing the multi-value property.
- the system may tokenize the multi-value property values, and may provide persistent prompt text within a multi-value property field as a reminder to the user of the field's options.
- the system may display aggregated property values, and may incorporate visual differences to associate aggregated values with the files to which they apply. Editing of the aggregated values is possible, and when editing aggregated multi-value properties, the system may intelligently assist the user in selecting (or avoiding) entries based on a variety of factors, such as the entries already in use and the context in which the property values are used. When aggregating multi-value properties for multiple selected files, the system may also take steps to help preserve the order in which particular values appeared in the various files. Values that tended to appear more often in the beginning of a file's multi-value property will tend to appear towards the beginning of the corresponding aggregated multi- value property.
- Another aspect of the invention provides a method and system for dynamic navigation of data based on user navigation.
- the method automatically dynamically scrolls data in a second dimension while a user is manually navigating in a first dimension.
- the method includes displaying a view of content in a predetermined viewable area in a window pane.
- the method further includes determining whether a user input will result in a relevant node being at least partially obscured.
- the method also includes automatically dynamically horizontally scrolling a view of content for a predetermined distance so that a relevant node is entirely visible, or has increased visibility.
- the relevant node may be a node in a tree control (e.g., navigation pane, navigation panel, page space control, or the like) that has input or view focus or a node that is closest in proximity to a user's mouse pointer or other input indicia. While it is understood that the invention may be implemented as a method, it may also be implemented as a system for user navigation in a folder tree control or for navigation of other data, as described herein. [073] Various aspects of the invention may communicate with other code modules via one or more programming interfaces or other interfaces for accessing data files. For example, and aspect of the invention provides a file dialog having a dedicated extensibility region for inclusion of one or more user interface (UI) controls.
- UI user interface
- the controls which can be included in an extensibility region are selectable from a predefined collection of UI control types.
- an application requests the OS to display a file dialog
- the application can request inclusion of one or more controls of the types in the predefined collection.
- the OS then places the requested controls in the extensibility region of the displayed dialog.
- the application need not provide data explicitly indicating the positions within the dialog of the identified controls.
- the application may also request that the controls be placed in groups and/or that separators be included between groups.
- FIGURE 1 is a block diagram of a general purpose computer system suitable for implementing trie present invention
- FIGURE 2 is a block diagram of a virtual folder system in accordance with the present invention.
- FIGURE 3 is a flow diagram illustrative of a routine by which a user provides a query that draws back selected files and folders;
- FIGURE 4 is a flow diagram illustrative of a routine by which virtual folders are constructed and displayed on the screen in accordance with either a default query or a query from the user;
- FIGURE 5 is a tree diagram of a folder structure in accordance with a physical folder arrangement on a hard drive;
- FIGURE 6 is a tree diagram of a virtual folder structure;
- FIGURE 7 is a tree diagram of the virtual folder structure of FIGURE 6, wherein the clients stack is further filtered by contracts and year;
- FIGURE 8 is a tree diagram of the virtual folder structure of FIGURE 7, wherein the contracts of the clients stack are further filtered by year;
- FIGURE 9 is a tree diagram of the virtual folder structure of FIGURE 6, wherein the contracts stack is further filtered by clients and year, of which the clients are still further filtered by year;
- FIGURE 10 is a diagram illustrative of a screen display showing the stacks of a document library
- FIGURE 11 is a diagram illustrative of a screen display showing the documents in the ABC Corp. stack of FIGURE 10;
- FIGURE 12 is a diagram illustrative of a screen display in which a stacking function is selected for the documents of FIGURE 11;
- FIGURE 13 is a diagram illustrative of a screen display in which a "stack by author" parameter is selected for the stacking function of FIGURE 12;
- FIGURE 14 is a diagram illustrative of a screen display in which the files of FIGURE 13 have been stacked by author;
- FIGURE 15 is a diagram illustrative of a screen display in which a stacking function is selected and a "stack by category” option is further selected for restacking the files of FIGURE 14;
- FIGURE 16 is a diagram illustrative of a screen display in which the files of FIGURE 14 have been restacked by category;
- FIGURE 17 is a diagram illustrative of a screen display in which a quick link for showing physical folders is selected;
- FIGURE 18 is a diagram illustrative of a screen display in which the physical folders are shown which contain the files of the virtual folder stacks of FIGURE 17;
- FIGURE 19 is a flow diagram illustrative of a routine by which a user can directly manipulate virtual folders
- FIGURE 20 is a diagram illustrative of a screen display in which a new "West Coast" stack has been added to the stacks of FIGURE 10;
- FIGURE 21 is a diagram illustrative of a screen display in which direct manipulation is used for copying the files from the "ABC Corp.” stack to the "West Coast” stack of FIGURE 20;
- FIGURE 22 is a flow diagram illustrative of a routine for the system dynamically generating new filter terms
- FIGURE 23 is a flow diagram illustrative of a routine for the system filtering items based on the selection of a filter term
- FIGURE 24 is a diagram illustrative of a screen display in which the stacks of FIGURE 10 have been filtered by the term "AB";
- FIGURE 25 is a diagram illustrative of a screen display in which the stacks of FIGURE 10 have been filtered by the term "ABC";
- FIGURE 26 is a diagram illustrative of a screen display in which the filter term "year 2002" is selected for the stacks of FIGURE 10;
- FIGURE 27 is a diagram illustrative of a screen display in which the stacks of FIGURE 10 have been filtered by the "year 2002" and the further selection of the filter term "month”;
- FIGURE 28 is a diagram illustrative of a screen display in whicli a list is presented for selecting a month for filtering;
- FIGURE 29 is a diagram illustrative of a screen display wherein the stacks of FIGURE 10 have been further filtered by the month of January, and further showing a filter term of "day";
- FIGURE 30 is a flow diagram illustrative of a routine for creating a new quick link
- FIGURE 31 is a diagram illustrative of a screen display for creating a new quick link called "January Work" based on the filtering of FIGURE 29;
- FIGURE 32 is a diagram illustrative of a screen display in which, a quick link of "All Authors" is selected;
- FIGURE 33 is a diagram illustrative of a screen display in which a list of all of the authors of FIGURE 32 is presented;
- FIGURE 34 is a diagram illustrative of a screen display in which "Author 1 " has been selected from the list of FIGURE 33 and all of the Author l's documents are shown;
- FIGURE 35 is a flow diagram illustrative of a routine for creating a new library
- FIGURE 36 is a diagram illustrative of a screen display in wliich a collection of various available libraries are shown;
- FIGURE 37 is a flow diagram illustrative of a routine for defining the scope of a virtual folder collection
- FIGURE 38 is a block diagram illustrative of the various sources which may form the scope of a virtual folder collection
- FIGURE 39 is a flow diagram illustrative of a routine for including non-file items in a virtual folder collection;
- FIGURE 40 is a diagram illustrative of a screen display showing various non-file items included in a virtual folder;
- FIGURE 41 is a pictorial diagram of an exemplary networked computer environment suitable for implementing the present invention.
- FIGURE 42 is a pictorial diagram illustrating an exemplary file viewer having a conventional address bar associated with displaying files in a computer file system, as found in the prior art;
- FIGURE 43 is a pictorial diagram illustrating an exemplary file viewer for displaying files in a computer file system in accordance with a virtual address in a virtual address bar formed in accordance with the present invention
- FIGURE 44A is a pictorial diagram of the exemplary file viewer of FIGURE 5 illustrating selecting a segment of the virtual address in the virtual address bar to navigate in the file system;
- FIGURE 44B is a pictorial diagram of the exemplary file viewer of FIGURE 45A illustrating the results of selecting a segment of the virtual address in the virtual address bar;
- FIGURE 44C is a pictorial diagram illustrating an exemplary file viewer for displaying files in a computer file system in which a segment of the virtual address includes more than one filter.
- FIGURES 45A-45D are pictorial diagrams illustrating selecting a peer filter associated with a segment of a virtual address in a virtual address bar
- FIGURES 46A-46D are pictorial diagrams illustrating adding additional filters to a virtual address in a virtual address bar
- FIGURES 47A and 47B are pictorial diagrams illustrating an exemplary virtual address bar displaying a virtual address where the virtual address exceeds the virtual address bar's display capacity;
- FIGURE 47C is a pictorial diagram illustrating an exemplary virtual address bar displaying a virtual address in an overflow condition according to one aspect of the present invention.
- FIGURE 48A is a pictorial diagram illustrating an exemplary virtual address bar having a virtual address with filters referencing both virtual and actual locations in a file system;
- FIGURE 48B is a pictorial diagram illustrating the exemplary virtual address bar of FIGURE 48A as configured to display a conventional address bar;
- FIGURE 49 is a flow diagram illustrative of an alternate filter selection routine for selecting alternate filters in a virtual address bar
- FIGURE 50 is a flow diagram illustrating an exemplary add filter routine for adding a filter to a virtual address in a virtual address bar
- FIGURE 51 A is a block diagram of an exemplary graphical user interface for a shell browser having an edit control in accordance with an embodiment of the present invention
- FIGURE 5 IB is a block diagram of an exemplary graphical user interface for a shell browser having one or more edit controls in accordance with an embodiment of the present invention
- FIGURE 52 is a schematic diagram of a welcome pane in a shell browser
- FIGURE 53 is a schematic diagram of a selected pane in a shell browser
- FIGURE 54 is a schematic diagram of the selected pane of FIGURE 53 including a context menu enabling a user to modify metadata in a shell browser in accordance with an embodiment of the present invention
- FIGURE 55 is a flow diagram illustrating a method for enabling a user to modify metadata displayed in a welcome pane within a shell browser in accordance with an embodiment of the present invention
- FIGURE 56 is a flow diagram illustrating a method for enabling a user to modify metadata displayed in a selected pane within a shell browser in accordance with an embodiment of the present invention
- FIGURE 57 is a block diagram of a data structure containing user modifiable metadata associated with an item displayed in a shell browser
- FIGURE 58 is a schematic diagram of a prior art graphical user interface for browsing pictures stored in a folder within a shell browser environment which is used for viewing other non-pictorial files and folders;
- FIGURE 59 is a block diagram of an exemplary graphical user interface for a shell browser
- FIGURE 60 is a schematic diagram of a welcome pane in a shell browser
- FIGURE 61 is a schematic diagram of a selected pane in a shell browser
- FIGURE 62 is a schematic diagram of a selected pane in a shell browser with extended controls in accordance with an embodiment of the present invention
- FIGURE 63 is a schematic diagram of a selected pane similar to FIGURE 61 but including a context menu enabling a user to select a previewer in a shell browser in accordance with an embodiment of the present invention
- FIGURE 64A is a flow diagram illustrating a method for enabling a user to select a previewer in a shell browser in accordance with an embodiment of the present invention
- FIGURE 64B is a flow diagram illustrating a method for enabling the system to select a previewer in a shell browser in accordance with an embodiment of the present invention
- FIGURE 65 is a flow diagram illustrating a method for enabling the use of third party previewers in a shell browser in accordance with an embodiment of the present invention.
- FIGURE 66 is a block diagram of a data structure containing information indicative of multiple previewers in a shell browser.
- FIGURE 67 illustrates a scope input control according to one or more illustrative aspects of the invention.
- FIGURE 68 illustrates a scope input control according to one or more illustrative aspects of the invention.
- FIGURE 69 illustrates a scope input control according to one or more illustrative aspects of the invention.
- FIGURE 70 illustrates a scope input control according to one or more illustrative aspects of the invention.
- FIGURE 71 illustrates a scope input control according to one or more illustrative aspects of the invention.
- FIGURE 72 illustrates a method for specifying a scope according to one or more illustrative aspects of the invention.
- FIGURE 73 illustrates an explorer frame with an integrated list pane according to an illustrative embodiment of the invention.
- FIGURE 74 illustrates a context menu for a list object according to an illustrative embodiment of the invention.
- FIGURE 75 illustrates a portion of an explorer frame having task-based controls according to an illustrative aspect of the invention.
- FIGURE 76 illustrates an explorer frame with an integrated task-based list pane according to an illustrative embodiment of the invention.
- FIGURE 77 depicts an example GUI view containing a preview representation of a file that is about to be created on the system.
- FIGURE 78 depicts another example GUI view containing a preview representation of a file that is about to be created on the system.
- FIGURE 79 depicts two additional examples of GUI views containing a preview representation of a file that is about to be created on the system.
- FIGURE 80 depicts an example Save File dialog offering a preview representation of a file that is about to be created on the system.
- FIGURES 8 IA-B depict an example process for implementing a preview representation of a files that is about to be created on the system.
- FIGURE 82 is a diagram illustrating relationships between browser views.
- FIGURE 83 depicts an example browser interface layout according to aspects of the present invention.
- FIGURE 84 depicts another example browser interface layout according to aspects of the present invention.
- FIGURE 85 depicts an example process for browsing files according to aspects of the present invention.
- FIGURE 86 depicts an example logical relationship among data structures, applications, and/or subroutines that may be used to implement aspects of the present invention.
- FIGURES 87A and 87B illustrate examples of permitted and non-permitted hierarchical property paths, respectively, in accordance with at least some examples of the invention
- FIGURE 88 illustrates an example of a user interface for saving a new item (e.g., a file) with associated hierarchical properties in accordance with examples of this invention
- FIGURE 89 illustrates an example "preview panel" that includes information relating to a stored item (e.g., a digital picture file) in accordance with examples of this invention
- FIGURE 90 illustrates an example of changing a hierarchical arrangement of hierarchical properties in accordance with an example of this invention
- FIGURE 91 illustrates an example user interface with a navigation panel in accordance with some examples of this invention.
- FIGURES 92A and 92B are diagrams that illustrate examples of different scopes that may be used during navigation and display operations in accordance with examples of this invention.
- FIGURES 93 through 103 illustrate examples of user interfaces, displays, and operations during multiple property or other information selections in navigation and display operations in accordance with examples of this invention.
- FIGURES 104 through 111 illustrate examples of user interfaces, displays, and operations during grouping, stacking, and filtering of items (e.g., electronic files) in navigation and display operations in accordance with examples of this invention.
- items e.g., electronic files
- FIGURE 112 illustrates a partial screenshot of a shell browser window implementing a multiple root navigation pane according to an illustrative embodiment of the present invention.
- FIGURE 113 illustrates a multiple root navigation pane according an illustrative embodiment of the present invention.
- FIGURE 114A illustrates a method for customizing a navigation pane according to an illustrative embodiment of the present invention.
- FIGURE 114B illustrates a method for reordering page nodes in a multi root navigation pane according to an illustrative embodiment of the present invention.
- FIGURE 115 illustrates a configuration dialog for customizing the navigation pane according to an illustrative embodiment of the present invention.
- FIGURE 116A illustrates a page node property configuration dialog according to one embodiment of the present invention.
- FIGURE 116B illustrates a multi root navigation pane with an invisible root according to an illustrative embodiment of the present invention.
- FIGURES 117a-b depict an example flow diagram of a process that may employ features described herein.
- FIGURE 118 depicts an example file browser user interface and various user interface elements.
- FIGURE 119 depicts a modified version of the interface in FIGURE 118, in which the preview area is resized.
- FIGURE 120 depicts another modified version of the interface in FIGURE 118, in which the preview area is resized.
- FIGURE 121 depicts an alternative browser interface with a different orientation of preview elements.
- FIGURE 122 depicts an example of a common file dialog that includes a preview interface.
- FIGURE 123 depicts an example of a stacked preview presentation.
- FIGURE 124 depicts another example of a stacked preview presentation, having more stacked previews than the example shown in FIGURE 123.
- FIGURE 125 depicts an example of a preview occurring when multiple files are selected.
- FIGURE 126 depicts an example browser having multiple files selected, and visual differentiation of corresponding properties and files.
- FIGURE 127 depicts an example browser having multiple files selected, and an aggregated property field.
- FIGURE 128 depicts an example of an aggregated property field, with visual differentiation to correlate properties with one or more selected files.
- FIGURES 129A-B depict an example process by which several selected multi-value properties may have their values aggregated.
- FIGURE 130 depicts an example of a multi-value property field.
- FIGURE 131 depicts an example process for an autoselect feature.
- FIGURE 132 depicts an example of a multi- value property field with the autocomplete feature.
- FIGURE 133 depicts an example process for an autocomplete feature.
- FIGURE 134 is a flow diagram illustrative of a child filter selection routine for selecting child filters in a virtual address bar according to aspects of the present invention.
- FIGURES 135A-135D are pictorial diagrams illustrating selecting a child filter associated with a segment of a virtual address in a virtual address bar.
- FIGURE 136 illustrates a conventional prior art folder tree control displayed in a window pane.
- FIGURE 137 illustrates a view of a hierarchical tree control structure implemented in accordance with various illustrative aspects of the invention.
- FIGURES 138A and 138B illustrate a screenshot of a folder tree control implemented in accordance with various illustrative aspects of the invention.
- FIGURE 139 is a flowchart describing a method for providing content for display to a user navigating through the content in accordance with various illustrative embodiments of the invention.
- FIGURE 140 is a diagram illustrative of a details view with grouping in a conventional operating system
- FIGURE 141 A is a diagram illustrative of " a property header including property controls in a details view according to aspects of the present invention
- FIGURE 141B is a diagram illustrative of a split button property control in a property header in a details view according to aspects of the present invention.
- FIGURE 141 C is a diagram illustrative of an arrange and filter drop down menu of the a property control in a property header in a details view according to aspects of the present invention
- FIGURE 141D is a diagram illustrative of part of a filter portion of an arrange and filter drop down menu according to aspects of the present invention.
- FIGURE 142 A is a diagram illustrative of a property header including property controls in a view other than a details view according to aspects of the present invention
- FIGURE 142B is a diagram illustrative of art arrange and filter drop down menu of a property control in a property header in a view other than a details view according to aspects of the present invention
- FIGURE 142C is a diagram illustrative of a property header where the view has been filtered by one of the property controls in the property header in a view other than a details view according to aspects of the present invention
- FIGURE 143 is a diagram illustrative of an arrange and filter drop down menu of an overflow property control in a view according to aspects of the present invention.
- FIGURE 144 is a diagram illustrative of a calendar control according to aspects of the present invention.
- FIGURES 145 A through 145M show programming interfaces, in a general-purpose computer environment, with which one or more embodiments of the present invention may be implemented.
- FIGURES 146 and 147 are examples of an "Open File" dialog according to at least some embodiments of the invention.
- FIGURES 148 and 149 are examples of a "Save File” dialog according to at least some embodiments of the invention.
- FIGURES 150-154B are examples of additional user interface (UI) controls which may be added to a file dialog according to at least some embodiments of the invention.
- UI user interface
- FIGURES 155 and 156 show automatic arrangement of UI controls according to at least some embodiments of the invention.
- FIGURES 157 and 158 are block diagrams schematically illustrating differences between the manner in which an application requests generation of a file dialog according to embodiments of the invention and the manner in which a file dialog is requested in the prior art.
- FIGURES 1-9 are generally directed to an overall system for virtual folders.
- Virtual folders provide a method for allowing a conventional user interface to expose regular files and folders (also known as directories) to users in different views based on their metadata instead of the actual physical underlying file system structure on tlie disk.
- FIGURES 10-18 are generally directed to stacks, which are related to the ability of the virtual folders to take any property that is stored in the database and represent it as a container that is like a folder.
- FIGURES 19-21 are generally directed to direct manipulation of virtual folders, which relates to providing mechanisms for manipulating virtual folders that are similar to the mechanisms currently used for manipulating standard folders (e.g., copying, pasting, clicking and dragging, etc.).
- FIGURES 22-29 are generally directed to filters, which provide a set of tools for narrowing down a set of files/items.
- FIGURES 30-34 are generally directed to quick links, which are a set of predefined links that can be clicked on to generate useful views of sets of files/items.
- FIGURES 35-36 are generally directed to libraries, which are related to the concept that groups of usable types of files can be associated together, and that tools and activities that are related to the particular types of items can be provided.
- FIGURES 37-38 are generally directed to scope which is related to the concept of being able to acquire files/items from multiple physical locations (e.g., different hard drives, different computers, from a computer in a network location, etc.) so that to the user all the files/items are presented with the same convenience as if they were being provided from one location.
- FIGURES 39-40 are generally directed to non-file items, which can be included in the database along with files, and "whrich can include items such as emails and contacts.
- FIGURES 41-50 are generally directed to a virtual address bar which comprises a plurality of segments, each segment corresponding to a filter for selecting content.
- FIGURES 51-57 are generally directed to a shell browser, with which users can readily identify an item based on the metadata associated with that item.
- FIGURES 58-66 are generally directed to extending the functionality of a ⁇ object previewer in a shell browser configured to display a plurality of items representing multiple item types. The following description provides a detailed discussion of each of these aspects of the invention.
- FIGURES 1-9 are generally directed to a system for implementing virtual folders.
- Virtual folders utilize the same or similar user interfaces that are currently used for file systems.
- the virtual folders expose regular files and folders (also known as directories) to users in different views based on their metadata instead of the actual physical underlying file system structure on the disk.
- Location-independent views are created which allow users to manipulate their files and folders utilizing similar controls as those presently used for managing file systems. In general, this means that users can organize and rearrange their files based on inherent properties in the files themselves, instead of the managing and organization being done as a separate part of the system.
- the virtual folders may represent files or items from different virtual or physical locations, such as from multiple disk drives within the same computer, between multiple computers, or different network locations, such that one view of files or items can expose files or items sitting at different physical locations, hi one embodiment, the different items or files need only be connected via an IP network in order to be included.
- the virtual folder modeling is also able to be used for traditionally non-file entities.
- An application of this is to have a set of user interfaces similar to files and folders (that is, objects and containers) to show traditionally non-file entities.
- One example of such non-file entities would be e-mails, while another would be contact information from a contact database.
- virtual folders provide for a location-independent, metadata-based view system that works regardless of whether the data being shown is from files or non-file entities.
- these aspects allow more flexibility in terms of letting users manipulate their files and data, using both common user interface techniques (drag and drop, double ⁇ click, etc.) as well as leveraging the rich integration of various data types.
- FIGURE 1 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the present invention may be implemented.
- program modules include routines, programs, characters, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
- the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, 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.
- program modules may be located in both local and remote memory storage devices.
- an exemplary system for implementing the invention includes a general purpose computing device in the form of a conventional personal computer 20, including a processing unit 21, system memory 22, and a system bus 23 that couples various system components including the system memory 22 to the processing unit 21.
- the system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- the system memory includes read-only memory (ROM) 24 and random access memory (RAM) 25.
- ROM read-only memory
- RAM random access memory
- a basic input/output system (BIOS) 26 containing the basic routines that help to transfer information between elements within the personal computer 20, such as during start-up, is stored in ROM 24.
- the personal computer 20 further includes a hard disk drive 27 for reading from or writing to a hard disk 39, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31, such as a CD-ROM or other optical media.
- the hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical drive interface 34, respectively.
- the drives and their associated computer-readable media provide non-volatile storage of computer- readable instructions, data structures, program modules, and other data for the personal computer 20.
- exemplary environment described herein employs a hard disk 39, a removable magnetic disk 29, and a removable optical disk 31, it should be appreciated by those skilled in the art that other types of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read-only memories (ROMs), and the like, may also be used in the exemplary operating environment.
- exemplary operating environment described herein employs a hard disk 39, a removable magnetic disk 29, and a removable optical disk 31, it should be appreciated by those skilled in the art that other types of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read-only memories (ROMs), and the like, may also be used in the exemplary operating environment.
- RAMs random access memories
- ROMs read-only memories
- a number of program modules may be stored on the hard disk 39, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37 and program data 38.
- a user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42.
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
- serial port interface 46 that is coupled to the system bus 23, but may also be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB).
- a display in the form of a monitor 47 is also connected to the system bus 23 via an interface, such as a video card or adapter 48.
- One or more speakers 57 may also be connected to the system bus 23 via an interface, such as an audio adapter 56.
- personal computers typically include other peripheral output devices (not shown), such as printers.
- the personal computer 20 may operate in a networked environment using logical connections to one or more personal computers, such as a remote computer 49.
- the remote computer 49 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 20.
- the logical connections depicted in FIGURE 1 include a local area network (LAN) 51 and a wide area network (WAN) 52.
- LAN local area network
- WAN wide area network
- the personal computer 20 When used in a LAN networking environment, the personal computer 20 is connected to the local area network 51 through a network interface or adapter 53. When used in a WAN networking environment, the personal computer 20 typically includes a modem 54 or other means for establishing communications over the wide area network 52, such as the Internet.
- the modem 54 which may be internal or external, is connected to the system bus 23 via the serial port interface 46.
- program modules depicted relative to the personal computer 20 or portions thereof may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary, and other means of establishing a communications link between the computers may be used.
- FIGURE 2 is a block diagram of a virtual folder system 200 in accordance with the present invention.
- the virtual folders allow a user to change the "pivot" which controls the way the data is viewed. As an example, a user could view their music as a flat list of all the songs, which can be grouped by album.
- the user could switch the view to show only the genres or artists or years, etc.
- the user can tailor the view to see only the objects suited to the task at hand. This allows an improved browsing experience that negates the need for further navigation through folders (both down and back up).
- the same lessons and capabilities apply to modeling other data ⁇ types not stored as files. Contacts, for example, can be exposed to the user in this way, giving them familiar interface capabilities, as well as richer infrastructure for manipulating them than is provided by a flat address book.
- the virtual folder system 200 includes a folder processor 210, a relational database 230, a virtual folder descriptions database 232, an other shell folders component 234, a folder handler's component 236, and a shell browser and view component 240.
- the folder processor 210 includes a native handling code component 212, a handler factory component 214, a property writer component 216, a rowset parser component 218, a query builder component 220, an enumerator component 222, and a property factory component 224.
- the relational database 230 stores properties about all files in the system. It also stores some items, like contacts (i.e., non-file items), entirely. In general, it stores metadata about the types of files and items that it contains.
- the relational database 230 receives SQL queries from the query builder 220. The relational database 230 also sends SQL rowsets to the rowset parser component 218, with one row per item column, columns being the item properties.
- the virtual folder descriptions database 232 includes the virtual folder descriptions.
- the virtual folder descriptions database 232 sends data to the query builder component 220, including a list of types to display in the folder, the initial filter, and the physical locations to show results from (the scopes).
- the folder processor 210 delegates to existing shell folders from many types of items, including all files, for handlers or properties.
- the other shell folders component 234 sends properties from other folders to the property factory 224.
- the other shell folders component also sends handlers to the handler factory 214.
- the folder handlers component 236 provides code behavior for the items that exist only in the database, like contacts. This is what allows non-file items to behave akin to files.
- the folder handlers component 236 sends handlers to the handler factory 214.
- the folder processor 210 directly implements certain handlers based on the properties of the items.
- the native handling code component 212 sends handlers to the handler factory 214.
- virtual folders have to provide a set of handlers (context menu, icon, thumbnail, infotip, . . .) for their items.
- the virtual folder provides a common (native) handler for all the types it holds.
- the default handler can also be overridden.
- Virtual folders reuse this for files and allow non-file items do the same.
- the handler factory 214 takes ID lists and produces code behaviors that provide context menus, icons, etc.
- the folder processor 210 may use native handlers, external handlers, or delegate to other shell folders to get handlers, as described above with respect to the native handling code component 212, the other shell folders component 234, and the folder handlers component 236.
- the handler factory component 214 sends handlers to the shell browser in view 240, as requested by the view.
- the handler factory component 214 sends a property handler to the property writer 216.
- the property writer 216 converts user intentions such as cut, copy, and paste into property rights to the file or item.
- a shell browser and view component 240 sends data to the property writer 216, including direct manipulation (cut/copy/paste) or editing of metadata.
- operations such as move and copy (drag-drop) become an edit on those properties. For example, moving a document, in a view stacked by author, from Author 1 to Author 2, means changing the author.
- the property writer component 216 implements this function.
- the rowset parser 218 takes database rowsets and stores all item properties into a shell ID list structure.
- a rowset takes the piecewise definition of the virtual folder and builds a SQL string which can then be issued to the database.
- the rowset parser component 218 sends ID lists to the enumerator component 222. As described above, the rowset parser component 218 also receives data from the relational database 230, including SQL rowsets, with one row per item, the columns being item properties.
- the query builder component 220 builds SQL queries.
- the query builder component 220 receives data from the enumerator component 222, including new filters from the navigation.
- the query builder component 220 also receives data from the virtual folder descriptions database 232, including a list of the types to display in the folder, the initial filter, and the physical location to show results from (the scopes).
- the query builder component 220 sends the SQL queries to the relational database 230.
- the query builder component 220 includes a set of rows (in other words a table). This is what running the query yields.
- the rowset parser component 218 takes each row and using the column names transforms the row into an ID list.
- An ID list is a well- known shell structure which is used to reference items in a namespace. Doing this allows virtual folders to be just like any other namespace to the rest of the shell. Also caching this data helps keep database access, which can be costly, to a minimum.
- the enumerator component 222 operates in response to navigation to a virtual folder. As described above, the enumerator component 222 receives ID lists from the rowset parser component 218, and sends new filters from the navigation to the query builder component 220. The enumerator 222 also sends data to the shell browser and view component 240, including ID lists that are returned to be inserted into the view after a navigation.
- the property factory component 224 takes ID lists and property identifiers and returns values for those properties.
- the property factory component 224 receives data from the handler factory component 214 including the property handler. As described above, the property factory component 224 also receives data from the other shell folders component 234, including properties from other folders.
- the property factory component 224 also sends data to the shell browser and view component 240, including item properties, as requested by the view.
- the shell browser and view component 240 displays the contents of a folder in a window, and handles all the user interaction with the displayed files or items, such as clicking, dragging, and navigating. Thus, the shell browser and view component 240 receives the user actions . The shell browser and view component 240 also gets the data regarding the code behaviors that it needs from the folder, in this case the folder processor 210.
- the virtual folders expose regular files and folders (also known as directories) to users in different views based on their metadata instead of the actual physical underlying file system structure on the disk.
- the system is able to take a property that is stored in the database and represent it as a container that is like a folder. Since users are already familiar with working with folders, by presenting the virtual folders in a similar manner, users can adapt to the new system more quickly.
- FIGURE 3 is a flow diagram illustrative of a routine 300 by which a user provides a query that draws back selected items.
- the folder processor gets a query from the user.
- the folder processor passes the query to the relational database.
- the relational database provides the results back to the folder processor.
- the folder processor provides the results to the user in the form of virtual folders and items.
- FIGURE 4 is a flow diagram illustrative of a routine 320 by which virtual folders are constructed and displayed on the screen in accordance with either a default query or a query from the user.
- a default query is used. This default query is taken from the registry. For example, the default query for a music library could be to show all the songs grouped by album.
- the folder processor constructs a query object for this query, and then passes this query to the relational database.
- the relational database generates the results of the query and passes these back to the folder processor as database rows and columns.
- the folder processor takes these results and converts them from the rows and columns of data into an enumerator structure, which is used by the folder view to populate the screen with the resulting virtual folders and items for the user to interact upon.
- a user decides whether to change the view (by issuing a different query or "pivot"). For example, a user could issue a "show all artists" pivot. If the user does want to change the view, then the routine returns to block 324 where the folder processor passes this new query to the relational database, and receives back new rows and columns of results, and constructs a new enumerator structure. The process then continues as described above, as the folder view clears and updates, using the enumerator to draw the "artist" objects to the screen.
- album objects are provided that represent containers that users can navigate into. For example, double-clicking the "Beatles” albums will navigate the view to see all of the Beatles' songs.
- the folder processor issues the "show all Beatles' songs” query to the relational database, which hands back the rows and columns of data for those songs.
- the folder processor creates an enumerator of all these songs, which then get drawn to the screen.
- the user can also choose the view at any point while browsing virtual folders. From the above example, after narrowing down to just show Beatles songs, a user can change the view to only show the songs as albums. Trie process of changing the view of items into another representation is called “stacking". This is because the items are conceptually arranged into "stacks" based on that representation. In this case, the songs are rearranged into stacks for each of the various albums. Users can then navigate into one of these stacks, only seeing the songs from that particular album. Again, the user can rearrange the view of these remaining songs into stacks based on a property (e.g., a rating, for example). If the rating property were selected, the songs from that Beatles album would be shown in stacks for a one-, two-, or a three-star rating.
- a property e.g., a rating, for example
- the results of each query depend on which physical or virtual locations are included in the scope.
- the scope may be made to include only the folders in the user's "my documents" folder.
- the scope could include all folders on the computer, or even all folders on multiple network connected computers.
- the user is able to view and change the scope through a scope property sheet.
- the scope property sheet could be exposed by right-clicking on the virtual folder and choosing "properties.” The user could add new folders to the scope, or remove folders that were previously added.
- Virtual folders allow knowledge workers to easily switch between viewing documents by file type, project, case number, author, etc. Since knowledge workers each tend to have a different method for organizing documents, virtual folders can be used to accommodate these different preferences.
- FIGURE 5 is a tree diagram of a folder structure in accordance with a physical folder arrangement on a hard drive.
- This physical folder arrangement is based on the traditional implementation of folders, which may be based on NTFS or other existing file systems.
- Such folders are referred to as physical folders because their structuring is based on the actual physical underlying file system structure on the disk. As will be described in more detail below, this is in contrast to virtual folders, which create location-independent views that allow users to manipulate files and folders in ways that are similar to those currently used for manipulating physical folders.
- a folder 400 is a "my documents" folder.
- the folder 400 includes folders 410, 420, and 430, corresponding to Clients 1, 2, and 3, respectively.
- each of the folders 410, 420, and 430 contain a folder 411, 421, and 431, respectively, which each correspond to the contracts for the selected client.
- each of the folders 411, 421, and 431 contains a folder 412, 422, and 432, respectively, each corresponding to the year 2001.
- each of the folders 411, 421, and 431 also contains a folder 413, 423, and 433, respectively, each corresponding to the year 2002.
- the virtual folders of the present invention provide an improved file system structure.
- FIGURE 6 is a tree diagram of a virtual folder structure.
- virtual folders create location-independent views that allow users to manipulate their files and folders in convenient ways.
- tkie virtual folders are represented as stacks.
- a virtual folder 500 is an "all items" folder.
- the virtual folder 500 contains virtual folders 510, 520, and 530, corresponding to clients, contracts, and year, respectively.
- this structure allows a user to access files according to a desired parameter.
- FIGURE 7 is a tree diagram of the virtual folder structure of FIGURE 6, wherein at a second level, the virtual folder 510 further includes virtual folders 511 and 51 2, which correspond to contracts and year, respectively. In other words, the clients stack of virtual folder 510 is further filtered by contracts and year. The process for determining w ⁇ rich files and items are contained in each of the virtual folders will be described in more detail below.
- FIGURE 8 is a tree diagram of the virtual folder structure of FIGURE 7, wherein at a third level, the virtual folder 511 contains a virtual folder 513, which corresponds to a year. In other words, the contracts stack of virtual folder 511 is further filtered, by year. While the virtual folder structure for the virtual folders 510, 511, and 513 have been structured according to clients, contracts, and year, it will be appreciated that the virtual folders allow for other structuring sequences to occur, as will be described in more detail below with reference to FIGURE 9.
- FIGURE 9 is a tree diagram of the virtual folder structure of FIGURE 6, wherein at a second level, the virtual folder 520 has been further filtered into virtual folders 521 and 522, corresponding to clients and year. At a third level, the virtual folder 521 lias further been filtered to a virtual folder 523, corresponding to a year.
- the contrast between the organizational structures of FIGURES 8 and 9 helps illustrate the flexibility of the virtual folder system. In other words, in a virtual folder system, a user is able to navigate the virtual folders according to desired parameters, as opposed to being dependent on the location-dependent views of a physical file structure such as that illustrated in FIGURE 5.
- FIGURE 10 is a diagram illustrative of a screen display 600 showing the stacks of a document library. As noted above, stacks can be used to represent a type of virtual folder. As will be described in more detail below, the screen display 600 includes quick link elements 610-613, filter elements 620-626, activity elements 630-633, information and control elements 640-645, and virtual folder stacks 651-655.
- the quick link elements include an "all categories" quick link 610, on “all authors” quick link 611, a “January work” quick link 612, and a selection for displaying additional quick links 613.
- quick links can be selected by a user to perform desired navigations of the virtual folders.
- Quick links may be provided by the system, and some quick links may be created and saved by a user.
- the filter elements include a "filter by" indicator 620, an entry blank 621, a "by date” indicator 622, a "year” selector 623, a "pick an author” selector 624, a “pick a category” selector 625, and a “more filters” selector 626.
- the "filter by” indicator 620 directs a user to the fact that the items below can be used to filter the virtual folders or items.
- the entry blank 621 provides an area in which a user can type a desired new filter term.
- the "by date” indicator 622 directs a user to the fact that by selecting a date from the "year” selector 623, the virtual folders or items can be filtered by the selected year.
- the "pick an author” selector 624 allows a user to filter according to a specific author.
- the "pick a category” selector 625 allows a user to filter according to a selected category.
- the "more filters” selector 626 allows a user to pull up additional filters on the display.
- the activity selectors include a "create a new category” selector 630, "activity" selectors 631 and 632, and a “more activities” selector 633.
- the activities that are presented may be for generally desirable functions, or may more specifically be directed to activities useful for the type of virtual folders that are currently being displayed.
- the "create a new category" selector 630 can be selected by the user to create a new category which will be represented by a new stack.
- the activity selectors 631 and 632 may be more specifically directed to the type of folders or items that are being displayed.
- the present display is of a document library, for which the "activity" selectors 631 and 632 may be directed to activities specifically tailored for documents, such as editing or creating attachments. If the present library had been a photo library, the "activity" selector 631 and 632 could be for activities specifically directed to photos, such as forming photo albums or sharing photos with other users.
- the information and control elements include information line 640 and information line (address bar) 641, a control line 642, a backspace control 643, and information lines 644 and 645.
- the information line 640 and address bar 641 provide information as to the current navigation of the virtual folders or items. In the present example, the information line 640 indicates that the current navigation is to a document library, while the address bar 641 indicates the more complete navigation, showing that the document library is within the storage area.
- the control line 642 provides a number of standard controls, and the backspace button 643 allows a user to back up through a navigation.
- the information line 644 provides numerical information about the contents of the present navigation. In the present example, the information line 644 indicates that there are 41 items which take up 100 MB in the stacks of the document library.
- the information line 645 is available to provide additional information, such as additional information about a file that is selected.
- the stacks of the document library include an "ABC Corp.” stack 651, a "backups stack” 652, a "business plans” stack 653, an "XYZ Corp.” stack 654, and a "marketing reports” stack 655.
- the numbers on top of each of the stacks indicate how many items are in each stack.
- the "ABC Corp.” stack 651 is shown to include 8 items.
- the total number of items of the stacks adds up to the number of items indicated in the information line 644, which as described above is 41 in the present example.
- a selection box SB is provided which can be utilized by a user to select a desired item.
- the selection of the "ABC Corp.” stack 651 yields a view of the items of that stack, as will be described below with respect to FIGURE 11.
- FIGURE 11 is a diagram illustrative of a screen display showing the items in the "ABC Corp.” stack 651 of FIGURE 10. It should be noted that the information line 640 and address bar 641 now indicate that the present navigation is showing the "ABC Corp.” stack.
- the "ABC Corp.” stack 651 is shown to include 8 documents 751-758, corresponding to documents 1-8, respectively.
- the information line 644 correspondingly indicates that there are 8 items which take up 20 MB of memory.
- Documents of FIGURE 11 may be further arranged into stacks within the ABC Corp. stack. In other words, within the virtual folder represented by the ABC Corp. stack 651, additional virtual folders may be organized to hold the documents, as will be described below with respect to FIGURES 12-16.
- FIGURE 12 is a diagram illustrative of a screen display in which a stacking function is selected for the documents of FIGURE 11.
- the function box 760 includes a "view" selection 761, an "arrange icons by" selection 762, a “stacks” selection 763, a “refresh” selection 764, an "open containing folders” selection 765, a "cut” selection 766, a "copy” selection 767, an "undo” selection 768, a "new” selection 769, and a “properties” selection 770.
- the selection box SB is shown to be around the "stacks" selection 763.
- FIGURE 13 is a diagram illustrative of a screen display in which a "stack by author" parameter is selected for the stacking function of FIGURE 12.
- a box 780 is displayed which presents various stacking options.
- the stacking options include an "unstack” option 781, a "stack by category” option 782, a “stack by author” option 783, and a "stack by a user” option 784.
- the selection box SB is shown to be around the "stack by author” option 783.
- FIGURE 14 is a diagram illustrative of a screen display in which the files of FIGURE 13 have been stacked by author.
- stacks 791 and 792 correspond to authors Bob and Lisa, respectively.
- the Bob stack 791 includes two items, while the Lisa stack 792 includes five items.
- the item 758 (corresponding to document 8) did not have an author, and so is not included in an "author" stack.
- the stacks 791 and 792 illustrate that stacks may be organized at multiple levels, such as within the "ABC Corp.” stack 651.
- the virtual folders may be formed at multiple levels, such as the "Lisa" stack 792 being within the "ABC Corp.” stack 651 which is within the document library.
- FIGURE 15 is a diagram illustrative of a screen display in which a "stack by category” option is further selected for restacking the files of FIGURE 14. As shown in FIGURE 15, the selection box SB is around the "stack by category” option 782. Since some of the items are already stacked in the stacks 791 and 792, the selection of the "stack by category” option 782 will restack the items, as will be described in more detail below with reference to FIGURE 16.
- FIGURE 16 is a diagram illustrative of a screen display in which the files of FIGURE 14 are restacked by category. As shown in FIGURE 16, the stacks 793 and 794 correspond to the "XYZ Corp.” and "marketing reports" categories, respectively. The items 751 and 752, corresponding to documents 1 and 2, were not designated for any additional categories, and thus did not fall into any of the other category stacks.
- FIGURE 17 is a diagram illustrative of a screen display in which a quick link for physical folders is selected.
- the selection box SB is shown to be around the "all folders" quick link 616.
- the "all folders" quick link 616 provides for switching to a view of physical folders.
- FIGURE 18 is a diagram illustrative of a screen display showing physical folders.
- the physical folders that are shown contain the files of the virtual folder stacks of FIGURE 17. In other words, the items contained within the stacks 651-655 of FIGURE 17 are also contained in certain physical folders in the system.
- FIGURE 18 These are shown in FIGURE 18 as a "My Documents” folder 851 that is located on the present computer, a “Desktop” folder 852 that is located on the present computer, a “Foo” folder 853 that is located on the hard drive C:, a “My Files” folder 854 that is located on a server, an “External Drive” folder 855 that is located on an external drive, a “My Documents” folder 856 that is located on another computer, and a "Desktop” folder 857 that is located on another computer.
- FIGURE 18 is a flow diagram illustrative of a routine 880 by which a user can directly manipulate virtual folders. As will be described in more detail below, the mechanisms that are provided for manipulating the virtual folders are similar to those that are currently used for manipulating regular folders (e.g., clicking and dragging, copying, pasting, etc.).
- the system provides defined actions that the user can perform for direct manipulation of the virtual folders that are represented as display objects.
- the user performs a defined action. As noted above, one example of this might be a user clicking and dragging a virtual folder to copy its contents to another virtual folder.
- the virtual folder and/or contents are manipulated as directed by the action performed by the user.
- FIGURE 20 is a diagram illustrative of a screen display in which a new West Coast stack 656 has been added to the stacks of FIGURE 10.
- the West Coast stack 656 was formed by a user creating a new category of "West Coast.” Upon its initial creation, the new West Coast stack 656 would be empty and have zero items.
- two items have been added to the West Coast stack 656.
- One method for adding items to a stack is to select a particular item, and either modify or add additional categories to the category metadata for the item, such as adding the category "West Coast" to two items as was done in the embodiment of FIGURE 20.
- This process illustrates that the category data is a metadata property for an item that is a type of ad-hoc property.
- a property of this type does not have any implicit meaning, and can be assigned an arbitrary value by the user.
- the category "property” can have any value whereas the "author” property should be the name of a person.
- items may also be clicked and dragged to be copied from other stacks to the West Coast stack 656 (in which case the categories of the items are automatically updated to include "West Coast”).
- FIGURE 20 shows that the selection box SB is around the ABC Corp. stack 651, in preparation for its contents being copied.
- FIGURE 21 is a diagram illustrative of a screen display in which direct manipulation is used for copying the files from the ABC Corp. stack 651 to the West Coast stack 656.
- the user selected the ABC Corp. stack 651, and then as shown in FIGURE 21 the user has clicked and dragged the stack to be copied to the West Coast stack 656.
- the West Coast stack 656 which had two items in FIGURE 20, is now shown to include a total of ten items, including the additional eight items from the ABC Corp. stack 651.
- the items from the ABC Corp. stack 651 were copied to the West Coast stack 656, this was accomplished by modifying the category descriptions of the eight items to also include the "West Coast" category in addition to including the original "ABC Corp.” category. This illustrates one type of direct manipulation that may be performed.
- Another example of direct manipulation is right clicking an item and selecting delete.
- a deleting function when a deleting function is selected by a user, the user is queried whether the item should be deleted all together, or simply removed from the present virtual folder. If the item is just to be removed from a present virtual folder category stack as noted above, this can be accomplished by removing the desired category from the metadata for the item. In other words, if one of the items that had been copied from the ABC Corp. stack 651 to the West Coast stack 656 was then to be removed from the West Coast stack 656, this could be accomplished by modifying the category data for the particular file to no longer include the "West Coast" category.
- FIGURE 22 is a flow diagram illustrative of a routine 900 for the system dynamically generating new filter terms.
- Filter terms are utilized for manipulating the virtual folders.
- the filtering terms are essentially utilized as a set of tools for narrowing down a set of items.
- filters consist of metadata categories and their values (presented to the user in the user interface as clickable links or drop-down menus). Such an illustrative embodiment is described in connection with FIGURES 141 and 142 below. The user clicks on a filter term in order to filter down the current results set of items on the display.
- FIGURE 22 illustrates how filters may be dynamically generated.
- the properties (from the metadata) of the items in a collection on the present display are reviewed.
- proposed filter terms are dynamically generated based on common properties of the items in the display.
- the proposed filter terms are presented to the user for possible selection for filtering items.
- the system may review the properties of a set of items, and if the items generally have "Authors" as a property, the filter can provide a list of the authors to filter by. Then, by clicking on a particular Author, the items that don't have that Author are removed from the set on the display. This filtering process provides the user with a mechanism for narrowing the set of items on the display.
- FIGURE 23 is a flow diagram illustrative of a routine 920 for the system filtering items based on the selection of a filter term.
- the user either enters a new filter term or else selects one of the filter terms that have been presented by the system.
- the filter terms may be dynamically generated by the system, or they may be preset.
- the items from the collection on the display are evaluated with regard to whether their selected properties match the filter term. For example, if the filter term is for items that were authored by "Bob," then the items are evaluated in accordance with whether their author property includes "Bob".
- the items for which the selected properties do not match the filter term are removed from the collection on the display.
- FIGURES 24-29 generally illustrate how the filtering process appears on the screen display.
- the filtering may generally operate according to the following process. After the user clicks on a filter val ⁇ ie, the items outside the filter range are animated off the screen. The animation is generally designed to make it obvious that items are being removed and that no new items are " being added.
- the back button 643 may be selected by a user so as to undo the filter operations.
- a navigation stack is created which contains the sequential filter actions, which is utilized to undo each of the filter actions when the back button 643 is selected.
- the information area 640 and address bar 641 are updated to indicate the current filter value.
- a user is provided an option for saving a new quick link to the current filter navigation, as will be described in more detail below with respect to FIGURE 30 or creating an autolist.
- the filter controls may be updated to be appropriate for the items remaining in the view.
- FIGURE 24 is a diagram illustrative of a screen display in which the stacks of FIGURE 10 have been filtered by the term "AB".
- the term "AB" has been, typed by a user.
- the information line 640 and address bar 641 indicate that the items in the display are now those that have been filtered by the term "AB”.
- the ABC Corp. stack 651 still contains eight items
- the Backups stack 652 now contains three items
- the XYZ Corp. stack 654 also contains three items.
- the information line 644 thus indicates that there are a total of 14 items, taking up a total of 35 MB of memory.
- FIGURE 25 is a diagram illustrative of a screen display in which the stacks of FIGURE 10 have been filtered by the term "ABC".
- the filter term "AB" of FIGURE 24 the user has simply typed the additional letter “C” to make the total filter term "ABC”.
- the information line 640 and address bar 641 now indicate that the items on the display are those that contain the term "ABC”.
- the ABC Corp. stack 651 is still shown to contain eight items, while the Backups stack 652 now contains only two items.
- the XYZ Corp. stack 654 has disappeared because none of its contents matched the "ABC" filter.
- the information line 644 now indicates that there are a total of 10 items in the stacks on the display, which take up a total of 25 MB of memory.
- FIGURES 24 and 25 thus provide examples of how a user may enter new filter terms, and how those filter terms are then used to filter the items that are shown on the display.
- the back button 643 may be utilized by a user to back through the filtering process. As described above with respect to FIGURE 10, the back button 643 allows a user to back up through a navigation. With regard to the examples of FIGURES 24 and 25, after filtering by the term "ABC" in FIGURE 25, a user could select the back button 643 so as to back up one step of the filtering process, which would return to the state of FIGURE 24. Alternatively, in another embodiment, the back button 643 may clear out the entire filter term, and may thus return to the state before that filtering occurred. In this case, by pressing the back button 643 in FIGURE 25, a user would return to the state of FIGURE 10.
- an additional means is provided for a user to back up in or otherwise modify the filtering navigation.
- This additional means involves allowing the user to directly access and modify the address bar 641, which correspondingly changes the filter navigation.
- the user can remove one or more of the applied filters, or modify the values for any of the applied filters.
- a timer may also be utilized in conjunction with a user typing in filter terms such as those shown in FIGURE 24 and 25.
- the timer is used to monitor for a pause in the typing by the user. After a selected interval of no typing, the filter is applied. For example, in the state of FIGURE 24, a user has typed the filter term "AB”, with no significant time lag between the "A” and the "B.” After typing the term “AB”, the user pauses, thus producing the state shown in FIGURE 24, where the filter term "AB” is applied. Sometime later, the user adds the letter “C” to complete the filter term "ABC”, and then pauses again, at which point the filter term "ABC” is applied as illustrated in FIGURE 25.
- the navigation state is updated, and the filter term in the filter area 621 is made to be empty again.
- other filter controls may be updated based on the selection of certain filter terms.
- FIGURE 26 is a diagram illustrative of a screen display in which the system provided filter term "year 2002" is selected.
- the year selections 623 include the years 2000, 2001, or 2002.
- the selection box SB is shown to be around the year 2002, indicating that the user is selecting that as the desired filter term.
- FIGURE 27 is a diagram illustrative of a screen display in which the filter term "2002" has been applied. Also shown is the further selection of the "pick a month” selector 623A. As shown in FIGURE 27, after applying the filter term "2002", the number of items in the stacks is reduced. More specifically, the ABC Corp. stack 651 now contains six items, the Backups stack 652 now contains eight items, the Business Plans stack 653 now contains three items, and the XYZ Corp. stack 654 now contains five items.
- the information line 644 now indicates a total of 22 items, taking up a total of 50 MB of memory.
- the information line 640 and address " bar 641 now indicate that the items shown on the display are those that have been filtered to contain the filter term "2002".
- FIGURE 28 is a diagram illustrative of a screen display in which a list is presented for selecting a month for filtering.
- a box 950 is provided which includes the list of the months.
- the box 950 has been provided on the display due to the user selecting the "pick a month" selector 623 A.
- the selection box SB is shown to be around the month of January.
- FIGURE 29 is a diagram illustrative of a screen display wherein the stacks of FIGURE 28 have been further filtered by the month of January, and further showing a filter term of "day".
- the information line 640 and address bar 641 now indicate that the items on the display are those that have been filtered by the term "January”.
- the Backups stack 652 is now shown to contain two items, while the Business Plans stack 653 is also shown to contain two items.
- the information line 644 indicates that there are a total of four items on the display, which take up a total of 10 MB of memory.
- a "pick a day" selector 623B is provided, should the user wish to further filter the results to a specific day.
- An illustrative calendar control 14400where a day or range of dates may be selected is shown in FIGURE 144.
- filter terms may be presented by the system, or typed by a user. Once a filter term is selected, the remaining filter terms that are presented may be updated (e.g., after the year "2002" is selected in FIGURE 26, in FIGURE 27 the options for selecting a year are no longer presented and instead a "pick a month” option is provided).
- the back button 643 may be selected by a user to back through the filtering process. For example, after the month of "January” has been selected in FIGURE 29, the user may select the back button 643 to back up the filtering process to the year "2002", as illustrated in FIGURE 27.
- the filter menu may also include a "stack by" function, which would work similarly to the stack: by function described above with respect to FIGURES 15 and 16.
- a "file type” filter could have choices for "Excel”, “PowerPoint”, “Word”, and also "Stack by file type”. Choosing the "stack by" function changes the view to show stacks for the various file types.
- the filters may be configured to apply to different properties of the files or items.
- the filters may be classified according to different types, such as: alphabet index; discrete values; dates; and numerical ranges.
- Example properties for the alphabet index may include file name, author, artist, contact friendly name, owner, document author, document title, document subject, and description.
- Example properties for the discrete values may include location, file type (application name), genre, track, decade (for music), rating (for music), bit rate, protected, document category, document page count, document comments, camera model, dimensions, product name, product version, image X, image Y, and document created time.
- Example properties for "the dates may include last accessed, last modified, created on, taken on (for pictures).
- An example property for the numerical range may be file size.
- FIGURE 30 is a flow diagram illustrative of a routine 940 for creating a new quick link.
- quick links are predefined links that can be clicked on by a user to create user selected views of the sets of items.
- a quick link may be thought of as a type of pivot.
- Quick links provide a mechajiism for retrieving a virtual folder. Clicking a quick link can take a user to a desired folder (in the same way that clicking a "favorites" may take a user to a Web site).
- the quick links can be predefined by the system, or can be set by a user. For example, clicking on "all authors” could return a view stacked by authors. Clicking on "all documents” may return a flat view for all of the documents for all of the storage areas. Users can also create their oxvn quick links.
- a user makes a selection on the display to indicate that a new quick link should be formed from the present filter term or navigation.
- the user provides a new name for the new quick link.
- the new quick link is saved and the new quick link name is provided in the quick link section on the display.
- FIGURE 31 is a diagram illustrative of a screen display for creating a new quick link called "January Work" based on the filtering of FIGURE 29.
- the stacks have been filtered by the month of January.
- the user has indicated that the filtering of FIGURE 29 should be saved as a new quick link:, and has named the new quick link "January work”.
- the new January work quick link 612 is shown in the quick links section of the display.
- the user is generally provided with an option such as "save this collection as a quick link”.
- FIGURE 32 is a diagram illustrative of a screen display in which a quick link of "All Authors" is selected. As shown in FIGURE 32, the selection box SB is shown around the All Authors selection 611. Other examples of collections that might be accessible by quick links include “all authors”, “recent documents”, “all documents I've shared”, “all documents I've authored”, “all documents not authored by me”, “desktop”, and "all types”.
- FIGURE 33 is a diagram illustrative of a screen display in which a list of all of the authors of the items of FIGURE 32 is presented. As shown in FIGURE 33, an information line 950 is provided, which indicates columns for showing the name of an item, the author, the modified date, the type, the size, and the location of an item. A list of Authors 951-954 is shown, corresponding to Authors 1-4, respectively.
- FIGURE 34 is a diagram illustrative of a screen display in which "Author 1 " has been selected from the list of FIGURE 33.
- the Author l's documents include documents 95 IA and 95 IB, corresponding to documents 1 and 2, respectively.
- the document 95 IA is shown to have been authored by Author 1, was modified on 11 July, 2001, is a Microsoft Excel file, takes up 282 Kb of memory, and was obtained from the location Wserverl ⁇ folder2.
- the document 95 IB is shown to have been authored by Author 1, was modified on 22 December, 2002, is a Microsoft Word file, takes up 206 kilobytes of memory, and is physically stored in the location My DocumentsYfolderl.
- the locations of the documents 95 IA and 95 IB also illustrate that the virtual folders of the present invention may contain items from different physical locations, as will be described in more detail below.
- FIGURE 35 is a flow diagram illustrative of a routine 960 for creating a new library.
- a library is the documents library described above with reference to FIGURE 10.
- libraries consist of large groups of usable types of files that can be associated together.
- photos may be one library, music may be another, and documents may be another.
- Libraries may provide tools and activities that are related to the particular types of items.
- a new library is created which is to include items with selected characteristics.
- the selected items are grouped into the library.
- the tools and/or activities related to the selected characteristics of the items or to other desired functions are provided.
- FIGURE 36 is a diagram illustrative of a screen display in which a collection of available libraries are shown.
- the libraries include a documents library 971, a photos and video library 972, a music library 973, a messages library 974, a contacts library 975, and a TV and movies library 976, as well as an all items library 977.
- the all items library 977 is shown to include 275 items, which is the total number of items from all of the other libraries combined.
- the information line 644 indicates a total of 275 items, which take up a total of 700 MB of memory.
- the documents library 971 is the library that was described above with respect to FIGURE 10.
- FIGURE 37 is a flow diagram illustrative of a routine 990 for defining the scope of a virtual folder or auto list collection.
- a virtual folder system is able to represent items from multiple physical locations (e.g., different hard drives, different computers, different networks locations, etc.) so that to a user, all of the items are readily accessible. For example, a user can be presented with music files from multiple physical locations on a single display, and manipulate the files all at once.
- a scope is defined for the physical locations from which items are to be drawn.
- the items are drawn from the physical locations as defined in the scope.
- all of the items drawn by the query are presented on a single display.
- FIGURE 38 is a block diagram illustrative of the various sources which may form the scope of a virtual folder collection.
- the system 1000 may include a present computer 1010, an additional computer 1020, external and removable storage 1030, and locations on a network 1040.
- the overall scope 1001 is described as including all of the physical locations from which a user's items are drawn to create collections. The scope may be set and modified by a user.
- FIGURE 34 showing different documents coming from a server and a My Documents folder on a present computer
- FIGURE 18 showing physical folders that are physically stored in multiple locations.
- FIGURE 39 is a flow diagram illustrative of a routine 1080 for including non-file items in a virtual folder collection.
- Non-file items are contrasted with file items that are typically located in a physical file storage. Examples of non-file items would be things like e-mails, or contacts.
- a database is utilized to include non-file items along with file items that may be searched by a query.
- both non-file items and file items are drawn to match the query.
- both the non-file items and the file items that matched the query are presented on the display.
- FIGURE 40 is a diagram illustrative of a screen display showing various non-file items. As shown in FIGURE 40, the items have been filtered to those that include "John". The items are shown to include a contact item 1101, an e-mail item 1102, and document items 1103 and 1104. The contact item 1101 and e-mail item 1102 are non-file items. The present system allows such non-file items to be included with regular file items, such that they can be organized and manipulated as desired by a user. As was described above with respect to FIGURE 2, such non-file items may be contained entirely within the relational database 230, which otherwise includes information about the properties of files.
- a graphical user interface is provided where a different type of filter control is implemented.
- metadata property controls corresponding to properties that are shared by a plurality of the items is provided in the listview mode.
- FIGURE 140 provides an illustrative screen shot of details view in the Windows XP brand operating system.
- each row corresponds to a particular object and each column corresponds to a particular property of the object.
- the properties may be listed in any desired order.
- the properties identified from left to right include Name, Size, Date Modified, Date Created, Date Accessed, Author and Type.
- the objects and their associated information have been divided into two separate groups according to Type - HTML Document and Microsoft Word Document.
- the "Show in Groups" command is accessible by drilling down to the "Arrange Icons By" drop down menu, via the "View” drop down menu at the top of the screen.
- Selection of a property, such as author would causes the objects to be regrouped according to author. If grouping was not activated, selection of a property causes the objects to be sorted by the selected property.
- aspects of the present invention build upon some of the core functionality of the user interface in the Windows XP brand operating system.
- Certain aspects of the invention provide and arrange and filter control that enables a user to filter a view using properties shared by a plurality of items.
- the filter control in some aspects allows a user to easily add, change or remove a filter term from an address bar, such as address bar 641 shown previously in, for example, FIGURE 24.
- a user can sort, group or stack a view of display objects by a property.
- a property header appears as a set of labels along the top of the listview in each of the view modes.
- the view modes may include any view of the physical or virtual files including the icons view, details view, list view, tiles view and thumbnail view.
- Each of the properties in the property header functions as a property control and may be invoked by user selection, such as by clicking on the property control to access associated control functionality.
- the set of properties displayed in the display header may be customizable by the user, may be part of a default template or may be a function of the query on the address bar.
- One way to select a set of properties to be displayed is on an individual shell folder (i.e., page) basis, so that for each virtual folder (autolist), list, file folder, etc. where the set of properties may be customized by default. For example, for a virtual folder called "Recent Documents" that shows all documents viewed recently, the "Date Last Accessed” property would be useful, whereas in other virtual folders, it may not be useful. Also, properties may be reordered within the property header or removed by, for example, dragging and dropping.
- FIGURE 141A shows a property header 14100 for a details view according to an illustrative implementation of the invention and FIGURE 142 A shows a property header 14200 for other listview modes such as a tiles view or thumbnails view.
- the primary difference between the property headers in FIGURES 141 A and 142 A is that the individual property controls in the header 14100 in details view map to the column sizes in the details view, whereas the individual property controls in the header 14200 occupy only the space required to fit the property name.
- Below the property header is an area of the listview mode (not shown) in which the display objects (e.g., physical files and folders, virtual files and folders) are displayed.
- Each property control in the respective header may include a split button divided into a main portion 14110 and a split portion 14112 as shown in details view in FIGURE 14 IB and the other listview modes in FIGURE 142B.
- the split button state may be revealed to the user when she positions the cursor 14120 over a portion of the property control or in the property header 14100, or may be revealed when the property control is initially displayed.
- Positioning the cursor 14120 over the main portion 14110 of the property control and selecting (e.g., clicking) causes the display objects to be sorted in accordance with the property associated with property control.
- the property is "Type"
- selection of the main portion 14110 of the property control would cause the display objects to be sorted alphabetically.
- all physical folders may be displayed, followed by all Microsoft Excel documents, followed by all Microsoft PowerPoint documents, followed by all Microsoft Word documents, followed by all virtual folders (autolists) etc.
- the property control may provide a visual indication that the display objects have been sorted by the property.
- the property control may take on a visual appearance as being a depressed button or other appearance differentiating it from the other property controls. If prior to sorting by "Type", the display objects were sorted by another property such as "Date", that property would become the secondary sort term, such that within the document type the display objects would be secondarily sorted by date.
- positioning the cursor 14120 over the split portion 14112 of the property control and selecting causes an arrange and filter dropdown menu for the property corresponding to the property control to be presented.
- the arrange and filter drop down menu provides various controls which allow a user to group, stack or filter the view of display objects by the property corresponding to the property control.
- the arrange and filter drop down menu includes an arrangement portion 14130 including a list of arrangement commands and a filter portion 14135 including a list of filter terms. The two lists may be separated by a visual divider as shown in FIGURES 141 C and 142B.
- the filter terms correspond to various "Type" properties of the items.
- the set of specific filters provided in the filter portion 14135 is the subset of possible filter terms for which at least one item in the view satisfies the filter term. For example, if one of the display objects in the view were a photo with "vacation" as a keyword, then "vacation" would appear in the arrange and filter drop down menu for the keyword property control corresponding to the keyword property. It will be appreciated that all filter terms may not fit into the arrange and filter drop down menu. As shown, in FIGURES 141 C and 142B, a scroll bar control is provided to allow the user to view other available filter terms. It will be appreciated that items may be moved into or out of the view by operations such as dragging and dropping. Each time an item is added or removed from the view, the set of specific filters provided in the filter portion 14135 is updated to account for the added or removed item.
- the filter terms may be preset or dynamically generated based on evaluation of the property corresponding to the property control and the items displayed in the view.
- FIGURE 22, described above and its accompanying description, provides an illustrative routine for dynamically generating new filter terms.
- the set of possible filters and their display order may depend on how the particular property categorizes the items. With a rrrulti-valued property such as keyworks, each individual value may have its own bucket. Thus, if an item has keywords "vacation; Hawaii; beach”, three separate buckets will be created, one for “vacation”, one for "Hawaii”, and one for "beach”, for filtering. The same process applies to the operations of grouping and stacking, which will be discussed further below.
- dates may be categorized in the following categories: Long Time Ago; Two Years Ago; Last Year; 2004 January; 2004 February; . . . ; 2004 August; 2004 September; Last Month; Three Weeks Ago; Two Weeks Ago; Last Week; Sunday; Monday; Tuesday; Wednesday; Yesterday; Today; Tomorrow; Two Days From Now; Later This Week; Later This Month; Next Year; Some Future Date.
- Other properties such as "Size” and "Type” may have the same bucketization as found in the Windows XP Brand Operating System.
- the list of filter terms in filter portion for properties relating to dates include an additional filtering option, which may be at the top of the list of filter terms referred to as "Pick a Date". Selecting this filter term causes a calendar picker control 14400 to be displayed from which a user can select a specific date or date range.
- FIGURE 14400 provides an example of such a control where the date April 20 has been selected.
- Each filter term in the arrange and filter drop down menu may include a corresponding indicator that provides an indication as to the number of items which satisfy the respective filter term.
- icon 14138 is provided adjacent to the filter term "PowerPoint" and represents a stack of paper. Inspection of the other icons positioned adjacent to the other filter terms indicates that they also represent stacks of papers. However, the stack of paper icons vary in appearance and are dynamically generated, where the number of papers stacked in the icon represent, relatively, the number of items which satisfy the corresponding filter term.
- the filter portion 14135 also may include a checkbox control corresponding to each filter term in the list of filter terms.
- the checkbox control 14140 corresponds to the filter term "Illlustrator Artwork." Selecting the checkbox control next to a filter term causes that filter term to be added to the current selection by placing a check in the selected checkbox control, and leaves the checkbox controls corresponding to the other filter terms in the filter portion 14135 of the arrange and filter drop down menu in their previous state, selected or unselected. Also, selection of the checkbox control may show a live preview of the filter operation in the area containing the display objects. Thus, selection of the checkbox control causes the items that are represented on the display to include items that satisfy the filter term corresponding to the check box control. If no other checkbox control is selected, then only display objects which satisfy the selected checkbox control will be represented on the display.
- selection or de-selection of a check box control may occur in any number of ways including using a pointing device, a keyboard input, voice input, and combinations of the same. For example, if a user holds down the ⁇ SHIFT> key, she can select a range of filter terms similar to how the Windows XP brand operating system allows multiple selections.
- each display object in the display area will satisfy the current query in the address bar (not shown) in a manner similar to described above, for example with respect to FIGURE 21.
- Selection of the checkbox control 14140 causes the checkbox control 14140 to be presented as a checked checkbox control 14140A as shown in FIGURE 14 ID, and causes only those items which satisfy the filter term "Illustrator Artwork" to be presented on the display.
- a routine similar to the routine described in FIGURE 23 may be employed for selection of a checkbox control when no other checkbox control is selected, where step 922 in this scenario would correspond to a user selection of a checkbox control corresponding to one of the filter terms.
- select an ⁇ enter> command or otherwise issuing a command outside the arrange and filter drop down menu causes the arrange and filter drop down menu to close and applies the currently selected filter(s).
- selecting a filter term or an icon associated with a filter term deselects any other checkbox controls, closes the arrange and filter drop down menu and applies the filter term.
- the address bar (similar to address bar 641 shown in other figures such as FIGURE 24) is updated to include the filter term in the query.
- selection of the checkbox control corresponding to the filter term "Excel Worksheet” when the checkbox control corresponding to the filter term "PDF document" has already been selected causes the display to be updated to include those items that satisfy the query in the address bar and which satisfy either the filter term "Excel Worksheet” or "PDF document.”
- a logical OR operation is performed when multiple checkbox controls each corresponding to a respective filter term are selected from a single arrange and filter drop down menu.
- selecting an ⁇ enter> command or otherwise issuing a command outside the arrange and filter drop down menu (causes the arrange and filter drop down menu to close and applies the currently selected filters.
- the query shown in the address bar is updated to include a single filter including the logical OR combination of the filter terms.
- the filter added to the next segment in the address bar may be "Excel Worksheet, PDF document".
- De-selection of a checkbox control causes the checkbox control to be presented as unchecked, and causes those items which satisfy filter terms corresponding to the remaining checked checkbox controls to be presented on the display.
- each selected check box may be unchecked by selecting the command "Don't filter by ⁇ PROPERTY NAME>" in the arrangement portion of the arrange and filter drop down menu.
- the arrangement portion 14330 of the arrange and filter drop down menu includes the command "Don't filter by Type,” selection of which will cause the selected checkbox controls in the filter portion 14335 to be deselected and unchecked.
- the "Don't filter by ⁇ PROPERTY>" command is disabled and appears grayed out or faded as represented in the arrangement portion 14130 in FIGURES 141C and 142B.
- the first property control may provide an indicator that the view of display objects on the display has been filtered. Referring to FIGURE 142C, a symbol 14250 appears in the property control corresponding to the property "Type” to indicate that the view of display objects has been filtered by the property "Type".
- an arrange and filter drop down menu corresponding to the second property control is provided.
- the set of filter terms in the arrange and filter drop down menu is the subset of possible filter terms for which at least one item in the view satsifies the filter term for the second property control as well as the filter for the first property control.
- the set of filter terms may include any filter that was already selected from the arrange and filter drop down menu associated with the first property control.
- FIGURE 143 provides an example of an arrange and filter drop down menu being activated from an overflow property control. Specifically, FIGURE 143 depicts the right edge of the property header where a chevron 14350 represents that additional properties are accessible. Selection of the chevron 14350 results in the presentation of two additional property controls corresponding to the properties "Author" and "Type". The cursor is positioned over the "Type” property control and the control corresponding to the arra_nge and filter drop down menu is selected presenting the arrange and filter drop down nxenu including an arrangment portion 14330 and a filter portion 14335.
- an overflow control such as a chevron
- the arrangement commands present in the arrange and filter drop down nxenu include "Stack by ⁇ PROPERTY>” and “Group by ⁇ PROPERTY>” as well as the "Don't Filter by ⁇ PROPERTY>” command discussed above.
- the property is "Type.”
- the arrangement commands includes "Stack by Type” and "Group by Type.”
- stacks may include "Microsoft Word Documents,” “PowerPoint,” “Excel Worksheet,” and other filter terms included in the list of filter terms in the filter portion 14135 of the arrrange and filter drop down menu.
- Illustrative stacks may take on_ an appearance similar to, for example, items 651-655 shown and described above in FIGURE 10.
- a "Stop Stacking by ⁇ PROPERTY> command may be available when items are stacked by the property of the currently activated property control. Selection of this command causes stacking by the current property to be stopped.
- the "Group by ⁇ PROPERTY>" command is enabled. Selection of the "Group by ⁇ PROPERTY> command causes groups of items to be created in the view according to the categorization applied to generate the filter terms. The appearance of items grouped may be similar to grouping in the Windows XP Brand operating system. Also, a "Stop Grouping by ⁇ PROPERTY> command may be available when items are grouped by the property of the currently activated property control. Selection of this command causes grouping by the current property to be stopped.
- FIGURES 41-50 and FIGURES 134-135 are diagrams related to a virtual address bar that corresponds to the information line 641 of FIGURE 10 and which is formed in accordance with the present invention.
- the virtual address bar comprises a plurality of segments, and each segment corresponds to a filter for selecting content.
- the corresponding filters of each segment represent a virtual address for selecting content.
- FIGURE 41 is a block diagram of an exemplary networked computing environment 1200 suitable for operating the present invention.
- the exemplary networked computing environment 1200 includes a computing device, such as the personal computer 1202 described in regard to FIGURE 1, for interacting with a user, and upon which the user may view files stored either locally or remotely to the computing device. While the following discussion describes the present invention in relation to a personal computer, it should be understood that the computing device 1202 includes many types of physical devices including, but not limited to mini- and mainframe computers, PDAs, tablet computers, and other devices capable of interacting with a user and displaying files and content stored on the computing device and elsewhere.
- the exemplary networked computing environment 1200 may also include one or more remote servers, such as server 1204 that stores files accessible to the computing device 1202, and connected to the computing device via a communications network, such as the Internet 1206, as shown in FIGURE 41.
- the computing device 1202 may also be connected to other information sources storing files or other content, such as a remote database 1208.
- a remote database 1208 storing files or other content
- files and information stored on both the remote server 204 and the remote database 1208, as well as on local storage devices such as hard disk drive 166 (FIGURE 1) may be accessible to, and display able on, the computing device 1202 as part of an integrated file system on the computing device.
- FIGURE 41 While a particular configuration of a remote server 1204 and remote database 1208 is presented in FIGURE 41 those skilled in the art will readily recognize that this particular configuration is for illustrative purposes only, and should not be construed as limiting upon the present invention.
- FIGURE 42 illustrates an exemplary file viewer 1300 having a conventional address bar 1302 associated with displaying files in a computer file system, as found in the prior art.
- a file viewer is a view or window on a display device, such as display device 158 (FIGURE 1), for displaying files or other content to a user.
- a file viewer may be a window corresponding to an executable program specifically for displaying files to a user.
- a file viewer may be a view within an open or closed dialog box on an executable program that must save or retrieve data from a storage device connected locally or remotely to the computer system. It should be noted that the above examples of a file viewer are illustrative, and should not be construed as limiting upon the present invention.
- An address in the conventional address bar 1302 corresponds to a specific location in a file system. As previously described, in order to edit the address displayed in the conventional address bar 1302, a user must modify the address according to specific knowledge of the file system. Alternatively, a user may select an entry in a tree view 1304 to navigate to an alternative location. Those skilled in the art will recognize that other controls external to the address bar 1302 may also be available that are not shown in the exemplary file view 1300. While the address displayed in the conventional address bar 1302 corresponds to a specific location in a file system, related files distributed among multiple folders in the file system cannot be displayed in conjunction with the conventional address bar 1302.
- FIGURE 43 illustrates an exemplary file viewer 1400 having a virtual address bar 1402 associated with displaying files in a computer file system.
- the virtual address bar 1402, having a virtual address 1404 is configured to display similar information to that displayed by the conventional address 1304 of the prior art file viewer 1300 of FIGURE 42.
- a virtual address also referred to as a virtual path, references files stored in a computer file system according to selection criteria.
- the virtual address's selection criteria may reference files stored in a specific location in the file system hierarchy. However, in contrast to a conventional address, the virtual address's selection criteria may also reference files irrespective of their specific file system location.
- a virtual address may reference files stored in multiple locations in a computer file system including physical and virtual locations.
- the file viewer 1400 according to the virtual address 1404 in the virtual address bar 1402, is able to display additional files, such as files 1406 and 1408, not found in the file viewer 1300 of FIGURE 41.
- the virtual address bar 1402 may also be utilized to display content other than files in a computer file system.
- the virtual address bar 1402 may be used to reference content including system devices, system services, or Internet locations.
- FIGURE 44 A illustrates manipulating a segment of the virtual address 1404 in the virtual address bar 1402 in order to navigate in a computer file system.
- Each virtual address bar such as virtual address bar 1402 is comprised of one or more interactive segments, such as segments 1502, 1504, 1506, and 1508.
- Each segment in a virtual address bar may correspond to one or more predetermined filters, or selection criteria, on all of the available content or files accessible to a computer file system.
- the filters of all of the segments in a virtual address bar 1402 represent the virtual address bar's virtual address.
- the first segment in a virtual address bar such as segment 1502 is referred to as a root segment, or root filter.
- the root segment represents the broadest category of content available for selection by the virtual address bar 1402.
- segment 1502 "Files" would likely represent a filter that references all files accessible to the computer file system.
- a root segment may represent a filter that references all system services available to the user on the computer system, or a filter that references all hardware devices installed in the computer system.
- numerous other alternative root filters may be utilized by the present invention. Thus, the above described examples are given for illustrative purposes, and should not be construed as limiting upon the present invention.
- each segment in a virtual address bar 1402 such as segments 1504, 1506, and 1508, represent additional filters to be applied when selecting and displaying files or content in a file viewer 1400.
- root segment 1502 "Files” references all files available to the computer system.
- Segment 1504 "Document Library" filters the files selected by the root segment 1502, by selecting those files that were generated as documents by the user, such as through a word processor, spreadsheet, or some other document generating application.
- Segment 1506 "Word Documents” filters the files selected by segment 1504 according to those documents that were generated using a word processor, such as Microsoft Corporation's Word application.
- segment 1508 "Author A” filters the word processing documents selected by segment 1506 according to whether they were authored by "Author A.”
- content selected according to the virtual address represented in the virtual address bar 1402 must satisfy the filters corresponding to all of the segments in the virtual address bar.
- Segments in the virtual address bar 1402 are generally ordered from those filters that are most inclusive, to those filters that are least inclusive. For example, as previously discussed, segment 1502 "Files” is the broadest and most inclusive. Segments 1506 “Word Documents” and segment 1508 "Author A” are less inclusive.
- the virtual address bar 1402 illustrates the ordering of segments from left to right, and, for purposes of the present discussion, segments 1504, 1506, and 1508 are subsequent to the root segment 1502.
- segments 1504, 1506, and 1508 are subsequent to the root segment 1502.
- other orientations are possible, such as a top-down arrangement, without departing from the scope of the invention.
- the orientation from left to right should be viewed as illustrative, and not construed as limiting on the present invention.
- segments in a virtual address bar 1402 do not necessarily correspond to specific locations in a computer file system, such as folders, drives, and directories.
- segment 1504 "Document Library" may reference files or content distributed on multiple servers, drives, or folders/directories.
- certain segments in a virtual address bar 1402 may reference specific locations with a computer file system hierarchy.
- FIGURES 48A and 48B A further discussion of virtual address segments referencing specific file system locations is given below in regard to FIGURES 48A and 48B.
- each segment in a virtual address bar 1402 represents an actionable, interactive user interface element.
- a segment in a virtual address bar 1402 is responsive to user selection, monitors whether a cursor is located over the segment for a specific period of time, and may be removed from the virtual address bar by a dragging user interaction.
- a user may place a cursor 1510 over a segment in the virtual address bar 1402, such as segment 1504 "Document Library,” to select, or click, on that segment in order to navigate to that level, i.e., truncate the virtual address at that segment, as described in regard to FIGURE 44B.
- FIGURE 44B illustrates the results of selecting a segment 1504 in the virtual address bar 1402.
- the user By clicking on the segment 504 in the virtual address bar 1402, the user is indicating a desire to navigate to that level in the virtual address. In effect, the user is trimming off those filters subsequent to the selected segment. For example, by clicking on segment 1504 "Document Library" (FIGURE 44A), the resulting virtual address 1404 no longer contains segments 1506 "Word Documents" and 1508 "Author A” (FIGURE 44A). Additionally, because the user has navigated to a less restrictive set of filters, the resulting virtual address 1404 in the virtual address bar 1402 is more inclusive.
- FIGURE 44C is similar to FIGURE 44A, but replaces segment 1508 with segment 1520.
- Segment 1520 includes two filters or selection criteria, "2002" and "2003", which are logically combined to produce the results displayed in the file viewer 1400.
- the ",” between the two filters or selection criteria serves as a logical operand.
- Boolean operators such as AND, OR, NOT, NAND, NOR, XOR, etc. may be applied.
- the ",” serves as an "OR” operator so items which satisfy all the preceding filters or selection criteria (Files, Document Library, Word Documents) and which either were created in "2002” or were created in "2003” satisfy the logical expression and are presented in the file viewer 1400.
- the two filters or selection criteria may identify items in virtual or physical locations.
- one filter or selection criteria may identify items in a physical location, while the other may identify items in a virtual location.
- Any number of filters or selection criteria may be logically combined in a single segment, but for practical purposes, it would better to limit the number combined to a number which can be displayed together on the address bar to minimize user confusion. While logically combining filters or selection criteria across properties is within the scope of the invention, it would be preferable to logically combine filters or selection criteria within the same property for organizational purposes and to avoid potential user confusion.
- a peer filter is an alternative filter that may be selected and applied to a given segment in the virtual address bar.
- peer filters for segment 1506 "Word Documents" may include filters such as "Excel Documents," “Journals,” and the like. Other types of filters, including specific file system locations, hardware devices, or computer services, may also be applied to a given segment in the virtual address bar.
- Peer filters may or may not be logically related to a given segment's current filter.
- Each segment in a virtual address bar may have peer filters. Selecting a peer filter of a segment in a virtual address bar is sometimes referred to as navigating laterally. Selecting peer filters of segments in a virtual address bar is described below in regard to FIGURES 45A-45D, and also in regard to FIGURE 49.
- FIGURES 45A-45D are pictorial diagrams illustrating selecting a peer filter associated with a segment of virtual address in a virtual address bar 1600.
- virtual address bar 1600 has a virtual address comprising multiple segments, segments 1602-1608.
- a user In order to select a peer filter for a given interactive segment in a virtual address bar 1600, a user must make an alternative selection, or alternative manipulation, of that interactive segment.
- One way to make an alternative selection is to right click on a given segment. Right clicking is known in the art and refers to using a secondary button on a mouse, or other input device, where the secondary button is typically on the right-hand side of the mouse.
- an alternative selection may be made by locating the cursor over an interactive segment and leaving the cursor in place for predetermined amount of time, sometimes referred to as hovering.
- hovering an alternative selection may be made by locating the cursor over an interactive segment and leaving the cursor in place for predetermined amount of time, sometimes referred to as hovering.
- FIGURE 45A To illustrate alternatively selecting a segment, with reference to FIGURE 45A, a user first places the cursor 1610 over segment 1604 "Document Library" for a predetermined amount of time, i.e., hovers over the segment, to select that segment.
- FIGURE 45B demonstrates trie results of alternatively selecting segment 1604 "Document Library” in the virtual address bar 1600.
- a peer filter view 1612 is displayed including peer filters corresponding to the selected segment. It should be understood that the peer filters presented in the peer filter view 1612 are for illustrative purposes only, and should not be construed as limiting upon the present invention.
- the user positions the cursor 1610 over one of the filters presented in the peer filter view 1612, such as peer filter 1614, and selects the peer filter.
- the previously selected segment 1604 (FIGURE 45A) is replaced with a new segment 1616 representing the selected alternative peer filter 1614.
- segments 1606 "Journals” and 1608 "All Documents in 2002" are removed from the virtual address bar 1600 in FIGURE 45D.
- a user may also wish to navigate to, or select, child filters or selection criteria of current segments in a virtual address.
- a parent node or parent filter
- Each child node is a child filter or selection criteria and further restricts the parent node or parent filter or selection criteria.
- Each segment in a virtual address " bar may have child filters or selection criteria.
- segment 1504 is the child of segment 1502. Selecting child filters or selection criteria of segments in a virtual address bar is described below in regard to FIGURES 135A-135D, and also in regard to FIGURE 134.
- FIGURES 135A-135D are pictorial diagrams illustrating selecting a child filter or selection criteria associated with a segment of virtual address in a virtua.1 address bar 13500.
- virtual address bar 13500 has a virtual address comprising multiple segments, segments 13502-13508.
- Child controls 13503, 13505, 13507 and 13509 are associated with interactive segments 13502, 13504, 13506 and 13508, respectively. It will be appreciated that each segment and its associated child control may form a split button.
- FIGURES 135B-135D An example of selecting a child filter or selection criteria will be described in connection with FIGURES 135B-135D.
- a user To select a child filter or selection criteria, with reference to FIGURE 135 A, a user first places the cursor 13510 over the child control 13505 for a predetermined amount of time, i.e., hovers over the control, to select the child control. Other selection operations are possible as well such as selecting the control by performing a left click operation on the child control 13505.
- FIGURE 135B demonstrates the results of selecting the child control 13505 associated with the segment "Files" in the virtual address bar 13500.
- a child view 13512 is displayed including a list of child filters or selection criteria for the corresponding interactive segment 13502 and the corresponding icon for the child filter or selection criteria.
- the icon may identify a particular type for the child filter or selection criteria, such as whether it represents a virtual or physical location and the particular type of virtual or physical location.
- a split menu is shown with the icons in the left hand cohimn and the child filters or selection criteria in the right hand column of the child view. It should be understood that the child filters or selection criteria presented in the child view 13512 and the icons are for illustrative purposes only, and should not be construed as limiting upon the present invention. Also, It should be appreciated that the icons may be displayed adjacent to any address type whether or not part of a child view, peer view or otherwise.
- the user positions the cursor 13510 over one of the child filters or selection criteria, presented in the child view 13512, such as child filter or selection criteria 13514, and selects the child filter or selection criteria 13514.
- the segment 13504 succeeding the parent segment 13502 associated with the child control 13505 (FIGURE 135A) is replaced xvith a new segment 13516 representing the selected child filter or selection criteria 13514.
- Segments may be added to a virtual address in a virtual address bar through various user interactions at the end of the existing segments.
- a user may manipulate an actionable control associated with a particular filter found on a window, or file viewer with the virtual address bar. For example, with reference to the file viewer 1400 of FIGURE 43, a user may click on the actionable control 1412 "2003" to add a corresponding filter to the virtual address 1404 in the virtual address bar 1402.
- a user may manually enter in a known fil ⁇ ter at the end of the virtual address by typing the filter's name.
- a newly added filter conflicts with an existing filter if the newly added filter is mutually exclusive to the existing filter.
- a newly added filter that is equivalent to an existing filter is not added because it has no effect.
- FIGURES 46A-46D are pictorial diagrams illustrating adding filters to a. virtual address 1702 in a virtual address bar 1700, and removing conflicting existing filters.
- FIGURE 46A illustrates an exemplary virtual address 1702 displayed in a virtual address bar 1700.
- a new filter represented by segment 1706 "2 O02"
- segment 1706 "2 O02" is added to the virtual address 1702.
- new filters are added to the end of the virtual address, as indicated by placing segment 1706 "2002" at the end of the segments in the virtual address bar 1700 of FIGURE 46B.
- the process undertaken for adding segment 1706 "2002” determines that the added filter does not conflict with any current filters in the virtual address 1702. Thus, no existing fiLters are removed from the virtual address 1702.
- segment 1708 "Author A” Another filter is added to the virtual address 1702, represented by segment 1708 "Author A.”
- the process undertaken for adding this new filter determines that the new filter, "Author A,” would conflict with the filter represented by segment 1704 "Author A-F” because the new filter, "Author A,” is narrower than the existing filter. Accordingly, segment 1704 "Author A-F” is removed from the virtual address bar 1700, and segment 1708 "Author A” is added to the end of the segments in the virtual address bar.
- FIGURE 46D illustrates the results of adding segment 1710 "2003" to th& virtual address bar 1700 of FIGURE 46C. Filters in a virtual address 1702 are restrictive, not cumulative. Each filter further restricts the selected content. Thus, mutually exclusive filters would prevent the virtual address 1702 from selecting any files or content, and therefore, create a conflict. As illustrated in FIGURE 46D, segment 1706 "2002" (FIGURE 46C) is removed from the virtual address bar 1700 because of a conflict as it is mutually exclusive with the newly added segment 1710 "2003.”
- FIGURES 47A and 47B illustrate an exemplary virtual address bar 1800 displaying a virtual address where the virtual address exceeds the virtual address bar's display capacity. As shown in FIGURES 47 A and 47B, scroll icons 1802 and 1804 indicate the direction the virtual address bar 1800 may scroll in order to display the previously undisplayed portions of the virtual address.
- the interactive segments displayed are the most specific. For instance with reference to FIGURE 47C, the broader interactive segment FILES is not included while the most specific interactive segments are displayed on the virtual address bar 1800.
- the chevron 1806 serves as an overflow indicator to indicate that the adjacent interactive segment DOCUMENT LIBRARY has ancestors that are not displayed.
- the chevron 1806 has dual roles in that it also serves as a child control as well as an overflow indicator.
- the selection of the chevron 1806 provides the child filter or selection criteria list 1812 including filters POWERPOINT DOCUMENTS, WORD DOCUMENTS, VISIODOCUMENTS and EXCEL DOCUMENTS for the interactive segment DOCUMENT LIBRARY and also displays an ancestor list 1808 for the interactive segment DOCUMENT LIBRARY including the ancestor FILES. Selection of an ancestor filter or child filter from the ancestor or child filter lists results in the address bar being modified to display that filter and remove all subsequent filters. It will be appreciated that the chevron 1806 could serve as a control for displaying an ancestor list and an independent child control may exist.
- FIGURE 48 A is a block diagram illustrating a virtual address bar 1900 having segments referencing both virtual and actual locations in a file system.
- a virtual address in a virtual address bar 1900 may contain segments referencing specific locations within a computer file system hierarchy, and also contain segments referencing virtual, or logical, locations within a computer file system. Files or content referenced by a virtual segment may be distributed among many physical locations.
- a virtual address bar 1900 may contain segments referencing physical locations and segments referencing virtual locations.
- virtual address bar 1900 includes segment 1902 "Local Disk (C:)” referring to files or content contained in a specific area in the computer file system, in particular drive “C.”
- segment 1904 "Case Files” of itself refers to files or content stored in multiple folders in the computer file system hierarchy associated with case files.
- segment 1904 "Case Files” references only those case files found on local drive “C.”
- segment 1906 "Contains 'Fax'" further filters the files on local disk C: and associated with the case files according to whether they contain the word "Fax.”
- a virtual address bar 1900 may be configured to function as a conventional address bar.
- the virtual address bar 1900 switches from displaying segments representing a virtual address, to functioning as a conventional address bar displaying a conventional address 1910, as shown in FIGURE 48B.
- the conventional address 1910 in the virtual address bar 1900 of FIGURE 48B approximates the virtual address displayed in the virtual address bar 1900 of FIGURE 48 A.
- those filters in the virtual address bar 1900 of FIGURE 48 A that do not correspond to physical locations in a computer file system cannot be displayed and are removed from the conventional address 1910.
- segment 1904 "Case Files” and segment 1906 "Contains 'Fax'” are not part of the conventional address 1910 (FIGURE 48B).
- a virtual address bar 1900 functioning as a conventional address bar, to function normally as a virtual address bar, the user must so indicate in a manner other than clicking on the empty area of the bar.
- a virtual address bar When configured to function as a conventional address bar, a virtual address bar must permit the user to click in the empty area for address editing purposes. Clicking in the empty area of a coirventional address bar places an editing cursor at the end of the address/path for editing purposes.
- a user must press a predefined key or key sequence, such as the Esc or Tab key, or by place the focus on another area of a window or view by clicking on another area of the window or view.
- a predefined key or key sequence such as the Esc or Tab key
- Other user actions may also be utilized to reconfigure the virtual address bar 1900 to again function in its normal mode as described above, all of which are contemplated as falling within the scope of the present invention.
- FIGURE 49 is a flow diagram illustrative of a peer filter selection routine 2000 for selecting a peer filter for an identified segment in a virtual address bar.
- the routine 2000 detects a peer filter selection activation. Activating the peer filter selection process is described above in regard to FIGURES 45A-45D.
- the segment for which the peer filter selection has been requested is identified.
- the peer filters for the identified segment are determined from a predetermined list of peer filters.
- the peer filters are displayed to the " user.
- the user's peer filter selection from peer filters displayed is obtained.
- the virtual address is truncated by removing the identified segment from tlxe virtual address bar, and any additional segments that follow the identified segment.
- a segment representing the selected peer filter is appended to the remaining segments in the virtual address bar. Thereafter, the routine 2000 terminates.
- FIGURE 50 is a flow diagram illustrating an exemplary add filter routine 2100 for adding a filter to a virtual address in a virtual address bar.
- the exemplary routine 2100 obtains the filter to be added to the virtual address.
- filters may be added to the virtual address according to user actions external to the virtual address bar, or alternatively, may be directly added to the virtual address bar by typing in the name of a predefined filter.
- a determination is made whether the new filter conflicts with an existing filter already in the virtual address. As previously discussed in regard to FIGURES 46A-46D, a new filter may conflict with an existing filter by substantially narrowing or broadening the scope of the existing filter.
- a new filter may conflict with an existing filter because a new filter is mutually exclusive to an existing filter. If, at decision block 2104, the new filter conflicts with an existing filter, at block 2106, the existing filter is removed from the virtual address. Alternatively, at 2104, if the new filter does not conflict with an existing filter or, after removing the existing conflicting filter in block 2106, at block 2108, the new filter is added at the end of the virtual address. Thereafter, the exemplary routine 2100 terminates.
- FIGURE 134 is a flow diagram illustrative of a selection routine 2200 for selecting a child filter or selection criteria for an associated segment in a virtual address bar.
- the routine 2200 detects a selection of a child control.
- the child filter selection process is described above in regard to FIGURES 135A-135D.
- the parent segment associated with the selected child control is identified.
- the child filters for the identified parent segment are determined from a predetermined list of child filters.
- the child filters are displayed to the user.
- a child filter selection from the displayed child filters is received from the user.
- the virtual address is truncated by removing the segments succeeding the parent segment.
- a segment representing the selected child filter is appended to the remaining segments in the virtual address bar. Thereafter, the routine 2300 terminates.
- FIGURES 51-57 are diagrams related to a system and method in accordance with another aspect of the invention that provides an improved user experience within a shell browser. More specifically, a system and method are provided by which users can more readily identify an item based on the metadata associated with that item.
- a window 2200 represents a screen-size display area for a graphical user interface of a shell browser.
- the window 2200 contains a preview pane area 2202 and a view area 2204.
- the preview pane 2202 may include a preview control 2206, a user interface (UI) or edit control 2208, and a task control 2210.
- the preview control 2206 will provide the user with an image or other visual display of the item being previewed (e.g., a selected file).
- the preview control 2206 may also present the user with controls such as iterator buttons which allow the user to shift the focus from one item to the next by clicking a mouse button.
- Metadata corresponding to one or more items and/or metadata corresponding to the item container may be displayed in a variety of locations within the window 2200.
- the edit control and metadata may be co- located within edit control area 2208 so that the edit control area mot only includes a display of key properties of the previewed item but also presents the user with the option of making edits to the metadata.
- the task control 2210 contains tasks relevant to the namespace and/or the selection.
- the terms "metadata” and "user modifiable metadata” exclude the shell item name.
- shell item name refers to the property which is used for purposes of sorting and displaying the item within the shell browser.
- one unique aspect of the present invention is the ability of a user to edit metadata within a shell browser.
- the present invention contemplates the presence of optional features within the window 2200.
- the preview control 2206 and the task control 2210 are not essential features for purposes of the present invention.
- other non-essential features which are mrt shown in FIGURE 5 IA, such as a toolbar which includes iterator buttons or a show/hide button so the user can open/close the preview pane, are also within the scope of the present invention. Nevertheless, these and other optional features may assist the ⁇ user in readily locating a particular item in the shell browser.
- the view area 2204 provides a listview of one or more items 2212, such as file system files or folders.
- listview refers to an enumeration or list of items within a container.
- item and “shell item” are used interchangeably herein to refer to files, folders and other such containers, and other non-file objects which can be represented in a listview. Examples of non-file objects may include, but would not be limited to, contacts, favorites and email messages.
- shell browser and “file system browser” are used interchangeably herein to refer to a browser which allows a user to navigate through various namespaces including files and other non-file items.
- the present invention contemplates many possible designs and layouts for the window 2200.
- the preview pane 2202 is shown above the view area 2204 in FIGURE 5 IA.
- other layouts such as placing the preview pane 2202 and the view area 2204 side-by-side, are clearly within the scope of the present invention.
- the location of the edit control 2208 is also independent of the location of the displayed metadata and independent of the location of any other controls.
- view types for the items depicted in listview area 2204, such as details, slide show, filmstrip, thumbnail, tiles, icons, etc.
- FIGURE 5 IB is similar to FIGURE 5 IA, except that the view area 2204 is replaced by a view area 2214 which displays the items 2212 in details mode.
- the items 2212 are aligned in a column at the left-hand side of view area 2214, and one or more column headings 2216 form the top row of a set of columns containing metadata 2218 relating to the corresponding item located in the same row.
- the present invention contemplates the ability of a user to explicitly change a metadata value to another value through instantiation of one or more edit controls 2208 anywhere within the window 2200.
- an edit control may be provided within the preview pane 2202 and/or within the view area 2214.
- an edit control which is not initially visible to a user may be provided within the view area 2214. Such a control can be instantiated, for example, when the user hovers over the metadata 2218 and then clicks on it to enter an editing mode.
- FIGURE 52 a schematic illustration is provided of a welcome pane 230O in a shell browser.
- a welcome pane is sometimes referred to as a "null select" pane because it represents a namespace or container as opposed to a selection.
- a preview pane 2302 displays metadata 2304 and key tasks relating to the folder or shell library. If desired, the tasks may be separated into premiered tasks 2306 and other relevant tasks 2308.
- the welcome pane 2300 also includes a view area 2310, in which multiple files or other items 2312 may be viewed.
- the welcome pane metadata 2304 may include information such as properties of the container (e.g., MyPictures), in which case the metadata display may be static.
- the welcome pane metadata 2304 may include information such as a sampling of metadata from each of the items within the container, in which case the metadata display may change frequently.
- the metadata display may be limited to properties of one item at a time by cycling from one item to the next every 30 seconds.
- FIGURE 53 is a schematic illustration of a selected pane 2400 in a shell browser.
- a selected pane represents a selection by the user. If the user selects a container or folder, the selected pane need not be identical to the welcome pane for that container or folder.
- the selected pane 2400 includes a preview pane 2402 which contains a preview control 2404, a metadata display 2406 and a tasks display 2408.
- the selected pane 2400 also includes a view area 24 10, in which multiple files or other items 2412 may be viewed.
- the preview control 2404 displays a preview image of the selected file
- the metadata display 2406 shows properties of the selected file
- the tasks display 2408 provides a menu of relevant tasks for operating on the selected file.
- FIGURE 54 is a, schematic representation of the selected pane of FIGURE 53 but which also includes a context menu 2500 to enable a user to modify metadata in a shell browser in accordance with an embodiment of the present invention.
- the context menu 2500 in FIGURE 54 presents the user with several options for changing the selected metadata.
- the generic text shown in the menu 2500 is of course merely one example of the type of options which may be presented to a user for editing the displayed metadata.
- a context menu can be provided in any window, including a welcome pane, to improve the user experience. As thiose skilled in the art will appreciate, any number and variety of context menus could be supported by the present invention.
- one means for enabling user modifications to displayed metadata within a shell browser is to provide a context menu such as editable metadata context menu 2500.
- a user may summon the context menu, for example, by clicking on the corresponding text or object in the preview pane.
- the present invention contemplates means other than context menus for enabling user modifications to displayed metadata within a shell browser. Another such means for is for the user to click on the metadata to enter an editing mode. By contrast, a user could enter an editing mode by hovering over the relevant text or object in the preview pane. Numerous alternative means are available and within the scope of the present irrvention.
- FIGURE 55 is a flow diagram illustrating a method 2600 for enabling a user to modify metadata displayed in a welcome pane within a shell browser in accordance with an embodiment of the present invention.
- the method 2600 includes displaying a welcome pane and metadata associated with the welcome pane at 2602. Tbien, at 2604, the method provides a control for user modification of the displayed metadata. When the user manipulates the control to modify the displayed metadata at 2606, the method then associates the modified metadata with the welcome pane at 2608 so that the modified metadata will be displayed the next time the welcome pane is displayed.
- FIGURE 56 is a flow diagram illustrating a method 2700 for enabling a user to modify metadata displayed in a selected pane within a shell browser in accordance with an embodiment of the present invention.
- the method 2700 fixst displays a number of items, such as items in a welcome pane or items in a selected container.
- the method displays metadata associated with the selected item(s) at 2706.
- the method provides a control for user modification of the displayed metadata.
- the method associates the modified metadata with the selected item(s) at 2712 so that the modified metadata will be displayed the next time the selected item(s) is/are displayed.
- the displayed metadata may include intersecting properties of the selected items, a union of properties, or perhaps a new property relevant to the selected items.
- the displayed, metadata may include a rotating sample of metadata from each of the selected items (e.g., cycling from one selected item's metadata to the next selected item's metadata every 30 seconds). It is possible for the display of metadata which would result from a selection of all of the items to be identical to the display of metadata which would result from a null select.
- FIGURE 57 is a block diagram of a data structure 2800 co taining user modifiable metadata associated with an item displayed in a shell browser.
- the data structure 2800 includes a title field 2802 which indicates the name of the item. In the case of non-file items, the title field 2802 may contain the name of whatever property is used to alphabetize that item in a listview.
- the data structure 2800 includes a user editable properties field 2804 containing one or more properties associated with the displaced item, wherein the user editable properties are displayed in the shell browser with the displayed item.
- the data structure 2800 may optionally include a read-only properties field 28O6 which contains any read-only properties associated with the displayed item and worthy of display in the shell browser.
- the data structure 2800 may optionally include an all properties field 2808, which contains a link or pointer to a location (e.g., a property page) which contains all of the properties or metadata associated, with the displayed item.
- the all properties field 2808 would not be necessary in the event that fields 2804 and 2806 contain all of the properties associated with the displayed item.
- the data structure 2800 is stored on one or more c- omputer-readable media, such as in a file system or shell, to provide rich storage views, and thus an improved user experience, within the shell browser.
- Th.e present invention enables a number of scenarios which were not possible with conventional shell browsers.
- a student can manage tier projects using the previe ⁇ v pane.
- she can select those documents in her document library and enter the name of the document author and. the name of the project into keyword fields using the edit control.
- Now the new documents will show up in her favorite view: "Documents Grouped by Keyword and Listed by Author.”
- a second example of a new scenario enabled by the present invention involves an employee looking for materials for an upcoming ad campaign.
- FIGURES 58-66 are diagrams related to a system and method £br extending the functionality of an object previewer in a shell browser configured to display a plurality of items representing multiple item types.
- a shell browser is provided which includes a default previewer and an extensibility/ mechanism.
- the default previewer provides a standard level of functionality for multipl e item types.
- the extensibility mechanism enables functionality beyond the standard leveL provided by the default previewer for one or more of the item types.
- FIGURE 58 is a schematic diagram of a prior art graphical user interface for browsing pictures stored in a folder within a shell browser environment which is used for viewing other non-pictorial files and folders.
- a computing environment such as a PC
- FIGURE 58 illustrates a prior solution, a film strip view, which allows users to more readily view and identify the ima_ge associated with a given file within the graphical operating environment.
- the goal of film strip view was to alleviate the need for other software programs when browsing a folder of pictures by providing a quick iterative process that allows a user to preview a sizeable image of one or more picture files within the folder.
- FIGURE 58 relates to a system for browsing pictures stored in a folder, wherein a series of folder pictures is presented as a single row of thumbnails within an environment that is utilized for viewing other non-pictorial files and folders (i.e., a shell browser). It further allows a user to selectively cursor through the thumbnails, as it displays an enlarged preview image of a user selected thumbnail.
- FIGURE 58 is a diagram of a representative window on a user's screen. As shown, the window 3200 is divided into several areas including a header region, a task option area 3206, a preview control area 3202- , a caption or comment area and a filmstrip area 3204.
- the task option area 3206 contains a list of tasks that can be selected by a user in order to perform a wide variety of operations relating to the management of files and folders, as well as other system choices. Some of th&se operations are specific to the pictures in the filmstrip area 3204 and the preview control area 3202.
- the preview control area 3202 is a space in which an enlarged preview image of a user selected picture will be displayed. This space can also contain navigational icons to assist a user in iterating through a series of pictures.
- a caption or comment area that can be utilized to display a variety of textual iniforrnation.
- a film strip area 3204 provides a space to display a single row of thumbnail in ⁇ ages Pl, P2, P3, P 4 of the picture files contained within a given folder.
- the film strip area 3204 also contains cursors to allow a user to scroll tburough a folder for the picture files.
- the filmstrip area 3204 can contaij ⁇ and display thumbnail images in mixed orientation. For instance, as shown in FIGURE 58, Pl, P2 and P4 are in landscape while P3 is in portrait.
- a user can select any one of the thumbnail images, which will cause a larger preview image of the user thumbnail selection image to be displayed within the preview control area.
- user selection of a thumbnail image will also allow the user to select and perform any one of the tasks listed in the taste option area 3206, with respect to the selected image.
- a first control button allows a user to quickly and successively preview an enlarged image of each of the thumbnail images within a given folder, by iterating in one direction. In other words, a user would not have to specifically "click" on each and every successive thumbnail image in order to preview the picture. Instead the user will merely click on the first control button repeatedly to move through the folder.
- a second control button performs a similar iteration function but only in the opposite direction.
- a window 3300 represents a screen-size display area for a graphical user interface of a general purpose shell browser.
- the window 3300 contains a preview pane area 3302 and a view area 3304.
- the preview pane 3302 may include a preview control 3306, an edit or metadata control 3308, a.nd a task control 3310.
- the preview control 3306 will provide the user with an image or other visual display of the item being previewed (e.g., a selected file).
- the preview control 3306 may also present the user with controls such as iterator buttons which allow ⁇ ie user to shift the focus from one item to the next by clicking a mouse button.
- the edit control 3308 not only includes a display of key properties of the previewed item, it also presents the user with a control for making edits to the metadata.
- the task control 331 0 contains tasks relevant to the namespace and/or the selection.
- the present invention contemplates the presence of optional features within the window 33O0.
- the metadata control 3208 and the task control 3210 are not essential features for purposes of the present invention.
- other non-essential features which are not shown in FIGURE 59, such as a toolbar which includes iterator buttons or a show/hide button so the user can open/close the preview pane, are also within the scope of the present invention. Nevertheless, these and other optional features may assist the user in readily locating a particular item in the shell browser.
- the view area 3304 provides a listview of one or more items 3312, such as file system files or folders.
- listview refers to an enumeration or list of items within a container.
- the terms “item” and “shell item” are used interchangeably herein to refer to files, folders and. other such containers, and other non-file objects which can be represented in a listview.
- shell item refers to an item in a shell library. Examples of non- file objects may include, but would not be limited to, contacts, favorites and email messages.
- shell browser and “file system browser” are used interchangeably herein to refer to a browser which allows a user to navigate throxigh various namespaces including files and other non-file items.
- the present invention contemplates many possible designs and layouts for the window 3300.
- the preview pane 3302 is shown above the view area 3304 in FIGURE 59.
- other layouts such as placing the preview pane 3302 and the view area 3304 side-by-side, are clearly within the scope of the present invention.
- views for the items depicted in view area 3304 such as details, slide show, f ⁇ lmstrip, thumbnail, tiles, icons, etc.
- FIGURE 60 a schematic illustration is provided of a welcome pane 3400 in a shell browser.
- a welcome pane is sometimes referred to as a "null select" pane because it represents a namespace or container as opposed to a selection.
- a preview pane 3402 displays metadata 3404 and key tasks relating to the folder or shell library. If desired, the tasks may be separated into premiered tasks 3406 and other relevant tasks 3408.
- the welcome pane 34O0 also includes a view area 3410, in which multiple files or other items 3412 may be viewed.
- the welcome pane metadata 3404 may include information such as properties of the container (e.g., MyPictures), in "which case the metadata display may be static.
- the welcome pane metadata 3404 may include information such as a sampling of metadata from each of the items within, the container, in which case the metadata display may change frequently.
- the metadata display may be limited to properties of one item at a time by cycling from one item to the next every 30 seconds.
- FIGURE 61 is a schematic illustration of a selected pane 3500 in a shell browser.
- a selected pane represents a selection by the user. If the user selects a container or folder, the selected pane need not be identical to the welcome pane for that container or folder.
- the selected pane 3500 includes a preview pane 3502 which contains a preview control 3504, a metadata display 3506 and a tasks display 3508.
- the selected pane 35O0 also includes a view area 3510, in which multiple files or other items 3512 may be viewed.
- the user has selected one of the files. Consequently, the preview control 3504 displays a preview image of the selected file, the metadata display 3505 shows properties of the selected file, and the tasks display 3508 provides a menu of relevaot tasks for operating on the selected file.
- FIGURE 62 is a schematic diagram of a. selected pane similar to the selected pane of 3500 of FIGURE 61 but with extended controls in accordance with an embodiment of the present invention.
- the selected pane 3600 includes a preview pane 3602 which contains a preview control 3604 having extended controls 3614, a metadata display 3606 and a tasks display 3608.
- the selected pane 3600 also includes a view area 3610, in which multiple files or other items 3612 may be viewed.
- the user has selected one of the files 3612., so the preview control 3604 displays a preview image of the selected file, the metadata display 3606 shows properties of the selected file, and the tasks display 3608 provides a menu of relevant tasks for operating on the selected file.
- the extended controls 3614 represent a level of functionality beyond what is typically available from a shell browser.
- a default preview pane or preview control such as those shown in FIGURES 58 and 61, may simply display a preview image of a selected item. If the item is a word processing document or slide presentation, the default preview image may be the first page of the document or slide deck.
- the functionality of the preview image to make it more interactive, a user can quite easily manipulate extended controls 3614 to page through the document o ⁇ slide presentation. This enhanced level of functionality improves the user experience because it allows the user to more comprehensively browse the previewed item without opening it, which is particularly useful for files that are not readily identifiable based on the first page alone.
- Extended controls 3614 can be made available to the user as part of an alternative previewer in a shell browser.
- previewer can refer to a preview control or to the a preview pane which includes a preview control.
- the present invention contemplates a shell browser which provides the user with a default previewer offering a standard level of functionality for multiple item types and one or more alternative previewers offering a different level of functionality for particular item types to enhance the user experience. Opening up the development of alternative previewers to independent software vendors (ISVs) and other third party developers adds value to the file browsing experience by showing relevant aspects of the file in an easily recognizable way.
- ISVs independent software vendors
- the present invention contemplates custom previewers for numerous file types and non-file item types including, but not limited to, image files, video files, contacts, games, scanners, video cameras, document files, spreadsheet files, slide presentation files, drawing files and tablet ink files.
- the present invention enables a number of scenarios which were not possible with conventional shell browsers, some of which have been described above.
- Third parties are allowed to describe and demonstrate their file types by providing code that can look inside the file type and provide a meaningful image that a user will understand.
- Apple could implement a QuickTimeTM preview control, which would be displayed when the user selects a QuickTimeTM file in the shell browser.
- This preview control could provide an alternative or extended level of functionality beyond the default previewer in the shell of an operating system, including functionality such as showing the first five seconds of a QuickTimeTM movie and/or offering buttons and controls for the user to launch the QuickTimeTM player.
- An alternative previewer for a music file could provide similar extended functionality. As those skilled in the art will appreciate, the possibilities for extended functionality in an alternative previewer are unlimited.
- FIGURE 63 is a schematic representation of a selected pane similar to FIGURE 61 but which also includes a context menu 3714 to enable a user to modify metadata in a shell browser in accordance with an embodiment of the present invention.
- the selected pane 3700 includes a preview pane 3702 which contains a preview control 3704, a metadata display 3706 and a task control 3708.
- the selected pane 3700 also includes a view area 3710, in which multiple files or other items 3712 may be viewed.
- the metadata control 3706 and the task control 3708 are not essential features.
- the present invention contemplates the presence of these and/or other optional features which may assist the user in readily locating a particular item in the shell browser or otherwise enhance the user experience.
- the context menu 3714 in FIGURE 63 presents the user with several options, including the choice of selecting either the default previewer or an alternative previewer for the selected item.
- the generic text shown in the menu 3714 is of course merely one example of the type of options which may be presented to a user for selecting a previewer.
- a context menu can be provided in any window, including a welcome pane, to improve the user experience.
- any number and variety of context menus could be supported by the present invention.
- one means for enabling user selection of a previewer within a shell browser is to provide a context menu such as context menu 3714. A user may summon the context menu, for example, by clicking on the corresponding text or object in the preview pane.
- the present invention contemplates means other than context menus for selecting a previewer for the displayed items from a plurality of available previewers within a shell browser. Another such means is for the user to click on the preview control to enter a selection mode. Similarly, the user may be prompted to select a previewer by right-clicking within the preview pane. By contrast, a user could enter a selection mode by hovering over relevant text or over a relevant object in the preview pane. Numerous alternative means are available and within the scope of the present invention.
- FIGURE 64A is a flow diagram illustrating a method 3800 for enabling a user to select a previewer in a shell browser which supports multiple item types in accordance with an embodiment of the present invention.
- the method 3800 provides a plurality of previewers in the shell browser at 3802.
- the plurality of previewers may include a default previewer for multiple item types and one or more alternative previewers for particular item types. These alternative previewers may include installed applications developed by a third party.
- the method 3800 presents the user with a choice of two or more previewers for a particular item type.
- the prompt to select a previewer may be initiated by the shell browser (e.g., upon displaying a new item type) and/or by the user (e.g., by clicking on an object to display a context menu).
- the method 3800 Upon receiving an input from the user at 3806 indicating a selection of one of the previewers for the particular item type, the method 3800 then associates the selected previewer with the particular item type at 3808.
- the selected previewer will remain in use until the user selects a different one. However, if the selected previewer is an installed application, uninstalling the application will also terminate the use of the selected previewer.
- FIGURE 64B is a flow diagram illustrating a method 3810 for automatically selecting a previewer in a shell browser which supports multiple item types in accordance with an embodiment of the present invention.
- the method 3810 provides a plurality of previewers in the shell browser at 3812.
- the plurality of previewers may include a default previewer for multiple item types and one or more alternative previewers for particular item types. These alternative previewers may include installed applications developed by a third party.
- the system (as opposed to the user) automatically and transparently selects a default previewer from two or more available previewers for a particular item type.
- the system may select a previewer in response to an event such as display of a new item type or the presence of an alternative previewer.
- the system is configured to select a default previewer based on logical rules. Under exceptional circumstances, the system may decide at 3816 to override the rules and select a previewer that would not have been selected under the applicable rules. For example, if the rule is to select a newly available previewer over the current default previewer, an installed application may generally have the authority to change tlie default previewer to the previewer now available from the installed application. However, the shell browser, for example, may reserve the right to override the change proposed by the newly installed application. For instance, an override may be appropriate when the newly installed application cannot be authenticated as a proper owner of the item type in question.
- the method 3810 then associates the selected previewer with the particular item type at 3818.
- the selected previewer will remain in use until a different one is selected. However, if the selected previewer is an installed application, uninstalling the application will also terminate the use of the selected previewer.
- FIGURE 65 a flow diagram illustrates a method 3900 for enabling the use of third party previewers in a shell browser which supports multiple item types in accordance with an embodiment of the present invention.
- the method 3900 includes providing a shell browser having a default previewer for the multiple item types at 3902.
- the method 3900 further includes providing an extensibility mechanism for third party development of an alternative previewer for at least one of the multiple item types at 3904.
- the alternative previewer may " be registered in the shell browser at 3906.
- registration may occur substantially at the time of installation. For example, if the application is installed by an OEM, the alternative previewer may be registered before the user has acquired the computer. Alternatively, the user may install the application locally or remotely.
- APIs application program interfaces
- ISVs independent software vendors
- Ttie preview control operates on this data and provides a user interface through the API which is presented in the shell browser. The user may provide input with keystrokes and mouse events which are passed by the shell browser to the preview control which can operate on those user input events.
- the extensibility model may require that only one application that owns the item type selected may provide only one alternative previewer- In other words, the number of available previewers may be limited to a default previewer and one alternative previewer to avoid a poor user experience in which multiple registered, extended previewers are in competition with one another.
- another model would " be to allow any application that can handle the selected item type to provide one additional previewer.
- An alternative model would allow any running code to provide one additional previewer for any item type. It may also be desirable under certain circumstances to allow replacement or removal of the default previewer.
- Many other models are possible and are contemplated by the present invention.
- FIGURE 66 is a block diagram of a data structure 4000 which is stored on one or more computer-readable media and which contains information indicative of " a plurality of previewers in a shell browser.
- the data structure 4000 includes a defa/ult previewer field 4002 containing information indicative of a default previewer which supports multiple item types.
- An alternative previewer field 4004 contains information indicative of an alternative previewer for a first item type.
- Another alternative previewer field 4006 may contain information indicative of a second alternative previewer for the first item type, or it may contain information indicative of an alternative previewer for a second item type.
- th_at in some cases there may only be one alternative previewer field, and in other cases there may be two or more alternative previewer fields.
- the selected previewer field 4008 contains information indicative of whether to invoke the default previewer or an alternative previewer when items of a particular item type are displayed in the shell browser.
- a selected previewer field 4010 may contain information indicative of whether to invoke the default previewer or the alternative previewer when one or more items of the second item type are displayed in the shell browser.
- the information contained in fields 4002, 4004 and/or 4006 may comprise the previewer code which is configured to run when a user selects an object of that type.
- a user or application may define a scope across multiple physical locations. According to an illustrative aspect of the invention, a user or application may also define exclusions from the scope, identifying specific locations which are not to be included in the scope, using an advanced user interface that removes the ambiguities associated with tri- state selection controls.
- one or more aspects of the present invention may be used in a software input control in which the user defines a scope, or range, of items to be affected by a subsequent computer operation. Examples include defining a scope of software features to be installed, or a scope of storage loca.tions to be searched.
- a scope selection control 6701 may, in addition to providing a hierarchical selection tree 6703, include a basket 6705 identifying explicitly included items 6707 and explicitly excluded items 6709.
- the scope selection control 6701 allows users to quickly visually see that which is included in and excluded from a scope by inspecting the basket.
- the control 6701 also provides the user detailed control at each folder level to specify what Is included or excluded in the scope through interaction with the tree 6703.
- the scope selection control 6701 may use different visual indications to show the different states of inclusion in a resultant scope.
- the scope selection coxitrol 6701 allows a user to quickly switch between hierarchy tree and exclusion basket modes of scope inspection, providing a significant optimization of existing controls for scope creation and modification.
- scope selection control 6701 The operation of scope selection control 6701 will now be described v ⁇ ith further reference to FIG. 68.
- the scope may be defined as the resultant set of items selected for inclusion by the user, explicitly or implicitly, via scope selection control 6701, irxinus items explicitly or implicitly selected for exclusion by the user.
- Explicit selection refers to the user affirmatively selecting a specific item for inclusion or exclusion.
- Implicit selection refers to descendants of an affirmatively selected item inheriting the inclusion/exclusion status of the explicitly selected ancestor. An item is said to be unselected when tihe user has neither explicitly nor implicitly selected the item for inclusion or exclusion.
- the hierarchical selection tree 6703 may include an expand/collapse widget 6803 next to each folder having at least one subfolder, as is known in the art. Clicldng on or otherwise selecting an expand/collapse widget 6803 expands or collapses the corresponding node of the tree. Clicking on or otherwise selecting any other location of a row may toggle selection of that location from the current scope, as described herein. Double clicking on a row may both select the node for inclusion/exclusion and may expand its children by one or more levels. The user may also select a checkbox 6805a - 6805k corresponding to the selected item to toggle the status of the item.
- the scope selection control 6701 may indicate the selection in the hierarchy by presenting a first inclusion indicator indicating the item is explicitly included, for example, by drawing or rendering an indicator or graphic on the display screen.
- a user might be defining a scope of search locations to search for a sought after digital photo.
- Checkbox 6805b indicates the user has explicitly selected '2003,' referring to photos taken during the year 2003.
- Checkbox 6805b is checked, and the corresponding row may be highlighted. All ⁇ iles and folders contained within the checked folder are thus presently included in the scope. If the explicitly selected folder contains subfolders, the control 6701 may automatically expand the subfolders one or more levels for display to the user.
- Implicitly selecting '2003' also results in the implicit selection of all children and descendants of '2003.
- Implicitly selection for inclusion may be represented by presenting a second inclusion indicator indicating an item is implicitly included. For example ., in FIG. 68, checkboxes 6805c - 6805i corresponding to all descendants of '2003' are presented to include a faded check mark, and each corresponding row may be presented wi"th faded highlighting.
- the item may also be added to tlxe basket 6705 in the appropriate location, i.e., either included items 6707 (inclusions) or excluded items 6709 (exclusions).
- the control preferably may maintain a 1-to-l ratio between explicitly selected items and entries in the basket.
- the laser has explicitly selected the folder '2003' for inclusion in the scope.
- the control 6701 in addition to marking the folder '2003' as explicitly selected in the hierarchy 6703, also lists the explicitly selected item in inclusions 6707. Because the user has not yet selected any other location for inclusion or exclusion, there are presently no other entries in basket 6705 in FIG. 68.
- a folder may be considered implicitly selected even when the user originally explicitly selected the folder for either inclusion or exclusion, under certain circumstances. For example, assume a user first explicitly selects the folder Vacation. The Vacation folder becomes explicitly selected, and the Fiji and Europe subfolders are implicitly selected. Assume the user subsequently explicitly selects the 2003 folder. The 2003 folder is marked as explicitly selected, and all suMolders, including the Vacation subfolder, are marked as implicitly selected. That is, any time a user explicitly selects an item, all sub items may be marked as implicitly selected, regardless of their previous selection state. However, according to an aspect of the invention, the fact that the user previously explicitly selected an item may be stored for future use.
- the user later de-selects the 2003 folder, realizing the 2003 folder vras selected by accident in the first place.
- Each of the sub items of the 2003 folder may revert to their previous states, and thus the Vacation folder returns to an explicitly selected staUe.
- Ehe scope may be saved including each selection, or the scope may be saved without information regarding selections that are irrelevant to the final saved scope. For example, in the above example, the fact that the user first selected the Vacation folder may be discarded when the scope is saved, because the previous selection of the Vacation folder may " be irrelevant to the final saved scope.
- a folder when a folder is selected for exclusion by a user, that folder and all descendants are removed from the scope.
- a user may select a folder ffbr exclusion by explicitly selecting that folder after it has been implicitly selected ffbr inclusion, i.e., the user reselects the folder.
- the scope selection control 6701 may indicate the selection in the hierarchy l>y presenting a first exclusion indicator indicating the item is explicitly excluded. For example, in FIG.
- Checkbox 6805f is marked with a solid X, and tlhe highlighting on the corresponding row is removed. All files and folders contained withain the explicitly excluded folder are thus excluded from the scope.
- the control 6701 may automatically collapse the subfolders, tlrus only displaying the explicitly excluded folder to the user (without descendants). If the user subsequently expands the widget corresponding to an explicitly excluded folder, tlhe descendants may be displayed with the second exclusion indicator, illustrating implicit exclusion.
- Implicitly selecting '2003' for exclusion also results in the implicit exclusion of all children and descendants of '2003' from the scope.
- Implicit selection for exclusion may ⁇ be represented by presenting a second exclusion indicator indicating an item is implicicly excluded. For example, in FIG. 69, checkboxes 6805g - 6805i corresponding to all descendants of ⁇ x-Girlfriends' are presented including a faded X, and the highlighting on each corresponding row may be removed.
- the item may be added to exclusions 6709 of basket 6705, visually depicting each explicit exclusion as a property of ax explicitly included item (each exclusion also may optionally be stored as a property of an inclusion).
- each explicit exclusion also may optionally be stored as a property of an inclusion.
- the control 6701 in addition to marking the folder 'Ex- Girlfriends' as explicitly excluded in the hierarchy 6703, may list the explicitly excluded item in exclusions list 6709 corresponding to explicitly included folder 2003 in inclusions 6707.
- the control 6701 mary interpret the explicit reselection of the item to indicate the user changed his or her mind regarding that item's inclusion in the scope. However, instead of explicitly excluding the reselected item, the control 6701 may simply remove the explicit inclusion status from the reselected item as well as the implicit inclusion status of any descendants, without marking the reselected item or any of its descendants as either explicitly or implicitly excluded. The items revert to the unselected state. Correspondingly, the item is removed from basket 6705, the check box corresponding to the item in tree 6703 may return to its initial blank state, and any highlighting may be removed. Thus, according to an illustrative aspect of the invention, only a previously implicitly included item can be explicitly excluded from the scope.
- a user may explicitly include an ite ⁇ m from a previously implicitly excluded location.
- the user has decided to include the folder 'Cindy' in the scope, e.g., because the user is still friends with his ex. -girlfriend Cindy, but he still does not want to include photos of his other ex-girlfriends in the scope.
- the scope selection coxitrol 6701 presents first inclusion indicator in checkbox 6805g and highlights the corresponding row.
- the scope selection control 6701 adds a corresponding item to basket 6705 in inclusions 6707.
- the basket preferably displays an item name, location, and icon for each explicitly selected item (although different information may be displayed as desired).
- the path may be truncated if the physical display size of the basket precludes displaying the entire path for an item, e.g., with ' ...
- Control 6701 may determine what portion of a path to truncate according to any desired algorithm. In one illustrative embodiment, control 6701 may determine truncation according to the following priority: show the immediate parent first, show the root (e.g., C: ⁇ , D: ⁇ , etc.) second, and finally fill in the path with the parent's sequential ancestors until the full path is displayed or until the allotted space is full.
- Selection of a folder in basket 6705 may result in the tree 6703 automatically expanding and/or scrolling to display the selected folder, if not already visible in the current view of the tree 6703.
- the tree may also automatically expand the selected folder to display any subfolders of the selected folder.
- Explicit exclusions may be defined as multi-value properties (MVP) of explicitly included items, where multiple exclusions corresponding to the same explicitly included item result not in an additional row in the basket, bat rather in another value added to the exclusions corresponding to the explicitly included item. For example, the view in FIG.
- MVP multi-value properties
- the control 6701 may display th.e fully qualified MVP 7103 so the user can inspect the exclusions.
- the control 6701 may automatically navigate tree 6703 to the selected item.
- the user may save the scope for future use, e.g., to storage medium 22, 24, 39, 30, or the like. Saving scopes may be useful when the user repeatedly performs searches over the same scope, with varying match criteria.
- a scope When a scope is saved, it may be saved as a ⁇ n ordered list of explicit inclusions, with each entry in the list of explicit exclusions havimg zero or more associated explicit exclusions as an MVP.
- the list may store all explicit selections by the user.
- an item might not be included in the list when a. user first explicitly selects the item and then subsequently explicitly deselects that same item (for example, realizing it was selected by accident in the first place). In this manner, the proper scope can be recreated based on the ordered list, and any new folder, which is a descendant of an explicitly included or excluded item, added between uses of the scope will be properly taken into account when the scope is reused.
- a scope may be stored as an extensible Markup Language (XML) file.
- XML extensible Markup Language
- the below XML illustrates a scope identifying explicit inclusions and explicit exclusions, wherein each exclusion is stored as a property of an inclusion, and wherein order is inherently maintained by the order in which data is stored in the XML file:
- FIG. 72 illustrates a method for generating a scope using the scope selection control 6701 described above.
- a user explicitly selects an item in tree 6703.
- the scope selection control 6701 determines whether the explicitly selected item is already set for inclusion in the scope. If so, the method proceeds to step 7209. If not, the scope selection control 6701 in step 7205 determines whether the explicitly selected item is currently set as explicitly excluded from the scope. If so, then in step 7206 the scope selection control reverts that status of the explicitly selected item to the status of the parent of the explicitly selected item.
- step 7205 the explicitly selected item is not currently explicitly excluded (meaning the item is either implicitly excluded or is selected)
- the scope selection control in step 7207 explicitly includes the explicitly selected item in the scope, and implicitly includes in the scope all descendants of the explicitly selected item.
- step 7208 the scope selection control 6701 adds the explicitly selected item to inclusions 6707 in basket 6705.
- step 7209 the scope selection control 6701 determines whether the previously included item is previously explicitly included or previously implicitly included. If the item was previously implicitly included, then in step 7211 the scope selection control 6701 explicitly excludes the explicitly selected item, and implicitly excludes all descendants of the explicitly selected item.
- step 7213 the scope selection control 6701 adds the explicitly selected item to exclusions 6709 in basket 6705, corresponding to the nearest explicitly included ancestor of the explicitly selected item.
- step 7209 the explicitly selected item was previously explicitly included, then in step 7215 the scope selection control 6701 removes the inclusion status for the explicitly selected item and reverts all descendants of the explicitly selected item to their previous state. In step 7217 the scope selection control removes the explicitly selected item from inclusions 6707, along with any corresponding exclusions 6709.
- the scope selection control removes the explicitly selected item from inclusions 6707, along with any corresponding exclusions 6709.
- step 7219 the scope selection control determines whether any more modifications are desired. This determination may be implicit, in that the user does not specifically request to make more modifications, but instead simply continues to step 7201 to make another modification or, on the other hand, the user selects a 'Save' or 'Search' button in step 7221 to indicate to the computer 20 that the user has completed defining the scope, and the computer 20 may use the scope for whatever purpose the user defined the scope.
- the scope may be said to be the resultant ordered list of explicitly included items, with corresponding explicit exclusions, defined by the basket.
- scope selection control 6701 may be operating in accordance with or under the control of control logic, such as software or hardware instructions, stored on computing device 20 and executed by processor 21.
- control logic such as software or hardware instructions
- Figure 73 illustrates an explorer frame 7301 having a list pane 7303, primary view pane 7305, and navigation pane 7307.
- Explorer frame 7301 may also include other features such as a breadcrumb bar 7309 (alternatively referred to as a virtual address bar), menu bar 7311, search window 7313, and information or preview pane 7315.
- List pane 7303 may behave similar to basket control 201, described above.
- the list pane is thus a simple in-frame module available for a user to manipulate collections, e.g., static lists, in the context of the main explorer window.
- a user may create a to-do list and open the to-do list in the list pane 7303, add several items to the to-do list while browsing the system shell via primary view pane 73O5, and then close the list pane 7303, optionally saving the revised to-do list.
- a user may select certain photos stored across multiple folders viewed sequentially in primary view pane 7305, place the selected photos in the list pane 7303, and print the collection of photos by selecting all the photos in the list pane 7303 by selecting print from a context menu or menu bar 7311. The user can close the list pane with or without saving the new collection of photos, as desired.
- a user may open the list pane by selecting a Window menu in menu bar 7311, then selecting List Pane from the Window menu (not shown). Selecting Window > List Pane again may toggle the display status of the list pane 7303, equivalent to Window > List Pane.
- a keyboard shortcut may be used, e.g., Ctrl-K, to toggle the list pane 7303.
- the act of a user selecting Window > List Pane from the menu bar 7311, or inputting Ctrl-K via a keyboard may be ambiguous as to whether the user desires to create a new persisted static list, or whether the user desires to gather a few items for an immediate task at hand, then close the list pane without saving the list.
- any objects in the list pane 7303 are at least temporarily stored. If the user closes the list pane 7303 without explicitly saving the static list, then the contents of the static list are discarded. However, the user may save the static list to persist the static list, e.g., to reuse the static list later, to or share the static list with others, etc.
- the temporary storage location may be LocalAppDataYWindowsYTemporary List.wpl. Each explorer window opened by the user may have a unique temporary storage location associated with it for the purpose of storing the temporary static list until the user optionally affirmatively saves the static list.
- the user can use the temporary list in the same manner that any other list in "the basket is used. Items can be added, removed, re-ordered, etc.
- the list pane 7303 When the list pane 7303 is open, the user can right-click on any item in the primary view 7305 and choose "Add to List Pane" from a context menu (not shown) or view' the menu bar 7311, which will insert that item as a new last item in the list in list pane 73O3.
- the user may also drag and drop items into list pane 7303. However, as this is a temporary list (similar to the "now playing" items in Windows ⁇ Media Player), the contents of this list are discarded when the user closes "the frame 7301 or closes the list pane 7303.
- the system may optionally notify the user if th ⁇ re are unsaved contents in the list pane before closing the list pane 7303 or frame 7301.
- the user may select the title texfoox 7317, inputting a name for the list identified by tlie contents in list pane 7303, and selecting the Save icon. 7319. Selecting the Save icon 7319 may invoke the common file dialog; to allow the user to select the location in which to store the static list.
- the user may context- select (e.g., right-click), in the list " background, and select "Save" from "the context menu, to invoke the common file dialog.
- the user may also open the list pane 73O3 by selecting File > New > List from the menu bar 731 1, which will open the list pane 73O3 if it is previously closed. If the list pane is already open, selecting File > New > List results in the system discarding any ite ⁇ ms currently in trie list pane 7303 and creating a new temporary list.
- the new temporary list behaves just as a list created by the user selecting View > List Pane, and has the same persistence model (i.e., it is discarded when closed, unless the user first saves it).
- the navigation pane 7307 may include.de a lists node 7321, which may be representative of all static lists created by the user, or of all static lists created by the user and stored in a specific location.
- a user may aLso be able to create a new list by conte:xt- selecting the lists node 7321 and selecting "New List" from the context menu, which resmlts in the frame 7301 opening the list pane 7303 with an empty list with a default title, e. g., "New List” or "New List (n)" where multiple default named new lists have been created.
- the list name of the newly created list irtay automatically be in edit mode and/or the user may edit the list name in title text box 7317 in the list pane 7303.
- the new list is created in the default save location for the given explorer frame 7301.
- the list title may always be editable to input a new name for the list in list pane 7303, which results in the system renaming the list on the storage device. If the user selects save button 7319 for an already persisted list (i.e., the list is already saved), the system may perform as if the user selected a "Save as" option. Additionally, when the user selects File > New List from the menu bar 7311 , there might be no change to the state of appearance of the navigation pane. That is, if the lists node 7321 is presently expanded, the new list appears hierarchically underneath the lists node 7321, provided there is space available or its alphabetic insertion allows it to be viewable.
- the list pane 7303 may display a message indicating to the user how to create a list, e. g., "Add files to this list by dragging them in here.”
- a user may double-click or otherwise select the list paxie header 7320 to close the list pane 7303 and present the list contents in primary view 7305.
- the user can alternatively press Shift+double-click to open a new explorer window rooted, in the list displayed in list pane 7303.
- the user can select the 'X' (or equivalent) in the uppermost right corner of the list pane 7303 (not shown) to close the list pane 7303 without any navigation in the primary view 7305.
- Items in the list pane 7303 may exhibit similar behavior as items in primary view 7305. For example, clicking or selecting any given item in the list pane 7303 selects that item.
- both the primary view 7305 and the list pane 7303 may continue to reflect their selection state (using the soft-select state for whichever pane does not have input foots). However, only one pane truly has focus, which is reflected in the view as a visual cue to the user as to what the arrow Keys will do.
- tocus is in the list pane 7303, the same selection and keys may work as in the primary view 7305 - Ctrl+A to select all, arrow keys to move, etc.
- a user can drag and drop to and within the list pane 7303, allowing the user to add, delete, re-order, and otherwise manipulate objects in a static list.
- the system may provide various visual cues to the user.
- the explorer frame may highlight the outer edge of list pane 7303 to indicate that the list pane 7303 is an active drop target.
- the list pane may aJso provide an insertion bar (not shown) if there is more than one item in the list.
- the list pane 7303 remains rooted in a given list, ⁇ vhich provides the user an efficient and simple mechanism by which to build up contents of a collection by navigating a file system in primary view 7305 without requiring the user to engage in a plentitude of tedious cross-window drag-drops.
- the user may reopen the persisted list 7401 in the list pane 73O3 by context-selecting the persisted list 7401 to display a context menu 7405 and selecting a context option 7403 to open the list in the list pane 7303.
- the user can select the list icon 623 in the list pane header 7320 to select the entire contents of the list currently being edited in list pane 7303.
- the user may context-select (e.g., right-click) the list icon 623 to display context menu 7405.
- the user may right-click and drag the icon 623 to a new location to move the storage location of the list or to make a copy of the list in a new location.
- a static list may have a task associated with it, e.g., "Print photos,” “Burn CD,” “Make movie from video clips,” etc.
- selection of the task may open a blank list with task-specific controls.
- the list pane 7303 may automatically display task specific controls dependent on the specific task. User interactions with the list pane 7303 remain the same, however, there is an overall optimized task the user is pushed toward while in a task-based mode.
- Figure 75 illustrates a portion of an explorer frame 7501 prior to a user opening a list pane.
- the explorer frame 7501 includes menu bar 7503 having task options 7505a, 7505b, and 7505c.
- Task 7505c specifically refers to burning a CD.
- Tasks 7505a and 7505b might refer to, e.g., printing photos and makin_g a movie from video clips, respectively.
- the explorer frame opens list pane 7303 with integrated task specific control 7601, as further illustrated in Figure 76.
- the task specific control 7601 provides the user the option to write the contents of the static list to a CD or other optical media or storage device.
- the system may be adapted with logic to know that actual copies of the objects identified are to be written to the CD or other media, and not simply shortcuts, or pointers, to the objects if the collection is a static list.
- the objects identified by the list in list pane 7303 may be written in their order prescribed by the static list, with annotations as applicable.
- Task-based lists may also be temporary, and be discarded when the pane 7303 or frame 7501 is closed unless the user first saves the collection as described above.
- the task control 7601 may automatically switch to be a "Save" button to re-emphasize that the user will otherwise lose the task-based list when the user closes the list pane 7303 or frame 7501.
- the list pane 7303 may be displayed in a countless mumber of ways with endless variations to display details, formats, etc., while still providing the functionality described above.
- Those of skill in the art will appreciate that the below description of an illustrative view is merely an example, and does not limit the scope of the invention as defined in the claims. Variations are possible depending on artistic design, allotted space, and the like.
- the view state of the list pane may display tiles including 32 x 32 point icons with two rows of corresponding metadata.
- the icon size may optionally be locked (Ctrl+mouse may thus be disabled), or variable by the system and/or user.
- the list pane 7303 may optionally limit horizontal resizing such that tiles are never shown side-by- side, which also assists the user to cognitively maintain the order of items in the collection by viewing their vertical order. Also, the list pane preferably only sorts and displays items by their order in the static list.
- Various additional optional features may be included in one or more illustrative embodiments of the invention. For example, when the user closes the explorer frame and the list pane is open on a named list (e.g., one that has an explicit name and not the temporary default name), when the user next re-opens a like explorer frame the list pane may remain open to the list the user was previously viewing. If a temporary to-be-discarded list is in the list pane when the frame is closed, that list is discarded but the list pane may remain open (and empty) when the explorer frame is re-opened.
- a named list e.g., one that has an explicit name and not the temporary default name
- the list pane preferably opens as the rightmost pane, and may open by default to be 200 pixels wide.
- the cursor may become a resize grabber when hovering o ⁇ ver the border between the list pane 7303 and primary view 7305.
- the list pane can be resized to a minimum width, e.g., 33 pixels, and the list pane size is preferably persisted per explorer frame.
- the list pane can also be resized to a maximum size, e.g., as large as the primary view 7305 allows the list pane to grow (e.g., the list pane cannot be made larger than the smallest size of primary view 7305).
- the default size may be other than 200 pixels, and that the list pane may be presented in a position other than the rightmost pane.
- the list pane may appear as the leftmost pane instead of the rightmost pane.
- FIG. 77 depicts an example view 7701 that may be found in a GUI when saving a file.
- various indicia 7702 are shown depicting files that exist according "to the criteria used to generate the view 7701. Such criteria may be varied depending on user preference.
- a view 7701 may be generated to display the contents of a given folder on the system.
- view 7701 may display all files of a given file type (e.g., MICROSOFT EXCELTM Worksheet is shown in the FIG.
- View 7701 may also result from combinations of criteria.
- the view 7701 may be a view of all worksheets that belong to a certain user, or to a certain project, or that are stored in a certain folder. Possible criteria are near limitless, and include, in addition to the ones already listed above, file size, creation date, edit date, project, owner, memory location, user, file name, etc.
- View 7701 may depict a preview representation 7703, or ghost, representing the file that is about to be saved on the system, where the ghost shows the user where the new file will appear in the GUI should the save operation be performed, and identifies th.e location or view in which the new file will be found if saved.
- the file has not been given a name yet, so it bears a label of "Untitled.”
- the ghost 7703 may 3have a distinct appearance to indicate that it represents a file that is not yet technically a stoired file on the system.
- the distinction in appearance may be a transparency or opacity setting, color, font, highlight, or any other way of offering a different appearance.
- the ghost 7703 may be configured to always appear in a predetermined location in the view. For example, and as shown in FIG. 77, the ghost 7703 may be configured to appear as the first indicia shown. The difference in appearance may correspond to changes that occur when a file is selected. For example, the ghost 7703 may be selected by default, and its indicia may have whatever appearance is used in the system to denote selected objects (e.g., may be the same distinction discussed above).
- the ghost 7703 may be treated as any other indicia in the view 770L . Users may select, highlight, modify, drag and drop, etc. the ghost 7703 as they would any other indicia.
- FIG. 78 depicts an example of the FIG. 77 view 7701, in which an indicia 7801 representing an existing file on the system has been selected by the user. That is, indicia 7801 may be given a distinct appearance as well, and may be given an appearance that is distinct from the ghost 7703.
- the ghost may include additional functionality not as sociated with the indicia 7801 for files that already exist. For example, ghost 7703 may " be associated with a unique context menu of functions and options that are applicable to files that aren't already saved.
- Ghosts are not limited to GUIs and views in which large indicia are used. To the contrary, they may appear in other types of views as well, such as a listing as slhown in FIG. 79.
- ghosts 7901 give the user a preview representation of a file th-at is about to be saved (in the example, the file has been named "Accounts Receivable").
- the ghost may be incorporated into the GUI for a system file panel or common file dialog, such as the Save File dialog 8001 shown in FIG. 80, which may be shared by a plurality of applications on the system.
- ghost 8002 may appear to provide the preview representation of how the new file will appear once it is saved.
- three views 8003, 8004, 8005 are shown, where one view 8003 contains indicia for MICROSOFT EXCEL® worksheet files, one view 8004 contains indicia for MICROSOFT POWERPOINT® presentation files, and one view 8005 contains indicia for MICROSOFT WORD® documents.
- the ghost 8002 appears in the first view 8003 because the file is presently set to be saved as a MICROSOFT EXCEL® worksheet.
- This setting is shown in the metadata portion 8006 of the display, which may display a set of metadata (e.g., author, file type, etc.) for the file that is about to be saved.
- the user can interact with the ghost 8002 to change the metadata of the file that is about to be saved.
- the user may drag and drop the ghost 8002 onto different views to change the new file's properties to match those of the new view in which the ghost 8002 is dropped.
- the system may automatically update the metadata 8006 to reflect that the new file will be of type "presentation" instead of type "worksheet.”
- other changes in metadata may be made by moving the indicia. For example, if one view corresponds to items having a first priority, and a second view corresponds to items having a second priority, moving the indicia from the first to the second may change the document's priority level to match the second view.
- Changes made to the metadata may also be automatically reflected in the ghost 8002.
- the ghost 8002 may automatically change and/or reposition itself to reflect the new metadata, changing the title to the new name, and repositioning itself into the correct view based on the new file type (e.g., into view 8004 if the user changes the type to a presentation).
- the indicia may be moved to a different view showing documents having the new priority. In some instances, this may cause the ghost to completely disappear from the user's current screen, if the ghost 8002 is repositioned to a view or location that is not currently displayed on the screen.
- the Save File dialog may also include a Save button 8007 and cancel button 8008 for performing or aborting the save process.
- FIGS. 81 A and 81 B depict an example process that may occur when a file is to be created on a computing system.
- the request to initiate the saving of a new file is received, and the ghost preview may be generated, as discussed above, to reflect how the current saved file would appear if the file were saved using the current metadata.
- the new file may be automatically populated with metadata by the application requesting the sa.ve.
- the display may also include a display of editable metadata, and may also include a preview thumbnail image of the file.
- the system may check to determine whether the user has changed the current view to cause the new file to conform to the properties of the new view.
- Changing the view may simply refer to navigating through a display space, or changing the criteria, of a given display, and may be done by entering different criteria (e.g., requesting to view files of type *.wav) and/or GUI navigation (e.g., dragging and dropping the ghost into a mew view, or just clicking on a folder indicia to enter the folder).
- the process may proceed to step 8103 to determine whether the new view represents a valid save location (physical location or logical location) for the file.
- the user might not have privileges for saving files to certain locations, or to certain views, or the file to be saved is incompatible with "the other files in the new view (e.g., the user has changed views to a spreadsheet view, and the new file is an incompatible image file).
- ghosts from a common file dialog might be prohibited from being moved to a location outside of the dialog. Changing views does not necessarily always result in changing the new file's properties.
- the user may have simply changed views to view different files, with no desire to update the properties of the new file to match those of the changed view. For example, the user may have simply wanted to see what other documents exist for a particular priority, without necessarily changing the priority of the file being saved. If no such updating of the properties is desired when the view is changed, the process may move from step 8102 to step 8106.
- step 8104 the system may move to step 8104 and take steps to alert the user that an invalid location has been selected. For example, the preview ghost may simply disappear from the view. Furthermore, a message may be provided to the us er. If this occurs, the system may simply remain in this state until the user selects a different view representing a valid location for the file. Alternatively, the user may abort the process by, for example, pressing a Cancel button 8008.
- step 8105 If the new view is a valid location, the system may move to step 8105 and carry the change through. This may involve a step of relocating the preview ghost so that it appears in the new view.
- the file's metadata may also be automatically updated to reflect the metadata required (if any) of the newly-selected view. For example, if the user chooses a new view of all files in a given project, then the "Project" metadata property may be revised to reflect the new project.
- step 8106 the system may check to determine whether the user has requested that the new file replace an existing file. This may be done by, for example, dragging and dropping the ghost preview indicia onto an indicia of an existing file. If this occurs, in step 8107 measures may be taken to retain the original set of metadata properties, for example, by saving them to memory.
- the displayed metadata properties may be replaced by the properties of the file to be replaced, to reflect the fact that the new file will assume the same properties as the file it is replacing. Saving the original properties may be helpful should the user change his/her mind about the replacement.
- dragging-and-dropping onto an existing file is not always required, and in those instances where such functionality is not desired, step 8106 may be skipped.
- step 8108 the system may wait to see if the user executes the save process (for example, by pressing a Save button 8007). If the user executes the save process, then the new file replaces the old in step 8109. The previous properties retained in step 8107 may be discarded.
- step 8110 in which the ghost may be displayed in its previous state.
- the original metadata properties saved in step 8107 may be used to repopulate the metadata fields of the ghost preview.
- the new file may retain the properties of the file that was previously to be overwritten. This alternative may make it easy for users to duplicate an entire set of metadata properties without entering each one separately. For example, the properties of the item that was (but is no longer) to be replaced may be retained as a "stamp" or new default set of properties that may be applied in the future to new saved files.
- a check may be made to determine whether the user has edited a metadata property value using, for example, a metadata display area 8006. If the user has edited the metadata, the system may automatically move the ghost preview in step 8112 to a new location commensurate with the new property and, if necessary, update the appearance of the ghost preview to reflect the new metadata property (e.g., selecting a different indicia if the file type has changed, or revising the file name under the indicia).
- step 8113 the system may check to determine whether the user has requested to execute the save, such as by pressing the Save button 8007. If the user has requested the save operation, then the new file is saved in step 8114, and the ghost preview is dismissed (the new file now appears as a normal indicia).
- step 8115 determines whether the user has aborted the save operation by, for example, pressing Cancel button 8008. If the user has canceled the save operation, the ghost may be removed in step 8116. The ghost's property data may also be deleted from the system.
- an explorer (shell browser) window (e.g., as described above with respect to Figures 51-57) may be specialized based on the context of use or the data/files being navigated, thereby providing an improved user experience when browsing files on a system.
- FIG. 82 shows a relationship diagram illustrating how different panels, such as display regions in an explorer window, may be conceptually related. In some instances, there may be a Start panel 8201 that may serve as an initial display region provided to the user to begin browsing through files available through the system.
- the Start panel 8201 may offer the ability to view a different panel for browsing files, such as a Music browser 8202, Documents browser 8203, Pictures browser 8204, Computer browser 8205, or any other browser 8206 desired by the system and/or user.
- Each of these browsers may be a top level panel for browsing through files that meet particular criteria.
- Music browser 8202 may display a listing of files on the system that meet certain music criteria, such as audio music file types.
- the browsers may also offer sub-browsers created using different criteria, such as a Genre 8202a browser panel that displays files that meet one or more genre criteria; or a Playlist 8202b browser panel that displays files relating to one or more play lists of songs. These panels may, in turn, allow the display of files meeting further criteria.
- the Genre 8202a panel mignt display a subset of music files that are songs having genre information, and may offer a Rock 8202c sub-panel that displays a further subset of music files having a genre of rock and roll. Any number of panels may be created to accommodate any desired relationship and method of displaying file data.
- the Documents browser 8203 may offer separate browsers for certain types of documents (e.g., spreadsheets), or documents pertaining to a given project (e.g., XYZ project).
- Each available browser may be defined by a template stored in memory of the computer system.
- the template could simply be a file identifying the contents of the view, the organization, the features to display, etc.
- the template may also specify the actual files that are to be displayed in the browser view.
- FIG. 83 depicts an example of a browser display 8301.
- the display 8301 may include one or more commands 8302 offered to the user.
- the commands may be in any form of command entry, such as menus, links, buttons, icons, or other indicia, and may be custom selected based on the template establishing the browser view.
- the commands 8302 may include specific commands that make sense for music files, such as "Copy to CD,” “Play,” and/or "Shop for Music Online.”
- commands 8302 may also include commands associated with and shared by various browsers, such as "File” commands for file manipulation (e.g., saving and opening files) and commands for editing the current panel (e.g., creating duplicate panels, or sorting multiple existing panels), and may include menus of commands.
- the commands display 8302 may also customize the appearance of the display, such as its color, user interface element details (color, size, positioning, etc.), sequencing of selectable elements, etc.
- Display 8301 may include a list panel 8303 showing the available browser panels.
- the list may include a listing of all available views on the system, which may be presented in a nested menu/sub-menu format to conserve display area. This range of views may be referred to as a pagespace.
- the list 8303 may alternatively list a subset of browser panels that are associated with the current panel, resulting in a smaller pagespace. For example, if the current display 8301 is a music panel, the list 8303 may display Playlist and Genre view options, or specific playlists and/or genres that have their own panels.
- Display 8301 may include a files panel 8304, which may contain a listing of the files that meet the criteria established for the current browser panel.
- the files panel 8304 may include indicia representing data files (such as an icon and/or text), and one or more properties of the files (e.g., their names, authors, file sizes, file types, project affiliation, date of creation/modification, etc.).
- the properties may be arranged, such as in columns, and may be rearranged and/or modified depending on what is appropriate given the criteria used for the selected display 8301. For example, a music browser might choose to list the "Song Title” as the first property, with "Artist” and “Album” next, whereas a browser for project XYZ might list the "Edit Date” first, with "File Size” and "File Type” to follow.
- Each browser display 8301 may have a customized arrangement of files and associated properties. Column width, row size, indicia appearance (e.g., size, color, etc.), grouping, stacking, and any other display properties may be included in this customization. For example, some browsers may display their files as thumbnails (e.g., picture browsers may do this), while other browsers may simply display the files in a text listing of the files and their properties.
- Display 8301 may also include a preview panel 8305 that provides a preview of the content of one or more selected files from the files panel 8304. There may also be a properties panel 8306 that displays properties for one or more selected files from the listview data 8304. The properties panel 8306 may provide greater detail and/or amounts of properties than that shown in listview 8304. Display 8301 may include other types of display and user interface elements as well, such as navigation commands, panel sizing commands, etc.
- Each of the various portions of display 8301 may be implemented as distinct software modules. For example, there may be a Commands module that is responsible for defining the user interface elements that are to go into Commands display 8302, a Listview module for processing the display elements in the files panel 8304, a Preview module for generating the content of the preview panel 8305, etc. These modules may expose application program interface (API) elements to facilitate interoperability with other applications, and the various modules may be provided with parameters such as the criteria for a given view, its position, its size, etc. Having distinct modules may simplify the process of defining new panels with different layouts and arrangements. [0481] Each browser display 8301 may also have differences beyond just having different contents in the display areas discussed above.
- API application program interface
- each browser may have its own customized arrangement of display areas, such that certain areas may be resized/added/removed based on the criteria and/or contents of the particular browser.
- a music browser might wish to do away with preview panel 8305, and offer music commands (e.g., play, pause, cue, add to playlist, burn to CD, etc.) in command area 8302.
- the other display areas may be rearranged and/or resized to take advantage of the space previously occupied by the preview panel.
- the particular layout of the browser may be set, for example, in the template defining the browser view.
- Fig. 84 depicts an example of a different browser 8401 having elements arranged in a different manner.
- each browser view has been enlarged to occupy the space relinquished by the preview panel.
- each browser view may have its own unique display theme, such as watermark pattern, color theme, font, etc., to help further distinguish the view from other views on the system.
- Context menus e.g., available commands, text, etc.
- user interface behaviors e.g., user interface behaviors, default commands on left/right mouse clicks, and other display/interaction attributes may also be different for each browser.
- FIG. 85 depicts an example process by which various browsers may be displayed.
- the system may receive one or more criteria defining a view to be displayed. These criteria may come from a variety of sources. For example, the user might have selected a predefined template for display, and the system may simply receive that selection (or the criteria associated with the template). Alternatively, the system may receive criteria for a new view, such as a new view based on a keyword search using keywords supplied by the user.
- the criteria may be used to identify the various files on the system that satisfy or meet the criteria, and which are to be included in the browser display. These files may be identified through a search of the system's memory, or they may simply be identified from the template information if the template already identifies the files to be listed.
- the system may assemble a specific browser view or panel in step 8503. Assembling the panel may include consulting a predefined template to determine the various elements/modules that are needed in the panel. In some instances, the panel may be further customized and/or modified when the files identified for display satisfy a different set of criteria from the ones established for the template, or if the identified files are suitable for display in a different template that has narrower criteria. For example, if the user requests a browser for all files associated with a given project, such as XYZ Project, the system may be expected to provide a project browser panel.
- a given project such as XYZ Project
- Such a panel may have been defined with the possibility that a project may include files of multiple types, and may have separate display regions to segregate files based on file type. However, if a particular project only happens to have files of one type, then the system may dynamically customize the browser panel for the current display.
- the further customized panel may offer extended command options applicable to the file type, or remove display areas and/or elements that normally would have been used to display files of other types.
- the browser views may be dynamically modified based on the identity of files that meet the criteria used to establish the panel. Other types of custom assembly may be performed.
- the browser may adjust the panels depending on the number of files to be displayed, so that a portion of a first display area's screen space may be transferred to a different display area (e.g..).
- the browser may adjust the panels based on the search criteria used to identify the files for display (e.g., the criteria may be incorporated into a predetermined portion of the display, or the results may be arranged based on the criteria and how well the files matched them).
- the browser view may be generated on a display device associated with the computer system.
- the system may check to determine whether the user has performed an interaction, or supplied an input, to the browser view.
- User interaction may include editing text, navigating through the pagespace by selecting a different view, and/or interacting with any of the displayed elements on the browser. If the user has given an input, then in step 8506 the system may revise the browser in response.
- the revision to the browser may include removing, adding or modifying one or more of the displayed elements in the browser view, and may result in a dramatically different display.
- the user viewing a Music browser view may select one of the music files and request to view a Project browser for a project associated with the selected music file - the Proj ect browser may have a completely different display format.
- the browser displays may be dynamically modified to add and/or remove any of the features described above, which results in a browser interface that continuously provides users with a high level of contextually-appropriate information.
- the system may provide visual effects to smooth trie transition. For example, animation may be used to show a repositioning of a displayed element, fading can be used to show the addition/deletion of elements, and morphing effects may be used to show one element changing into another one.
- animation may be used to show a repositioning of a displayed element
- fading can be used to show the addition/deletion of elements
- morphing effects may be used to show one element changing into another one.
- a user or the system or its applications
- certain features e.g., display elements, available commands, menus, etc.
- step 8507 which occurs after step 8506, or if no user input has been received in step 8505, the system may check to determine whether the browser is to be closed, or left, and if so, the browser process for this browser may end. If not, the process may return to step 8505 to await further user input.
- Fig. 86 illustrates an example diagram of logical relationships that may exist in the system to generate the various browser views described above.
- Browser views may generally be managed, by an underlying operating system (e.g., the Managed 8601 group on the left of Fig. 86), or they may be unmanaged by the operating system so that individual post-installation applications may control the views (e.g., the Unmanaged 8602 group on the right of Fig. 86).
- Ttie system may define a basic overall view frame 8603, which may define aspects that will be common to multiple views.
- the basic view frame 8603 of the system may include a preview pane, a left pane and a task pane.
- the basic configuration may be passed (e.g., as a data structure) to an unmanaged browser application 8604, which may in turn call a default view routine 8605 to generate a desired default browser view for the browser application 8604.
- the application may include a subroutine 8606 used to initiate the browser view, and that routine 8606 may make access a managed data structure containing a page description 8607 that defines the view to be generated for that particular browser application 8604.
- the page description 8607 may include a reference to a browser page structure 8608.
- the browser page 8608 structure may include a variety of properties that ultimately define the view. For example, there may be a view property 8609 defining the basic attributes to be contained in this view (triose attributes may be the same preview pane, left pane and task pane in the basic view frame 8603.
- the page 8608 may also have a data source property 8610, which may identify a location from which the data that populates the particular view may be obtained.
- the source 8610 may, for example, include a static list of data.
- the page 8608 may also include a command property 8611, which may identify the various commands that are to be supported by the view. Each command may be implemented by a separate application and/or routine, and may include commands for handling preview pane tasks, context menu options, etc.
- the above is just one example of how the various browser views may be managed and implemented.
- Page Space Control Terms: The following terms may be used in this section and throughout this specification and, unless otherwise specified or clear from the context, the terms have the meanings provided below:
- Hierarchical Property A type of property wh.ose value may include an ordered collection of categorizing unique strings. Each string may be made unique, for example, by the path through which it is specified, and this path also may be used to define the categories to which each property value belongs.
- Auto lists - Lists of files or other data resulting from queries for information over a fixed scope matching a pre-selected set of filter conditions.
- a “navigation panel,” as described below, may include one or more "auto lists.”
- Lists - Shortcuts or “links” to auto lists, files, file collections, folders, and the like.
- a “navigation panel,” as described below, may include one or more "Lists.”
- "Page” A specific folder, virtual folder, list, auto list, or the like.
- a "page” may constitute a node in a hierarchical table to which users can navigate, e.g., by selecting items from a menu, from the navigational tool according to aspects of the invention, etc.
- Individual "pages” or listings of "pages” at various levels in a storage system and/or available through a computer system or network may appear in a navigation panel and/or a display panel, as described in more detail below.
- Computer-Readable Medium any available media that can be accessed by a user on a computer system.
- computer-readable media may include computer storage media and communication media.
- Computer storage media includes volatile and nonvolatile, removable and non-rein ovable 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, EEPROM, flash memory or other memory technology; CD-ROM, digital versatile disks (DVD) or other optical storage devices; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices; or any other medium that can be used to store the desired information and that can be accessed by a computer.
- Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of "computer-readable media.”
- Page Space Control General Description of Various Aspects of the Invention: Storing Properties in a Hierarchical Relationship
- the data structure in accordance with at least some examples of this invention may include: (a) a first data set containing at least some of content of an electronic file; and (b) a second data set containing property data associated with the electronic file.
- This second data set may include a first flat path string indicating a first property associated with the electronic file, wherein the first flat path string indicates a hierarchical structure of the property data.
- the second data set may include multiple flat path strings of data indicating multiple properties associated with the electronic file, e.g., in a hierarchical structure.
- the second data set may be provided in any desired manner, for example, as metadata included in and/or associated with the first data set.
- a third data set (or even more data sets) containing additional property data may be included in and/or associated with the electronic file, wherein the third data set (or additional data sets) includes another flat path string indicating another property associated with the electronic file, and wherein the additional flat path string indicates a hierarchical structure of the property data in the third (or additional) data set.
- Additional example aspects of this invention relate to systems and methods fox storing electronic data including hierarchical property information.
- Such systems and methods may include: (a) creating an electronic file including electronic data for storage on a computer-readable medium ⁇ e.g., using one or more computer processing systems); (b) receiving input data indicating a first property value to be included as part of the electronic file or associated with the electronic file (e.g., via a mouse, pen, digitizer, keyboard, network connection, disk drive, etc.), wherein the first property value includes a first data set including a first flat path string indicating the first property value, and wherein the first flat path string indicates a hierarchical structure of the first property value; and (c) storing the electronic file with the first flat path string included therein or associated therewith (e.g.
- systems and methods in accordance with at least some examples of this invention further may receive input data indicating a second property value to be included as part of the electronic file or associated with the electronic file, wherein the second property value includes a second data set including a second flat path string indicating the second property value, wherein the second flat path string indicates a. hierarchical structure of the second property value, and wherein the storing of the electronic file includes storing the electronic file with the second flat path string included therein or associated therewith. Any number of property values may be stored in and/or associated with an electronic file in this manner in accordance with the invention.
- Still additional example aspects of this invention relate to systems and method for processing electronic data that includes hierarchical property information associated with it.
- Systems and methods according to at least some examples of this invention may include: (a) receiving data on a computer system or network (e.g., into the computer system's or network's memory) indicating a hierarchical structure of plural defined property values, wherein each defined property value has an unique flat path data string associated with it as compared with all other defined property values in the hierarchical structure; (b) receiving user input indicating a new property value to be included at a user desired location in the hierarchical structure (e.g., via a mouse, pen, digitizer, keyboard, network connection, disk drive, etc.); and (c) based on the user desired location in the hierarchical structure, determining whether the new property value would have a flat path data string that differs from all other flat path data strings existing in the hierarchical structure.
- the flat path data string for the new property value may include, for example, at least a first parent property portion and a first child property portion (optionally, at least one of the first parent property portion or the first child property portion may be identical to a portion of at least one other defined property value in the hierarchical structure).
- the method further may include adding the new property value to the hierarchical structure at the user desired location when the flat path data string for the new property value is determined to differ from all other flat path data strings for properties existing in the hierarchical structure.
- a user may enter input into the system indicating a search query, wherein the search query includes selection of a search property that includes a property value in the hierarchical property structure.
- systems and methods in accordance with at least some examples of the invention may determine which electronic files stored on or available through a computer system or network (optionally with a search scope that limits the scope of files to be searched) meet the search query, wherein the electronic files determined to meet the search query include the first search property stored therein or associated therewith.
- the search query may include user selection of multiple properties in the hierarchical structure, and determination of which electronic files stored on or available through the computer system or network (optionally within a limited search scope) meet the search query may include identification of electronic files that include at least one of the selected properties.
- the property data included in the computer-readable media, systems, and methods according to examples of this invention may be stored in any suitable or desired manner without departing from the invention, e.g., in a manner so as to indicate a hierarchical structure of the property data in the property data set.
- the property data structure may take on one of the following formats: parent property value - delimiter - child property value; parent property value - delimiter - child property value - delimiter - grandchild property value; child property value - delimiter - parent property value; and/or child property value - delimiter - parent property value - delimiter - grandparent property value.
- any number of levels in the property hierarchical structure and the data structure in the flat path data string may be provided without departing from this invention.
- Additional aspects of the invention relate to computer-readable media including computer-executable instructions stored thereon for providing hierarchical property data and/or using hierarchical property data, e.g., for storing, searching, navigating, and/or retrieving electronic files and related information, including computer-readable media for performing the various methods and/or operating the various systems described above.
- Page Space Control General Description of Various Aspects of the Invention: Multiple Property Selections: Other aspects of the present invention relate to methods and systems for processing input data that include multiple user selections, including multiple selections of electronic file property data.
- Such systems and methods may include, for example: (a) selecting a first search parameter from a hierarchical structure including plural search elements (e.g., through a user input device, such as a mouse, pen, digitizer, keyboard, network connection, disk drive, etc.); (b) selecting a second search parameter from the hierarchical structure (e.g., through a user input device, such as a mouse, pen, digitizer, keyboard, network connection, disk drive, etc.); and (c) determining whether the first search parameter is located within the same element set in the hierarchical structure as the second search parameter (e.g., using a computer processing system).
- Various displays may be generated (e.g., on a computer display device) by the computer processing system depending on whether the first search parameter is determined to be located within the same element set as the second search parameter.
- search results indicating a union of electronic files meeting the first search parameter or the second search parameter may be displayed when the first search parameter is determined to be located within the same element set in the hierarchical structure as the second search parameter.
- search results indicating an intersection of electronic files meeting both the first search parameter and the second search parameter may be displayed when the first search parameter is determined to be located outside the element set in the hierarchical structure of the second search parameter.
- the hierarchical structure(s) of the various search elements may include plural properties arranged in a hierarchical manner. At least one of the search parameters may include one of these defined property values. Optionally, in at least some examples, at least one of the search elements will constitute a folder element, a list element, an auto list element, or any other desired element in the hierarchical structure. Still additional features of at least some examples of the invention may include determining or defining a scope for the search activities, optionally based, at least in part, on the hierarchical structure of the search elements and/or user input selecting portions of the hierarchical structure for the search scope.
- Additional aspects of the invention relate to computer-readable media including computer-executable instructions stored thereon for performing various search methods and/or operating various searching systems, including systems and methods like those described above.
- Page Space Control General Description of Various Aspects of the Invention: Grouping and Stacking in the Display Panel: Still additional example aspects of the present invention relate to computer displays providing user interfaces for searching electronic files stored on or available through a computer system or network.
- User interfaces in accordance with at least some examples of this invention may include: (a) a navigation panel (also referred to as a page space control) displaying a hierarchical structure of search elements (page space), wherein at least some individual search elements in the hierarchical structure may be expanded, optionally in response to user input, to display one or more child search elements in the hierarchical structure, and wherein the navigation panel receives user input directed to one or more search elements; and (b) a display panel displaying information relating, at least in part, to search results obtained from searching the electronic files, wherein the search results are determined, at least in part, based on the user input received through the navigation panel.
- a navigation panel also referred to as a page space control
- a hierarchical structure of search elements page space
- the navigation panel receives user input directed to one or more search elements
- a display panel displaying information relating, at least in part, to search results obtained from searching the electronic files, wherein the search results are determined, at least in part, based on the user
- the individual search elements in the hierarchical structure of the navigation panel may remain expanded to display the child elements in the hierarchical structure irrespective of the manner in which the search results are displayed in the display panel (e.g., in a stacked manner, in a grouped manner, in a combined grouped and stacked manner, etc.).
- the various search elements in the hierarchical structure may include, for example, property values, list elements, auto list elements, folder elements, etc., and the hierarchical structure may be, at least in part, defined by individual user input.
- user input selecting child search elements or otherwise changing search elements in the hierarchical structure of the navigation panel will produce and/or drive corresponding changes in the search results displayed in the display panel of the user interface.
- Additional example aspects of the invention relate to systems and methods for navigating electronic data stored on or available through a computer system or network.
- Such systems and methods may include: (a) providing a navigation panel (e.g., using a computer processing system) displaying a hierarchical structure of navigation elements, wherein at least some individual navigation elements in the hierarchical structure may be expanded, optionally in response to user input, to display child navigation elements in the hierarchical structure; (b) receiving user input, through the navigation panel, selecting one or more of the navigation elements (e.g., through a user input device, such as a mouse, pen, digitizer, keyboard, network connection, disk drive, etc.); and (c) displaying information relating, at least in part, to search results obtained from searching the electronic data, e.g., on a display device, wherein the search results are determined, at least in part, based on the user input received through the navigation panel (e.g., using the computer processing system), and wherein the information is displayed on a display device simultaneous with display of the
- systems and methods in accordance with at least some examples of this invention further may include: receiving new user input, through the navigation panel, selecting one or more new navigation elements from the hierarchical structure (e.g., via an input system as described above); and changing the information displayed (e.g., using a computer processing system), at least in part, based on the new navigation element or elements selected, wherein the changed information is displayed on the display device simultaneous with the navigation panel.
- the new user input may constitute, in at least some examples, a child navigation element in the hierarchical structure from the navigation element initially selected to thereby filter down the information displayed.
- the various search elements in the hierarchical structure may include, for example, property values, list elements, auto list elements, folder elements, etc., and the hierarchical structure may be, at least in part, defined by individual user input.
- Still additional systems and methods in accordance with at least some examples of this invention may include systems and methods for displaying information regarding electronic data stored on or available through a computer system or network.
- Such systems and methods may include, for example: (a) providing a navigation panel displaying a hierarchical structure of navigation elements, e.g., on a display device (generated using a computer processing system), wherein at least some of the individual navigation elements in the hierarchical structure include folder elements; (b) receiving user input, through the navigation panel, selecting at least one folder element (e.g., using a user input device as described above); and (c) displaying information on the display device relating, at least in part, to search results obtained from searching the electronic data, wherein the search results are determined (e.g., using a computer processing system), at least in part, based on the user input received through the navigation panel, wherein the information is displayed simultaneous with display of the navigation panel, and wherein the information is displayed such that any sub-folders provided under the selected folder element are displayed as stacks.
- Additional features of at least some systems and methods in accordance with examples of this invention may include: receiving new user input (e.g., via a user input device), through the navigation panel, selecting one or more new navigation elements from the hierarchical structure; and changing the information displayed, at least in part, based on the new navigation element or elements selected (using a computer processing system to generate the display).
- the new user input may be used to select a property value in the hierarchical structure, and the information displayed, at least in part, may correspond to electronic data having the selected property value associated with it.
- Still additional aspects of the invention relate to computer-readable media including computer-executable instructions stored thereon providing user interfaces, performing various searching and/or displaying methods, and/or operating various searching and/or displaying systems including use of the hierarchical searching and navigation elements, including providing the user interfaces, performing the various methods, and/or operating the various systems like those described above.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: In modern computer operating systems and application programs useful on them, many file navigation, searching, listing, and/or retrieval operations occur via query operations, as the systems attempt to locate items (such as stored electronic files or other data) that meet the various query parameters. Aspects of the present invention provide navigational tools that, in at least some instances, also can be used for item placement and file storage, which assists the user in these file navigation, searching, listing, and/or retrieval efforts.
- users may use navigational tools in accordance with this invention, e.g., to navigate to and/or locate information relating to any page in a navigational control menu; to add pages to the navigational control menu or listing; to add items to any set (such as a property set, an auto list set, a list set, a folder set, etc.); to see the content of existing and/or system folders (e.g., a "My Documents" folder, etc.); to see expanded sub-folders within folders; to add properties or other data to files or other items (e.g., optionally in a hierarchical manner), even to files or items stored in an auto list or a system generated list; and the like.
- navigational tools e.g., to navigate to and/or locate information relating to any page in a navigational control menu; to add pages to the navigational control menu or listing; to add items to any set (such as a property set, an auto list set, a list set, a folder set, etc.); to see the content of
- users and/or independent software vendors will be able to customize the system navigational tools for use in different application programs, in different views, in different modes of operation, and/or the like. If desired, users also can be given various tools to restore the navigational panel to a previous state or to its original state.
- navigational tools in accordance with examples of the invention may be designed or customized with lists and/or auto lists that allow users to quickly locate and view information relating to pages of interest.
- systems may have lists or auto lists named "Documents Stacked by Author” (or the like) to allow users to quickly jump to a view showing "stacks" of files collected together based on the underlying authors named for the various documents (the user can further drill down into the stacks, if desired, e.g., to locate specific documents by specific authors), and/or based on properties associated with the files when they are created, stored, edited, downloaded, modified, or the like.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Storing Properties in a Hierarchical Relationship: As described above, certain example aspects of the present invention relate generally to systems and methods for storing and using "properties" in conjunction with individual stored files or data on and/or available through a computer system or network. In general, when saving new files to a computer system or network, such as a PC, a network of PCs, a server, or the like, users typically can assign "properties" to the files. Examples of such "properties” include: Comments, AuthorID, Keywords, and the like.
- this conventionally available "flat" property structure can become difficult to manage and/or use over time (e.g., as the overall number of available properties increases).
- users must separately enter and/or associate each desired property with an individual file. This can be a time consuming task.
- the failure to accurately and/or completely associate properties with respective files may limit a user's ability to search for, locate, and/or retrieve the desired data at later times. For example, as the number of different individual available properties increases, it becomes more difficult for users to reliably retrieve items when they must correctly name, in a search query, one or more of the individual properties associated with the file.
- At least some example aspects in accordance with this invention provide users the ability to assign and store at least some file "property" data along with an electronic file, e.g., as metadata, wherein the assigned property data is part of a hierarchical structure.
- assign and store at least some file "property" data along with an electronic file e.g., as metadata
- the assigned property data is part of a hierarchical structure.
- providing the properties in a hierarchical structure in accordance with examples of this invention will allow users to quickly assign multiple properties to a file througli a simple one property assignment action.
- the availability and use of hierarchical properties in accordance with examples of this invention also will allow users to have more control over ordering their property values (e.g., in a display of the hierarchy, to provide the most common or important elements high in the hierarchy, etc.), and it will allow users to express relationships between the values of a property and have these relationships reflected when retrieving items or assigning values to items.
- the availability and use of hierarchical properties in accordance with examples of this invention also will give users compelling ways to organize the values generated in a property and to browse through and retrieve their items using this organization.
- Hierarchical properties in accordance with examples of this invention, as will be explained in more detail below, may allow users to more easily navigate through files across different properties, locate desired files, and/or retrieve files using a single property (even, at least in some instances, when the property searched with was not explicitly assigned to the file by the user but was simply part of the hierarchy of a property assigned by the user).
- Fig. 87A illustrates an example property hierarchical structure 200 for "keyword” properties that may be used in association with various electronic files, such as digital pictures, music, videos, electronic documents, or the like.
- the user has defined a hierarchical structure 200 that may be used in assigning properties to files, e.g., when the files are first stored, created, downloaded, when modified, edited, moved, etc.
- a "People” node constitutes a parent level node in the hierarchy 200.
- the "People” node includes three immediate children nodes (namely, "Friends,” “Family,” and “Co-Workers"), and each of these children nodes contains further individual children nodes, as shown in the figure.
- assigning a keyword to a file not only associates that specific keyword with the file, but it also associates any higher parent keywords of the associated keyword in the hierarchy with that file.
- assigning the keyword "Dad" to an electronic file would also, automatically, associate the keywords "Family” and "People” with that file in this example system and method, because these keywords exist in the hierarchal path associated with the assigned keyword "Dad” (i.e., the overall hierarchical keyword data applied in this example is: Dad>Family>People).
- Additional aspects of the present invention relate to systems and methods for entering or capturing a hierarchy that may exist between properties (e.g., a user defined hierarchy, an automatically generated hierarchy, etc.).
- this hierarchical property information may be stored, e.g., as metadata contained in and/or associated with the electronic file itself, as a flat path, similar to the manner in which hierarchical folders are stored in various commercially available systems and methods (such as systems and methods with folders available in various operating systems and application programs available from Microsoft Corporation).
- systems and methods according to at least some examples of this invention will store one or more hierarchical properties for an electronic file as a flat path string (akin to a known flat folder path string), which allows the shell operating system to correctly stack, filter, group, and/or otherwise navigate or process information relating to the stored files using the hierarchical properties in the same or a similar manner to which a folder hierarchy may be navigated and/or processed today in various conventional systems and methods that utilize folder structures.
- providing a hierarchical data structure for properties gives users the ability to drill into a sub-property to get to lower child property levels in the hierarchy, in a manner similar to the manner in which users can drill into sub-folders in the known and conventional folder systems.
- the various property values may be differentiated by paths, such as the flat path strings described above.
- an individual value e.g., an individual node name
- Fig. 87A illustrates an example. Specifically, as shown in Fig. 87A, the value "Jim" appears under both the "Family” node and the "Co-Workers” node. Because the paths to these two "Jim" values differ from one another (i.e., People>Family>Jim v.
- a specific node name or value can appear any number of times in a hierarchy provided that the path to it in each instance is different from all other paths to the same name or value.
- Additional example aspects of the invention relate to processes to disambiguate between properties in different branches of a hierarchical structure that utilize the same name or node value.
- the name "Jim" is associated with both a family member and a co-worker.
- systems and methods according to at least some examples of the invention need only compare the values in higher levels of the hierarchy for the tw ⁇ o cases in question to determine whether the values in question have an uncommon parent property, node, or path.
- systems and methods according to at least some examples of this invention can differentiate between the two common node names in the hierarchy by looking at each "Jim" node's parent node.
- the hierarchical structure 8750 illustrated in Fig. 87B typically -would not be permitted, in at least some example systems and methods in accordance with this invention. More specifically, as shown, the hierarchical structure 8750 in Fig. 87B is similar to the hierarchical structure 8700 in Fig. 87A except with respect to certain nodes at the lowest level. In Fig. 87B, the "Family" node contains two child nodes on the same hierarchical level having the same name (namely, the two "Jim" nodes).
- Property values may be assigned to and/or associated with an individual file in any desired manner and/or at any desired time without departing from this invention. For example, users may be given an opportunity to assign property values to a file when a new file is downloaded to and/or saved onto a user's computer system or network.
- Fig. 88 illustrates an example user interface 8800 through which a user may save a file to his/her computer system or network and, if desired, through which he/she may assign one or more properties to the file.
- the user interface 8800 includes a navigation panel 8802, which displays at least some of the properties or other information that may be associated with and/or assigned to a file (e.g., when information relating to a new file is entered in an input panel 8804, in an "edit profile" procedure, and/or at any other desired time).
- the properties in navigation panel 8802 are arranged in a hierarchical manner.
- the various properties can be assigned to and/or associated with the file in any desired manner, e.g., by typing or writing the node name in at the appropriate location in the input panel 8804 (e.g., in a "keyword” input box) by "dragging" and “dropping" a property name from the navigation panel 8802 to an appropriate location in the input panel 8804, etc.
- properties may be assigned by dragging an icon or other representation of a file (e.g., from a file list) onto the desired value or node name in the navigation panel 8802 and dropping the icon or other representation at that location (if desired, the hierarchy in the navigation panel 8802 may exhibit an "auto-expand behavior" in which dragging an icon or other file representation onto a parent property value and holding it over that property value (without dropping) will expand the parent property value (if possible) to at least its next level of hierarchy (e.g., in the same manner that some folders will "auto- expand” in currently available systems and programs)).
- users of hierarchical property systems in accordance with at least some examples of this invention may navigate or search through their hierarchies, manage and/or edit their hierarchies, and/or take other actions, as will be described in more detail below.
- a file or other item when a file or other item is assigned a property value that is a child of another property value (e.g., the value "Playoffs” in Fig. 88), the file or other item also will automatically inherit any and all parent property values associated with the assigned property value (e.g., "Sports Pics>Basketball" in this specific example).
- a parent property value can be assigned to a file or item even if that property value has one or more child property values under it (e.g., one can assign a "Basketball" property to a file).
- a list files, search, or other query including a parent property value as a search element or parameter will return all items tagged with both the designated parent property value and any of its children property values.
- storage systems and methods in accordance with examples of this invention allow users to easily tag items with a relatively few highly specific descriptive properties (e.g., at lower levels in the hierarchy), but by arranging the properties under increasingly broader parent nodes in the hierarchical structure, the tagged items may be made to readily appear, even in response to relatively broad search queries.
- the primary value assigned to the file e.g., the actual value assigned by the user
- the primary value assigned to the file will be highlighted and/or made known or available to the user in some manner.
- the available (e.g., previously defined by the user, system, or another) and/or stored hierarchical properties may be displayed by systems and methods in accordance with examples of this invention at any desired time and/or at any desired location without departing from the invention.
- the properties may be displayed during a "Save” or “Save As” operation (e.g., in the navigation panel 8802). They also may be displayed during file “search,” “list,” or “viewing” operations, e.g., in the same hierarchical tree layout illustrated in navigation panel 8802 of Fig. 88.
- hierarchical properties in accordance with examples of this invention may be displayed in any and/or all places where conventional properties are shown by application programs and/or operating systems today (e.g., as properties shown in a "list view” display, as properties shown in an “item details” display, as properties shown in a file “preview” display, etc.). Also, if desired, hierarchical properties in accordance with examples of this invention may be displayed in any controls used to navigate properties, such as in a tree control supporting properties. [0532] Fig. 88 illustrates an example of display of hierarchical properties in a tree control screen (e.g., in the navigation panel 8802). Fig.
- this example item or file “preview” screen 8900 includes a thumbnail or iconic display 8902 of the item (e.g., a small version of the picture included in the file, in this example), as well as certain system and/or other factual information relating to the file, such as the file name, its saved time/date, file size, and user input "caption” information.
- this item or file “preview” screen 8900 displays certain "property" information input by the user, including: assigned keywords (displayed in a flat path string format), picture subject ID's, user input rating information, and the like.
- any number of properties may be listed in such screens without departing from the invention (optionally, with the ability to display information regarding any undisplayed properties).
- the property information may be entered and/or associated with individual files at any desired time and in any desired manner without departing from the invention.
- properties associated with individual files may be added to, deleted from, and/or modified at other desired times, such as whenever a file is opened, edited, or used, in response to an "edit profile" or "edit properties” command, and the like.
- the properties may be entered via typing (optionally with “auto-completion” of matching strings, optionally from any level in the hierarchy), through drag-and-drop operations, through “right-click” operations, through pen “press-and-hold” operations, etc. Any tools useful for setting, editing, and/or deleting properties associated with a particular file also may be accessed and used in the preview screen 8900 without departing from the invention.
- the actual content of the properties in the hierarchical arrangement may be changed by the user at any desired time and/or in any desired manner without departing from the invention, including, for example, in the manner that conventional "folder" structures are added to, deleted from, and/or otherwise edited in conventional application programs and operating systems.
- new properties may be added under an existing property and/or existing properties may be deleted via "right click” mouse button actions (which may display an appropriate user interface, e.g., a menu including "insert new property,” “delete existing property,” “change node level or position,” cut, copy, paste, or other appropriate actions) or in any other desired manner.
- Fig. 90 illustrates the navigation panel 8802 displaying a hierarchical property listing, e.g., for an application program for storing and editing digital photographs.
- the left hand side of Fig. 90 illustrates the user moving the icon for the keyword "Ocean,” through a drag and drop operation (illustrated by arrow 9002) from beneath the "Camping" parent node to the hierarchical level immediately beneath the "Keyword” node.
- the "Ocean” node may be repositioned in the hierarchy by dropping it in that place (e.g., by releasing the mouse's left button). This action will reposition the node “Ocean” as shown in the right hand side of Fig. 90. If desired, the user can move the former children nodes “ Pacific” and “Atlantic” to accompany the "Ocean” node through additional drag and drop operations.
- systems and methods according to at least some examples of this invention may operate such that repositioning a node also will result in automatically repositioning of its children nodes (if any).
- a user can press the "Control" button while dragging a property value in this manner (or take other pre-determined action) to make another copy of the property value (and optionally its children property values) appear under a different property value (e.g., using a paste command).
- errors may be generated during this repositioning action, for example, if the same property name appears more than once in the new path or position for the moved property.
- Systems and methods according to examples of this invention may handle such situations in any desired manner, e.g., by not completing the desired move, by providing an interface to enable the user to change a name within the path, by displaying a dialog box to advise the user of the problem with various options for rectifying the problem, etc.
- systems and methods may be developed that will allow multiple uses of a single name within a path (e.g., Location>New York>New York), such that this error would not appear unless an attempt is made to produce multiple nodes having the same overall flat path string names.
- Users that take advantage of the hierarchical property characteristics in accordance with examples of this invention may develop a relatively large hierarchical structure for properties such that the overall hierarchical structure, when fully expanded, spans longer than the available space in the navigation panel 8802 and/or the height of their display screen.
- This situation can be handled in any desired manner without departing from the invention, for example, by providing scroll bars within the navigation panel, by allowing children nodes to collapse under their parent nodes (and to be fully expanded or collapsed based on user input, e.g., in a manner similar to the way that hierarchical folder structures expand and collapse in conventionally available systems and methods), etc.
- the 88 and 90 may open at any desired location within the hierarchical structure and/or in any desired expansion/contraction condition, such as always at the top of the hierarchical structure location, at the most frequently used location in the hierarchical structure, at the most recently used location in the hierarchical structure, at a location in the hierarchical structure that includes the open document (if any), in a fully expanded condition, in a fully collapsed condition, in the most recently used condition, etc.
- the navigation panel 8802 may appear at any desired location on the display screen, such as at the left or right side, e.g., based on user preference, default, etc.
- systems and methods in accordance with at least some examples of this invention may include a basic hierarchical structure when shipped, and this basic structure may be used by users as a starting point to build a more complete, richer hierarchy, e.g., one that is more targeted and customized to their own uses.
- Examples of such a pre-determined basic hierarchical structure e.g., for storing digital picture, audio, video, or other user data, may include base nodes such as: Keywords, Events, Places, People (e.g., potentially with child nodes, such as Author, Photographer, Subject People, etc), Dates, My Pictures, My Music, My Documents, My Videos, etc. Any desired information may be included in this basic hierarchy without departing from the invention.
- Fig. 91 illustrates an example display screen 9100 as it may appear, for example, in response to a "List Files," search, query, navigate, or other appropriate command.
- the left hand side of this example display screen 9100 includes a navigation panel 9102 for the hierarchical properties under which at least some of this user's files are stored (e.g., relating to a digital photograph storage/editing system in this example).
- the display screen 9100 with navigation panel 9102 may be a primary entry and interaction point for hierarchical properties for the user.
- a screen 9100 users may be able to view files, present search queries, and/or filter through their files based on the various hierarchical categories that have been created as well as other stored data associated with the files.
- highlighting the node "Keyword" in the hierarchy e.g., by a left mouse button click action
- this action pulls up listings of digital photograph files including thumbnail icons or pictures 9104 illustrating the individual files in the display portion 9106 of the screen 9100.
- the individual files in this example are grouped based on the individual child levels of the hierarchy immediately below the highlighted search term (i.e., grouped as "Sports Pics,” “Summer,” and “Camping” groups in this illustrated example, with the other levels of the hierarchy (i.e., "Flowers” and "Ocean”) not shown due to display portion 9106 size constraints).
- search term i.e., grouped as "Sports Pics,” “Summer,” and “Camping” groups in this illustrated example, with the other levels of the hierarchy (i.e., "Flowers” and "Ocean) not shown due to display portion 9106 size constraints).
- Flowers and "Ocean”
- any desired form or format may be used for storing or representing the hierarchical properties with individual files without departing from this invention.
- the path to that property value through the hierarchical structure may be stored as part of and/or associated with the actual file (e.g., as metadata included in and/or associated with the file).
- the representation or data structure of the hierarchical structure may include, at least: (Parent property value) [delimiter] (child property 1) [delimiter] (child property 2) ....
- a file saved with the individual properties "Football” and “Games Attended” associated with it may have metadata associated with the file that would be displayed along with information about the file in at least some instances (e.g., as shown in Fig. 89), for example, in the form of: “Keyword/Sports Pics/Football;” and “Keyword/Sports Pics/Games Attended.”
- the parent property value is "Keyword”
- the first child property value in each instance is “Sports Pics”
- the second property values are "Football” and “Games Attended,” respectively
- the delimiter is the slash "/” (the delimiter may be a special character used to separate property names, and this delimiter may riot be included in property names, to avoid confusion in the system).
- any number of children property levels may be included in the flat path data string without departing from the invention.
- Properties listed in a navigation panel may behave in a manner similar to the way conventional folders behave in various known operating systems and application programs.
- the manner of expanding and/or collapsing hierarchical properties in the navigation panel 9102 may be similar to expanding and/or collapsing folders in similar folder navigation panels or controls.
- a user in order to view and display child property values under a parent property, a user can click on a "widget" provided to the left of the property (note, for example, the widget with the "+” sign therein for the "Summer” keyword in Fig.
- the widget to its left may be omitted, it may include no additional indicator (e.g., a "+” or "-” sign, etc.), it may include another indicator, or the lack of children nodes may be indicated in another desired manner.
- An indentation scheme e.g., as shown in Fig. 91, also may be used to help better illustrate the hierarchical structure.
- an individual file may have multiple properties associated with it, the same file or item may appear in multiple groupings in the display panel 9106 (note, for example, that Pictures 13 and 44 appear in both the "Sports Pic” grouping and the "Summer” grouping in Fig. 91).
- Systems and methods in accordance with at least some examples of this invention may support still other ways for users to change, modify, and/or use the hierarchical property structure.
- a property value in the navigation panel 9102 is selected via a right-click action when no items in the display panel 9106 are selected
- the user then may be given an option (e.g., via an interface) to add a new hierarchical property as a child under the right click selected node (e.g., a new node with an editable textbox may appear at the location of the new property value in the hierarchical structure to enable the user to type in (or otherwise enter) the new property value).
- a "delete” function or option may be provided, e.g., via a right mouse button click, to enable the user to delete any desired portion of the hierarchy, such as an individual node, a node and all of its child nodes, etc.
- "Promote” and “demote” functions may be provided, e.g., to allow a user to select a property value and move it (optionally along with all of its own child values) up or down a level in. the hierarchy, respectively (e.g., promotion makes the selected node move to a level so that it now appears as a peer to its former immediate parent node).
- a "rename" function may be provided, e.g., via a right mouse button click, that will enable users to give any property value or node a different name (optionally, with limitations if the same name is used twice in a path and/or if two identical flat path names are presented, as described above).
- Potential functions that may be provided in accordance with examples of this invention, e.g., via a right mouse button click when a file is selected in the display panel 9106 include a "remove property” function and an "add property” function, which may be used to remove and/or add one or more properties from/to the metadata or other data stored with and/or associated with the file.
- Additional features in accordance with at least some examples of the invention relate to sharing hierarchical properties, e.g., when existing files including hierarchical property data are sent to another user having a system or network that supports hierarchical property data but does not necessarily have the same available hierarchical property structure corresponding to the newly received file(s).
- Systems and methods in accordance with at least some examples of this invention may be constructed to allow sharing of files (or other items) with hierarchical property values in a manner similar to the manner in which files (or other items) having flat property values are shared.
- the default behavior for when a file or other item comes into a system with hierarchical property values will be as follows: (a) the hierarchy of the new file will be displayed in all areas where hierarchical keywords typically are displayed by the system or network, e.g., in the same manner as if the newly received file originally had been created on the target system ' or network; (b) if the same hierarchy as that required for the new file already exists on the new recipient's system or network, the new file item will associate itself with, the hierarchy already on the system or network; (c) if only part of the path necessary for the new file exists on the recipient's system or network, the remaining parts of the hierarchy to accommodate the new file will be created on the recipient's system or network; and/or (d) if none of the path necessary for the new file exists on the recipient's system or network, the new hierarchy to accommodate the new file will be added to the recipient's system or network.
- the following provides a more detailed example of property hierarchy sharing in situations where a file is received and saved to a new user's system or network.
- the recipient user has an existing property hierarchy with the path/property values "Family/Brothers/Toby.”
- a new file is received by a recipient user (e.g., as an email attachment), and this new file, which is saved to trie recipient's system, includes metadata from the file sender's hierarchical configuration.
- Both the file sender and the file recipient operate programs, systems, and/or methods with hierarchical data structures in accordance with an example of this invention.
- the following table describes the manner in which the recipient user's system may handle receipt of the ne ⁇ V file in various different scenarios:
- the various property values associated ⁇ vith a file may be displayed at any appropriate time and in any appropriate fashion without departing from the invention.
- property information may be displayed in a "preview" panel associated with a file.
- the properties associated with a given file may be included with a "property” page or a "display properties" command associated with a file.
- Existing properties also may be displayed, for example, during save, save as, edit profile, open file, or other similar operations.
- the stored properties associated with a file also may be displayed while the file is opening and/or open, e.g., in a toolbar, and the user may have an interface available for editing the properties, e.g., while actively working with the file, after it is saved, before it is opened, etc.
- Many other options are available for displaying the saved property data associated with a given file without departing from this invention.
- any number of properties may also be associated with a given file without departing from this invention.
- any desired amount of the property data associated with a file may be displayed in the various locations without departing from the invention.
- the entire hierarchical path may be shown for each property (or at least some properties) at any location where one or more of the properties associated with a file are displayed (e.g., in "preview” or "property” panels, like that shown in Fig. 89).
- only the assigned property value itself may be shown at the various locations (and the remainder of the hierarchy can be seen, for example, via the navigational panel, during a cursor "hover" action, etc., as well as via the file information stacking and grouping features to be described in more detail below).
- each hierarchical node in systems and methods according to at least some examples of this invention has a different and unique path.
- This information may be used to resolve conflicts described above. Specifically, for example, when there is a conflict of the type described above (defined as two hierarchical property values being visually represented in the same way), systems and methods according to at least some examples of the invention will traverse the conflicting paths until a different parent property value is found, and that value will be displayed (optionally along with the conflicting lowest level node information).
- the displayed property information e.g., in a "preview” or "property” display, may be represented, for example, as “Cardio Drills... Baseball” and/or “Cardio Drills... Basketball,” and/or in some other appropriate manner to distinctly show the correct hierarchy.
- Hierarchical property information many businesses are arranged with at least some degree of hierarchical structure (e. g., departments, divisions, locations, etc.). More targeted operating systems, methods and/or application programs according to examples of the invention may be developed for such businesses that take advantage of the hierarchical nature of the individual corporation's structure. For example, pre-determined hierarchies may be provided for the computer systems, networks, and/or application programs used by corporate employees that include a predefined hierarchical structure for properties in data stored for the corporation. Such systems and methods can enable at least some overall sensible hierarchical structure in the corporation's systems and networks in which its data may be organized and stored.
- aspects of the present invention also relate to computer-readable media inclixding hierarchical property data stored thereon and computer-readable media including computer- executable instructions stored thereon for allowing entry and/or use of hierarchical property data in various operating systems, application program environments, and/or various other systems and methods, including the systems and methods described above.
- the computer- readable media may constitute computer-executable instructions stored on the various specific examples of computer-readable media described above.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Multiple Property Selections: As described above, additional aspects of the present invention relate generally to systems and methods for searching information contained on a computer system or network, optionally, taking advantage of the hierarchical property structures described above.
- NTFS NT File System
- This feature enabled users to place electronic files in multiple folders. Of course, physically, this feature does not require that the bits representing those electronic files are duplicated multiple times on the computer's hard drive (or other storage system), e.g., once for each folder in which the file is placed. Rather, the different folders reference back to the same file. However, when initially released, this ability was not exposed to end users because putting a single file into multiple folders did not match the user's real, physical world concept ⁇ i.e., the same physical piece of paper cannot be located in two separate physical folders at the same time).
- a new end-user concept called a "list” is being introduced.
- a “list” As a physical analogy, one may think of a “list” as a container that references sets of items ⁇ e.g., electronic files). To better understand “lists,” a more detailed explanation of a "folder” is described.
- a “folder” may be considered as a “set” or group of items that are considered as related to one another in some manner ⁇ e.g., being present in the same "folder” may be one way that items in a set may be considered as "related”).
- Each item or file in a set or folder may include a property called "PARENTFOLDER” ⁇ e.g., in the form of a path, such as "c: ⁇ users ⁇ usera ⁇ documents ⁇ ”).
- this path also is an end user metaphor and does not necessarily reflect the physical structure of the computer.
- the concept of a drive itself also may be considered a metaphor, as a single physical hard drive may be partitioned into multiple “drives,” such as a c drive, a d drive, etc.
- lists may be considered as related to "folders” because each may be thought of as defining a set of items. Unlike “folders,” however, "lists” in accordance with at least some examples of this invention do not define this relationship using a "PARENTFOLDER” property as described above. Rather, “lists” will allow the same item (e.g., an electronic file) to exist in multiple locations (e.g., in multiple, independent "lists”). Like “folders,” “lists” are an end-user concept.
- Putting electronic files or other items in multiple “lists” does not cause the actual physical bits representing the underlying data to be duplicated, but rather, the underlying electronic files or items are referenced by (or "linked” in some manner) to that "list.”
- a person may have a "Shopping List” and an "Urgent 'To Do' List” in which they keep track of items they need to purchase and things that they need to do. Both of these "lists” may include an item such as "birthday present for wife.”
- the user understands that buying a gift is both something that must be done while shopping and something that must be done rather urgently.
- the user further understands, however, that just because this item is entered in two of his/her lists, this does not mean that they need to purchase two gifts. Rather, the single act of buying the gift allows the user to remove each item from its respective list.
- Operating systems in which at least some aspects of the present invention may be practiced further may include "Auto Lists.”
- Auto Lists may include, for example: recently created files, recently edited files, frequently used files, Author ID, creation time/date, edit time/date, file type, application name, etc.
- One aspect relating to the content of an "Auto List” relates to the list's scope (i.e., the set of files and/or locations that will be searched to generate the "Auto List”).
- Various limits on the scope of an “Auto List” may be set, depending, for example, on the environment in which the computer is located, user preferences, the manner in which the computer or network is used, and the like.
- the scope of an "Auto List” may be limited to a particular machine, to a particular user's files on a machine or a network of machines, and/or in any other desired manner without departing from aspects of this invention.
- the scope of a "5 star" Auto List may be limited to a set of specific files or folders to search across, such as the files or folders on a given physical computer and/or files or folders created by a given user. If desired, however, users can set an Auto List scope (or other search scope) to search across everything on the computer and/or the network containing the computer, such as to locate all "5 star" files stored on either of the user's desktop or laptop computers.
- sub-item domains are a set of folders defining a smaller scope for the computer system to search across.
- This sub-item domain may include a set of folders and/or sub-folders where users store their data, items marked with certain properties, etc.
- Figs. 92A and 92B illustrate examples of sub-item domain scope setting aspects.
- Fig. 92A illustrates an individual computer or network 9200 shared by multiple users (e.g., Users A, B, and C), wherein each node in the illustration indicates a folder or other file "container" set created by and/or for the various users.
- searching activities including activities relating to generation of "Auto Lists," as described above, a user may set the system to search only a portion of these available "folders" or other elements.
- a user can limit his/her search to only certain folders of files.
- a "sub-item domain” may be set to encompass any portion of the network 9200 without departing from this invention.
- the scope may differ for the various different Auto Lists generated by a given computer system without departing from the invention.
- the results of the "Auto List" or other searching activities may be much more relevant because the searching is more targeted to only certain specified source data (e.g., User B's data in this example).
- performance speed may be increased because the set of items to inspect is smaller.
- user interfaces may be provided so that users can readily adjust and change the sub-item domain for any search activities, including Auto List searches.
- Fig. 92B illustrates the example individual computer or network 9200 of Fig. 92A, but in this example, the search "sub-item domain” is set to search through data included only in folders available from two independent users, as represented by sub-item domain triangles 9204 and 9206 (photo data from Users B and C in the illustrated example of Fig.
- the results of the "Auto List" or other searching activities may be much more relevant because the searching is more targeted to only the desired users' data in this example, and performance speed may be increased because the set of items to inspect is smaller.
- multiple folders and/or properties may be selected by users as the scope for searches and/or displays of information stored on the computer.
- Such systems and methods may utilize navigation panels that display properties and/or folders in a hierarchical manner, as described above, for example, in conjunction with Figs. 87-91.
- [0560] In conventional and currently available "folder trees" that display folders of items stored on a computer, users cannot select more than one folder at a time. If a user wants to view the contents of multiple folders, he or she has to open multiple windows (e.g., one for each folder desired) and/or consecutively open and inspect the desired folders. Therefore, the user cannot view all information from multiple folders in a common screen, making it difficult to get an accurate overview of the available information stored on the computer system or network.
- lists and Auto Lists may comprise sets of property values that help define or categorize files and/or other items stored on the computer system or network.
- users would like to further narrow down information presented via a list or Auto List procedure (i.e., the relevant files identified as meeting a search criteria) based on the requirement that the displayed information include multiple properties associated with it. For example, users may wish to see all stored pictures from a specific trip locale that also include a specific person (e.g., spouse). Without the ability to use multiple property selection techniques, users may not be able to easily find the sub-set of files that meet these two independent property criteria.
- aspects of this invention relate to systems and methods that allow for conducting searches, interpreting search results, and/or displaying search results when multiple properties are selected as part of the search criteria, e.g., from a hierarchical listing of properties provided in a navigation panel or otherwise made available to a user.
- Such systems and methods may be used, for example, when navigating, searching, displaying, and/or otherwise interacting with various lists, Auto Lists, and/or folders.
- One feature relating to this aspect of the invention relates to the mamier in which information or files are determined to satisfy the search, which includes multiple properties and/or other search parameters. More specifically, in some instances users would prefer to see the combined union of all information that satisfies either feature of a multiple property search query (i.e., display information that satisfied either property A "OR" property B), and in other instances users would prefer to see the intersection of only the information that satisfies both features of a multiple property search query (i.e., display information that satisfied property A "AND" property B).
- At least some aspects of this invention relate to algorithms that automatically determine whether users likely wish to receive set "union” or set “intersection” information based on the information or multiple search parameters selected, e.g., from a navigation panel of properties and/or folders, e.g., arranged in a hierarchical manner.
- systems and methods in accordance with at least some examples of this invention will return information (e.g., during a "search,” "list files,” or other navigation task) regarding files based on a union of the multiple parameters selected (a logical OR operation) when the searched multiple properties, lists, folders, items, and/or other parameters belong to the same "property" in the hierarchy.
- systems and methods in accordance with at least some examples of this invention will return information (e.g., during a "search,” "list files,” or other navigation task) regarding files based on an intersection of the multiple parameters selected (a logical AND operation) when the searched multiple properties, lists, folders, items, and/or other parameters belong to or lie across different properties. More detailed examples of operation of this algorithm are described below in connection with Figs. 93 through 103.
- a user may be given an option and/or opportunity (e.g., via an interface screen, right mouse button click, etc.) to override the automatically selected AND or OR operation for a given search query to customize and target the results for that specific query.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Multiple Property Selections: Multiple Selections Within a Single Multi-Value Property:
- Fig. 93 illustrates an example display screen 9300 that includes a navigation panel 9302, which may include a hierarchical listing of properties, folders, and the like (the various nodes in panel 9302 in the illustrated example).
- Information stored tmder and/or associated with the nodes optionally may contain information identifying individual electronic files or items of information (e.g., email files, music files, digital photo files, electronic documents, audio and/or video files, etc.) that have been associated with that node (e.g., automatically, by user input, by another's input, when the file was downloaded from another source, etc.).
- Information identifying at least some of the files corresponding to one or more criterion specified for the search query or list files activity is displayed, in this example display screen 9300, in the display panel 9304.
- a user may select one or more of the hierarchical nodes representing an assigned property associated with the file, and the display panel 9304 will contain information identifying files or other collections of information that satisfy the user specified property criteria.
- a user has indicated that they wish the system to retrieve information identifying files that include pictures showing Person__A and Person_D (as shown by highlighting in the figure).
- a user has selected multiple values within a single, multi-value property from the hierarchy (i.e., selection of the hierarchical icon representing Person_A and selection of the icon representing Person_D from a single property ("People")).
- the "People” property is called a "multi-valued” property because the files under the "People” property may have multiple individual property entries (e.g., a given picture may contain more than one identified person, and thus may have multiple "People” child properties associated with it).
- search, or "list files” command systems and methods according to this example of the invention retrieve any pictures that contain either Person_A or Person_D (to be retrieved, the system automatically or some person must have, at some time, associated the "Person_A” or “Person_D” properties or keywords with the various picture files (e.g., as metadata, as discussed above), thereby indicating the person(s) included in the picture).
- search query systems and methods in accordance with this example of the invention automatically retrieve union information, i.e., information identifying files that contain either Person_A OR Person_D (represented by the letters "A" and "D,” respectively, in the names included in the icons in Fig.
- systems and methods in accordance with this example of the invention performed a logical OR operation based on the input parameters specified by the user in the navigation panel 9302.
- a first rule of a selection algorithm in accordance with at least some example systems and methods according to the invention may be derived.
- this rule information returned from user selection of multiple sets within a single, multi- value property set automatically will be returned in a "unioned" or logical "OR" query language manner.
- systems and methods in accordance with at least some examples of the invention may provide a user with the ability to override this rule and/or this automatic selection action (and thereby run an "AND" operation).
- the two selected data sets are shown or are available in their entirety and maintained separate from one another (i.e., one sub- panel 9306 for the Person_A pictures and one sub-panel 9308 for the PersonJD pictures in this example).
- a single list item may appear in each sub-panel 9306 and 9308 (or in others), if appropriate (i.e., the icons representing pictures ABDl, ABD2, ACDl, ADl, and ABD3 appear in each sub-panel 9306 and 9308 in this example).
- the display portion 9304 could also include a display sub-panel or the like that includes the results of the logical AND operation (i.e., pictures including both Person A and Person D in this example), to make this information readily available to the user, in the event the logical AND operation was desired.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Multiple Property Selections: Multiple Selections within a Single-Value Property:
- the "People" property is a multi-valued property (meaning that an item of information (e.g., a file) stored under that property may have more than one of the underlying child properties associated with it).
- Some properties may be considered "single valued properties," which means that each item of information (e.g., a file) stored under that property contains only a single instance of an underlying child of this property. Examples of single valued properties may include, but are not limited to: size, rating, and the like. Fig.
- 94 illustrates an example display screen 9400 in which a user has selected multiple properties (e.g., in a list files, search query, or other action) from a navigation panel 9402 including a hierarchical arrangement of properties (or folders, etc.), wherein the selected properties lie under a single valued property "Rating" (i.e., a user typically can and/or will give only one rating to a file).
- the user has requested retrieval of all pictures having a 3 or 4 star rating, as evident from the highlighting in the navigation panel 9402.
- search, or "list files” command systems and methods according to this example of the invention retrieve any pictures rated either as 3 stars OR 4 stars (to be retrieved, the system automatically or some person must have, at some time, associated a rating property with the various files (e.g., as metadata, as discussed above)).
- search systems and methods in accordance with this example of the invention automatically retrieve union information, i.e., information identifying files rated either 3 stars OR 4 stars.
- systems and methods in accordance with this example of the invention performed a logical OR operation based on the input parameters specified by the user in the navigation panel 9402.
- Another rule of a selection algorithm in accordance with at least some example systems and methods according to the invention may be derived.
- this rule information returned from user selection of multiple sets within a single-valued property set automatically will be returned in a "onioned" manner or in a logical "OR" query language manner.
- systems and methods in accordance with at least some examples of this invention may provide a user with the ability to override this rule and/or this automatic selection action.
- the two selected data sets are shown or are available in their entirety and maintained separate from one another (i.e., one sub- panel 9406 for the 3 -star rated pictures and one sub-panel 9408 for the 4-star rated pictures T/US2005/027258 in this example).
- one sub- panel 9406 for the 3 -star rated pictures and one sub-panel 9408 for the 4-star rated pictures T/US2005/027258 in this example.
- no single list item appears in both sub-panels 9406 and 9408 (or in others), because each file, by definition in this example, contains a single rating value.
- many other ways of displaying trxe retrieved information may be used without departing from the invention, including for example, displaying a compiled listing of files or items without an indication of the source property.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Multiple Property Selections: Additional Logical "OR" Examples: As noted above, the above rules may apply to items in folder structures and/or in a hierarchical property structures. Figs. 95 and 96 illustrate some additional examples when user selection is applied to hierarchical properties irx a navigation panel.
- a user has selected two independent entries in a hierarchical property table present in a navigation panel 9502, namely a Cars>Import>German property and a Cars>American property. Because the selected properties still are located under a common multi-valued parent property ("Cars" in this example), the above rule applies, and the display panel 9504 will display the union of the two selected properties in response to this query, search, or list files operation. More specifically, as shown in Fig.
- the display panel 9504 includes information identifying all stored files corresponding to the logical OR operation, i.e., info ⁇ rxation that satisfies either search criterion, namely stored digital pictures corresponding to German import cars OR stored digital pictures corresponding to American cars.
- info ⁇ rxation that satisfies either search criterion, namely stored digital pictures corresponding to German import cars OR stored digital pictures corresponding to American cars.
- a logical AND operation makes less sense or is less likely in this specific factual situation because typical cars would not be considered both "imports” AND "American” (an AND operation could return a hit however, for example, if multiple cars were included in a given picture and properties were associated with the file for both cars in the picture).
- the two selected items (i.e., properties) in the hierarchical structure were not located in the same hierarchical level. Nonetheless, the logical OR operation was conducted in this instance because, as noted above, the algorithm's rule requires the OR operation to be performed when the selected properties are located under a common parent property (this common parent property, however, need not be an immediate parent of both or either selected node).
- the two selected data sets are shown or are available in their entirety and maintained separate from one another (i.e., one sub- panel 9506 for the German car pictures and one sub-panel 9508 for the American car pictures in this example).
- Fig. 96 illustrates another example display screen 9600 in which multiple hierarchical property nodes in a navigation panel 9602 are selected by a user.
- a node and one of its corresponding grandchildren nodes are selected by the user (namely, the Cars node and Cars>Import>UK nodes were selected).
- a logical AND operation makes little or no sense because if the user had intended to list files corresponding to only the UK import cars, he/she could have simply selected the UK node to create this listing (a multiple selection was not required).
- the system will automatically retrieve and the display panel 9604 will automatically display the union of the two selected properties in response to this query, search, or list files operation. More specifically, as shown in Fig. 96, the display panel 9604 includes information identifying all stored files corresponding to the logical OR operation, i.e., information that satisfies either search criterion, namely stored digital pictures corresponding to all cars OR stored digital pictures corresponding to imported UK cars.
- display panel 9604 makes the two selected data sets available in their entirety and maintained separate from one another (i.e., one sub-panel 9606 for all the car pictures and one sub-panel 9608 for the UK imported car pictures in this example).
- all of the UK car pictures in sub-panel 9608 also are included within the more generic Cars sub-panel 9606 because all UK car pictures must fall within the Cars parent node (e.g., as described above with regard to the hierarchical properties, when a child property is assigned to a file, that file also automatically is assigned all parent properties to the assigned child property).
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Multiple Property Selections: Logical "AND" Examples: The above examples for Figs. 93-96 relate to multiple user selections within a given hierarchical grouping, such as a folder, a hierarchical property, or the like. Another rule of the example algorithm for determining what data to display in response to multiple user selections in a hierarchical folder or property structure is illustrated with respect to Figs. 97 through 99.
- this "rule" of the algorithm requires that when the multiple user selections are made across different parent property sets, the "intersection" of the search results will be displayed (or a logical AND operation will be performed and the results ⁇ displayed).
- the display screen 9700 shows a navigation panel 9702 in which multi-value hierarchical properties are displayed. The user has selected two properties that span across two of the highest level parent property sets, namely: Locations>Toronto and People>Person_D.
- the displayed results include only pictures taken in Toronto that also include PersonJD (e.g., typically with a search query of this type, a user would not wish to see all Toronto pictures or all pictures including Person_D). Therefore, as shown in display panel 9704 in this example, the resulting displayed results include only those pictures from the Toronto trip that include Person_D therein. Because the intersection of both selected sets is displayed, there is no reason to separately show the results from each user selected set, as was shown above in Figs.
- each item in display panel 9704 would be present in the Locations> Toronto listing and in the People>Person_D listing), although these individual selected sets also may be shown, if desired (e.g., to cover the possibility that the user wanted to see both individual sets).
- any way of displaying the search results e.g., in display panel 9704, may be used without departing from this invention.
- users may be provided with the ability to override the automatic AND operation produced by systems and methods in accordance with this example of the invention.
- Application of the logical AND operation is not limited to use with multi-valued hierarchical properties. For example, if one or both of the user selections in Fig. 97 had constituted a single valued property (such as one of the star "Rating" properties shown in the navigation panel 9702) and the other selection had been located in a different parent property set (such as in the "People" or “Locations” property sets), the "intersection" of the selected star Rating property and the selected People or Locations property would have been displayed (i.e., a logical AND operation still would have been performed and the results displayed because the selections spanned across different property sets).
- Fig. 98 illustrates an example. As shown in the display screen 9800 of Fig. 98, the user has selected the properties Keyword>Cars>Import and Date>2004 in the navigation panel 9802. Because the top level parent properties differ, a logical AND operation is conducted, and display panel 9804 displays the intersection of these two properties (i.e., it displays files having both selected properties, namely pictures of Import cars from the year 2004). This AND operation is conducted despite the fact that one of the selected nodes has a different number of parent nodes as compared to the other selected node (and therefore exists at an overall different level in the hierarchy).
- This same algorithm rule may apply and similar intersection results may be obtained irrespective of whether one or both of the user selected properties is a single value property or a multi-valued property.
- Fig. 99 illustrates an example. As shown in the display screen 9900 of Fig. 99, the user in this example has selected the properties Rating>4_Star and People in the navigation panel 9902 (no particular person under the People node was selected). Because the top level parent properties differ, a logical AND operation is conducted, and display panel 9904 displays the intersection of these two properties (i.e., it displays information relating to files having a "People" property (e.g., any person) included therein that is rated 4 stars).
- a "People" property e.g., any person
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Multiple Property Selections: Use of Multiple Selections in Hierarchies with Folders, Lists, or Other Structures: As noted above, aspects of the use of multiple user selections in hierarchies also may be applied to hierarchies that include conventional folders (e.g., performance of the OR/ AND functions may be determined using the rules above, even if one or both user selected elements includes a folder structure).
- a "folder" may be treated as a single-valued property.
- a folder may be treated as a single-valued property in accordance with these aspects of the invention.
- the multiple user selections may include a mixture of selections of folder elements and property elements in the hierarchical structure.
- Fig. 100 illustrates a display screen 90000 including a navigation panel 10002 in which both hierarchical properties and folder structures are present.
- the user has selected two individual folders, namely, the My Pictures>Trips folder and the My Pictures>Old folder. Because the two selections are located under the same top level parent element in the hierarchy (namely, the "My Pictures" element, in this example), a logical OR operation is applied through application of the various algorithm rules described above, and the displayed results, as shown in display panel 10004, show the union of the two selected sets. While the content of these selected sets may be displayed in display panel 10004 in any desired manner, in this illustrated example, the displayed files are identified in separate and distinct sub-panels as generally described above, for example, in Figs. 93-96.
- Fig. 101 illustrates display screen 10100 in an example where the OR/ AND logical operation selection rules and algorithm are applied in a situation where the user's selections include at least one folder set and the selection spans actross independent and different portions of the hierarchy (i.e., portions having different ultim_ate top level parent nodes).
- the user has selected a rating node (4_Star, in this example) and a folder node (the My PLctures>Old folder node, in this example).
- a logical AND operation is applied, and information regarding the intersection of the se two hierarchical elements is displayed in display panel 10104. More specifically, in this example, all of the stored "old" pictures having a "four star” rating are displayed in display panel 10104.
- display panel 10104 could be designed to additionally show the results from a logical OR operation, and/or a user may " be able to inform the system in some manner that the logical OR operation is desired.
- the generated display provides information regarding list items that satisfied either of these search criterions, namely, list elements designated as being “Top Issues” OR list elements designated as corresponding to "Project Y.” Notably some of the list items may be included under the groupings for both nodes (e.g., items 2 and 4). While the content of these selected sets may be displayed in display panel 10204 in any desired manner, in this illustrated example, the displayed list elements are identified in separate and distinct sub-panels a_s generally described above, for example, in Figs. 93-96. Also, if desired, display panel 10204 could be designed to additionally show the results from a logical AND operation, to cover the possibility that this AND result was desired by the user. Also, as noted above, if desired, the user may be given the ability to override the automatic OR operation selection.
- OR/ AND logical operation selection determination algorithms and rules also may be applied in situations in which a user selects more than two hierarchical elements (e.g., three or more folders, list elements, properties, etc.).
- a logical OR operation i.e., the union
- a logical AND operation i.e., the intersection
- operations within a given hierarchical parent element set i.e., the OR operations
- Fig. 103 illustrates an example of this type of operation.
- a user has selected three elements from the hierarchical navigation panel 10302, namely a Dates>2004 property, a Keyword>Cars>Import property, and a Keyword>Cars> American property.
- systems and methods according to at least some examples of this invention will first perform an OR operation with respect to the selected Keyword properties, to locate all saved files including stored keyword properties meeting either of these criterion. Then, from those identified files meeting either of the Keyword criterion, a determination is made as to which files also satisfy the date criterion (by applying a logical AND operation). The displayed results, in display panel 10304, then will show the imported car pictures and the American Car pictures from 2004.
- While the content of these selected sets may be displayed in display panel 10304 in any desired manner, in this illustrated example, the displayed information regarding the files is provided in separate and distinct sub-panels directed to the different "OR" selections, as generally described above, for example, in Figs. 93-96.
- the above rules can continue to be applied, including to the newly added information, .regardless of whether the new information may be incorporated into the existing hierarchy o r requires new/additional hierarchy.
- the above OR/ AND logical operation selection procedures can be carried out by determining whether the various selections are located wthin a given property or other hierarchy element level and/or whether they span across different top level parent property or other hierarchy element levels.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Multiple Property Selections: Computer-Readable Media: Additional aspects of trie present invention also relate to computer-readable media including computer-executable instructions stored thereon for performing the various multiple property or other value selection methods and/or for use in various systems that include multiple property or other value selection methods, including the systems and methods described above.
- the computer-readable media may constitute computer- executable instructions stored on the various specific examples of computer-readable media described above.
- Page Space Control Example systems, methods, and computer readable media according to aspects of the invention: Grouping and Stacking in fJtie Display Panel: Today in Windows ® based computer operating systems (e.g., available from Microsoft Corporation of Redmond, Washington), it is possible to organize sets of files C ⁇ g-, from a search query or a list files command) into groups. For example, grouping by file "type" may be used to place all PowerPoint ® presentations (presentation software available from Microsoft Corporation) within the search domain into one grouping and/ox all digital pictures into another grouping.
- grouping by file "type" may be used to place all PowerPoint ® presentations (presentation software available from Microsoft Corporation) within the search domain into one grouping and/ox all digital pictures into another grouping.
- users may take advantage of the ability to "stack" as a new/additional way for visually organizing files into sets. For example, if systems and methods were to stack by "file type,” users would be able to see all of their files stacked into individual sets, e.g., a set for PowerPoint presentation files, a set for spreadsheets, a set for digital pictures etc. Each of these sets may be represented, e.g., in a computer-generated display, by a stack icon that conceptually acts as a virtual container for that set of items. Stacking is a very useful way to help users narrow down on a set of items they care about because stacking clearly enumerates and identifies to the user the various available stack options.
- stacking can be conceptually thought of as going to a car rental location and asking them to tell you what color cars are on the lot. They may advise you that they have blue and red cars available today.
- this is what happens when users stack their files by a property, i.e., they may obtain stacks for each unique value of that property.
- This stacking feature (as well as other display features) may be applied, for example., to user interfaces like those described above in conjunction with Figs. 91 and 93-103.
- user interfaces like those described above in conjunction with Figs. 91 and 93-103.
- systems and methods in accordance with at least some examples of this invention may show information including things such as Lists, Auto Lists, Folders, and properties, including, for example, user defined properties.
- Each Auto List may be designed to provide a way for users to view information identifying their files in various ways, for example, by a certain property.
- a music Auto List may be stacked for example, by the performing artist, and searching by this performing artist: property will allow the user to see stacks identified witti all the artists included in the music collection, e.g., Bjork, Madonna, etc.
- One issue, however, with simply showing a shortcut; to this Auto List is that if the computer system has music from many different artists stored on it and available in the view, it still may be difficult for the user to locate the desired individual artist and/or the desired individual album, CD, or song(s).
- One aspect of systems and methods in accordance with examples of this invention relates to exposing the stacking structure of the available Auto Lists as sub-nodes in the navigation panel and/or the display panel associated with it.
- systems and methods in accordance with at least some examples of this invention may enable users to expand the "Artists" (or other) nodes in the navigation panel and/or the display panel, to thereby enable them to control and/or see all the unique Artists (or other nodes) saved on the computer, network, or system.
- aspects of this invention relate to the manner in which information relating to groups and stacks of information is processed and/or manipulated, e.g., in a navigation panel and/or a display portion of a user interface presenting such information. More specifically, aspects of the present invention will treat "grouped" and "stacked" information in the same way and allow Auto Lists that are grouped to represent hierarchy in the navigation panel. In other words, if a user has a view of music files grouped by "Artist" in the display panel, systems and methods in accordance with examples of this invention may be used to generate sub-nodes for the various artists in the navigation panel.
- the sub-nodes may in fact constitute another stack, and therefore, when users click on one of these sub-nodes, the set of Items in the view would filter down to only those results. This gives users a quick index of the items present in the view and allows them to actually narrow down to a set of files instead of just visually or mentally organizing them.
- Still another example aspect in accordance with this invention relates to the ability of users of systems and methods according to at least some examples of this invention to stack in a parent folder and flatten its folder hierarchy.
- a user stacks by file type in a hard drive directory or other collection of data (e.g., a "D: ⁇ Data" grouping)
- systems and methods in accordance with at least some examples of this invention will search through all sub-folders and take those items and place them into stacks. This gives users the ability to navigate to any folder and view its contents organized by a desired property value instead of by its folder hierarchy.
- aspects of this invention are useful because, in systems and methods according to at least some examples of this invention, grouping and stacking can be used to create a dynamic organizational structure in the navigation panel, and it provides the ability to select a group in the navigation panel or the display panel and narrow down the items in the view to display only that set. Still additional general aspects of the invention relate to treating grouping and stacking as sub-nodes to an Auto List and the ability to select a group in the navigation panel and/or the display panel and, through this selection, thereby further narrowing down the displayed view. More specific examples of these aspects of the invention will be described below.
- Fig. 104 illustrates a display screen 10400 that includes a navigation panel 10402 and a display panel 10404 (which illustrates information relating to various stored files or items based on input received in the navigation panel 10402).
- the navigation panel 10402 indicates that the property or keyword "Carnivora” has been selected, and the corresponding display panel 10404 shows stacks for the individual child nodes in the hierarchy at the level immediately under the Carnivora parent node. More specifically, as shown in the example of Fig.
- the display panel 10404 includes a stack of pictures for dogs ⁇ Candiae) and a stack of pictures for cats ⁇ Felidae).
- the child nodes under the Candiae and Felidae nodes are fully displayed (down to their lowest level), despite the fact that these sets are shown as stacked in the display panel 10404.
- stacks may not constitute the most preferable way of displaying information in the display panel 10404.
- stacking may be undesirable, at least in some instances, because the user is not able to easily see any information regarding the content within the stack ⁇ e.g., the user cannot see thumbnail icons or much other displayed information regarding the content of the stack, as shown in Fig. 104).
- users may have to "drill down" to the deepest levels of the hierarchy, at least in some instances, to finally see the pictures (or other more specific information relating to specific files).
- Fig. 105 illustrates another example display screen 10500 that utilizes grouping as opposed to stacking in the display panel 10504.
- the same node remains highlighted in the navigation panel 10502 (i.e., the "Carnivora" node, in this specific example), but the display panel 10504 shows the search results grouped under the respective child nodes under the selected parent node as separate sub-panels 10506 and 10508.
- the underlying file information in this example display screen 10500 is shown in an unstacked manner so that the user can quickly and easily see information relating to the underlying content within the hierarchy.
- information relating to all of the items contained under the specific node is provided in the respective sub- panel (e.g., in sub-panel 10506), irrespective of the level in the hierarchy at which, that information is located (e.g., irrespective of whether the specific picture is stored with, the "Candiae " property, the "Cams” property, the "Lupus” property, or the "Latrans” property associated with it).
- This feature allows quicker and easier user access to and recognition of the desired information.
- this same display panel 10504 may appear as a resm.lt of other search or list files commands, e.g., if the user highlighted both the Candiae and Felidae nodes in the navigation panel 10502.
- Fig. 105 Users also can quickly navigate in the hierarchical structure of the navigation panel 10502 to see different groupings of information.
- An example of potential changes may be seen by a comparison of Fig. 105 with Fig. 106.
- the Carnivora property was selected by the user in the navigation panel 10502, which provided a display of information stored with that property, grouped based on the child nodes of the selected property (i.e., grouped based on the Candiae and Felidae child nodes in this example).
- the user has changed the highlighted selection in the navigation panel 10602 to the more specific P anther a property (a grandchild node under the Carnivora property). As shown in Fig. 106, this change causes the display panel 10604 to provide groupings for the children under the P anther a property node, namely, groups of pictures labeled with the Leo and Tigris properties (see sub-panels 10606 and 10608, respectively). As evident from Figs.
- the navigation panels 10502 and 10602 and the display panels 10504 and 10604 along with the hierarchical properties used in conjunction with these panels, allow users to store, search, and navigate their stored data in a meaningful way and get useful thumbnail or other "preview" information of the available data throughout the hierarchy.
- the content and user input in the navigation panels drive the content provided in the display panels, although user input also may be allowed through the display panels, if desired.
- FIG. 107 A comparison of the display screens 10600 and 10700 of Figs. 106 and 107, respectively, illustrate additional features that may be present in accordance with at least some examples of this invention.
- the hierarchical structure in the navigation panel 10702 does not collapse, but rather, it remains as the user left it (e.g., in the illustrated example, the full hierarchy for the Mammalia property and its children remains exposed).
- the navigation panel 10702 does not reflect or change to reflect what is shown in the display panel 10704 (e.g., in sub-panels 10706 and 10708), but rather, the navigation panel 10702 drives what is being presented in the display panel 10704.
- This "non-collapsing" feature of the navigation panel 10702 may be useful for various reasons. For example, in general, users expect this hierarchy to remain exposed in this manner, e.g., from their interactions with conventional electronic file and/or folder systems. As another example, keeping the hierarchy open, expanded, and available in this manner (e.g., until closed by the user) can be more convenient, e.g., if the user decides to return to the hierarchy, for example, for additional searching, navigation, or previewing memeposes, for property assignment to file purposes, and the like. Moreover, by leaving the navigation panel 10702 in an unchanged state as the user navigates and potentially manually changes it, the past locations visited by the user will remain readily available, so that they can quickly return to where they have been, if desired.
- Fig. 108 illustrates a display screen 10800 having a navigation panel 10802 including information relating to a collection of stored digital music, wherein at least some of the information relating to the stored music includes hierarchical properties.
- the systems and methods in accordance with this example of the invention display information in the display panel 10804 relating to stored music on the system grouped by the various genres (e.g., sub-panels 10806, 10808, and 10810 for the genres "Classical,” “Jazz,” and “Pop,” respectively).
- the information is stacked, e.g., by the decades in which the albums or musical selections were released.
- a user can further "drill down" into the hierarchical structure, e.g., in the display panel 10804 or the navigation panel 10802, to see more detailed information relating to the information stored within the stacks (e.g., individual CD or album titles, in this illustrated example, information stacked by performing groups or artists with the stack including individual albums, etc.). Further drilling into the individual CD or album titles may be used, if desired in at least some examples of systems and methods of the invention, to display information regarding the titles of the individual songs or tracks included on the album or CD. Of course, any number of stacks, groupings, and/or any desired types of information may be included in the hierarchical property structures without departing from this invention.
- the display panel 10804 includes both grouped information and stacked information.
- grouped information is present as a "transparent container,” meaning that the content in the grouping is readily available and visible to the user in the view.
- stacks may be considered as being in an "opaque container,” meaning that at least some of the individual content may be hidden from the user due to the stacking display (but the hidden content may be displayed or made available, if desired, by further highlighting or “drilling down” into the individual stacks via the navigation panel 10802 and/or the display panel 10804).
- the hierarchical properties and other elements, navigation panels, and displays of groups and/or stacks of information in accordance with examples of this invention may be used in combination with conventional folder structures without departing from this invention.
- stacking folders e.g., in a display panel
- stacking in a folder will flatten the folder hierarchy and re-organize the items contained within the folder into sets based on that property.
- 109 illustrates a display screen 10900 that includes a navigation panel 10902 with a folder hierarchical structure contained therein.
- the display panel 10904 displays the underlying folder structure (i.e., the "Lunar Eclipse” and “Aurora” folders under the “Vacation” folder in this example), as well as the individual files contained within those folders (thereby “flattening out” the folder structure to make the underlying information readily visible and available to users).
- This may be accomplished, for example, by creating an "Auto List” element or node scoped to look at the selected folder and all of its sub-folders.
- the folder structure may be maintained in the display panel 10904, particularly in the situation where the highlighted folder itself includes several levels of hierarchy.
- the information may be displayed in the display panel 10904 by removing the individual items from the sub-folders and showing these items in stacks named after the sub-folders.
- other display techniques are possible without departing from this invention.
- Fig. 110 illustrates an example display screen 11000 that may be used and/or appear in accordance with at least some examples of this invention.
- the user interface display screen 11000 includes a navigation panel 11002 in which a hierarchical folder structure appears, and a display panel 11004. Because of a deeper hierarchy in the folder structure in this example, when a folder is highlighted (e.g., the "Vacations" folder in this example) in the navigation panel 11002, the information in the display panel 11004 is removed from the underlying sub-folder structure (i.e., the folders under the "Vacations" folder) and placed in individual stacks.
- sub-folder structure i.e., the folders under the "Vacations" folder
- this action is akin to a flattening out of all information contained in the selected folder (i.e., the "Vacations" folder in this example) and then a reorganization of this information into stacks based on the children properties contained under a selected property.
- systems and methods in accordance with at least some examples of this invention may provide one group or stack for each top level value under the property, and further children property values may not be exposed in the display panel (although, if desired, the underlying information in those lower children property values may be displayed and/or made available for display).
- the user can expose the children property values by navigating into the various hierarchical level groups, e.g., using the hierarchical navigation panel, drilling down into stacks provided in the display panel, etc.
- systems and methods according to at least some examples of this invention may allow users to "unstack" at any level, e.g., by providing a menu item (e.g., a button, a right click menu, a tool bar menu, etc.) that allows the user to "expand all stacks,” “expand this stack,” and/or the like.
- a menu item e.g., a button, a right click menu, a tool bar menu, etc.
- Other actions also may occur while information is grouped and/or stacked, e.g., operations relating to the hierarchical properties contained in the groups and/or stacks.
- One example relates to dragging and/or dropping operations.
- the item when dragging an item from one group to another group, the item may be changed to have the property value(s) of the newly applied group and/or stack applied to it (i.e., changed to also include the property value(s) of the "destination" groups and/or stacks from the drag and/or drop operation, and optionally, at least, to remove the property value(s) of the original source groups and/or stacks, if necessary and desired).
- Another example operation relates to "paste" operations. When an item is placed in a new group and/or stack by a paste operation, the destination property and its parent property value(s) may be applied to the newly placed item.
- Il l illustrates an example display screen 11100 in which an example menu 11102 has been pulled up (e.g., via a right click action or in any other appropriate manner) that will allow further user filtering of information contained in the display panel 11104 of the display screen 11100. More specifically, in this example, by clicking on the desired menu items to be used for the filtering, changes in the information present on the display panel 11104 may be made. In this example, a caret structure ">" at the far right side of each menu item is used to indicate that further, lower hierarchical levels are available for filtering, if desired.
- Additional aspects of the present invention also relate to computer-readable media including computer-executable instructions stored thereon for performing the various grouping and/or stacking methods and/or for use in various systems that display information, such as properties, folders, lists, and the like in grouped and/or stacked manners, including the systems and methods described above.
- the computer-readable media may constitute computer-executable instructions stored on the various specific examples of computer-readable media described above.
- FIG. 112 illustrates a partial screenshot 11200 of a shell browser window implementing a multiple root navigation pane according to an illustrative embodiment of the present invention.
- the shell browser window 11201 is comprised of a menu bar 11205 spanning the top of the window, a shell browser pane 11210 on the right side and a multiple root navigation pane 11215 along the left side of shell browser window 11201.
- the implementation of a multiple root navigation pane within the shell browser window 11201 allows a user significant flexibility in navigating, as described herein.
- a user may either browse files and/or data by accessing individual folders or pages via page views in shell browser pane 11210 or navigate using the navigation pane 11215 by jumping directly to desired nodes representative of documents or files corresponding to a page view.
- a page refers to a collection of related documents;
- a page view refers to a graphical display of data items in a particular page; and
- a page node refers to an iconic or graphical representation of a particular page.
- Each page may include and/or represent static lists, auto-lists, physical folders, virtual folders, and any other structure or data collection of related files, data, or pages, and each page displayed in shell browser pane 11210 may have a corresponding node displayed in navigation pane 11215, as further described below.
- a root node generally relates to a page node that lacks a parent page node.
- each root node in the navigation page might have a parent node, however, the navigation pane does not display any parents of a node identified as a root node. The user is thus unable to navigate to the parent of a root node, when one exists, via that root node itself.
- FIG. 113 illustrates a multiple root navigation pane according an illustrative embodiment of the present invention.
- the multiple root navigation pane 11215 may comprise multiple root nodes 11311, 11312 & 11313. Root nodes are commonly used as a starting point for navigating through data stored on a device such as a hard disk.
- Navigation pane 11215 combines root nodes 11311, 11312 & 11313, with any expanded descendant nodes, to graphically illustrate the organization of data.
- root nodes 11311, 11312 & 11313 may be aligned along a single vertical axis in the navigation pane 11215 to convey their status as root nodes.
- child pages 11321, 11322 & 11323 of root nodes 11311, 11312 & 11313, respectively, may be positioned below its respective root node and aligned on a second vertical axis located to the right of the vertical axis of root nodes 11311, 11312 & 11313.
- a first page or node is said to be a descendant of a second page or node if the first page immediately depends on the second page.
- the relative positioning of the root nodes 11311, 11312 & 11313 and descendent page nodes 11321, 11322 & 11323 graphically delineates their hierarchical relationship.
- Further levels e.g., descendants of descendants of a root node
- Further levels may be represented on the navigation pane 11215 following the above described scheme using the position of a parent page node for orientation.
- ancestor/descendant orientation schemes may be utilized to represent the hierarchical relationship of a root node and its descendants, as is known in the art.
- Each root node 11311, 11312 & 11313 and descendent page nodes 11321, 11322, 11323 may further comprise an expansion control widget 11320, an identifying icon 11326 and identification text 11325.
- identification text 11325 conveys the general category or description of the pages or files stored therein.
- root node 11311 may be labeled with "Lyon's Doc Folder" to identify the contents of that page as documents belonging to user Lyon.
- An identifying icon 11326 may be positioned adjacent to the identification text 11325 to allow a user to graphically differentiate between one or more root nodes 11311, 11312 & 11 313 or page nodes 11321, 11322 & 11323.
- a user may create a unique icon to mark his or her ownership of certain pages or to indicate a type of files stored at the represented location.
- users may use different icons to represent different types of pages (i.e., folders, lists, autolists).
- a user may either double-click the identification text 11325 or toggle the expansion control widget 11320 associated with the particular node. By using either of these methods, the user may expand the parent page node thereby revealing its descendant nodes. The absence of an expansion control widget 11320 may signal that the page node has no descendants and thus, cannot be expanded.
- the control widget 11320 may change to the corresponding page node's current state (i.e., expanded or collapsed).
- the expansion control widget 11320 may comprise a clear arrowhead 11350 pointing away from the identifying text 11325 when the page node is collapsed (i.e., hiding its descendant nodes).
- the expansion control widget 11320 may comprise a darkened arrowhead 11351 pointing toward the displayed descendants of that page node.
- the expansion control widget 11320 may be implemented in numerous ways and using a variety of symbols, colors and/or animations, such as '+' and '-', as is known in the art.
- FIG. 114A illustrates a method for customizing a navigation pane according to an illustrative embodiment of the present invention.
- a user may customize a navigation pane 11215 in a variety of ways including adding new root nodes, removing existing root nodes, modifying the order of page nodes as they appear in the pane and creating shortcuts to pages or root nodes.
- the method for customizing a navigation pane permits a user to add a node representing a specified page to the pane 11215 as a root node.
- the addition of new root nodes facilitates navigating to oft-used pages by circumventing irrelevant parent pages.
- a user may initially locate the desired page 11457 using shell browsing methods generally known in the art. For example, a user may locate the desired page 11457 using the shell browser pane 11210 of FIG. 112. After locating the desired page 11457, the user may then select and drag the page 11457 from the shell browser pane 11210 (FIG. 112) to the navigation pane 11215 as shown in the illustration.
- shell browsing methods generally known in the art. For example, a user may locate the desired page 11457 using the shell browser pane 11210 of FIG. 112. After locating the desired page 11457, the user may then select and drag the page 11457 from the shell browser pane 11210 (FIG. 112) to the navigation pane 11215 as shown in the illustration.
- the navigation pane 11215 may identify the page type, acquire the page's physical location, determine the page's descendants and create a root node comprising a pointer to the page's physical location and an expandable/collapsible list of descendants.
- a root node is a dynamic tool that permits a user to not only view a corresponding page by selecting the node, but also to view or hide (i.e., expand or collapse) an associated list of descendants.
- the navigation pane 11215 will identify that it is a folder page type. Subsequently, the navigation pane 11215 will create a node structure in the pane 11215 with the name "Louie's Documents" pointing to the physical or virtual location of "Louie's Documents.”
- the root node may store information identifying a location of the definition of the list to which it refers. Additional pages/root nodes may be similarly added to the navigation pane 11215.
- the list of root nodes is stored in a registry that may comprise data and settings corresponding to system options, hardware and the like. Storage in a medium such as a registry allows a custom list of root nodes in a navigation pane to persist from browsing session to browsing session. Those of ordinary skill in the art will appreciate that the list of nodes may be stored using an array of other methods and in a variety of other mediums.
- the user may remove a preexisting root node 11312 from the navigation pane 11215 by using a remove option available in a context menu.
- the user may access the context menu of a particular root node 11312 by selecting and/or right-clicking (i.e., using a mouse) on root node 11312.
- the navigation pane 11215 removes the selected root node 11312 and its associated list of descendants 11412.
- a user may further adjust the ordering of the root nodes 11311, 11312 & 11313 by selecting and dragging root nodes 11311, 11312 & 11 313 to their preferred locations in navigation pane 11215.
- the user may similarly reorder sibling nodes having a common parent.
- the destination location may be identified by a position indicator 11470 to ensure accurate relocation of root nodes. For example, a user may reorganize Ly on' s Doc Folder 11312 by dragging Work page 11490 to the location identified by position indicator 11470. Alternatively, a user may drag an existing page on the navigation pane 11215 to a desktop.
- the user may create a shortcut on the desktop to the selected page without removing the page node from the navigation pane 11215.
- the navigation pane 11215 may create a copy of the node pointer and place that copy on the desktop.
- Yet another alternative permits a user to pin a parent and child node so that they appear on the same hierarchical level. For instance, a user may pin "Lyon's Doc Folder” 11312 and child folder "Work" 11490. By pinning the parent and child folder, "Lyon's Doc Folder" 11312 and "Work” 11490 appear on the same hierarchical level in the navigation pane without actually modifying the underlying structure. Such a feature allows a user to temporarily modify the hierarchical view of the navigation pane without making permanent changes.
- a user may also add, remove, rename and/or reorder root nodes using a configuration dialog similar to that illustrated in FIG. 115 according to an illustrative embodiment of the invention.
- the configuration dialog 11500 may comprise a displayed pages pane 11505, an available pages pane 11510, an add button 11515, a remove button 11520, reordering buttons 11525 & 11526, a reset button 11530, a rename button 11535 and a set as homepage option 11540.
- the configuration dialog 11500 permits users to view a list of available pages in one pane 11510 while modifying the contents of th_e navigation pane in the displayed pages pane 11505.
- the available pages pane 11510 displays a list of selectable pages that correspond to a selected location.
- a user may change the selected location by using a drop-down menu 11550.
- the user may then select an available page and choose add option 11515 to create a new root node corresponding to the selected page.
- Displayed pages pane 11505 may automatically update its contents to reflect the addition of new root nodes. In other words, upon detection of a change the configuration dialog 11500 may refresh panes 11505 & 11510 to reflect the most current information.
- the user may select the root node irx the displayed pages pane 11505 and choose the remove option 11520.
- the navigation pane Upon removing the root node, the navigation pane disassociates the node with the corresponding page and removes the node from the pane.
- Other options permit the user to rename a current root node or set a root node as the home page.
- a user may reorder a root node in the displayed pages pane 11505 by selecting a node and adjusting its relative position using arrow buttons 11525 & 11526. Should the user make a mistake in adding, removing, reordering or renaming one or more root nodes, the user has the reset option 11530 to reset the changes he or she made to the navigation pane. Selecting reset button 11530 may revert any changes made by the user since the window 11500 was last opened, or may revert to a default state, undoing any changes the user has made.
- FIG. 116 A illustrates a page property dialog for customizing page nodes according to an illustrative embodiment of the present invention.
- a user may configure the aforementioned properties of a specified page node through a property dialog 11600.
- the property dialog 11600 may comprise an expansion control selection tool 11603, icon selection tool 11505, an identifying text changing tool 11610, a size selection bar 11615 and a hide option 11620.
- the expansion control selection tool 11603 and icon selection tool 11605 provide the user with the flexibility to change the expansion control icon (e.g., to '+' and '-' as in previous operating systems) and the representative icon adjoining the identifying text.
- the expansion control selection tool 11603 and icon selection tool 11605 may be implemented through a drop-down list or through a shell browser utility that permits a user to search through and select from a database of images and icons. With regard to the expansion control selection tool 11603, a user may be asked to select two images to represent each of a collapsed and expanded state. Alternatively, the selection tools 11603 and 11605 may comprise a predefined menu of available icons or images. Once the user has selected an icon, he or she may have the option to preview the change prior to applying it to the page node.
- a user may change the substance and appearance of the identification text of the page node and the underlying page. This may be accomplished by editing the text within the navigation pane or, alternatively, through the property dialog 11600.
- the property dialog 11600 may comprise options for adjusting font, font size, style (italics, bold, smallcaps, etc.) and color. For example, a user may increase the font size and alter the font color of a page of particular significance or importance and its representative node. Such features may allow a user to identify to others that the page is of high importance or relevance.
- a further option of the page property configuration dialog 11600 may allow a user to hide a page node in the navigation pane so that the page node is not visible when viewing the navigation pane.
- a page node when a page node is hidden, its descendant nodes may be elevated to root node status in the navigation pane.
- a hide option permits a user to create several root nodes simultaneously.
- a navigation pane comprising a hidden page node is illustrated in FIG. 116B.
- Group 11610 comprises descendant page nodes of the hidden Auto list root node while the Folders page node 11615, not related to the hidden node, is also visible. Hiding a particular root node may also be advantageous when a user is working extensively with the pages dependent on the hidden root node. By hiding the node, a user is not required to continuously expand and collapse the root node to interact with the children nodes.
- a shell browser which includes a display of file properties that may include multi-value propexties.
- the user may edit the multi-value property, and the system may intelligently assist th_e user in editing the multi-value property.
- the system may tokenize the multi-value property values, and may provide persistent prompt text within a multi-value property field as a reminder to the user of the field's options.
- the system may display aggregated property values, and may incorporate visual differences to associate aggregated values with the files to which they a.pply . Editing of the aggregated values is possible, and when editing aggregated multi-value properties, the system may intelligently assist the user in selecting (or avoiding) entries based on a variety of factors, such as the entries already in use and the context in which the property values are used. When aggregating multi-value properties for multiple selected files, the system may also take steps to help preserve the order in which particular values appeared in the various files. Values that tended to appear more often in-the beginning of a file's multi-value property will tend to appear towards the beginning of the corresponding aggregated multi- value property.
- Figs. 117A-B depict an example flow diagram for a preview process that may be used in conjunction with the features described above and herein.
- one or more previewers may be installed on the system in step 11701.
- Previewers may be software that is shipped as part of the underlying operating system software.
- Previewers may also be additional software loaded onto a computer system after it is shipped.
- the underlying operating system may expose a set of application program interfaces (APIs) that would allow future development and/or addition of previewers.
- APIs application program interfaces
- a check may be made to determine whether a new association is to be created for one or more previewers.
- An association may be any criteria and/or request governing the times and types of previewers that are to be used.
- An association may be created to define the types of previewer(s) to be used for a given user identity (or if a particular user wishes to disable previews altogether), and/or for certain predefined situations based on system conditions (e.g., available resources, memory, current applications running, number of previews generated or to be generated, available power, time of day, status of other applications, etc.) and file type (e.g., a user may prefer to use one type of previewer for home videos, and a different previewer for compressed songs), such that the default previewer used by the system may be user-defined.
- system conditions e.g., available resources, memory, current applications running, number of previews generated or to be generated, available power, time of day, status of other applications, etc.
- file type e.g., a user may prefer
- a user may indicate that certain file types are only to have basic/non-interactive previews, or the system can automatically disable a preview if it experiences a predefined number of failures, crashes, or hangs.
- An application may be associated with one or more previewers so that previews opened from the application, or previews of files created by the application, may always be previewed using the same previewer. These associations can be hierarchical in nature, such that multiple previews are ranked in order of preference.
- the step of requesting a new association 11702 may occur at startup, upon installation of an application, upon execution of a predetermined application, and/or by user request.
- association is created in step 11703.
- the act of creating an association may be accomplished by querying the user for the specific criteria to be met when certain previewers are to be used, or retrieving such criteria information automatically from an application and/or the system itself.
- an actual association can take the form of data stored in trie computer system's memory associating the previewer(s) with any of the criteria identified above.
- a check may be made to determine whether a previewer needs to be opened.
- the system may receive the selection, or selections, that are to be previewed in step 11705. This may involve receiving identifications of the file (or files) that are to be previewed. Such selections may be made b;y the user, such as by the selection of one or more files by moving a mouse pointer to a listed file and pressing the left mouse button, or clicking and dragging a selection box around multiple file listings. Alternatively, selections may be made automatically. For example, certain applications may default to a predetermined file, and may automatically select that file for previewing upon first opening. A word processing program, such as MICROSOFT WORDTM, may default to a previewer that includes text editing features.
- MICROSOFT WORDTM may default to a previewer that includes text editing features.
- the system may automatically select files for previewing as a result of conducting a search.
- a user might enter search criteria, such as a keyword, and the system or application may automatically select one of the search results for previewing. For example, a user might type in "peanut" as a keyword in a system search tool, and the resulting listing of files containing "peanut" may display, with a preview of the first listed file.
- the system selects and generates the appropriate preview in step 11706.
- Selecting an appropriate preview may be based on one or more associations that have been created (e.g., a user has selected a particular previewer for previewing all files of a certain type, or for previewing certain files), and may also be based on the system resources that are available (or consumed). Alternatively, the user may be requested to identify which previewer should be used for the current preview by, for example, selecting from a presented list of predetermined previewers that may be appropriate for the selection to be previewed.
- an initial basic preview that can be viewed while a richer interactive preview is being initiated. For example, if a rich preview of a text document would require a few seconds to load and generate, the user may be presented in the interim with a more basic preview that can be generated sooner.
- the more basic preview may have some, or none, of the interactive functionality offered in the rich preview, and can at least get the user started in previewing the selection(s).
- Selecting a preview may include a prestored sequence of previewers that can be used.
- a particular application or view may have a hierarchical sequence of available previewers, such as a full rich previewer, a reduced feature previewer, a basic thumbnail preview (which need not be interactive), and a basic icon similar to the desktop icons currently used in MICROSOFT WINDOWSTM operating systems.
- the system may start with one previewer, such as the full rich previewer, and "fall back" through the sequence of previewers to find the most appropriate one.
- the full rich preview might be the default for a particular view with a previewer that offers paging, zoom and text editing capabilities that allow the user to modify the document from the preview, and if there are insufficient system resources (e.g., due to memory limitations, other applications, other previewers, etc.) to adequately offer that preview, the system may check the next previewer (e.g., a less-featured one) on the list.
- the next previewer may be slightly less featured, for example, by only offering the ability to navigate through (e.g., paging and zooming) the document, but without the ability to edit.
- Such a previewer may require less system resources to run, and may be preferred if resources are not available. If there still are insufficient resources to offer that second previewer, the system can check the next previewer (e.g., a basic thumbnail view with little or no interactivity), and so on until a suitable previewer is found given the available resources.
- the preview may be initiated as a separate and distinct process from the application requesting the preview. For example, if a previewer is provided in a system shell browser, the previewer may be executed as an independent process from the shell browser. With the preview as a separate process, the shell browser might not ever find itself in a position of having to wait for a response from the preview application, thereby avoiding a crash or hang if the previewer encounters difficulty. Such difficulty can come from a variety of sources.
- the selected file might have corrupt data such that the preview application cannot process it; the preview application itself might have an error or bug preventing its smooth operation; the file may be mislabeled or misidentified such that the wrong preview application is chosen (e.g., the file may indicate that it is an audio file, when actually it is a text file); or the system resources may encounter a problem such as a bad memory sector. Having the previewer as a distinct process provides a degree of crash/hang resistance. If the previewer encounters an error, crashes, or hangs, the problem will be confined to the preview panel itself, and the shell browser will continue to function.
- the system may keep track of the number of times that a particular preview application encounters difficult, crashes and/or hangs, and if a predetermined number is exceeded (e.g., 3), then the system may take steps to reduce the frequency with which that particular previewer is used. For example, the system may lower the priority of that previewer, or create an association that calls for a different previewer.
- a predetermined number e.g. 3
- a check may be made to determine whether the user has interacted with any displayed preview.
- Interaction can take any form of known computer interaction.
- an interaction may be a mouse click within the preview panel.
- An interaction may be a selection of one or more graphical interface elements in the preview panel, such as paging buttons cursor arrows, or the like.
- Interaction may take the form of keyboard keys, such as cursor movement keys to move a cursor within a preview of a text document.
- processing an interaction may take the form of any response to a user input.
- the processing may begin an editing process in response to a user clicking a mouse or other pointer within the preview panel.
- the editing process may allow the user to view and/or edit the previewed file directly from the preview panel, without requiring the user to leave the view having the preview panel.
- step 11709 a check is made to determine whether the preview panel has been resized.
- the panel may be resized, for example, by the user entering commands, and/or by clicking and dragging a boundary or resizing tool of the preview panel. If the panel is resized, the new resized panel is displayed in step 11710. If desired, the resized panel may be configured to automatically retain the same aspect ratio found in the original panel. Some file types may be corufigured, such as through association, to always have the same aspect ratio (e.g., videos may always be 4:3). If properties or metadata were displayed accompanying the preview, then the properties and/or metadata display area may also be resized to correspond to tlxe new preview panel size.
- the properties or metadata display area may be configured to always have the same heigrit or width as the preview panel.
- the previewer may be resized in response to a resizing of the properties/metadata display area.
- the new size may be stored in the system as the new default size associated with the particular file type, current view, application, and/or user, and used the next time a preview is needed.
- a check may be made to see whether the new size of the preview panel has passed one or more predetermined thresholds for the preview.
- previewers may have one or more criteria for their use. One such criterion may relate to the amount of display area available to the previewer. For example, different levels of interactivity and/or functionality may be offered for different sizes of preview.
- a larger preview may offer more detailed functionality, such as navigating/paging and zooming in the document, changing font size, or editing text using a cursor in the preview, while a smaller preview of the MICROSOFT W0RD TIM document might still include the navigation and zooming features, but omit the cursor text editing if the display is too small to reasonably use a cursor to edit the text.
- a previewer may have one or more threshold sizes associated with it, which may be created during association, stored in the computer system's memory, and which may identify a replacement previewer for use when the threshold is met or passed. For example, the previewer might require a minimum of 256 pixels of width to implement certain features, while other features might only be included if there are 512 pixels.
- a replacement preview may be selected and generated in step 11712. Th- ⁇ generation of a replacement preview may be identical to the generation of the preview in step 11706. So for example, if a preview panel has been reduced in size beyond a certains, minimum size, a replacement previewer may be used that offers a smaller subset of those interactive features that can still be used at the smaller size. Alternatively, if the preview panel has been enlarged beyond a certain maximum size, a replacement previewer may b>e used that offers more features that can be useful given the larger size, such as a previewer that has more user interface controls, or allows detailed edits within the preview.
- a threshold such as a minimum or maximum threshold
- step 11713 a check is made to determine whether a displayed property, or piece of metadata, is to be edited. Such data may be edited by, for example, clicking a mouse or pointer on a piece of displayed metadata, and entering a value using a text entry or menu user interface.
- step 11 714 the appropriate steps are taken to edit the particular property. The actual steps may depend on the type of data being edited.
- a date field may bring up a calendar user interface element, allowing a user to view and select a date (and/or time) value for entry.
- Other types of data may be entered through a text entry box, and other types may be selected from a menu, such as a pull-down menu.
- step 11715 a check is made to determine whether the system is awaiting the loading of a rich previewer.
- a more basic or generic preview may be provided while a rich pre ⁇ view is being initialized on the system. If the system is awaiting a rich previewer, in step 11716, a check is made to determine whether the rich previewer is ready. If it is, then the system will replace the existing preview with the rich preview in step 11717.
- Step 11717 may also include a query to the user to determine whether the rich previewer is still desired- Although this step shows two previewers, more than two may also be used. For example, the system may display an icon while waiting for a thumbnail preview, and then display the thumbnail while waiting for a rich preview, etc .
- step 11718 a cfcieck is made to determine whether a previewer is to be closed, and if so, the previewer is closed in step 11719. Then, the process returns to step 11702 to begin again.
- the process shown in Figs. 117a-b is merely an example showing a way of arranging a number of " steps, and any of the steps may be reordered, repeated, removed, or modified as desired to Implement (or remove) any feature described herein.
- Fig. 118 is an example of another shell browser interface 11800 (or system browser) incorporating one or more aspects of the present invention.
- Browser 11800 may be offered as part of the operating system for viewing contents of one or more directories, networks, drives, folders, etc., and may be generic, or non-application-specific.
- a number of items 11801 are listed, with file name, file type and other data being listed for the various items.
- files of multiple different types e.g., text files, image files, audio files, and/or custom data files for existing applications, such as word processing applications
- the items 11801 are shown organized by date (e.g., Today's and Yesterday's files), but any sorting or organization may be used (e.g., file size, file name, project name, file type, artist, album, create date, edit date, etc.).
- the user may select one of the listings, such as listing 11801a (shown as visually differentiated with a first pattern ,which may be the color red), and the shell browser 118O0 may display an interactive preview panel 11802 corresponding to the selected item 11801a.
- Interactive preview panel 11802 may, for example, display one or more pages of text appearing in selected item 11801a when item 11801a is a file containing textual data, such as a MICROSOFT WORDTM file, or other word processing program.
- the interactive preview 11802 may allow the user to edit and/or manipulate the displayed text directly in the preview panel. For example, the user may be permitted to click a mouse pointer within the interactive preview 11802 to cause a cursor to appear in the panel, and the user may manipulate the cursor or enter keyboard inputs to add, delete, and/or otherwise modify the displayed text.
- Other types of controls such as paging controls, font/format controls, scrolling controls, file management controls, input/output controls, and the like may also appear in the preview panel 11802.
- the interactive preview for an audio file might include controls to control the play of an audio preview of the selected audio file on one or more speakers (such as speakers 197) of the computer system.
- a preview of a .wav file or .mp3 file may include such audio commands.
- Some previews, sxich as previews of pictures, may include zooming/panning controls to allow the manipulation of a displayed image.
- Video previews may have controls to play, pause, or cue the playing of a video on a display and audio on a speaker of the computer system.
- the interactive preview 11802 may also be displayed in conjunction with a plurality of properties 11803 (including metadata), shown in Fig. 118 as having labels 11803a and corresponding values 11803b.
- Any type of file property may be displayed with a label.
- Example properties may include file size, folder locationoa 3 file name, project name, edit/create date, application type, etc.
- the various labels and properties 11803 that appear may be customized according to the type of file chosen, so that different sets of properties may appear for different types of files, depending on what is appropriate for the selected file's type.
- a selected audio file containing a song may have properties for album name, artist, name of song and release date, while a selected spreadsheet file might replace those properties with different properties, such as group name, project name, project leader and project start date.
- the determination of which properties are to be displayed may be automatically configured, or alternatively the user may be given the option of selecting (and/or deselecting) properties to appear in the properties area for a particular file type. Properties may be prioritized by type (e.g., an "album name" property type may be more important to a song file than an image file) to facilitate in this display.
- some labels may be considered optional, or may be omitted from the display altogether.
- One example from Fig. 118 may be the file name and file type, which is already displayed elsewhere on the screen, and would be redundant if displayed again in the properties area by the previewer.
- the space available for such non-displayed labels might be used to display additional property information. Properties having no value may be omitted by default, or may be flagged to appear despite being empty.
- some properties may be provided with different amounts of space to accommodate more lengthy properties.
- the properties may be editable from the property display area. For example, a user may simply click on, or hover over, a displayed property value, and begin a process of entering/editing data.
- the interface for entering/editing the data may be dependent on the particular property or type involved.
- Some properties, such as dates, may have a calendar display and/or pull-down menu to select a value. For example, the user can simply move a mouse pointer over a date field, and a display of a calendar can appear to help the user enter a date by choosing from the calendar. Pull-down menus or lists of possibilities may be displayed to simplify entry. For example, by clicking a mouse pointer on a month field, the system may display a list of months from which the user can choose to fill in the field.
- a simple textbox may be displayed with a cursor to allow the user to directly type in and/or edit the property value form the preview display, without requiring a separate dialog box for the data.
- the textbox may be a fill-in-the-blank box in which the user can type using a cursor and keyboard. Any other form of data entry may be used.
- those properties may be visually differentiated or accentuated in some fashion in the display. For example, a different color (e.g., yellow), font (e.g., bolded letters, or ALL CAPS font), appearance and/or symbol may be used to indicate values that are editable by the user and values that are not.
- Highlighting can also be used to differentiate or accentuate certain fields. For example, editable fields imay have a certain color (e.g., canary yellow) in and/or surrounding them, similar to the efifect created when a yellow highlighter is used on a printed document.
- Some file types may have more properties than what will fit In a given preview display.
- the user may be given the option of resizing the preview and/or properties display used in the browser 11800.
- a resizing tool 11805 may be used in the preview panel 11802, and by selecting and. moving the tool, the user can cause the browser 11800 to automatically adjust the display airea occupied by the previewer and/or properties area.
- Fig. 119 shows an example user interface in which the user has resized interactive preview 11802 to have a larger size, resulting in larger interactive previ& ⁇ V 11901.
- the new preview 11901 may be configured to have the same aspect ratio as the old preview 11802, or the user may be permitted to modify the aspect ratio as part of the resizing process.
- the browser 11800 may increase the space allocated to the display of properties as well, so that the properties and preview correspond in size.
- the properties area 11902 may be configured to have the same height as the resized preview, and may automatically rearrange the displayed data to accommodate the new size. Additional properties may be displayed in this larger area.
- a change in the size of the preview may, in some instances, cause a change in the type of preview offered, such that different sizes of preview panels result in different types of interactive preview.
- So preview 11901 may differ from preview 11802 in terms of the level of interactivity and/or the types of features provided.
- certain graphic editing features might not make sense if the preview is less than 256 pixels in width.
- the same type of resizing can occur if the user resizes the area used to display properties. For example, the user could click and drag a mouse pointer on a border of the properties area 11902, and resize it, and cause the preview area 11901 to change sizes to match the new properties area 11902 size.
- Fig. 120 shows an example in which the preview has been resized to be a smaller preview 12001.
- Smaller preview panel 12001 may have a reduced set of features given its smaller size.
- Properties area 12002 may also be reduced In accordance with the preview panel 12001, and may rearrange and/or remove displayed properties or metadata to accommodate the reduction in available space.
- Some previews may exhibit icon behavior found in the Microsoft WINDOWSTM operating systems, so that right-clicking, left- clicking, dragging, etc. may have the same effect. For example, dragging and dropping one icon onto another may cause a first file to be attached to the second.
- these elements may be rearranged either automatically or by user request. For example, the user may wish to move (e.g., by selecting a preference, by clicking and dragging the preview, or some other user input) the preview 12101 (FIG. 121) to h.ave a different orientation and appearance. A different orientation may be preferable when certain types of files are previewed.
- previews of photographs taken in the "landscape” format, or of video images may be more suitable to an orientation that is wider than it is tall (e.g., "landscape"), while other types of files (e.g., text documents, or "portrait” images) may be more suitable in an orientation that is taller than it is wide.
- the selection between the formats can also be done automatically, for example, based on file type.
- the system may, for example as part of the preview selection in step 11706 or association in step 11703, automatically examine the file type, properties, and/or metadata to determine which preview orientation would be most appropriate for the selection to be previewed.
- the preview panel and properties/metadata area may be implemented as separate software modules. Each module may be executed as a distinct process on the system's processing unit(s) 120. Alternatively, the preview and property/metadata panels need not be implemented as distinct software or software modules in the system, and may instead be implemented as a common module.
- the level of integration may be a design choice based on the level of extensibility desired, software memory footprint, and other factors.
- the preview panel may be incorporated into a computer system' s common file dialogs.
- Common file dialogs may be user interface elements and/or programs offered by the computer system to be shared by the various applications executed on the system.
- an operating system might offer a common "Open File” or "Save File” dialog that may be used by any application wishing to create a file on the system.
- Including a previewer in such common file dialogs allows multiple different types of applications to benefit from having previews, and allows applications to effectively provide rich, interactive previews of files that are not natively supported without requiring the application developers to develop their own previewer.
- Incorporating a previewer in the common file dialog also provides a consistent interface aero ss multiple applications, where user preferences and associations may be consistently used across the various applications. Furthermore, offering the previewer in the common file dialog may allow an application to effectively provide a rich, interactive preview of a diversity of file types — even file types that the application does not natively support. For example, a spreadsheet application may have installed its own rich, interactive previewer to handle previews of data-intensive spreadsheets. A separate word processing application, whicfci might not have any capability for editing the spreadsheet application's data files, may nevertheless offer such a preview by using trie common file dialog.
- Fig. 122 shows an example of a previewer that is part of an "Open File" common dialog. These common file dialogs, with their previews, may be extensibly offered to other applications through certain APIs.
- a user may wish to select multiple files at once, or have multiple files actively selected at the same time.
- the previewer may operate as described above, providing separate previews for each selected file.
- the system may alter its behavior. For example, if, in step 11705, the system determines that multiple files are selected, the step of generating a preview 1 1706 may involve a process of determining which selected file will be previewed, and which ones will not. This determination may be made based on a variety of criteria (e.g., first selection, last selection, newest selection, largest selection, simplest preview, user previewer preference, etc.), such as the associations and preferences discussed above.
- the system may also take steps to generate simultaneous previews corresponding to the multiple selections.
- multiple preview panels 12301 may be given a stacked appearance to illustrate the multiple selections being previewed.
- a primary preview 12301a may appear on top, and may have all of the same rich interactivity described above with other previews.
- Additional previews 12301b, 12301c and 20Od for the other selections may appear stacked behind the primary preview 12301a, and may have horizontal offset X and vertical offset Y.
- the offsets may be constant to present a uniform appearance. Alternatively, the offsets for each successive preview may become smaller as more previews are placed in the background. There may be a predetermined maximum number of stacked previews, beyond which a different appearance may be used.
- the stacked previews may have a different appearance, as shown in Fig. 124. There, the previews 12401a, 12401b and 12401c beyond the first six (6) are shown as being stacked with smaller offsets.
- These additional previews may be rendered as simply blank previews, with a predetermined pattern, and/or with a degree of transparency or opacity to indicate to the user that there are more selected files that are not previewed.
- FIG. 125 Alternative displays of multiple previews may also be used.
- a rotating 3-D carousel of previews such as that shown in Fig. 125
- the six-sided carousel 12501 may display six separate previews on its different faces 12502a, 12502b, 12502c (shown from back), 12502d (shown from back), 12502e (shown from back) and 12502f.
- User interface elements 12503 may be provided to allow manual navigation through the carousel, such as rotation or zoom, or carousel may be rotated automatically (or not at all).
- Other approaches include displaying multiple previews in a fanned-out display, displaying multiple previews (resizing if desired) side-by-side, displaying them in a 3-D isometric view of a stack (resembling a stack of papers), and displaying them sequentially with automatic or manual navigation.
- the preview of multiple selected files can also vary depending on the type of files chosen, and different preview sequences may be used for different combinations of selected files.
- the system e.g., via the operating system, hardware, an application, etc.
- the system may also scale back or simplify the previews offered when multiple files are selected, in order to conserve resources.
- the various features above may be implemented as a single integrated piece of code, or as a collection of subroutines or modules. For example, there may be an iterator module to handle the preview of multiple files, a commands module that is responsible for the user interface commands offered in the previews, a preview module for generating the preview itself, a properties module for handling the properties/metadata portion of the preview display, etc.
- these preview features may be offered anytime a user is to be shown a listing of files or other data on the system.
- the previewer may use the search criteria to assemble the preview. For example, an application may wish to notify the previewer of the keywords used in a search, so that the previewer can determine which preview to use, or how to sequence the previews when multiple previews are to be used. This may be an extensible feature, where the previewer is provided with the search criteria.
- Fig. 126 shows an example view in which two files 12601 and 12602 have been selected.
- the selected files may be differentiated and/oi accentuated in a unique fashion or with a unique appearance, such as having a distinct color, font, shape, texture, style, size, background color, pattern, etc.
- the properties and metadata for the selected files may display the same property for both files (such as the project name for each) 12603, 12604, and may have a corresponding appearance so that the user can easily match properties with their corresponding files.
- the properties may be color-coded to identify the selected file to which they belong.
- the pattern shown for file 12601 may accentuate and/or differentiate the file, such as by a color (e.g., red), a highlighting (e.g., a different color surrounding the text, as with a highlighter on a papeir document), a font (e.g., holding, underlining, ALL CAPS, Times New Roman, etc.), a size (e.g., larger text), etc.
- Property 12603 which may display a property of file 12601, may have the same accentuation and/or differentiation used for that file, to correlate the properties and their respective files.
- Many properties and/or metadata for multiple selected files may be aggregated and presented together as a compilation or sum. For example, if one displayed property is file size (e.g., how many kilobytes (kb) or megabytes (Mb) used), and multiple files are selected, the file size property may display an aggregated file size value, totaling the file sizes of the selected files (e.g., 4.3Mb). As another example, if one displayed property has keywords, the keywords for multiple selected files may be aggregated together and presented as a single keyword property. Some aggregations may result in a larger property display, and may use the same appearance accentuation/differentiation described above to correlate aggregated properties with their corresponding files.
- file size e.g., how many kilobytes (kb) or megabytes (Mb) used
- Mb megabytes
- the properties may be further differentiated from the selected files (e.g., a different color, font, highlighting, appearance, size, etc.) to indicate that the property is an aggregation of all selected files.
- Fig. 127 depicts an example in which an aggregated property value 12701 is displayed with a distinct appearance represented by shading, which is different from the patterns on the selected files 12601, 12602 individually.
- the shading may represent, for example, the color red, while the patterns on files 12601 and 12602 may be green and yellow.
- Fig. 128 depicts an enlarged properties/metadata display of the view shown in Fig. 127.
- Some aggregated properties, such as keywords, may result in a listing 12801 of multiple property values aggregated from the multiple selections. These aggregated properties may be given distinct appearances that indicate which values came from which selected file.
- values 12802 and 12803 are shown in one form of shading to indicate that those particular values (e.g., keywords) are common to both selected files 12601 and 12602.
- That shading can reflect any of the types of differentiation and/or accentuation described above (e.g., the color red).
- Values 12804 and 12805 are shown with a first pattern to indicate that they are associated with one selected file 12601, which shares the same pattern (e.g., a file and its values are both blue) and value 12806 has a different pattern to indicate that it is associated with the other selected file 12602, which shares the same pattern (e.g., this file and its values are green).
- a separation line 12807 may be used to delineate values that were common to all selected files from those that were not. Of course, different appearances may be given different meanings when more files are selected.
- Label 12808 may also be visually differentiated and/or accentuated to indicate that it is an aggregated property. For example, label 12808 may also be in red.
- Accentuation and/or differentiation can also begin with user selections of certain values in the aggregated values. For example, a user may select one of the values in the aggregated list, and cause a subsequent display to appear that indicates which files share the selected value. The indication could come in the form of a common appearance, where the selected value and its corresponding files are displayed in a common manner. For example, by clicking on value 12806, the system may automatically change the font of that property value to a boldfaced font, and may do the same to the file listing 12602 to identify the file whose property was selected.
- properties While some kinds of properties are easier to aggregate because they have numbers (e.g., file size is simply a total of the individual sizes), other types of properties may be more difficult to aggregate. For example, some properties have text words as values (e.g., keywords). Furthermore, some individual properties and/or metadata may have multiple values themselves, known as multi-value properties. For example, a given file's "keywords" property may have none, one, two, three, or any number of distinct keywords as values (e.g., one file may list "peanut", "food” and "candy” as keywords relating to the file).
- These multiple values may also be sequenced in a meaningful way for each file, such that the first value listed may be more important (e.g., an article that primarily deals with peanuts, might list "peanut” as the first keyword because it is most important, and may list "food” and "candy” second and third, in descending order of importance).
- the process of aggregating those properties is not as simple as just adding numbers.
- the system may display a listing of the values that are in some form of ranked order based on the order in which they appeared for the individual selected files. Steps may be taken to help ensure that the resulting list of aggregated values corresponds to the relative importance of the values as they appeared for the various selected files. For example, five newspaper articles may have keywords identifying the cities that are discussed in the articles, and ranked in the following order:
- Figs. 129 A-B depict an example process for determining the order in which aggregated vahxes for multiple-value properties may be displayed, and may be run whenever such an aggregated display is needed, and/or whenever a multi-value property is changed.
- the process is a modified form of the Single Transferable Vote algorithm. In this process, when a particular value is listed first in a file's properties, that is considered a "vote" for first place. If the value is listed second, that's a vote for second place, and so on, and so forth. The process produces a nonredundant ranking that is based on both the number of times each particular value appears in the selected files, and on the relative importance placed on the value by each of the selected files.
- a global integer constant, C is established either automatically (e.g., the computer system may detect the availability of system resources, and adjust the constant to avoid bogging down the system), or manually (e.g., the user may be given the option to set C as high or as low as they want, depending on how much detail they want in the aggregation of multi-value properties).
- This constant represents a number of places or rankings for which the process will be carried out, for example, C may be ten (10). A higher constant C will allow greater granularity in the ranking, but would require greater processing power and more time. This value may be dynamically established depending on user preference, system settings, available resources, system load, etc.
- step 12902 a loop begins for each value present among the selected files.
- step 12903 a nested loop is executed, for the first C places in the voting.
- step 12904 for each place, the system tallies the number of votes that the current value received for that place.
- step 12906 a check is made to determine whether any single value received the most votes for the place under consideration. If a value received the most votes for this place, that value is awarded this place, and the value is removed from the remainder of the calculations in the vote tabulation process, in step 12907. So in the above example, Chicago received the most votes for first place (two votes).
- step 12906 If, in step 12906, no single value had the most votes for this place, then there is a tie for the current place (either 2 or more values had the same number of votes for this place, or all values had zero votes for this place), and the process moves to step 12908 where a check is made to determine whether the current place being checked is the last place to be checked (Cth place). If it is not, the process moves to step 12909. In step 12909, the system "peeks" ahead one place, to identify the number of votes that the current tied values received for the next place.
- step 12910 if one of the tied values had the most votes for the next place, then that value is given the present place in step 12911, and the votes for the current place held by the other tied values are moved, or transferred, to the next place.
- the "losers" at step 12911 have their votes for the current place added to their vote total for the next place, so that for every value that received votes in the place under consideration, but was not awarded that place, its votes in the current round are carried over and added to its votes in the next round when computing a "winner for that round.
- step 12910 If, in step 12910, none of the tied values has the most votes for the next place, then all of the tied values are ranked in alphabetical order for the current place in step 12913 (and the next several places until the tied values are all given a place), and the process returns to step 12905. Similarly, if, in step 12908, the process happened to be examining the last place (place C) when the tie occurred, then the process also moves to step 12913 to rank the tied values alphabetically, and on to step 12905.
- step 12905 if the last place (CtIi place) has been processed, then the process moves to step 12914, where all remaining ⁇ /otes for the remaining unranked values are treated as votes for Cth place, and the remaining values are ranked in order of whomever has the most votes for Cth place, with ties being broken using alphabetical order.
- the algorithm shown in Figs. 129A. -B may keep a summary table in memory tabulating the various vote counts and values .
- the table may be advantageous, in that the system can incrementally load the table into operating RAM as the process runs, deleting portions from RAM that are not longer needed, and thereby reducing the amount of run ⁇ time memory required to run the process.
- the various multi-property values may undergo a normalization process.
- the normalization process may delete redundant appearances of values in a file's multi-property field.
- a file may have keywords (Dog, Cat, Dog), and the normalization process may keep the first occurrence of the values, and remove subsequent occurrences of the same value (e.g., resulting in "Dog, Cat").
- Un-normalized data may be stored in the system's memory, and the normalized version may overwrite that data, or the normalization data may simply be stored separately in the memory.
- normalization may occur when the user modifies a multi-value property.
- a user may wish, to edit the multi-value properties through interaction with the aggregated display.
- the system may revise the multi- value properties for each file in response to changes made to the aggregated multi-value properties display. For example, an addition of a new property to trie end of the aggregated display may simply cause the new property to be appended to the multi-value property for each of the files. The same thing may occur if a new property is inserted in the beginning of the aggregated multi-value property display, or any other insertion. Some changes, such as reordering of the properties within the aggregated properties display, may cause a corresponding reordering of the multi-value properties for each of the files.
- Multi-value properties may also have a unique approach to editing data. For example, fields for such properties may appear in a list, similar to that shown in Fig. 130.
- Field 13001 may be an active text edit box in which the user may type to enter data, and may have a number of values 13002, which may be delineated in the field by characters such as semicolons. Values 13002 may exhibit atomic behavior, or token behavior, such that the entire value may be selected as a single selection.
- an atomic value 13002 may behave as a single unit, as opposed to a plurality of characters (e.g., "NYC", as opposed to "N” "Y” "C”), and placing an insertion point within an atomic value might e ⁇ ven be prohibited, such that an attempt to place an insertion point within the atomic value (e.g., by clicking a mouse within it) may result in an insertion point being placed before or after the atomic value. Pressing arrow keys to navigate around an atomic value may also move from one side of the value to the other side in a single keypress.
- such regions may be prohibited from selecting only a part of an atomic value, such that selection of a predetermined portion (e.g., half) of the value results in a selection of the entire value.
- Hovering over an atomic value may cause the value to enter a hover state indicating that it is an atomic value.
- the hover state may include a box or highlighting, or other visual differentiation or accentuation around the entire atomic value.
- the values may also be rearranged by drag-and-drop operation.
- the token behavior is not limited to simply selecting the eatire word at once.
- the word may be replaced by alternative user interface elements. For example, a time could be replaced by a graphic image of a clock; a date could be replaced by an image of a calendar.
- the atomic values may exhibit icon behavior, such that clicking (or right-clicking) on them may cause additional levels of interactivity, such as bringing up command menus, option lists, other pop-ups, etc. Values can also be dragged onto other files and/or properties, and those values may be added to the other files and/or properties.
- At the end of the field's list there may be a prompt string 13003 reminding the user of what data the field contains.
- the prompt string 13003 mary appear only when the field 13001 is in an edit state, such as when it is given a keyboard focus for the entry of data, and the prompt string 13003 is not treated as an actual value in tb.e multi-value field (e.g., it is not saved to memory as a value in the field, but is rather generated as part of the user interface).
- the prompt string 13003 may have be visually differentiated and/ox accentuated using any of the types previously discussed (e.g, it may have a highlighting of a certain color in the area around the letters), and may exhibit some types of default behavior. For example, the prompt string 13003 may automatically appear whenever the field 13001 is in an edit state and an insertion point is at the end of the string of values. Once the user starts typing to insert a new value at the insertion point (e.g., by starting to type in a textbox), and new characters are added, the prompt string 13003 may automatically disappear. The prompt string may reappear automatically should the user complete, or abort, entry of the new value.
- the field may also display a dropdown menu 13004 providing the user with a list of potential values to add to the multi- value field 13001, and. the user can select an entry from the menu.
- the dropdown menu 13004 may include axi autosuggest feature, which may be implemented according to the process shown in Fig. 1 31.
- the process may begin in step 13101 by collecting all values already in use for the given property and/or used by the given user.
- the menu 13004 can omit values that are already present in the multi-value property for the selected file(s), since the user is unlikely to want to add a duplicate.
- the list may be sorted by popularity, alphabetically, or by any other desired method.
- the menu may be displayed with the autosuggest. If some of the listed values are already present for some, but not all, of the selected files, those values may be given a different appearance (e.g., highlighting, coloring, pattern, font, etc. as discussed above) to indicate that fact. Values that are not used in any of the selected files may also be given a different appearance to indicate that fact.
- a different appearance e.g., highlighting, coloring, pattern, font, etc. as discussed above
- the field may also have an autocomplete feature, as shown in Fig. 1 32.
- the autocomplete feature when a user begins to type a new value to add to tfcie multi-value property (such as by typing the "D" in the Fig. 132 example), the system may automatically attempt to complete the entry with an anticipated value.
- the autocomplete feature may be implemented using the process shown in Fig. 133.
- the anticipated value may be selected by first taking all of the values in use for the given property in step 13301, and filtering out the ones that already apply to the selected file(s) in step 13302.
- a further filtering may occur in step 13303 to identify the values that begin with the letters that have already been entered by the user, and selecting the first (alphabetically) value that starts with the letter(s) that the user has already typed.
- the remaining possibilities may be sorted by popularity, alphabetically, or by any other desired method, and in step 13304 the remaining list may be displayed.
- the first entry in the list may be selected by default, and may be highlighted and the remaining characters may automatically be placed in the field following the user's entered data, with additional highlighting if desired.
- the autosuggest and autocomplete features described above may include other types of filtering steps as well.
- filters may select the most recent values that were selected and/or entered by the user; or filter the possible values based on the context that created the listing of properties. For example, if the selected files were selected for display as part of a project view (e.g., displaying files that relate to a given project), the system may automatically determine that certain possible values are more (or less) likely to be used in that project, and may filter the list accordingly.
- a check may be made to validate the entry. For example, certain fields may be predetermined to only have a specified range or list of possible values (e.g., day of week), and if the user attempts to enter an invalid entry in the multi-property field, the system may simply reject the entry, providing the user with a message indicating that the entry was invalid.
- Various aspects of the present invention may be used to enhance navigation through a conventional folder tree control (e.g., a navigation pane, navigation panel, page space control, or the like) or navigation of other data.
- the traditional folder tree control 13600 in Figure 136 allows a user to view, organize, and retrieve data.
- a vertical scroll bar 13602 and horizontal scroll bar 13604 accompany the folder tree control as one mechanism to permit user navigation through the folder tree structure. As a user navigates vertically through the hierarchy of the folder tree structure, the relevant node may no longer be fully visible in the narrow viewable window pane.
- a folder tree in accordance with various aspects of the present invention is displayed.
- Figure 137 is merely one example of a folder tree in accordance with various aspects of the present invention.
- Aspects of the present invention may be implemented with a variety of tree controls or other data navigation.
- a folder tree may be a hierarchically tree-shaped set of user interface controls that expose branches of the tree in hierarchical levels as navigated by the user.
- the user of a folder tree control may click on a node exposed by the tree control to expand the node in place; the node can be collapsed if it is already expanded.
- a small widget such as one displaying '+' or '-', may be used to indicate whether a node is collapsed or expanded, as is known in the art.
- the expansion of a node shows the nested nodes hierarchically under the currently selected node.
- the user may expand/collapse a node by, for example, clicking on a button, clicking on the node, or clicking on the displayed widget.
- a folder tree control enables a user to navigate across hierarchically arranged data, as is known in the art.
- a vertical scroll bar 13702 accompanies the folder tree control as one mechanism to permit user navigation through the folder tree structure.
- the folder tree control may automatically scroll in another dimension (e.g., horizontally) to ensure that a node relevant to the user is within the visible area of the window 13700.
- the relevant node may be a current node, a node having input focus, or an otherwise selected node.
- the relevant node may be a node in the tree structure, for example, that is horizontally alongside the mouse pointer's position.
- the folder tree control may automatically horizontally scroll the folder tree such that the relevant node is visible within the window 13700.
- the displayed tree view is scrolled horizontally to the right, resulting in the tree moving to the left, by a predetermined distance such that the folder name is fully visible, or as fully visible as possible given the width of the predetermined viewable area 13700. If the folder name is truncated for any reason, then the predetermined distance may be such that that the dynamic horizontal scrolling results in the entire truncated folder name being fully visible.
- the predetermined distance for automatically scrolling a navigational control may vary among embodiments of the invention.
- the predetermined distance for automatically scrolling is equal to the distance necessary to align a relevant node 13706 with a right edge of the predetermined viewable area 13700.
- a relevant node is wider than the predetermined viewable area 13700, and the predetermined distance for automatically scrolling may equal the distance necessary to align a relevant node 13706 with a left edge of the predetermined viewable area 13700.
- the predetermined distance for automatically scrolling may equal the distance necessary to align a relevant node 13706 in the center of the predetermined viewable area 13700.
- These examples are merely illustrative of an appropriate predetermined distance to be used for approximately aligning the relevant node 13706 in the predetermined viewable area 13700, and they should not be narrowly construed to limit the scope of the claims.
- the dynamic horizontal scrolling discussed may be delayed by an appropriate time period.
- the horizontal scrolling may be set to occur immediately, or may be set to occur 100 ms after a user first positions the mouse pointer alongside a relevant node.
- At least one benefit of implementing a time delay is to create or provide the appearance of smooth movement.
- One skilled in the art will appreciate that the amount of time delay set may be varied as appropriate.
- Figures 138 A and 138B illustrate screenshots of an illustrative user interface for viewing and organizing stored data in accordance with various aspects of the invention.
- Similar navigational control interfaces are available for documents, messages, video files, and contacts, with the navigational control interface in each case being specifically adapted for the kind of data item that is presented.
- Such content-oriented interfaces may be provided with an operating system product as a component of the user interface, or shell.
- a node 13802 currently has focus responsive to user input.
- user input may include a user moving a mouse pointer near or over the node 13802.
- the tree control determines whether horizontal scrolling is appropriate. In this case, the folder name (i.e., descriptor) is entirely visible. Therefore, automatic horizontal scrolling is not performed.
- Figure 138B illustrates just such a folder tree control in accordance with various aspects of the invention. The then relevant node 13808 currently has focus in Figure 138B.
- Node 13808 is the same data item as Node 13804, however, Node 13808 has focus in Figure 138B while Node 13804 did not have focus in Figure 138A. Furthermore, in Figure 138B the folder tree has automatically dynamically scrolled horizontally to the right by a predetermined distance to make the entire name of Node 13808 visible. In this case, the node name is "Folder Name" and is not truncated.
- the predetermined distance that the folder tree control is horizontally scrolled may be determined by calculating the amount of distance required to approximately align the end of the node name at or near the edge of the internal window pane. Meanwhile, the previously- focused node 13806 is no longer highlighted and may not be fully visible.
- the view of the navigational control is dynamically scrolled horizontally by an appropriate distance after it is determined that scrolling (e.g., horizontal scrolling) is desired.
- scrolling e.g., horizontal scrolling
- One skilled in the art will appreciate that at least one advantage of the instant invention is that it does not require the display of a horizontal scroll bar, thereby resulting in additional viewable area on a limited display screen for displaying data of the folder tree.
- a horizontal scroll bar is not required, the instant invention does not preclude a horizontal scroll bar from being included and/or used.
- a horizontal scroll bar could be beneficial to a user to visually indicate the current horizontal position of the displayed view in relation to the folder tree.
- Figure 139 illustrates a flowchart describing a computer-implemented method for automatically dynamically scrolling content in one dimension responsive to user-controlled scrolling or navigation of the content in another dimension.
- steps illustrated in Figure 139 may be performed in other than the recited order, and that one or more steps illustrated in Figure 139 may be optional.
- a user is presented with an initial view of content.
- the content may be displayed in the form of a hierarchical folder tree control with multiple levels of nodes.
- Figure 138A is just one example of a first view of a hierarchical folder tree.
- Figure 136 is yet another example of a first view of a hierarchical folder tree.
- step 13906 the user scrolls content in a first dimension and/or interacts with the content.
- These acts are just some examples of user inputs indicative of navigation of the content.
- Various user inputs scroll the relevant content by moving its position in the predetermined viewable area. For example, a form of user navigation that results in vertical scrolling of content is when a user drags a floating vertical scroll bar control 13606 towards the top or bottom of a window pane 13600 containing a folder tree control. Meanwhile, various non-scrolling user inputs interact with the relevant content by updating the designation of which content is relevant to the user.
- FIG. 138 A An example is when a user presses the "up arrow,” “down arrow,” “page up,” or “page down” button on an input device 115 while the folder tree control window is active.
- FIG 138 A An example of a non-scrolling user input may be illustrated in Figure 138 A. If a user presented with the view of content illustrated in Figure 138A moves a mouse pointer over or near node 13808, then node 13808 receives focus. In this example, the user interacts with the content, rather than scrolling the content in a first dimension. In another example the user may be both interacting with the content and scrolling the content in a first dimension simultaneously.
- a user may interact with a folder tree by pressing an expand widget, resulting in sub-nodes 13608 of the node 13610 to which the widget corresponds being only partially displayed in the viewable area of the folder tree control.
- step 13908 if the relevant content is fully visible, then no automatic scrolling may be necessary. If the relevant content is not fully visible (or is at least partially obscured) in the predetermined viewable area, then the relevant content may be scrolled in a second dimension to a state where the relevant content has increased visibility.
- the relevant content in Figure 138A is node 13802, which has focus in that illustration. After a user interacts with the content displayed in Figure 138A (e.g., in step 13906) by moving a mouse pointer over or near node 13804, then node 13804 will receive focus and become the relevant content.
- node 13804 is at least partially non- visible (obscured) in the predetermined viewable area
- the relevant content may be automatically scrolled in a horizontal dimension, as further described below.
- the relevant content may comprise both the node 13610 and its sub-nodes 13608.
- step 13910 the performance of step 13912 is delayed for a predetermined amount of time.
- the amount of the predetermined time period of delay can be zero or any other value greater than zero.
- a predetermined time period of delay of 100 ms may elapse before the folder tree control is dynamically scrolled horizontally by a predetermined distance, resulting in the view r illustrated in Figure 138B.
- the amount of time delay set may vary as appropriate.
- step 13912 the content is automatically dynamically scrolled in a second dimension for a predetermined distance.
- the folder tree control may be horizontally scrolled by a predetermined distance such that the end of the node descriptor (e.g., folder name) is approximately aligned with the right edge of the predetermined viewable area.
- the end of the node descriptor e.g., folder name
- the node shall be construed to be approximately aligned with a predetermined edge of the viewable area.
- the predetermined distance in each instance may also vary accordingly.
- the relevant content in response to a user selecting the expand widget corresponding to node 13610, the relevant content may be approximately aligned with the left edge of the predetermined viewable area such that sub-nodes 13608 are provided with increase visibility.
- second should not be construed to mean that a first dimension is necessary or required.
- step 13906 a user interacts with the content displayed in Figure 138A by moving the mouse pointer so that it changes focus from node 13802 to node 13804, then in step 13912, the content may be automatically dynamically scrolled in a horizontal dimension. In that case, even though there was no initial scrolling in the vertical dimension, the "second dimension" would be the horizontal dimension.
- step 13914 the user is provided with an updated view of the content in the predetermined viewable area.
- Figure 138B is a scrolled content view of a folder tree resulting after step 13914.
- the updated view provides a user with increased visibility of relevant content (node 13808) in the narrow viewable area in Figure 138B.
- a programming interface (or more simply, interface) may be viewed as any mechanism, process or protocol for enabling one or more segment(s) of code to communicate with or access the functionality provided by one or more other segment(s) of code.
- a programming interface may be viewed as one or more mechanism(s), method(s), function call(s), module(s), obj ect(s), etc. of a component of a system capable of communicative coupling to one or more mechanism(s), method(s), function call(s), module(s), etc. of other component(s).
- segment of code in the preceding sentence is intended to include one or more instructions or lines of code, and includes, e.g., code modules, objects, subroutines, functions, and so on, regardless of the terminology applied or whether the code segments are separately compiled, regardless of whether the code segments are provided as source, intermediate, or object code, regardless of whether the code segments are utilized in a runtime system or process, regardless of whether they are located on the same or different machines or distributed across multiple machines, and regardless of whether the functionality represented by the segments of code are implemented wholly in software, wholly in hardware, or a combination of hardware and software.
- FIG. 145A illustrates an interface between two computers.
- FIG. 145B illustrates an interface Interface 1 as a conduit through which first and second code segments communicate.
- FIG. 145C illustrates an interface as comprising interface objects Il and 12 (which may or may not be part of the first and second code segments), which enable first and second code segments of a system to communicate via medium M.
- interface objects Il and 12 which may or may not be part of the first and second code segments
- FIGS. 145A-. 145B and 145C show bi-directional flow and interfaces on each side of the flow, certain implementations may only have information flow in one direction and/or may only have an interface object on one side.
- aspects of a programming interface may include the method whereby the first code segment transmits information ("where "information" is used in its broadest sense and includes data, commands, requests, etc.) to the second code segment; the method whereby the second code segment receives the information; and the structure, sequence, syntax, organization, schema, timing and content of the information.
- the underlying transport medium itself may be unimportant to the operation of the interface, whether the medium be wired or wireless, or a combination of both, as long as the information is transported in the manner defined by the interface.
- information may not be passed in one or both directions in the conventional sense, as the information transfer may be either via another mechanism (e.g. information placed in a buffer, file, etc.
- FIGS. 145D-145M The concept of a programming interface is known to those skilled in the art. There are various other ways to implement a programming interface. Such other ways may appear to be more sophisticated or complex than the simplistic view of FIGS. 145B and 145 C, but they nonetheless perform a similar function to accomplish the same overall result. Some illustrative alternative implementations of a programming interface are described in connection with FIGS. 145D-145M. [0729] Factoring. A communication from one code segment to another may be accomplished indirectly by breaking the communication into multiple discrete communications. This is depicted schematically in FIGS. 145D and 145E. As shown, some interfaces can be described in terms of divisible sets of functionality. Thus, the interface functionality of FIGS.
- 145B and 145C may be factored to achieve the same result, just as one may mathematically provide 24, or 2 times 2 times 3 times 2.
- the function provided by interface Interface 1 may be subdivided to convert the communications of the interface into multiple interfaces Interface IA, Interface IB, Interface 1C, etc. while achieving the same result.
- the function provided by interface Il may be subdivided into multiple interfaces Ha, Hb, He, etc. while achieving the same result.
- interface 12 of the second code segment which receives information from the first code segment may be factored into multiple interfaces I2a, I2b, I2c, etc.
- the number of interfaces included with the 1st code segment need not match the number of interfaces included with the 2nd code segment.
- the functional spirit of interfaces Interface 1 and Il remain the same as with FIGS. 145B and 145 C, respectively.
- the factoring of interfaces may also follow associative, commutative, and other mathematical properties such that the factoring may be difficult to recognize. For instance, ordering of operations may be unimportant, and consequently, a function carried out by an interface may be carried out well in advance of reaching the interface, by another piece of code or interface, or performed by a separate component of the system.
- one of ordinary skill in the programming arts can appreciate that there are a variety of ways of making different function calls that achieve the same result.
- FIGS. 145F and 145 G Redefinition.
- interface Interface 1 of FIG. 145B includes a function call Square ⁇ input, precision, output), a call that includes three parameters ("input,” “precision” and “output”) and which is issued from the 1st Code Segment to the 2nd Code Segment. If the middle parameter ("precision") is of no concern in a given scenario, and as shown in FIG. 145F 5 it could be ignored or replaced with another parameter.
- the functiona-lity of Square can be achieved, so long as output is returned after input is squared by the second code segment.
- Precision may very well be a meaningful parameter to some downstream or other portion of the computing system; however, once it is recognized that precision is not necessary for the narrow purpose of calculating the square, it may be replaced or ignored. For example, instead of passing a valid precision value, a meaningless value such as a birth date could be passed without adversely affecting the result.
- interface Il is replaced by interface H', redefined to ignore or add parameters to the interface.
- Interface 12 may similarly be redefined (as interface 12') to ignore unnecessary parameters, or parameters that may be processed elsewhere.
- a programming interface may in some cases include aspects such as parameters which are not needed for some purpose, and which may be ignored, redefined, or passed on for processing elsewhere for other purposes.
- FIGS. 145B and 145C may be converted to the functionality of FIGS. 145H and 1451, respectively.
- FIG. 145H the previous 1st and 2nd Code Segments of FIG. 145B are merged into a module containing both of them.
- the code segments may still be communicating with each other but the interface may be adapted to a form which is more suitable to the single module.
- formal Call and Return statements may no longer be necessary, but similar processing or response(s) pursuant to interface Interfacel may still be in effect.
- FIG. 145H the previous 1st and 2nd Code Segments of FIG. 145B are merged into a module containing both of them.
- the code segments may still be communicating with each other but the interface may be adapted to a form which is more suitable to the single module.
- formal Call and Return statements may no longer be necessary, but similar processing or response(s) pursuant to interface Interfacel may still be in effect.
- interface 12 from FIG. 145 C may be written inline into interface Il to form interface II ".
- interface 12 is divided into I2a and I2b, and interface portion I2a has been coded in-line with interface Il to form interface II".
- Divorce A communication from one code segment to another may be accomplished indirectly by breaking the communication into multiple discrete communications. This is depicted schematically in FIGS. 145J and 145K. As shown in FIG. 145J, one or more piece(s) of middleware (Divorce Interface(s), since they divorce functionality and/or interface functions from the original interface) are provided to convert the communications on the first interface, Interfacel, to conform them to a different interface, in this case interfaces Interface2A, Interface2B and Interface2C.
- middleware Divorce Interface(s)
- a third code segment can be introduced with divorce interface DIl to receive the communications from interface Il and with divorce interface DI2 to transmit the interface functionality to, for example, interfaces I2a and I2b, redesigned to work with DI2, but to provide the same functional result.
- DIl and DI2 may work together to translate the functionality of interfaces Il and 12 of FIG. 145C to a new operating system, while providing the same or similar functional result.
- the JIT compiler may be written so as to dynamically convert the communications from the 1st Code Segment to the 2nd Code Segment, i.e., to conform them to a different interface as may be required by the 2nd Code Segment (either the original or a different 2nd Code Segment).
- This is depicted in Figures 145L and 145M.
- this approach is similar to the Divorce scenario described above. It might be done, e.g., where an installed base of applications are designed to communicate with an operating system in accordance with an Interface 1 protocol, but then the operating system is changed to use a different interface.
- the JIT Compiler could be used to conform the communications on the fly from the installed-base applications to the new interface of the operating system.
- this approach of dynamically rewriting the interface(s) may be applied to dynamically factor or otherwise alter the interface(s), as well.
- a "file dialog” may refer to a dialog created for the purpose of opening, saving or otherwise indicating a file is to be processed and/or how a file is to be processed. Although embodiments of the invention will be described by reference to examples of dialogs for opening and for saving files, the invention is not limited in this regard. Other examples of file dialogs include dialogs for inserting file attachments, for importing files, etc. As used herein, the word "file” is given a broad meaning and generally refers to a collection of information accessible by a computer.
- a file may include text, programming instructions and/or various other types of data.
- a file may be identified to a user as document, a photograph, or some other type of item for which the file contains data.
- a file may also be fragmented or otherwise stored in one or more physical locations on a disk or other storage medium.
- files may have multiple metadata attributes (alternatively referred to as "properties") as described above. Using values for those attributes, files may then be grouped into collections of interest to a user.
- files on one computer may have metadata attributes such as file author, a customer to which the file pertains, and file type.
- User A then creates spreadsheet, word processing and slide show presentation files regarding customers X, Y and Z and stores all of those files in a directory subfolder "C: ⁇ Users ⁇ User_A ⁇ ".
- User B creates spreadsheet, word processing and jpeg image files for those same customers.
- User B stores spreadsheet and word processing files in "C: ⁇ Users ⁇ User_B ⁇ ", but stores image files in "C: ⁇ Media ⁇ Photos ⁇ ”. All of these files are then accessible based on lists. For example, a "Client X" list groups all spreadsheet, word processing, slide show and jpeg files for client X, regardless of author. By specifying the Client X list, the user is able to see a grouping of those files without having to separately navigate through multiple subdirectories.
- These "author,” “customer” and “file type” metadata attributes are provided for purposes of illustration. Other examples include properties such as rating, comments, project, etc. A very large number of metadata attribute types can be implemented, and the invention is not limited by type of metadata attribute. [0737] Shown in FIG.
- Open File dialog 14600 is an "Open File" dialog 14600 according to at least some embodiments of the invention.
- GUI graphical user interface
- a file dialog according to the invention might also be generated as a pane of (or frame within) a pre-existing window.
- Open File dialog 14600 is contained in a frame 14601 of a dialog window and has a title 14602.
- Controls 14603 respectively permit a user to minimize, maximize or close dialog 14600.
- Arrow 14604 is a "back" control which a user can select to return to file groupings which the user has previously viewed.
- Adjacent to title 14602 are a navigation bar 14605 and a search bar 14606, both of which are described below.
- Open File dialog 14600 is divided into four regions 14607-14610.
- Browser region 14607 includes a places bar subregion 14611 and a pagespace subregion 14612.
- Entries in places bar 14611 correspond to lists, directory locations or other groupings of files, and represent "places" to which a user may navigate to locate files. Selecting one of the entries in places bar 14611 causes a corresponding display in pagespace region 14612. In some cases, that display may be a collection of icons corresponding to files in the selected place (e.g., the selected list or other grouping).
- selecting a particular places bar entry may display a collection of file icons together with icons for one or more folders, directories or other locations to which a user might navigate.
- One or more entries in places bar 14611 may be expandable to show sublists or other subgroupings of documents. For example, the "People" entry in FIG. 146 could be expandable to reveal lists of files pertaining to (i.e., having the appropriate metadata attribute values corresponding to) different individuals.
- a text file may be represented as a thumbnail image of the first page of the document saved in that file.
- a file might be represented by an icon corresponding to the application program which created the file (or with which the file is otherwise associated).
- a scroll bar 14613 allows the user to see additional files.
- infopane region 14608 After selecting one of the files displayed in pagespace 14612, more detailed information for that file is provided in infopane region 14608.
- Displayed in infopane region 14608 is a larger preview (or "ghost") 14614 of the selected file, together with values 14615 for various metadata attributes.
- FIG. 146 shows selection of an image file, the invention is not limited in this regard.
- one or more of the files displayed in pagespace 14612 might be a text file. Upon selection of such a file, an image of the first page of that text file would be shown as ghost 14614.
- the properties and values shown in infopane region 14608 for a selected file can vary. Using the earlier example of User A and User B, selection of a file in a "Client X" list could show values for author and client in infopane region 14608.
- the user is provided with information indicating the "trail" which the user followed to reach the current pagespace display.
- the user first navigated to a "Photos & Videos” list, and then to a "Recent Photos” sublist. The user can then use search bar 14606 to locate files, within the current pagespace, based on title or keyword values.
- an extensibility region of a file dialog may contain any of a wide variety of user interface (UI) controls which may be specified by the developer of the software program which instantiates the dialog 14600.
- UI control includes various types of graphical elements which a user can select (by, e.g., hovering a cursor over the control and pressing a mouse button) so as to interact with the application (or other computer program) that instantiated the dialog.
- UI controls include, but are not limited to, push (or "command") buttons, "radio” buttons, check boxes, text input (or “edit”) boxes, etc.
- UI controls also include graphical elements which only provide information to a user (i.e., which do not offer a user the chance to select something or otherwise provide input). Examples of such information-only UI controls include a block of text or a spacer dividing other UI controls.
- FIG. 146 only shows a set of radio button controls and a text label ("Options") for those radio buttons. Examples of other types of controls are described below.
- extensibility region 14609 is optional, and a developer could omit it altogether.
- Command region 14610 includes a text entry control 14616 which permits entry of the name of a file a user wishes to open. Although not shown, command region 14610 could also include a control allowing a user to input (or select from a drop-down list) the type of file which the user wishes to open. This control would be useful if, e.g., two files of different types have the same title (e.g., "report.DOC” and "report.PDF").
- a view control 14617 allows a user to change the way in which files are shown in pagespace 14612.
- a user may instead wish to see files identified in a "details" mode (not shown) providing a table of file names, types, sizes, etc.
- the view mode is based on a default view associated with the list or other location to which a user has navigated in browser region 14607.
- a developer can set the default view mode for any location, and a user may be permitted to override the view mode settings.
- the columns displayed are also based on the location to which a user has navigated, but a developer can specify (and a user can override) which columns are visible.
- Control 14618 allows a user to change the appearance of dialog 14600 such that infopane region 14608 is not displayed (see FIG. 147), or if infopane region 14608 is already hidden, to show infopane region 14608.
- Command button 14619 permits a user to open a file which has been selected in pagespace 14607 or identified in control 14616.
- Command button 14620 permits a user to cancel dialog 14600.
- a developer may also override the default button labels and specify other text (e.g., change the "Open” button to "Check Out”).
- Save File dialog 14800 is contained in a frame 14801 of a dialog window and has a title 14802. Controls 14803 and back arrow 14804 operate similar to controls 14603 and 14604 in Open File dialog 14600 of FIG. 146. Navigation bar 14805 and search bar 14806 function similar to navigation bar 14605 and search bar 14606 of Open File dialog 14600. Save File dialog 14800 also includes a browser region 14807 having places bar 14811 and pagespace 14812. As with Open File dialog 14600 (FIG.
- pagespace 14812 of information about files associated with a list, directory folder or other file grouping, and/or a display of icons permitting navigation to other locations.
- Files displayed in pagespace 14812 can similarly be sorted using the controls ("Name,” "Type,” etc.) at the top of pagespace 14812.
- Save File dialog 14800 further includes an infopane region 14808.
- infopane regions for Save File dialogs are located beneath the browser region.
- Infopane region 14808 includes a ghost 14814 of the file to be saved.
- ghost 14814 may be a thumbnail image of the document, picture or other item stored in the file, may be an icon corresponding to an application associated with the file, or may be some other type of graphical representation.
- a file name control 14816 allows a user to enter a name for the file being saved. This field may have a file name suggested by an application program instantiating the File Save dialog (e.g., the first words of the file being saved).
- the user may be replacing an existing file by selecting a file from pagespace 14812, in which case the filename for the replaced file may be automatically added to control 14816.
- a user may be unsure about where a file should be stored. Using places bar 14811 (page space control), the user can navigate to one or more lists or other file groupings and find an appropriate location. As the user navigates through such groupings, he can see information in pagespace 14812 regarding other files in those groupings and use that information to determine if the current file should be saved to one of those groupings.
- a ghost 14826 of the file being saved is also shown in pagespace 14812 as the user navigates through various possible locations for the file. In this manner, the user is provided with a visual indication of the location in which he or she can later find the file. The presence of ghost 14826 in pagespace 14812 also signals that the current list or other grouping is a valid save location.
- infopane region 14808 Also shown in infopane region 14808 are fields 14815 for various metadata regarding the file being saved.
- a user may select one or more of these fields to add a metadata value.
- the user might select the "keywords" field and add words which might make the file easier to find in a future keyword search.
- a value for one of the metadata fields may be populated (at least initially) by an application instantiating dialog 14800.
- a value of a metadata field might be automatically populated based on the selected storage location for the file. If, for example, a user saves a file in a "project X" list, a metadata field for "project” (not shown in the drawings) would be automatically populated with "X”.
- the metadata categories and values shown in infopane region 14808 for a file can vary.
- an extensibility region 14809 Similar to extensibility region 14609 of Open File dialog 14600, the extensibility region of a Save File dialog may contain any of a wide variety of user interface (UI) controls which a software developer may specify. Although a pair of check boxes are shown in FIG. 148, other UI controls could be included. Extensibility region 14809 is optional in at least some embodiments. Stated differently, a developer would be free to create a Save File dialog without an extensibility region.
- UI user interface
- Command region 14810 contains a command button 14819 for saving a file to a selected location, as well as a command button 14820 for canceling Save File dialog 14800. Text for these buttons can be changed by a developer (e.g., changing "Save” to "Check In”). Also included in command region 14810 is a control 14821 for hiding browser region 14807. By selecting this control, and as shown in FIG. 149, browser region 14807 is no longer displayed. In this manner, a more compact Save File dialog can be provided.
- Navigation bar 14805 and search bar 14806, and/or the minimization and maximization arrows of controls 14803, may also be removed in a compacted Save File dialog.
- browser region 14807 is again displayed.
- a view selection control 14817 (FIG. 144) is visible when browser region 14807 is displayed, and functions similar to view selection control 14617 of Open File dialog 14600 (FIG. 146).
- the default view mode e.g., icons vs. details
- a developer can similarly set (and a user can override) a view mode setting and the columns shown when in the details view mode.
- infopane region 14608 in Open File dialog 14600 is different from that of infopane region 14808 of Save File dialog 14800.
- This repositioning corresponds to the different purposes of these two types of dialogs.
- a user is typically looking for a particular file in an Open File dialog.
- a graphical depiction of tit ⁇ e file contents is often more helpful than detailed metadata.
- the focus of the infopane region in an Open File dialog is typically on file preview, and the infopane is positioned to allow for a larger ghost image.
- the focus of the infopane region in a Save File dialog is on editing and on proper storage of a file for future retrieval.
- the infopane region of a Save File dialog is positioned to encourage entry and/or modification of metadata.
- metadata fields are displayed in an infopane region of both Open File and Save File dialogs based on a predetermined order.
- system- required metadata attributes e.g., file name, file type, location for saving
- metadata attributes required by an application instantiating the dialog but which are not necessarily required in all applications (e.g., compression ratio, file protection). Remaining properties are then shown.
- the infopane region (and the entire dialog, if necessary) is automatically resized so as to show all system- and application- required properties.
- an application program cannot specify what metadata, is required, but the application can "promote" metadata types to have a priority such that corresponding fields will be displayed in a default-sized dialog.
- FIGS. 146 and 148 are two of the various types of UI controls which a developer can place in an extensibility region of an Open File or a Save File dialog.
- a developer may include multiple controls of the same type and/or may combine controls of different types .
- FIG. 148 shows a pair of verification (or "check box") UI controls.
- Such a UI control can. include text ("Option 1" and "Option 2") and may contain a label applicable to multiple check boxes ("Save Options").
- a user can place a check in (or remove a check from) a check: box with a mouse. The checked/unchecked state of the control is then returned to a program.
- text for a check box control is left aligned and wraps to the column in which the control is located.
- Labels in an extensibility region may be automatically aligned with metadata field labels in an infopane region.
- the "Save Options" label in extensibility region 14809 is aligned with "Save In” and "File Type” in infopane region 14808.
- UI controls in an extensibility region may also be organized into one or more groups and displayed in multiple columns.
- FIG. 146 shows a collection of radio button UI controls.
- Each radio button control typically displays one or more lines of text (e.g., "Open Original File") for a possible input option. Next to the text for each option is a small circle or other region which a user can select with a mouse. Once selected, the region is filled with a black dot or other indication of the selection. Typically, only one of the options can be selected. If a user selects one option and then selects another of the options, the black dot for the first selection is removed. Radio button controls may also include a label ("Options"). In at least some embodiments implements in. LTR languages, text for a radio button control is left aligned and wraps to the column in which the control is located.
- Options a label
- FIGS. 150-154B Shown in FIGS. 150-154B are various other types of UI controls which a software developer can specify for inclusion in an extensibility region.
- FIGS. 150-154B show these other types of UI controls in an extensibility region of a Save File dialog, these UI controls could also be included in an Open File dialog (or other type of file dialog) extensibility region.
- FIG. 1 50 shows a drop-down box control. As seen in FIG. 150, a drop-down box permits a user to expand a box to show a list of possible selections. An option selected from the drop-down list is then automatically placed in the box.
- FIG. 151 shows a combo-box control. This UI control allows a user to expand a box into a list of possible selections (similar to a drop-down box), but also permits the user to type text into the box (shown in FIG. 151 as "type here").
- FIG. 152 shows push button UI controls 15201 and 15202, as well as edit box control 15203. Also illustrated in FIG. 152 is grouping of UI controls. In at least some embodiments, a control group can include one or more controls and a label applicable to controls in the group. In the example of FIG. 152, four groups are shown. Group 15211 contains a group label and three check box UI controls. Group 15212 does not have a group label, but does include two radio button UI controls. Group 15213 includes a group label, an edit box UI control 15203, and two push button UI controls 15201 and 15202. Group 15214 contains plain text, e.g., text not labeling or associated with a specific control. Although groups 15211-15214 are outlined in FIG.
- a separator 15204 can be specified for placement between control groups. In at least some embodiments, a separator only spans a single column, and is added as the last element of a group. Separators appearing as the first or last column element are hidden. In at least some embodiments, and as seen in FIG. 152, controls in a group are kept together in the same column of an extensibility region when the dialog is displayed. In some embodiments, and as also seen in FIG. 152, the right edges of UI control group labels in a Save File dialog extensibility region are automatically aligned with the right edges of metadata labels ("File Type" and "Keywords") in an infopane region. The left edges of UI controls in a Save File dialog extensibility region are similarly automatically aligned, with the left edges of metadata value fields in the infopane region. Plain text is automatically left aligned and wraps to the column in which the text is contained.
- a drop-down menu UI control can be included in a command region, as shown in FIG. 153A and 153B. Selection of the menu reveals a list of selectable options. Selecting some options may result in display of submenus and/or other dialogs.
- a drop-down menu and command button can be combined into a "split button" UI control, which can also be located in the command region.
- a split button UI permits a user to select an option in a drop-down menu. The split button is then relabeled with the selected option, and the user can then press the button to act on the selected option.
- Other controls can also be added to a command region, as sliown in FIGS.
- 154A push button UI control " ⁇ text>"
- 154B check box UI control
- This may be desirable if a developer only needs to include a single specialized control, and avoids consuming display area for an extensibility region.
- a developer is not able to add radio button groups and labels to a command region. Inclusion of a control in the command region also permits a developer to emphasize that control and/or to separate that control from controls in an extensibility region. Thus, a developer might specify certain controls for the extensibility region and a control for the command region.
- menus often contain choices applicable to multiple dialogs instantiated by an application, and allowing a menu in the command region may be more efficient in some cases. In some embodiments, menus are always located in the command region.
- arrangement and appearance of UI controls in an extensibility region is automatic.
- the application instantiating the dialog simply identifies to the OS (via one or more programming interfaces) the UI controls and/or groups desired.
- the OS then controls the arrangement and appearance .
- a control not explicitly added to a group is treated as its own group.
- the OS places each group in the extensibility region based on the order in which the UI control or group is first identified in the programming interface(s).
- FIG. 155 illustrates the automatic layout of control groups in a Save File dialog. As seen in FIG. 155, the metadata field label/value pairs in a Save Dialog infopane region form two columns.
- Control groups are then added in the extensibility region, aligned with those columns, so as to minimize height of the extensibility region. Spacing between groups, as well as between individual controls within a group, is also automatic. In other words, an application developer need not precisely specify the position of each UI control. Similarly, the appearance of text for UI controls, group labels and plain text is automatically controlled by one or more OS theme files.
- FIG. 156 shows automatic layout of UI controls in an Open File dialog according to at least some embodiments.
- the infopane region of an Open File dialog is arranged differently than the infopane region of a Save File dialog. Accordingly, UI controls and UI control groupings in an Open File dialog extensibility region are aligned with the "File Name" label and corresponding text box: control in the command region. If more than one control grouping is specified for an Open File dialog extensibility region, a second column is used.
- an application instantiating an Open File dialog simply identifies the UI controls and/or groups to the OS via one or more programming interfaces.
- Control groups are added to an Open File dialog in the order in which those control groups were specified by the developer and are automatically laid out so as to minimize height of the extensibility region. Spacing, text font, etc. is controlled by one or more OS theme files.
- an application developer can customize a file dialog in various other ways. Using appropriate programming interfaces (as discussed below), a developer can override the dialog titles (e.g., "Open File” title 14604 in FIG. 146, "Save File” title 14804 in FIG. 148) and cause some other title to be displayed. A developer can also make choices which will affect the locations to which a dialog will navigate when a dialog is opened. In particular, when a dialog such as shown in FIG. 146 or FIG. 148 is first opened, the dialog will often show a particular list or other file grouping as a suggested location in which to save (or from which to open) a file.
- a file dialog first attempts to navigate to one of the following locations (listed in order of preference): (1) a location that the instantiating application specifies (e. g., the last location visited by the application), (2) last location to which a file was opened or saved by that application (as tracked by the OS), (3) a default location specified by the application, or (4) an OS- specified default location (e.g., a root directory, the desktop in the WINDOWS OS, etc.).
- locations listed in order of preference: (1) a location that the instantiating application specifies (e. g., the last location visited by the application), (2) last location to which a file was opened or saved by that application (as tracked by the OS), (3) a default location specified by the application, or (4) an OS- specified default location (e.g., a root directory, the desktop in the WINDOWS OS, etc.).
- An application developer can also specify the initial browser mode.
- a Save File dialog automatically opens with the browser region hidden unless an application requests otherwise.
- Open File dialogs are always displayed with a browser region.
- An OS generating a file dialog in response to an application request may also render the dialog at a default size and in a default location on the screen. For example, the OS may automatically locate the dialog in the center of the display and limit the dialog and/or various regions of " the dialog to certain sizes.
- An application developer can override these default values b>y specifying a size and/or location for the dialog. This may occur by explicitly supplying values for size and/or location. This may also occur implicitly. For example, an application may specify more controls for an extensibility region than can be contained within a default size.
- a user may also be able to move and/or resize the dialog.
- a user can resize the browser region (if shown) and the infopane region.
- the infopane region is expanded (by, e.g., selecting the edge of the infopane region with a mouse and pulling the edge across the screen), additional metadata property/value pairs become visible.
- the infopane region is contracted, fewer property/value pairs can be seen.
- User changes to size or position of a dialog or dialog region (as well as changes to view mode, visible columas in a details view mode, etc.) can be persisted until the user completes or cancels the dialog. In some embodiments, some or all of such user changes may be persisted in subsequent dialogs.
- FIGS. 157 and 158 are block diagrams illustrating differences between the manner in which an application requests generation of a file dialog according to embodiments of the invention and the manner in which a file dialog is requested in the prior art.
- FIG. 157 is a block diagram illustrating an existing manner in which- an application program requests display of a file dialog from various versions of the WINDOWS OS.
- the application first creates a data structure ("DialgStr") corresponding to the dialog to be displayed.
- This structure contains values for numerous variables and flags that control the behavior of the dialog.
- this structure is an "OPENFILENAME" structure.
- the application then calls an OS function that has a pointer to the DialgStr structure as an argument. Specifically, the application calls the "GetOpenFileNanie” function to instantiate a. dialog for opening a file and the "GetSaveFileName” function to instantiate a dialog for saving a file. For simplicity, these functions are shown generically in FIG. 157 as "GetFN(pDialgStr)". In response to this function call, the OS then generates a window containing a default dialog.
- an application developer wishes to customize a default dialog so as to include custom UI controls, additional steps are needed. Specifically, the developer must create a custom template for the portion(s) of the default dialog that define the region(s) to hold the customized UI controls. A pointer to that template is then included in the DialgStr structure. The OS retrieves data from the custom template and ixses that data to create the customized controls within a child window of the default dialog.
- FIG. 157 shows all the customized controls inside a single contiguous block, this is not always the case.
- a custom template can specify numerous custom controls to be placed in multiple child windows of the default dialog, and the customized region(s) may have various shapes. In view of all these factors, it is difficult (if not impossible) for the OS developer to know all of the ways in which various applications customize default dialogs. In. turn, this increases the difficulties in upgrading the OS. For example, a change to the default dialog format that adds a new element in a particular location may be incompatible with applications instantiating dialogs with customization in the same location.
- FIG. 158 is a block diagram illustrating creation of a file dialog according to embodiments of the invention.
- the application developer creates an object which corresponds to the dialog to be displayed.
- the object is an instantiation of an object class made available by the OS.
- the object automatically includes methods which the application can call in order to display the dialog, to add controls to the dialog, and to otherwise set the behavior of the dialog.
- FIG. 158 where the application has called various methods of an instantiated dialog object in order to add certain controls to the dialog (e.g., "AddControll( )", etc.).
- Other methods are called (and/or specified variable values and/or flags included in those calls) to control other aspects of the dialog's appearance and behavior.
- actions that a developer can perform via calls to these methods are examples of actions that a developer can perform via calls to these methods.
- Save File dialogs o whether to require that the file extension for a file name returned by a user match that of a currently selected file type (Save File dialogs), o whether to require that an item name returned by a user be a file system item, o whether a user can select multiple files for opening, o whether a user is required to specify a file in an existing folder, o whether a file to be opened must already exist, o whether a user is prompted to create an item identified by the user
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020077006591A KR101203274B1 (en) | 2004-09-24 | 2005-08-01 | File system shell |
EP05777489A EP1836602A4 (en) | 2004-09-24 | 2005-08-01 | File system shell |
JP2007533464A JP4861988B2 (en) | 2004-09-24 | 2005-08-01 | Computer program that implements a file system shell browser |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/950,075 | 2004-09-24 | ||
US10/950,075 US7421438B2 (en) | 2004-04-29 | 2004-09-24 | Metadata editing control |
US11/111,978 | 2005-04-22 | ||
US11/111,978 US7769794B2 (en) | 2003-03-24 | 2005-04-22 | User interface for a file system shell |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006036290A1 true WO2006036290A1 (en) | 2006-04-06 |
Family
ID=36119207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2005/027258 WO2006036290A1 (en) | 2004-09-24 | 2005-08-01 | File system shell |
Country Status (5)
Country | Link |
---|---|
US (1) | US7769794B2 (en) |
EP (1) | EP1836602A4 (en) |
KR (1) | KR101203274B1 (en) |
TW (1) | TWI363295B (en) |
WO (1) | WO2006036290A1 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007280125A (en) * | 2006-04-07 | 2007-10-25 | Canon Inc | Information processor, and information processing method |
EP1869582A2 (en) * | 2005-04-14 | 2007-12-26 | Microsoft Corporation | Computer input control for specifying scope with explicit exclusions |
WO2008038004A2 (en) * | 2006-09-27 | 2008-04-03 | Lee, Yisia Young Suk | A data object management apparatus and method |
JP2009205207A (en) * | 2008-02-26 | 2009-09-10 | Nec Corp | Information sorting and displaying system based on tag information |
JP2012510672A (en) * | 2008-11-28 | 2012-05-10 | フジフイルム メディカル システムズ ユーエスエイ インコーポレイテッド | Active overlay system and method for accessing and manipulating an image display |
EP2463784A1 (en) * | 2010-12-10 | 2012-06-13 | Giga-Byte Technology Co., Ltd. | Method and human-to-machine interface apparatus for searching files |
US8290971B2 (en) | 2008-09-09 | 2012-10-16 | Applied Systems, Inc. | Method and apparatus for remotely displaying a list by determining a quantity of data to send based on the list size and the display control size |
US8599242B2 (en) | 2008-12-02 | 2013-12-03 | Lg Electronics Inc. | Method for displaying 3D caption and 3D display apparatus for implementing the same |
US9104680B2 (en) | 2009-07-01 | 2015-08-11 | Thomson Licensing | Method for accessing files of a file system according to metadata and device implementing the method |
CN111597323A (en) * | 2020-04-16 | 2020-08-28 | RealMe重庆移动通信有限公司 | Key field filtering method and device, storage medium and electronic equipment |
Families Citing this family (550)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1331553A1 (en) * | 2001-06-08 | 2003-07-30 | Sap Ag | Method and computer system for graphical assignments in hierarchies |
US7312785B2 (en) | 2001-10-22 | 2007-12-25 | Apple Inc. | Method and apparatus for accelerated scrolling |
EP1536340A1 (en) * | 2002-09-05 | 2005-06-01 | Hiroyuki Yasoshima | Method for managing file using network structure, operation object display limiting program, and recording medium |
US7136874B2 (en) * | 2002-10-16 | 2006-11-14 | Microsoft Corporation | Adaptive menu system for media players |
US7823077B2 (en) | 2003-03-24 | 2010-10-26 | Microsoft Corporation | System and method for user modification of metadata in a shell browser |
US7240292B2 (en) | 2003-04-17 | 2007-07-03 | Microsoft Corporation | Virtual address bar user interface control |
US7769794B2 (en) | 2003-03-24 | 2010-08-03 | Microsoft Corporation | User interface for a file system shell |
US7712034B2 (en) | 2003-03-24 | 2010-05-04 | Microsoft Corporation | System and method for shell browser |
US7627552B2 (en) | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7421438B2 (en) * | 2004-04-29 | 2008-09-02 | Microsoft Corporation | Metadata editing control |
US7827561B2 (en) | 2003-03-26 | 2010-11-02 | Microsoft Corporation | System and method for public consumption of communication events between arbitrary processes |
US7890960B2 (en) * | 2003-03-26 | 2011-02-15 | Microsoft Corporation | Extensible user context system for delivery of notifications |
US7650575B2 (en) * | 2003-03-27 | 2010-01-19 | Microsoft Corporation | Rich drag drop user interface |
US7499925B2 (en) * | 2003-03-27 | 2009-03-03 | Microsoft Corporation | File system for displaying items of different types and from different physical locations |
US7925682B2 (en) * | 2003-03-27 | 2011-04-12 | Microsoft Corporation | System and method utilizing virtual folders |
US7526483B2 (en) * | 2003-03-27 | 2009-04-28 | Microsoft Corporation | System and method for virtual folder sharing including utilization of static and dynamic lists |
US7587411B2 (en) * | 2003-03-27 | 2009-09-08 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7536386B2 (en) * | 2003-03-27 | 2009-05-19 | Microsoft Corporation | System and method for sharing items in a computer system |
US7444598B2 (en) * | 2003-06-30 | 2008-10-28 | Microsoft Corporation | Exploded views for providing rich regularized geometric transformations and interaction models on content for viewing, previewing, and interacting with documents, projects, and tasks |
KR100984497B1 (en) * | 2003-07-24 | 2010-10-01 | 파나소닉 주식회사 | File management method and information processing device |
US8024335B2 (en) | 2004-05-03 | 2011-09-20 | Microsoft Corporation | System and method for dynamically generating a selectable search extension |
US7181463B2 (en) | 2003-10-24 | 2007-02-20 | Microsoft Corporation | System and method for managing data using static lists |
US20050235223A1 (en) * | 2004-04-15 | 2005-10-20 | Udo Arend | User interface adaptable by an end user |
US7657846B2 (en) | 2004-04-23 | 2010-02-02 | Microsoft Corporation | System and method for displaying stack icons |
US7694236B2 (en) * | 2004-04-23 | 2010-04-06 | Microsoft Corporation | Stack icons representing multiple objects |
US7992103B2 (en) | 2004-04-26 | 2011-08-02 | Microsoft Corporation | Scaling icons for representing files |
US8707209B2 (en) | 2004-04-29 | 2014-04-22 | Microsoft Corporation | Save preview representation of files being created |
US8108430B2 (en) * | 2004-04-30 | 2012-01-31 | Microsoft Corporation | Carousel control for metadata navigation and assignment |
JP4533007B2 (en) * | 2004-06-09 | 2010-08-25 | キヤノン株式会社 | Image management apparatus, image management method, and program |
US9552141B2 (en) | 2004-06-21 | 2017-01-24 | Apple Inc. | Methods and apparatuses for operating a data processing system |
US7788301B2 (en) * | 2004-06-21 | 2010-08-31 | Canon Kabushiki Kaisha | Metadata driven user interface |
US7475365B2 (en) * | 2004-06-25 | 2009-01-06 | International Business Machines Corporation | Method to enhance navigation and scalability in table and tree viewers |
US7774326B2 (en) | 2004-06-25 | 2010-08-10 | Apple Inc. | Methods and systems for managing data |
US7730012B2 (en) | 2004-06-25 | 2010-06-01 | Apple Inc. | Methods and systems for managing data |
US7437358B2 (en) | 2004-06-25 | 2008-10-14 | Apple Inc. | Methods and systems for managing data |
GB0418067D0 (en) * | 2004-08-13 | 2004-09-15 | Ibm | Hierarchical modelling method and software tool |
US20060041879A1 (en) * | 2004-08-19 | 2006-02-23 | Bower Shelley K | System and method for changing defined user interface elements in a previously compiled program |
US8495023B1 (en) * | 2004-09-01 | 2013-07-23 | Symantec Operating Corporation | Delta catalogs in a backup system |
US8805934B2 (en) | 2004-09-02 | 2014-08-12 | Vmware, Inc. | System and method for enabling an external-system view of email attachments |
WO2006031741A2 (en) * | 2004-09-10 | 2006-03-23 | Topixa, Inc. | User creating and rating of attachments for conducting a search directed by a hierarchy-free set of topics, and a user interface therefor |
US9189756B2 (en) * | 2004-09-21 | 2015-11-17 | International Business Machines Corporation | Case management system and method for collaborative project teaming |
US8032482B2 (en) | 2004-09-30 | 2011-10-04 | Microsoft Corporation | Method, system, and apparatus for providing a document preview |
US7640552B2 (en) * | 2004-10-29 | 2009-12-29 | Microsoft Corporation | Multimedia filter resilience |
US7831532B2 (en) | 2004-11-16 | 2010-11-09 | Microsoft Corporation | Precomputation and transmission of time-dependent information for varying or uncertain receipt times |
US7926052B2 (en) * | 2004-11-19 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | Stacked file systems and methods |
US7383503B2 (en) * | 2005-02-23 | 2008-06-03 | Microsoft Corporation | Filtering a collection of items |
US20060197762A1 (en) * | 2005-03-02 | 2006-09-07 | Microsoft Corporation | Scalable visualizer for heterogeneous data |
US8543943B2 (en) * | 2005-04-07 | 2013-09-24 | Sap Ag | Methods and systems for entering object assignments |
US8490015B2 (en) * | 2005-04-15 | 2013-07-16 | Microsoft Corporation | Task dialog and programming interface for same |
US7614016B2 (en) * | 2005-04-21 | 2009-11-03 | Microsoft Corporation | Multiple roots in navigation pane |
US20060242122A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
US8522154B2 (en) * | 2005-04-22 | 2013-08-27 | Microsoft Corporation | Scenario specialization of file browser |
US8195646B2 (en) * | 2005-04-22 | 2012-06-05 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
US7162488B2 (en) * | 2005-04-22 | 2007-01-09 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
US20060242591A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | File dialog user interfaces and creation of same |
US20060248192A1 (en) * | 2005-04-29 | 2006-11-02 | Morris Stanley S Iii | Method for pulling images from the internet for viewing on a remote digital display |
US9384171B2 (en) * | 2005-05-16 | 2016-07-05 | Adobe Systems Incorporated | Object resizing with content reflow |
US7370060B2 (en) * | 2005-05-24 | 2008-05-06 | Microsoft Corporation | System and method for user edit merging with preservation of unrepresented data |
US8020110B2 (en) * | 2005-05-26 | 2011-09-13 | Weisermazars Llp | Methods for defining queries, generating query results and displaying same |
US20060271550A1 (en) * | 2005-05-26 | 2006-11-30 | Siemens Communications, Inc. | Method and system for remote document editing using a wireless communication device |
US20060271855A1 (en) * | 2005-05-27 | 2006-11-30 | Microsoft Corporation | Operating system shell management of video files |
US7424472B2 (en) * | 2005-05-27 | 2008-09-09 | Microsoft Corporation | Search query dominant location detection |
US7975219B2 (en) * | 2005-05-31 | 2011-07-05 | Sorenson Media, Inc. | Method, graphical interface and computer-readable medium for reformatting data |
US7814090B2 (en) * | 2005-05-31 | 2010-10-12 | Oracle International Corporation | Query generator |
US7885979B2 (en) * | 2005-05-31 | 2011-02-08 | Sorenson Media, Inc. | Method, graphical interface and computer-readable medium for forming a batch job |
US8296649B2 (en) * | 2005-05-31 | 2012-10-23 | Sorenson Media, Inc. | Method, graphical interface and computer-readable medium for generating a preview of a reformatted preview segment |
JP2006343933A (en) * | 2005-06-08 | 2006-12-21 | Sony Corp | Data processing method, electronic equipment, and program |
US7382102B2 (en) * | 2005-06-13 | 2008-06-03 | Chrysler Llc | Heating of batteries using reactive power |
CN101243449A (en) * | 2005-06-16 | 2008-08-13 | 文字点击有限公司 | Method and system for automated initiation of search queries from computer displayed content |
JP4559943B2 (en) * | 2005-06-24 | 2010-10-13 | 株式会社東芝 | Playlist creation device, playlist creation method, playlist creation program, copyright information management device, and viewing terminal device |
US7665028B2 (en) | 2005-07-13 | 2010-02-16 | Microsoft Corporation | Rich drag drop user interface |
US7478092B2 (en) * | 2005-07-21 | 2009-01-13 | International Business Machines Corporation | Key term extraction |
US8447781B2 (en) * | 2005-07-29 | 2013-05-21 | International Business Machines Corporation | Content-based file system security |
US20070038647A1 (en) * | 2005-08-04 | 2007-02-15 | Microsoft Corporation | Management of media sources in memory constrained devices |
US7685175B2 (en) * | 2005-08-12 | 2010-03-23 | Michael Lee Carroll | Content manager |
US20070048713A1 (en) * | 2005-08-12 | 2007-03-01 | Microsoft Corporation | Media player service library |
KR100645965B1 (en) * | 2005-08-29 | 2006-11-14 | 삼성전자주식회사 | Host device and method for management data |
US20070050445A1 (en) * | 2005-08-31 | 2007-03-01 | Hugh Hyndman | Internet content analysis |
US20070055928A1 (en) * | 2005-09-02 | 2007-03-08 | Microsoft Corporation | User workflow lists to organize multimedia files |
EP1934812A4 (en) | 2005-09-09 | 2012-01-04 | Salesforce Com Inc | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
KR100736076B1 (en) * | 2005-10-24 | 2007-07-06 | 삼성전자주식회사 | Portable device and method providing scene capture |
US10324899B2 (en) * | 2005-11-07 | 2019-06-18 | Nokia Technologies Oy | Methods for characterizing content item groups |
US9329897B2 (en) * | 2005-11-10 | 2016-05-03 | The Mathworks, Inc. | Use of dynamic profiles for creating and using a distributed computing environment |
US8819119B2 (en) * | 2005-11-10 | 2014-08-26 | The Mathworks, Inc. | Dynamic definition for concurrent computing environments |
US7802203B2 (en) * | 2005-12-23 | 2010-09-21 | Sap Ag | Method for providing selectable alternate menu views |
US7509588B2 (en) | 2005-12-30 | 2009-03-24 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
US8010909B1 (en) * | 2006-02-06 | 2011-08-30 | Microsoft Corporation | Derived hierarchy methods and system for definition, visualization and editing of data |
US8904286B2 (en) * | 2006-02-13 | 2014-12-02 | Blackberry Limited | Method and arrangement for providing a primary actions menu on a wireless handheld communication device |
US8065351B2 (en) * | 2006-02-23 | 2011-11-22 | Microsoft Corporation | Default location that may be dynamically changed |
US8046703B2 (en) * | 2006-02-28 | 2011-10-25 | Sap Ag | Monitoring and integration of an organization's planning processes |
JP2007232920A (en) * | 2006-02-28 | 2007-09-13 | Nikon Corp | Display system |
US20070226200A1 (en) * | 2006-03-22 | 2007-09-27 | Microsoft Corporation | Grouping and regrouping using aggregation |
US7840540B2 (en) | 2006-04-20 | 2010-11-23 | Datascout, Inc. | Surrogate hashing |
US9020964B1 (en) | 2006-04-20 | 2015-04-28 | Pinehill Technology, Llc | Generation of fingerprints for multimedia content based on vectors and histograms |
US8463000B1 (en) * | 2007-07-02 | 2013-06-11 | Pinehill Technology, Llc | Content identification based on a search of a fingerprint database |
US8549022B1 (en) | 2007-07-02 | 2013-10-01 | Datascout, Inc. | Fingerprint generation of multimedia content based on a trigger point with the multimedia content |
US7991206B1 (en) | 2007-07-02 | 2011-08-02 | Datascout, Inc. | Surrogate heuristic identification |
US8156132B1 (en) | 2007-07-02 | 2012-04-10 | Pinehill Technology, Llc | Systems for comparing image fingerprints |
US7698351B1 (en) * | 2006-04-28 | 2010-04-13 | Netapp, Inc. | GUI architecture for namespace and storage management |
US20070255677A1 (en) * | 2006-04-28 | 2007-11-01 | Sun Microsystems, Inc. | Method and apparatus for browsing search results via a virtual file system |
US8856105B2 (en) * | 2006-04-28 | 2014-10-07 | Hewlett-Packard Development Company, L.P. | Dynamic data navigation |
US20070294647A1 (en) * | 2006-06-01 | 2007-12-20 | Via Technologies, Inc. | Transferring software assertions to hardware design language code |
US7765475B2 (en) | 2006-06-13 | 2010-07-27 | International Business Machines Corporation | List display with redundant text removal |
US20070300177A1 (en) * | 2006-06-23 | 2007-12-27 | Microsoft Corporation | User interface for specifying multi-valued properties |
US8132106B2 (en) * | 2006-06-23 | 2012-03-06 | Microsoft Corporation | Providing a document preview |
KR100765789B1 (en) * | 2006-06-27 | 2007-10-12 | 삼성전자주식회사 | Method and apparatus for displaying information on external device, and computer readable medium recording program performing the method |
US20080005109A1 (en) * | 2006-06-30 | 2008-01-03 | Microsoft Corporation | One Click View Arrangement |
DE102006034251B8 (en) † | 2006-07-21 | 2014-08-21 | Senvion Se | Method for operating a wind energy plant |
US9009115B2 (en) | 2006-08-04 | 2015-04-14 | Apple Inc. | Restoring electronic information |
US20080034017A1 (en) * | 2006-08-04 | 2008-02-07 | Dominic Giampaolo | Links to a common item in a data structure |
US20080288891A1 (en) * | 2006-09-01 | 2008-11-20 | Peter Buth | Using a number shortcut |
US10313505B2 (en) | 2006-09-06 | 2019-06-04 | Apple Inc. | Portable multifunction device, method, and graphical user interface for configuring and displaying widgets |
US10409849B2 (en) * | 2006-09-29 | 2019-09-10 | A9.Com, Inc. | System and method for displaying columns of search results |
US20080177708A1 (en) * | 2006-11-01 | 2008-07-24 | Koollage, Inc. | System and method for providing persistent, dynamic, navigable and collaborative multi-media information packages |
US20080111826A1 (en) * | 2006-11-14 | 2008-05-15 | Microsoft Corporation | Displaying resources using multiple visualization dimensions |
WO2008063275A2 (en) * | 2006-11-20 | 2008-05-29 | Nikon Corporation | Folder collage that functions as an index for a folder database |
US8515912B2 (en) | 2010-07-15 | 2013-08-20 | Palantir Technologies, Inc. | Sharing and deconflicting data changes in a multimaster database system |
US8688749B1 (en) | 2011-03-31 | 2014-04-01 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
KR100851302B1 (en) * | 2006-11-27 | 2008-08-08 | 삼성전자주식회사 | Method for executing function in idle screen of mobile terminal |
US7934164B2 (en) * | 2006-12-12 | 2011-04-26 | Canon Kabushiki Kaisha | Information processing apparatus and control method thereof, and program |
US8171061B2 (en) * | 2006-12-14 | 2012-05-01 | Cisco Technology, Inc. | File-system based data store for a workgroup server |
US8519964B2 (en) | 2007-01-07 | 2013-08-27 | Apple Inc. | Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display |
KR101276843B1 (en) * | 2007-01-19 | 2013-06-18 | 엘지전자 주식회사 | Method for displaying contents and terminal using the same |
KR101524572B1 (en) * | 2007-02-15 | 2015-06-01 | 삼성전자주식회사 | Method of interfacing in portable terminal having touchscreen |
US8156201B2 (en) | 2007-02-20 | 2012-04-10 | Microsoft Corporation | Unifying discoverability of a website's services |
US9069883B2 (en) * | 2007-03-17 | 2015-06-30 | Samsung Electronics Co., Ltd. | Document management method and document management apparatus using the same |
JP4933932B2 (en) | 2007-03-23 | 2012-05-16 | ソニー株式会社 | Information processing system, information processing apparatus, information processing method, and program |
JP4367662B2 (en) * | 2007-03-23 | 2009-11-18 | ソニー株式会社 | Information processing system, terminal device, information processing method, program |
US20080263455A1 (en) * | 2007-04-09 | 2008-10-23 | Topia Technology | Graphical user interface for electronic file sharing |
JP4928333B2 (en) * | 2007-04-12 | 2012-05-09 | キヤノン株式会社 | Content display device and content display method |
EP1980961A1 (en) * | 2007-04-12 | 2008-10-15 | Swiss Reinsurance Company | System and method for aggregation and monitoring of multimedia data stored in a decentralized way |
KR20080096005A (en) * | 2007-04-26 | 2008-10-30 | 엔에이치엔(주) | Method for providing keyword depending on a range of providing keyword and system thereof |
US8677270B2 (en) | 2007-05-04 | 2014-03-18 | Microsoft Corporation | Live companion user interface |
US9128954B2 (en) * | 2007-05-09 | 2015-09-08 | Illinois Institute Of Technology | Hierarchical structured data organization system |
US10042898B2 (en) * | 2007-05-09 | 2018-08-07 | Illinois Institutre Of Technology | Weighted metalabels for enhanced search in hierarchical abstract data organization systems |
US9633028B2 (en) * | 2007-05-09 | 2017-04-25 | Illinois Institute Of Technology | Collaborative and personalized storage and search in hierarchical abstract data organization systems |
US8577937B1 (en) * | 2007-05-09 | 2013-11-05 | Vmware, Inc. | Repository including exclusion list |
US8209358B2 (en) * | 2007-05-09 | 2012-06-26 | Illinois Institute Of Technology | Hierarchical structured abstract data organization system |
US7788297B2 (en) * | 2007-05-15 | 2010-08-31 | Microsoft Corporation | Interactive storage meter for a storage container |
US9286309B2 (en) * | 2007-05-23 | 2016-03-15 | Adobe Systems Incorporated | Representation of last viewed or last modified portion of a document |
US20080307017A1 (en) | 2007-06-08 | 2008-12-11 | Apple Inc. | Searching and Restoring of Backups |
US8010900B2 (en) | 2007-06-08 | 2011-08-30 | Apple Inc. | User interface for electronic backup |
US8819080B2 (en) * | 2007-06-13 | 2014-08-26 | The Boeing Company | System and method for collection, retrieval, and distribution of data |
US8954507B2 (en) * | 2007-06-22 | 2015-02-10 | Microsoft Corporation | Gathering and using awareness information |
US20090006433A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Extensible category and property grouping for object editing |
US9627006B2 (en) * | 2007-08-07 | 2017-04-18 | Samsung Electronics Co., Ltd. | Content information display method and apparatus |
US9536009B2 (en) * | 2007-08-08 | 2017-01-03 | Microsoft Technology Licensing, Llc | Embedding a representation of an item in a host |
JP2010538354A (en) * | 2007-08-29 | 2010-12-09 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Method and apparatus in database system |
US20090064006A1 (en) * | 2007-08-30 | 2009-03-05 | Indran Naick | Techniques for Performing Tasks Associated with Custom Folder Controls |
US20090063517A1 (en) * | 2007-08-30 | 2009-03-05 | Microsoft Corporation | User interfaces for scoped hierarchical data sets |
US8010910B2 (en) | 2007-09-04 | 2011-08-30 | Microsoft Corporation | Breadcrumb list supplementing for hierarchical data sets |
US8683378B2 (en) * | 2007-09-04 | 2014-03-25 | Apple Inc. | Scrolling techniques for user interfaces |
US8619038B2 (en) | 2007-09-04 | 2013-12-31 | Apple Inc. | Editing interface |
KR100905494B1 (en) * | 2007-09-07 | 2009-07-01 | 박수민 | File Management System and Computer Readable Record Medium for the Same |
US20090083213A1 (en) * | 2007-09-20 | 2009-03-26 | Haynes Thomas R | Method and System for Fast Navigation in a Hierarchical Tree Control |
JP4450048B2 (en) * | 2007-10-10 | 2010-04-14 | ブラザー工業株式会社 | Display device and program |
USD730391S1 (en) | 2007-10-29 | 2015-05-26 | Carbonite, Inc. | Icon for a backup and restore system for a computer |
US20090112870A1 (en) * | 2007-10-31 | 2009-04-30 | Microsoft Corporation | Management of distributed storage |
US8326814B2 (en) | 2007-12-05 | 2012-12-04 | Box, Inc. | Web-based file management system and service |
US8146110B2 (en) | 2007-12-10 | 2012-03-27 | Microsoft Corporation | Service platform for in-context results |
US9779181B2 (en) * | 2007-12-14 | 2017-10-03 | Bmc Software, Inc. | Dynamic folding of listed items for display |
US7836053B2 (en) * | 2007-12-28 | 2010-11-16 | Group Logic, Inc. | Apparatus and methods of identifying potentially similar content for data reduction |
EP2243071A4 (en) * | 2008-01-09 | 2012-10-31 | Smart Technologies Ulc | Multi-page organizing and manipulating electronic documents |
US8042054B2 (en) * | 2008-01-10 | 2011-10-18 | At&T Intellectual Property I, L.P. | System for managing media content |
US20090193392A1 (en) * | 2008-01-29 | 2009-07-30 | Michael David Downen | Dynamic intermediate language modification and replacement |
US8688674B2 (en) * | 2008-02-14 | 2014-04-01 | Beats Music, Llc | Fast search in a music sharing environment |
US20090216743A1 (en) * | 2008-02-25 | 2009-08-27 | International Business Machines Corporation | Systems, Methods and Computer Program Products for the Use of Annotations for Media Content to Enable the Selective Management and Playback of Media Content |
US20090222762A1 (en) * | 2008-02-29 | 2009-09-03 | Microsoft Corporation | Cascading item and action browser |
US8751947B2 (en) * | 2008-02-29 | 2014-06-10 | Adobe Systems Incorporated | Visual and functional transform |
US20090228831A1 (en) * | 2008-03-04 | 2009-09-10 | Andreas Wendker | Customization of user interface elements |
US20090228804A1 (en) * | 2008-03-05 | 2009-09-10 | Microsoft Corporation | Service Preview And Access From an Application Page |
US8302017B2 (en) | 2008-03-05 | 2012-10-30 | Microsoft Corporation | Definition for service interface |
US8204916B2 (en) | 2008-03-06 | 2012-06-19 | Microsoft Corporation | Hierarchical presentation of search results |
US20090241058A1 (en) * | 2008-03-18 | 2009-09-24 | Cuill, Inc. | Apparatus and method for displaying search results with an associated anchor area |
TWI421700B (en) * | 2008-06-02 | 2014-01-01 | Wireless virtual storage apparatus and remote accessing method | |
US8631340B2 (en) * | 2008-06-25 | 2014-01-14 | Microsoft Corporation | Tab management in a user interface window |
US20090327904A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Presenting dynamic folders |
JP5346506B2 (en) * | 2008-06-30 | 2013-11-20 | 株式会社日立ソリューションズ | File management device |
CA2949090C (en) * | 2008-07-11 | 2018-10-30 | Thomson Reuters Global Resources | Systems, methods, and interfaces for researching contractual precedents |
US20100023557A1 (en) * | 2008-07-28 | 2010-01-28 | Novell, Inc. | System and method to extend a file manager user interface |
US8171045B2 (en) * | 2008-07-31 | 2012-05-01 | Xsevo Systems, Inc. | Record based code structure |
US9396281B2 (en) * | 2008-08-13 | 2016-07-19 | Microsoft Technology Licensing, Llc | Activities operating on structured data |
JP4636141B2 (en) * | 2008-08-28 | 2011-02-23 | ソニー株式会社 | Information processing apparatus and method, and program |
US20100064249A1 (en) * | 2008-09-05 | 2010-03-11 | Gateway Inc. | Visual indicator in GUI system for notifying user of data storage device |
US8924876B1 (en) * | 2008-09-29 | 2014-12-30 | Emc Corporation | File-driven drag and drop |
JP2010097292A (en) * | 2008-10-14 | 2010-04-30 | Canon Inc | Information processing apparatus and information processing method |
US9760234B2 (en) * | 2008-10-14 | 2017-09-12 | International Business Machines Corporation | Desktop icon management and grouping using desktop containers |
US9928242B2 (en) * | 2008-11-05 | 2018-03-27 | Oracle International Corporation | Managing the content of shared slide presentations |
AU2008246236B1 (en) * | 2008-11-18 | 2009-10-01 | International Business Machines Corporation | Presentation of items arranged in a hierarchy |
US20100132023A1 (en) * | 2008-11-21 | 2010-05-27 | Randall Reese | Machine, Program Product, And Computer-Implemented Method For File Management, Storage, And Display In Albums Utilizing A Questionnaire |
US20100185627A1 (en) * | 2009-01-12 | 2010-07-22 | Kinpo Electronics, Inc. | Sorting method of multimedia files |
JP5366562B2 (en) * | 2009-01-13 | 2013-12-11 | キヤノン株式会社 | Information processing apparatus, information processing apparatus control method, and program |
US20100192098A1 (en) * | 2009-01-29 | 2010-07-29 | Microsoft Corporation | Accelerators for capturing content |
US9176747B2 (en) * | 2009-02-17 | 2015-11-03 | Sandisk Il Ltd. | User-application interface |
US8656346B2 (en) * | 2009-02-18 | 2014-02-18 | Microsoft Corporation | Converting command units into workflow activities |
USD838288S1 (en) * | 2009-02-24 | 2019-01-15 | Tixtrack, Inc. | Display screen or portion of a display screen with a computer generated venue map and a pop-up window appearing in response to an electronic pointer |
US20100235769A1 (en) * | 2009-03-16 | 2010-09-16 | Microsoft Corporation | Smooth layout animation of continuous and non-continuous properties |
DE102009019562A1 (en) * | 2009-04-30 | 2010-11-04 | Volkswagen Ag | Method for controlling the display of information on a display surface |
US20110173215A1 (en) * | 2009-05-27 | 2011-07-14 | Hitachi Solutions, Ltd. | Retrieval system, retrieval space map server apparatus and program |
US9298350B2 (en) * | 2009-05-27 | 2016-03-29 | Microsoft Technology Licensing, Llc | Menu searching of a hierarchical menu structure |
JP5676859B2 (en) * | 2009-06-22 | 2015-02-25 | キヤノン株式会社 | Image forming apparatus, image forming apparatus control method, and program |
US20110010656A1 (en) * | 2009-07-13 | 2011-01-13 | Ta Keo Ltd | Apparatus and method for improved user interface |
US9513403B2 (en) * | 2009-07-27 | 2016-12-06 | Peck Labs, Inc | Methods and systems for displaying customized icons |
KR101686913B1 (en) * | 2009-08-13 | 2016-12-16 | 삼성전자주식회사 | Apparatus and method for providing of event service in a electronic machine |
JP5531497B2 (en) * | 2009-08-18 | 2014-06-25 | ソニー株式会社 | Display device and display method |
KR101259549B1 (en) * | 2009-09-21 | 2013-04-30 | 한국전자통신연구원 | USER TERMINAL SYSTEM, Digital Rights Management SYSTEM COMPRISING THE SYSTEM AND SYSTEM AND METHOD FOR MANAGING DIGITAL RIGHTS |
CA2684540A1 (en) | 2009-11-05 | 2011-05-05 | Ibm Canada Limited - Ibm Canada Limitee | Navigation through historical stored interactions associated with a multi-user view |
US20110113357A1 (en) * | 2009-11-12 | 2011-05-12 | International Business Machines Corporation | Manipulating results of a media archive search |
US20110119634A1 (en) * | 2009-11-16 | 2011-05-19 | Apple Inc. | Global view for digital assets |
TWI408564B (en) * | 2009-11-25 | 2013-09-11 | Giga Byte Tech Co Ltd | Method and human-to-machine interface apparatus for searching files |
US8621391B2 (en) * | 2009-12-16 | 2013-12-31 | Apple Inc. | Device, method, and computer readable medium for maintaining a selection order in a displayed thumbnail stack of user interface elements acted upon via gestured operations |
KR101725887B1 (en) * | 2009-12-21 | 2017-04-11 | 삼성전자주식회사 | Method and apparatus for searching contents in touch screen device |
US10397639B1 (en) | 2010-01-29 | 2019-08-27 | Sitting Man, Llc | Hot key systems and methods |
US9759917B2 (en) | 2010-02-28 | 2017-09-12 | Microsoft Technology Licensing, Llc | AR glasses with event and sensor triggered AR eyepiece interface to external devices |
US9285589B2 (en) | 2010-02-28 | 2016-03-15 | Microsoft Technology Licensing, Llc | AR glasses with event and sensor triggered control of AR eyepiece applications |
US9223134B2 (en) | 2010-02-28 | 2015-12-29 | Microsoft Technology Licensing, Llc | Optical imperfections in a light transmissive illumination system for see-through near-eye display glasses |
US9128281B2 (en) | 2010-09-14 | 2015-09-08 | Microsoft Technology Licensing, Llc | Eyepiece with uniformly illuminated reflective display |
US9097891B2 (en) | 2010-02-28 | 2015-08-04 | Microsoft Technology Licensing, Llc | See-through near-eye display glasses including an auto-brightness control for the display brightness based on the brightness in the environment |
US9182596B2 (en) | 2010-02-28 | 2015-11-10 | Microsoft Technology Licensing, Llc | See-through near-eye display glasses with the optical assembly including absorptive polarizers or anti-reflective coatings to reduce stray light |
US8488246B2 (en) | 2010-02-28 | 2013-07-16 | Osterhout Group, Inc. | See-through near-eye display glasses including a curved polarizing film in the image source, a partially reflective, partially transmitting optical element and an optically flat film |
US10180572B2 (en) | 2010-02-28 | 2019-01-15 | Microsoft Technology Licensing, Llc | AR glasses with event and user action control of external applications |
US9366862B2 (en) | 2010-02-28 | 2016-06-14 | Microsoft Technology Licensing, Llc | System and method for delivering content to a group of see-through near eye display eyepieces |
US20150309316A1 (en) | 2011-04-06 | 2015-10-29 | Microsoft Technology Licensing, Llc | Ar glasses with predictive control of external device based on event input |
US8467133B2 (en) | 2010-02-28 | 2013-06-18 | Osterhout Group, Inc. | See-through display with an optical assembly including a wedge-shaped illumination system |
US9229227B2 (en) | 2010-02-28 | 2016-01-05 | Microsoft Technology Licensing, Llc | See-through near-eye display glasses with a light transmissive wedge shaped illumination system |
US8477425B2 (en) | 2010-02-28 | 2013-07-02 | Osterhout Group, Inc. | See-through near-eye display glasses including a partially reflective, partially transmitting optical element |
WO2011106797A1 (en) | 2010-02-28 | 2011-09-01 | Osterhout Group, Inc. | Projection triggering through an external marker in an augmented reality eyepiece |
US9129295B2 (en) | 2010-02-28 | 2015-09-08 | Microsoft Technology Licensing, Llc | See-through near-eye display glasses with a fast response photochromic film system for quick transition from dark to clear |
US8482859B2 (en) | 2010-02-28 | 2013-07-09 | Osterhout Group, Inc. | See-through near-eye display glasses wherein image light is transmitted to and reflected from an optically flat film |
US9134534B2 (en) | 2010-02-28 | 2015-09-15 | Microsoft Technology Licensing, Llc | See-through near-eye display glasses including a modular image source |
US20120249797A1 (en) | 2010-02-28 | 2012-10-04 | Osterhout Group, Inc. | Head-worn adaptive display |
US9097890B2 (en) | 2010-02-28 | 2015-08-04 | Microsoft Technology Licensing, Llc | Grating in a light transmissive illumination system for see-through near-eye display glasses |
US9341843B2 (en) | 2010-02-28 | 2016-05-17 | Microsoft Technology Licensing, Llc | See-through near-eye display glasses with a small scale image source |
US9091851B2 (en) | 2010-02-28 | 2015-07-28 | Microsoft Technology Licensing, Llc | Light control in head mounted displays |
US8472120B2 (en) | 2010-02-28 | 2013-06-25 | Osterhout Group, Inc. | See-through near-eye display glasses with a small scale image source |
TWI410867B (en) * | 2010-03-24 | 2013-10-01 | Acer Inc | Method for installing application software |
WO2011123090A1 (en) * | 2010-03-29 | 2011-10-06 | Carbonite, Inc. | Discovery of non-standard folders for backup |
US8881060B2 (en) | 2010-04-07 | 2014-11-04 | Apple Inc. | Device, method, and graphical user interface for managing folders |
US10788976B2 (en) | 2010-04-07 | 2020-09-29 | Apple Inc. | Device, method, and graphical user interface for managing folders with multiple pages |
US20110258569A1 (en) * | 2010-04-20 | 2011-10-20 | Microsoft Corporation | Display of filtered data via frequency distribution |
US20110264705A1 (en) * | 2010-04-22 | 2011-10-27 | Brandon Diamond | Method and system for interactive generation of presentations |
USD666631S1 (en) * | 2010-04-22 | 2012-09-04 | Wenjin Ma | Display screen with graphical user interface |
US8751939B2 (en) | 2010-04-26 | 2014-06-10 | Salesforce.Com, Inc. | Side tab navigation and page views personalization systems and methods |
CA2738428A1 (en) * | 2010-04-30 | 2011-10-30 | Iliv Technologies Inc. | Collaboration tool |
US20110276921A1 (en) * | 2010-05-05 | 2011-11-10 | Yahoo! Inc. | Selecting content based on interest tags that are included in an interest cloud |
TWI408594B (en) * | 2010-06-04 | 2013-09-11 | Edamak Corp | Device and method for detecting object proximity and touch behavior using capacitive touch panel |
US9081481B2 (en) * | 2010-06-16 | 2015-07-14 | Google Inc. | Adjusting list views based on list sorting and item highlighting |
KR101110202B1 (en) * | 2010-08-02 | 2012-02-16 | (주)엔써즈 | Method and system for generating database based on mutual relation between moving picture data |
US11016938B2 (en) | 2010-09-01 | 2021-05-25 | Apple Inc. | Consolidating information relating to duplicate images |
US8774561B2 (en) | 2010-09-01 | 2014-07-08 | Apple Inc. | Consolidating information relating to duplicate images |
KR101811743B1 (en) | 2010-09-09 | 2018-01-25 | 삼성전자주식회사 | Multimedia apparatus and Method for providing contents thereof |
US20120222133A1 (en) * | 2010-09-28 | 2012-08-30 | Adam Kidron | Shared content management platform apparatuses, methods and systems |
US20120084657A1 (en) * | 2010-09-30 | 2012-04-05 | Yahoo! Inc. | Providing content to a user from multiple sources based on interest tag(s) that are included in an interest cloud |
KR20130052743A (en) * | 2010-10-15 | 2013-05-23 | 삼성전자주식회사 | Method for selecting menu item |
US8892578B2 (en) | 2010-10-29 | 2014-11-18 | Microsoft Corporation | Visual preview of search results |
TWI426401B (en) * | 2010-10-29 | 2014-02-11 | Inventec Corp | System for opening target file through user defined tag and method thereof |
US9930092B2 (en) * | 2010-12-06 | 2018-03-27 | Zoho Corporation Private Limited | Editing an unhosted third party application |
US20120151397A1 (en) * | 2010-12-08 | 2012-06-14 | Tavendo Gmbh | Access to an electronic object collection via a plurality of views |
CN102541881A (en) * | 2010-12-17 | 2012-07-04 | 联想(北京)有限公司 | File preview image display method and electronic equipment |
US9996620B2 (en) | 2010-12-28 | 2018-06-12 | Excalibur Ip, Llc | Continuous content refinement of topics of user interest |
US8984029B2 (en) | 2011-01-14 | 2015-03-17 | Apple Inc. | File system management |
US8966396B2 (en) * | 2011-01-14 | 2015-02-24 | Apple Inc. | Information management with non-hierarchical views |
US8943026B2 (en) | 2011-01-14 | 2015-01-27 | Apple Inc. | Visual representation of a local backup |
GB2500356A (en) | 2011-01-20 | 2013-09-18 | Box Inc | Real time notification of activities that occur in a web-based collaboration environment |
WO2012108714A2 (en) | 2011-02-11 | 2012-08-16 | Samsung Electronics Co., Ltd. | Method and apparatus for providing graphic user interface in mobile terminal |
US20120254790A1 (en) * | 2011-03-31 | 2012-10-04 | Xerox Corporation | Direct, feature-based and multi-touch dynamic search and manipulation of image sets |
US20120266106A1 (en) * | 2011-04-13 | 2012-10-18 | Pugazendhi Asaimuthu | Method and system for multi-level browsing |
US20120266079A1 (en) * | 2011-04-18 | 2012-10-18 | Mark Lee | Usability of cross-device user interfaces |
KR101830777B1 (en) * | 2011-05-11 | 2018-02-21 | 삼성전자 주식회사 | Method and apparatus for controlling display of item |
US10789272B2 (en) * | 2011-06-06 | 2020-09-29 | International Business Machines Corporation | Scalable, distributed containerization across homogenous and heterogeneous data stores |
US9015601B2 (en) | 2011-06-21 | 2015-04-21 | Box, Inc. | Batch uploading of content to a web-based collaboration environment |
US9063912B2 (en) | 2011-06-22 | 2015-06-23 | Box, Inc. | Multimedia content preview rendering in a cloud content management system |
US9176645B1 (en) * | 2011-06-29 | 2015-11-03 | Amazon Technologies, Inc. | Manipulating collections of items in a user interface |
US20130007061A1 (en) * | 2011-06-29 | 2013-01-03 | Nokia Corporation | Apparatus and associated methods |
US9280273B2 (en) * | 2011-06-30 | 2016-03-08 | Nokia Technologies Oy | Method, apparatus, and computer program for displaying content items in display regions |
US8060533B1 (en) | 2011-07-07 | 2011-11-15 | Google Inc. | Panel-based management of data objects from a plurality of data sources |
US8751538B1 (en) * | 2011-07-07 | 2014-06-10 | Google Inc. | Method and apparatus for panel-based management of data |
GB2503625A (en) | 2011-07-08 | 2014-01-01 | Box Inc | Collaboration sessions in a workspace on cloud-based content management system |
EP2729877A4 (en) | 2011-07-08 | 2015-06-17 | Box Inc | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
KR101857571B1 (en) * | 2011-07-19 | 2018-05-14 | 삼성전자 주식회사 | Method and apparatus for moving items using touchscreen |
US20130036369A1 (en) * | 2011-08-02 | 2013-02-07 | SquaredOut, Inc. | Systems and methods for managing event-related information |
US20130067408A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Contextually applicable commands |
US9152612B2 (en) * | 2011-09-13 | 2015-10-06 | Microsoft Technology Licensing, Llc | Input control processing |
US9197718B2 (en) | 2011-09-23 | 2015-11-24 | Box, Inc. | Central management and control of user-contributed content in a web-based collaboration environment and management console thereof |
US8515902B2 (en) | 2011-10-14 | 2013-08-20 | Box, Inc. | Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution |
JP2013089140A (en) * | 2011-10-20 | 2013-05-13 | Canon Inc | Document management device and control method for the same, and program |
US11210610B2 (en) | 2011-10-26 | 2021-12-28 | Box, Inc. | Enhanced multimedia content preview rendering in a cloud content management system |
US9098474B2 (en) | 2011-10-26 | 2015-08-04 | Box, Inc. | Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience |
US9087064B2 (en) * | 2011-10-27 | 2015-07-21 | International Business Machines Corporation | User-defined hierarchies in file system data sets |
US9411797B2 (en) * | 2011-10-31 | 2016-08-09 | Microsoft Technology Licensing, Llc | Slicer elements for filtering tabular data |
US10248439B2 (en) * | 2011-11-10 | 2019-04-02 | Microsoft Technology Licensing, Llc | Format object task pane |
US8990307B2 (en) | 2011-11-16 | 2015-03-24 | Box, Inc. | Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform |
US20130127899A1 (en) * | 2011-11-21 | 2013-05-23 | Jiunn-Sheng Yan | Apparatus and method for dynamic film review on an e-book |
US9773051B2 (en) | 2011-11-29 | 2017-09-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US8977978B2 (en) * | 2011-12-12 | 2015-03-10 | Inkling Systems, Inc. | Outline view |
US8938550B2 (en) * | 2011-12-15 | 2015-01-20 | Microsoft Corporation | Autonomous network streaming |
US8832296B2 (en) | 2011-12-15 | 2014-09-09 | Microsoft Corporation | Fast application streaming using on-demand staging |
US9019123B2 (en) | 2011-12-22 | 2015-04-28 | Box, Inc. | Health check services for web-based collaboration environments |
US20130162670A1 (en) * | 2011-12-23 | 2013-06-27 | Sap Ag | Dynamic card view |
US9904435B2 (en) | 2012-01-06 | 2018-02-27 | Box, Inc. | System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment |
KR101995775B1 (en) * | 2012-01-06 | 2019-07-03 | 삼성전자 주식회사 | Searching Support Method For a plurality of Item and Device supporting the same |
US8782004B2 (en) | 2012-01-23 | 2014-07-15 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
US11232481B2 (en) | 2012-01-30 | 2022-01-25 | Box, Inc. | Extended applications of multimedia content previews in the cloud-based content management system |
US9235317B2 (en) * | 2012-02-01 | 2016-01-12 | Facebook, Inc. | Summary and navigation of hierarchical levels |
US9645724B2 (en) | 2012-02-01 | 2017-05-09 | Facebook, Inc. | Timeline based content organization |
US9557876B2 (en) | 2012-02-01 | 2017-01-31 | Facebook, Inc. | Hierarchical user interface |
US10055419B2 (en) * | 2012-02-03 | 2018-08-21 | Apple Inc. | User interface for accessing documents from a computing device |
EP2631818A1 (en) * | 2012-02-24 | 2013-08-28 | Research in Motion TAT AB | Method and apparatus for displaying files by categories in a graphical user interface |
CA2865306A1 (en) * | 2012-02-24 | 2013-08-29 | Blackberry Limited | Method and apparatus for displaying files by categories in a graphical user interface |
US9965745B2 (en) | 2012-02-24 | 2018-05-08 | Box, Inc. | System and method for promoting enterprise adoption of a web-based collaboration environment |
TWI479346B (en) * | 2012-03-01 | 2015-04-01 | Altek Corp | Thumbnail image preview apparatus and method thereof |
US9195636B2 (en) | 2012-03-07 | 2015-11-24 | Box, Inc. | Universal file type preview for mobile devices |
KR20130108758A (en) * | 2012-03-26 | 2013-10-07 | 삼성전자주식회사 | Method for providing gui to display list of item in terminal and apparatus thereof |
US9575981B2 (en) | 2012-04-11 | 2017-02-21 | Box, Inc. | Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system |
US9413587B2 (en) | 2012-05-02 | 2016-08-09 | Box, Inc. | System and method for a third-party application to access content within a cloud-based platform |
US9396216B2 (en) | 2012-05-04 | 2016-07-19 | Box, Inc. | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform |
US9691051B2 (en) | 2012-05-21 | 2017-06-27 | Box, Inc. | Security enhancement through application access control |
US9027108B2 (en) | 2012-05-23 | 2015-05-05 | Box, Inc. | Systems and methods for secure file portability between mobile applications on a mobile device |
US8914900B2 (en) | 2012-05-23 | 2014-12-16 | Box, Inc. | Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform |
JP5950698B2 (en) * | 2012-05-31 | 2016-07-13 | キヤノン株式会社 | Information processing device |
US10002164B2 (en) * | 2012-06-01 | 2018-06-19 | Ansys, Inc. | Systems and methods for context based search of simulation objects |
EP2856280A4 (en) * | 2012-06-01 | 2016-05-18 | Sas Ip | User interface and method of data navigation in the user interface of engineering analysis applications |
US9460200B2 (en) | 2012-07-02 | 2016-10-04 | International Business Machines Corporation | Activity recommendation based on a context-based electronic files search |
US8898165B2 (en) | 2012-07-02 | 2014-11-25 | International Business Machines Corporation | Identification of null sets in a context-based electronic document search |
US8903813B2 (en) | 2012-07-02 | 2014-12-02 | International Business Machines Corporation | Context-based electronic document search using a synthetic event |
US9021099B2 (en) | 2012-07-03 | 2015-04-28 | Box, Inc. | Load balancing secure FTP connections among multiple FTP servers |
GB2505072A (en) | 2012-07-06 | 2014-02-19 | Box Inc | Identifying users and collaborators as search results in a cloud-based system |
US9792320B2 (en) | 2012-07-06 | 2017-10-17 | Box, Inc. | System and method for performing shard migration to support functions of a cloud-based service |
US9712510B2 (en) | 2012-07-06 | 2017-07-18 | Box, Inc. | Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform |
US9237170B2 (en) | 2012-07-19 | 2016-01-12 | Box, Inc. | Data loss prevention (DLP) methods and architectures by a cloud service |
US8868574B2 (en) * | 2012-07-30 | 2014-10-21 | Box, Inc. | System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment |
US9483086B2 (en) * | 2012-07-30 | 2016-11-01 | Sap Se | Business object detail display |
US9794256B2 (en) | 2012-07-30 | 2017-10-17 | Box, Inc. | System and method for advanced control tools for administrators in a cloud-based service |
US9658672B2 (en) | 2012-07-30 | 2017-05-23 | Sap Se | Business object representations and detail boxes display |
US9262499B2 (en) | 2012-08-08 | 2016-02-16 | International Business Machines Corporation | Context-based graphical database |
US9369520B2 (en) | 2012-08-19 | 2016-06-14 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US8745267B2 (en) | 2012-08-19 | 2014-06-03 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US20140059488A1 (en) * | 2012-08-21 | 2014-02-27 | Sap Ag | System and method for viewing selected descendant nodes in a tree hierarchy displayed in tabular form |
US8959119B2 (en) | 2012-08-27 | 2015-02-17 | International Business Machines Corporation | Context-based graph-relational intersect derived database |
GB2513671A (en) | 2012-08-27 | 2014-11-05 | Box Inc | Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment |
US9135462B2 (en) | 2012-08-29 | 2015-09-15 | Box, Inc. | Upload and download streaming encryption to/from a cloud-based platform |
TWI456494B (en) * | 2012-08-30 | 2014-10-11 | Shuttle Inc | Classification method for classifying content of electronic device, and the application program using for the same |
US9195519B2 (en) | 2012-09-06 | 2015-11-24 | Box, Inc. | Disabling the self-referential appearance of a mobile application in an intent via a background registration |
US9117087B2 (en) | 2012-09-06 | 2015-08-25 | Box, Inc. | System and method for creating a secure channel for inter-application communication based on intents |
US9311071B2 (en) | 2012-09-06 | 2016-04-12 | Box, Inc. | Force upgrade of a mobile application via a server side configuration file |
US9558278B2 (en) | 2012-09-11 | 2017-01-31 | Apple Inc. | Integrated content recommendation |
US8620958B1 (en) | 2012-09-11 | 2013-12-31 | International Business Machines Corporation | Dimensionally constrained synthetic context objects database |
US9218118B2 (en) | 2012-09-11 | 2015-12-22 | Apple Inc. | Media player playlist management |
US9619580B2 (en) | 2012-09-11 | 2017-04-11 | International Business Machines Corporation | Generation of synthetic context objects |
US9251237B2 (en) | 2012-09-11 | 2016-02-02 | International Business Machines Corporation | User-specific synthetic context object matching |
US9292833B2 (en) | 2012-09-14 | 2016-03-22 | Box, Inc. | Batching notifications of activities that occur in a web-based collaboration environment |
US10200256B2 (en) | 2012-09-17 | 2019-02-05 | Box, Inc. | System and method of a manipulative handle in an interactive mobile user interface |
US9223846B2 (en) | 2012-09-18 | 2015-12-29 | International Business Machines Corporation | Context-based navigation through a database |
US9553758B2 (en) | 2012-09-18 | 2017-01-24 | Box, Inc. | Sandboxing individual applications to specific user folders in a cloud-based service |
US10915492B2 (en) | 2012-09-19 | 2021-02-09 | Box, Inc. | Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction |
US9959420B2 (en) | 2012-10-02 | 2018-05-01 | Box, Inc. | System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment |
US9705967B2 (en) | 2012-10-04 | 2017-07-11 | Box, Inc. | Corporate user discovery and identification of recommended collaborators in a cloud platform |
US9495364B2 (en) | 2012-10-04 | 2016-11-15 | Box, Inc. | Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform |
US9665349B2 (en) | 2012-10-05 | 2017-05-30 | Box, Inc. | System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform |
US9741138B2 (en) * | 2012-10-10 | 2017-08-22 | International Business Machines Corporation | Node cluster relationships in a graph database |
JP2013054364A (en) * | 2012-10-15 | 2013-03-21 | Nikon Corp | Display processing device, display system, display method and program |
US9250781B2 (en) | 2012-10-17 | 2016-02-02 | Sap Se | Method and device for navigating time and timescale using movements |
US9756022B2 (en) | 2014-08-29 | 2017-09-05 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
EP2784717A1 (en) | 2012-10-17 | 2014-10-01 | Box, Inc. | Remote key management in a cloud-based environment |
US9081975B2 (en) | 2012-10-22 | 2015-07-14 | Palantir Technologies, Inc. | Sharing information between nexuses that use different classification schemes for information access control |
US8863035B2 (en) * | 2012-10-26 | 2014-10-14 | International Business Machines Corporation | Dynamic self-reorganizing trees in a user interface |
US20140129545A1 (en) * | 2012-11-02 | 2014-05-08 | Google Inc. | Sorting search results |
US9501761B2 (en) | 2012-11-05 | 2016-11-22 | Palantir Technologies, Inc. | System and method for sharing investigation results |
USD752070S1 (en) * | 2012-11-13 | 2016-03-22 | Karl Storz Imaging, Inc. | Medical imaging display screen or portion thereof with graphical user interface |
USD738885S1 (en) * | 2012-11-13 | 2015-09-15 | Karl Storz Imaging, Inc. | Medical imaging display screen or portion thereof with graphical user interface |
CN103810221B (en) * | 2012-11-15 | 2019-03-15 | 腾讯科技(深圳)有限公司 | A kind of method for previewing and device of file |
US8931109B2 (en) | 2012-11-19 | 2015-01-06 | International Business Machines Corporation | Context-based security screening for accessing data |
KR101496255B1 (en) * | 2012-11-30 | 2015-02-26 | 네이버 주식회사 | Device and method to provide search result using card browsing |
TWI554939B (en) * | 2012-12-17 | 2016-10-21 | 華碩電腦股份有限公司 | Computer apparatus and operation method of application program preview interface |
US10235383B2 (en) | 2012-12-19 | 2019-03-19 | Box, Inc. | Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment |
US10241643B2 (en) * | 2012-12-21 | 2019-03-26 | Microsoft Technology Licensing, Llc | Navigating content hierarchies and persisting content item collections |
US9396245B2 (en) | 2013-01-02 | 2016-07-19 | Box, Inc. | Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US8983981B2 (en) | 2013-01-02 | 2015-03-17 | International Business Machines Corporation | Conformed dimensional and context-based data gravity wells |
US8914413B2 (en) | 2013-01-02 | 2014-12-16 | International Business Machines Corporation | Context-based data gravity wells |
US9229932B2 (en) | 2013-01-02 | 2016-01-05 | International Business Machines Corporation | Conformed dimensional data gravity wells |
US9953036B2 (en) | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9507795B2 (en) | 2013-01-11 | 2016-11-29 | Box, Inc. | Functionalities, features, and user interface of a synchronization client to a cloud-based environment |
EP2757491A1 (en) | 2013-01-17 | 2014-07-23 | Box, Inc. | Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform |
US9275206B2 (en) * | 2013-01-23 | 2016-03-01 | International Business Machines Corporation | Managing sensitive information |
US9069752B2 (en) | 2013-01-31 | 2015-06-30 | International Business Machines Corporation | Measuring and displaying facets in context-based conformed dimensional data gravity wells |
US9053102B2 (en) | 2013-01-31 | 2015-06-09 | International Business Machines Corporation | Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects |
US8856946B2 (en) | 2013-01-31 | 2014-10-07 | International Business Machines Corporation | Security filter for context-based data gravity wells |
US9342530B2 (en) * | 2013-02-22 | 2016-05-17 | Pro Softnet Corporation | Method for skipping empty folders when navigating a file system |
US9292537B1 (en) | 2013-02-23 | 2016-03-22 | Bryant Christopher Lee | Autocompletion of filename based on text in a file to be saved |
US9292506B2 (en) | 2013-02-28 | 2016-03-22 | International Business Machines Corporation | Dynamic generation of demonstrative aids for a meeting |
USD763860S1 (en) * | 2013-03-04 | 2016-08-16 | Tixtrack, Inc. | Display panel or portion thereof with graphical user interface |
US20140289641A1 (en) * | 2013-03-20 | 2014-09-25 | Jerome Eymard Whitcroft | Adaptive User Interface |
JP6132617B2 (en) * | 2013-03-26 | 2017-05-24 | キヤノン株式会社 | Image processing system, image processing method, and program for storing received image data in folder |
US20140298219A1 (en) * | 2013-03-29 | 2014-10-02 | Microsoft Corporation | Visual Selection and Grouping |
US10152526B2 (en) | 2013-04-11 | 2018-12-11 | International Business Machines Corporation | Generation of synthetic context objects using bounded context objects |
US10846074B2 (en) | 2013-05-10 | 2020-11-24 | Box, Inc. | Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client |
US10725968B2 (en) | 2013-05-10 | 2020-07-28 | Box, Inc. | Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform |
US9195608B2 (en) | 2013-05-17 | 2015-11-24 | International Business Machines Corporation | Stored data analysis |
US9348794B2 (en) | 2013-05-17 | 2016-05-24 | International Business Machines Corporation | Population of context-based data gravity wells |
GB2515192B (en) | 2013-06-13 | 2016-12-14 | Box Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US8886601B1 (en) | 2013-06-20 | 2014-11-11 | Palantir Technologies, Inc. | System and method for incrementally replicating investigative analysis data |
US9805050B2 (en) | 2013-06-21 | 2017-10-31 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
US10110656B2 (en) | 2013-06-25 | 2018-10-23 | Box, Inc. | Systems and methods for providing shell communication in a cloud-based platform |
US10229134B2 (en) | 2013-06-25 | 2019-03-12 | Box, Inc. | Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform |
US9256629B1 (en) * | 2013-06-28 | 2016-02-09 | Emc Corporation | File system snapshots over thinly provisioned volume file in mapped mode |
US9256614B1 (en) * | 2013-06-28 | 2016-02-09 | Emc Corporation | File system snapshots over fully provisioned volume file in direct mode |
US9256603B1 (en) | 2013-06-28 | 2016-02-09 | Emc Corporation | File system over fully provisioned volume file in direct mode |
US9329803B1 (en) | 2013-06-28 | 2016-05-03 | Emc Corporation | File system over thinly provisioned volume file in mapped mode |
US9619128B2 (en) * | 2013-07-01 | 2017-04-11 | Microsoft Technology Licensing, Llc | Dynamic presentation prototyping and generation |
US9535924B2 (en) | 2013-07-30 | 2017-01-03 | Box, Inc. | Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US20150052459A1 (en) * | 2013-08-13 | 2015-02-19 | Unisys Corporation | Shortcut command button for a hierarchy tree |
US9892131B2 (en) | 2013-08-26 | 2018-02-13 | Xiaomi Inc. | Method, electronic device, and storage medium for creating virtual directory |
US9213684B2 (en) | 2013-09-13 | 2015-12-15 | Box, Inc. | System and method for rendering document in web browser or mobile device regardless of third-party plug-in software |
US10509527B2 (en) | 2013-09-13 | 2019-12-17 | Box, Inc. | Systems and methods for configuring event-based automation in cloud-based collaboration platforms |
US9704137B2 (en) | 2013-09-13 | 2017-07-11 | Box, Inc. | Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform |
US9535909B2 (en) | 2013-09-13 | 2017-01-03 | Box, Inc. | Configurable event-based automation architecture for cloud-based collaboration platforms |
US8892679B1 (en) | 2013-09-13 | 2014-11-18 | Box, Inc. | Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform |
GB2518298A (en) | 2013-09-13 | 2015-03-18 | Box Inc | High-availability architecture for a cloud-based concurrent-access collaboration platform |
WO2015042901A1 (en) | 2013-09-29 | 2015-04-02 | Microsoft Technology Licensing, Llc | Media presentation effects |
US9483549B2 (en) | 2013-09-30 | 2016-11-01 | Microsoft Technology Licensing, Llc | Persisting state at scale across browser sessions |
US10866931B2 (en) | 2013-10-22 | 2020-12-15 | Box, Inc. | Desktop application for accessing a cloud collaboration platform |
AU2013404001B2 (en) | 2013-10-30 | 2017-11-30 | Apple Inc. | Displaying relevant user interface objects |
US9569070B1 (en) * | 2013-11-11 | 2017-02-14 | Palantir Technologies, Inc. | Assisting in deconflicting concurrency conflicts |
US9423927B2 (en) * | 2013-12-04 | 2016-08-23 | Cellco Partnership | Managing user interface elements using gestures |
USD827654S1 (en) * | 2013-12-20 | 2018-09-04 | Sony Corporation | Wearable player with graphical user interface |
US9378276B1 (en) * | 2014-01-03 | 2016-06-28 | Google Inc. | Systems and methods for generating navigation filters |
US20150212662A1 (en) * | 2014-01-30 | 2015-07-30 | Unisys Corporation | Dropdown mode command button |
US9009827B1 (en) | 2014-02-20 | 2015-04-14 | Palantir Technologies Inc. | Security sharing system |
US10431259B2 (en) * | 2014-04-23 | 2019-10-01 | Sony Corporation | Systems and methods for reviewing video content |
US10452484B2 (en) * | 2014-05-15 | 2019-10-22 | Carbonite, Inc. | Systems and methods for time-based folder restore |
US10331297B2 (en) * | 2014-05-30 | 2019-06-25 | Apple Inc. | Device, method, and graphical user interface for navigating a content hierarchy |
US10530854B2 (en) | 2014-05-30 | 2020-01-07 | Box, Inc. | Synchronization of permissioned content in cloud-based environments |
US9602514B2 (en) | 2014-06-16 | 2017-03-21 | Box, Inc. | Enterprise mobility management and verification of a managed application by a content provider |
USD776143S1 (en) * | 2014-06-23 | 2017-01-10 | Sartorius Stedim Biotech Gmbh | Display with a graphical user interface |
US10261661B2 (en) * | 2014-06-25 | 2019-04-16 | Oracle International Corporation | Reference position in viewer for higher hierarchical level |
TWI570626B (en) * | 2014-06-30 | 2017-02-11 | 廣達電腦股份有限公司 | Method of virtual content sharing |
US10572496B1 (en) | 2014-07-03 | 2020-02-25 | Palantir Technologies Inc. | Distributed workflow system and database with access controls for city resiliency |
US20160019268A1 (en) * | 2014-07-18 | 2016-01-21 | Kobo Inc. | User-interface for providing a stack view of an e-book collection |
US20160041698A1 (en) * | 2014-08-05 | 2016-02-11 | Vladimlr Tkach | Enhanced Object Organization in a Container |
US10038731B2 (en) | 2014-08-29 | 2018-07-31 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
US9894119B2 (en) | 2014-08-29 | 2018-02-13 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
US10574442B2 (en) | 2014-08-29 | 2020-02-25 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
EP3156864B1 (en) * | 2014-09-04 | 2019-11-13 | Yamazaki Mazak Corporation | Device having menu display function |
US20160078474A1 (en) * | 2014-09-15 | 2016-03-17 | DataLlogix, Inc. | Apparatus and methods for measurement of campaign effectiveness |
CN106462558A (en) | 2014-10-30 | 2017-02-22 | 微软技术许可有限责任公司 | Authoring tools for synthesizing hybrid slide-canvas presentations |
EP3021209A1 (en) * | 2014-11-14 | 2016-05-18 | Dot Hill Systems Corporation | Method and apparatus for processing slow infrequent streams |
US10963126B2 (en) | 2014-12-10 | 2021-03-30 | D2L Corporation | Method and system for element navigation |
US10955992B2 (en) * | 2015-01-22 | 2021-03-23 | NetSuite Inc. | System and methods for implementing visual interface for use in sorting and organizing records |
US10013433B2 (en) | 2015-02-24 | 2018-07-03 | Canon Kabushiki Kaisha | Virtual file system |
US10528345B2 (en) * | 2015-03-27 | 2020-01-07 | Intel Corporation | Instructions and logic to provide atomic range modification operations |
US10719220B2 (en) * | 2015-03-31 | 2020-07-21 | Autodesk, Inc. | Dynamic scrolling |
US20160314180A1 (en) * | 2015-04-27 | 2016-10-27 | Honeywell International Inc. | System of dynamic hierarchies based on a searchable entity model |
USD769287S1 (en) * | 2015-04-27 | 2016-10-18 | Vericle Corporation | Computer screen with practice health monitor and radar graphical user interface |
KR20160139810A (en) * | 2015-05-28 | 2016-12-07 | 삼성전자주식회사 | Method and apparatus for displaying a medical image |
EP3329354A4 (en) * | 2015-07-31 | 2019-03-20 | WiseTech Global Limited | Methods and systems for creating configurable forms, configuring forms and for form flow and form correlation |
US10609171B2 (en) * | 2015-12-22 | 2020-03-31 | Intel IP Corporation | Methods and apparatus to improve interprocess communication |
US10621198B1 (en) | 2015-12-30 | 2020-04-14 | Palantir Technologies Inc. | System and method for secure database replication |
WO2017123394A1 (en) * | 2016-01-15 | 2017-07-20 | Pearson Education, Inc. | Interactive presentation controls |
CA3020405A1 (en) * | 2016-03-11 | 2017-09-14 | Jad Saliba | Systems and methods for displaying digital forensic evidence |
US20170285889A1 (en) * | 2016-04-05 | 2017-10-05 | Microsoft Technology Licensing, Llc | Scenario based pinning in a collaboration environment |
US10262006B2 (en) | 2016-04-29 | 2019-04-16 | Microsoft Technology Licensing, Llc | Contextually triggered entry point |
DK201670595A1 (en) | 2016-06-11 | 2018-01-22 | Apple Inc | Configuring context-specific user interfaces |
AU2017100670C4 (en) | 2016-06-12 | 2019-11-21 | Apple Inc. | User interfaces for retrieving contextually relevant media content |
US11816325B2 (en) | 2016-06-12 | 2023-11-14 | Apple Inc. | Application shortcuts for carplay |
US11074219B2 (en) * | 2016-06-24 | 2021-07-27 | Yildirim YAZGANARIKAN | Visual file manager |
US11734228B2 (en) | 2016-06-24 | 2023-08-22 | Yildirim YAZGANARIKAN | Visual file manager |
US10353548B2 (en) * | 2016-07-11 | 2019-07-16 | International Business Machines Corporation | Random access to properties for lists in user interfaces |
USD934269S1 (en) * | 2016-08-23 | 2021-10-26 | Workiva Inc. | Display screen or portion thereof with animated graphical user interface |
WO2018081633A1 (en) | 2016-10-28 | 2018-05-03 | Roam Analytics, Inc. | Semantic parsing engine |
WO2018081628A1 (en) * | 2016-10-28 | 2018-05-03 | Roam Analytics, Inc. | Dataset networking and database modeling |
US10606924B2 (en) | 2016-11-18 | 2020-03-31 | Microsoft Technology Licensing, Llc | Contextual file manager |
US10162566B2 (en) | 2016-11-22 | 2018-12-25 | Pure Storage, Inc. | Accumulating application-level statistics in a storage system |
US11620075B2 (en) | 2016-11-22 | 2023-04-04 | Pure Storage, Inc. | Providing application aware storage |
US10262053B2 (en) | 2016-12-22 | 2019-04-16 | Palantir Technologies Inc. | Systems and methods for data replication synchronization |
US10452456B2 (en) | 2016-12-27 | 2019-10-22 | Dropbox, Inc. | Kernel event triggers |
US10521397B2 (en) * | 2016-12-28 | 2019-12-31 | Hyland Switzerland Sarl | System and methods of proactively searching and continuously monitoring content from a plurality of data sources |
US10417183B2 (en) * | 2017-03-14 | 2019-09-17 | Salesforce.Com, Inc. | Database and file structure configurations for managing text strings to be provided by a graphical user interface |
US10068002B1 (en) | 2017-04-25 | 2018-09-04 | Palantir Technologies Inc. | Systems and methods for adaptive data replication |
TWD192856S (en) * | 2017-04-28 | 2018-09-11 | 陳永晏 | Graphical user interface of the display |
US20180335902A1 (en) * | 2017-05-16 | 2018-11-22 | Apple Inc. | Techniques for dynamically displaying relevant files for selection |
US10430062B2 (en) | 2017-05-30 | 2019-10-01 | Palantir Technologies Inc. | Systems and methods for geo-fenced dynamic dissemination |
US11030494B1 (en) | 2017-06-15 | 2021-06-08 | Palantir Technologies Inc. | Systems and methods for managing data spills |
CN107562347B (en) * | 2017-09-07 | 2021-04-13 | 北京小米移动软件有限公司 | Method and device for displaying object |
US10331623B2 (en) | 2017-10-16 | 2019-06-25 | Dropbox, Inc. | Workflow functions of content management system enforced by client device |
JP7027800B2 (en) * | 2017-10-23 | 2022-03-02 | 富士フイルムビジネスイノベーション株式会社 | Information processing equipment and programs |
US11741300B2 (en) | 2017-11-03 | 2023-08-29 | Dropbox, Inc. | Embedded spreadsheet data implementation and synchronization |
US10866926B2 (en) | 2017-12-08 | 2020-12-15 | Dropbox, Inc. | Hybrid search interface |
US10380196B2 (en) | 2017-12-08 | 2019-08-13 | Palantir Technologies Inc. | Systems and methods for using linked documents |
US10915542B1 (en) | 2017-12-19 | 2021-02-09 | Palantir Technologies Inc. | Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme |
US10346284B1 (en) * | 2018-01-11 | 2019-07-09 | Microsoft Technology Licensing, Llc | Feature usage prediction using shell application feature telemetry |
JP7094703B2 (en) * | 2018-01-15 | 2022-07-04 | キヤノン株式会社 | Image forming device, image forming method and program |
USD924884S1 (en) * | 2018-02-28 | 2021-07-13 | Siemens Medical Solutions Usa, Inc. | Touch screen with graphical user interface |
US11145096B2 (en) * | 2018-03-07 | 2021-10-12 | Samsung Electronics Co., Ltd. | System and method for augmented reality interaction |
US10684764B2 (en) * | 2018-03-28 | 2020-06-16 | Microsoft Technology Licensing, Llc | Facilitating movement of objects using semantic analysis and target identifiers |
US11151086B2 (en) | 2018-04-27 | 2021-10-19 | Dropbox, Inc. | Comment previews displayed in context within content item |
US11249950B2 (en) * | 2018-04-27 | 2022-02-15 | Dropbox, Inc. | Aggregated details displayed within file browser interface |
US11112948B2 (en) | 2018-04-27 | 2021-09-07 | Dropbox, Inc. | Dynamic preview in a file browser interface |
US11145294B2 (en) * | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10471297B1 (en) | 2018-05-16 | 2019-11-12 | Hydrow, Inc. | Rowing |
US11301050B2 (en) * | 2018-06-03 | 2022-04-12 | Apple Inc. | Method and device for presenting a synthesized reality user interface |
US11698890B2 (en) | 2018-07-04 | 2023-07-11 | Monday.com Ltd. | System and method for generating a column-oriented data structure repository for columns of single data types |
US11199944B2 (en) * | 2018-09-24 | 2021-12-14 | Salesforce.Com, Inc. | System and method for navigation within widget-sized browser panels |
US11308109B2 (en) * | 2018-10-12 | 2022-04-19 | International Business Machines Corporation | Transfer between different combinations of source and destination nodes |
USD929431S1 (en) * | 2019-01-17 | 2021-08-31 | Bae Systems Controls Inc. | Display screen or portion thereof with animated graphical user interface |
CN109981881B (en) * | 2019-01-21 | 2021-02-26 | 华为技术有限公司 | Image classification method and electronic equipment |
US11113270B2 (en) | 2019-01-24 | 2021-09-07 | EMC IP Holding Company LLC | Storing a non-ordered associative array of pairs using an append-only storage medium |
EP3938931A4 (en) | 2019-03-11 | 2022-12-07 | Parexel International, LLC | Methods, apparatus and systems for annotation of text documents |
US10956140B2 (en) | 2019-04-05 | 2021-03-23 | Sap Se | Software installation through an overlay file system |
US11113249B2 (en) | 2019-04-05 | 2021-09-07 | Sap Se | Multitenant application server using a union file system |
US11232078B2 (en) | 2019-04-05 | 2022-01-25 | Sap Se | Multitenancy using an overlay file system |
US10809994B1 (en) * | 2019-04-05 | 2020-10-20 | Sap Se | Declarative multi-artefact software installation |
US10942723B2 (en) | 2019-04-05 | 2021-03-09 | Sap Se | Format for multi-artefact software packages |
US11675476B2 (en) | 2019-05-05 | 2023-06-13 | Apple Inc. | User interfaces for widgets |
US10828531B1 (en) | 2019-05-30 | 2020-11-10 | Hydrow, Inc. | Rowing exercise machines having a configurable rowing feel |
US11150783B1 (en) * | 2019-07-29 | 2021-10-19 | Jason Kim | GUI based methods and systems for working with large numbers of interactive items |
CN110809024B (en) * | 2019-09-27 | 2022-06-24 | 口碑(上海)信息技术有限公司 | Service resource providing method and device and subscription package providing method and device |
US11487411B2 (en) * | 2020-02-20 | 2022-11-01 | Servicenow, Inc. | Context-driven group pill in a user interface |
US11947549B2 (en) * | 2020-04-10 | 2024-04-02 | Dropbox, Inc. | Generating modified view based on identified subset of content items and providing modified view to user associated with user account for display |
US11829953B1 (en) | 2020-05-01 | 2023-11-28 | Monday.com Ltd. | Digital processing systems and methods for managing sprints using linked electronic boards |
US11599546B2 (en) * | 2020-05-01 | 2023-03-07 | EMC IP Holding Company LLC | Stream browser for data streams |
US11604759B2 (en) | 2020-05-01 | 2023-03-14 | EMC IP Holding Company LLC | Retention management for data streams |
IL297858A (en) | 2020-05-01 | 2023-01-01 | Monday Com Ltd | Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices |
US11620329B2 (en) * | 2020-06-19 | 2023-04-04 | Apple Inc. | Virtual photos library |
US20220020148A1 (en) * | 2020-07-14 | 2022-01-20 | Canon Virginia, Inc. | Plant monitoring server, a plant monitoring system and a plant monitoring terminal device |
US20220019340A1 (en) * | 2020-07-15 | 2022-01-20 | yuchen du | Social knowledge graph for collective learning |
US11599420B2 (en) | 2020-07-30 | 2023-03-07 | EMC IP Holding Company LLC | Ordered event stream event retention |
KR102438329B1 (en) * | 2020-08-06 | 2022-08-31 | 주식회사 파수 | Method for managing virtual file, apparatus for the same, computer program for the same, and recording medium storing computer program thereof |
US11229825B1 (en) | 2020-08-24 | 2022-01-25 | Hydrow, Inc. | Rank listing of competitive performances of exercise on a machine |
JP2022052179A (en) * | 2020-09-23 | 2022-04-04 | 富士フイルムビジネスイノベーション株式会社 | File management device and program |
US11513871B2 (en) | 2020-09-30 | 2022-11-29 | EMC IP Holding Company LLC | Employing triggered retention in an ordered event stream storage system |
US11537661B2 (en) | 2020-10-02 | 2022-12-27 | PolyAI Limited | Systems and methods for conversing with a user |
US11755555B2 (en) | 2020-10-06 | 2023-09-12 | EMC IP Holding Company LLC | Storing an ordered associative array of pairs using an append-only storage medium |
US11599293B2 (en) | 2020-10-14 | 2023-03-07 | EMC IP Holding Company LLC | Consistent data stream replication and reconstruction in a streaming data storage platform |
USD983813S1 (en) * | 2020-11-12 | 2023-04-18 | Life Technologies Corporation | Cell counter display screen with graphical user interface |
US11803690B2 (en) * | 2021-01-11 | 2023-10-31 | Microsoft Technology Licensing, Llc | Simulated thumbnail previews for files |
US11816065B2 (en) | 2021-01-11 | 2023-11-14 | EMC IP Holding Company LLC | Event level retention management for data streams |
US11531452B2 (en) * | 2021-01-14 | 2022-12-20 | Monday.com Ltd. | Digital processing systems and methods for group-based document edit tracking in collaborative work systems |
US11687538B2 (en) * | 2021-03-08 | 2023-06-27 | Microsoft Technology Licensing, Llc | Multi-data store content identification and display interface |
US11740828B2 (en) | 2021-04-06 | 2023-08-29 | EMC IP Holding Company LLC | Data expiration for stream storages |
US11954537B2 (en) | 2021-04-22 | 2024-04-09 | EMC IP Holding Company LLC | Information-unit based scaling of an ordered event stream |
US11954303B2 (en) * | 2021-05-17 | 2024-04-09 | Apple Inc. | Ephemeral navigation bar |
US11681460B2 (en) | 2021-06-03 | 2023-06-20 | EMC IP Holding Company LLC | Scaling of an ordered event stream based on a writer group characteristic |
US11735282B2 (en) | 2021-07-22 | 2023-08-22 | EMC IP Holding Company LLC | Test data verification for an ordered event stream storage system |
JP2023018734A (en) * | 2021-07-28 | 2023-02-09 | セイコーエプソン株式会社 | Display method and display device |
CN113593479B (en) * | 2021-09-27 | 2022-01-07 | 华兴源创(成都)科技有限公司 | Sub-pixel level mura compensation method for display panel |
US20230185768A1 (en) * | 2021-12-11 | 2023-06-15 | Dropbox, Inc. | Classifying and organizing digital content items automatically utilizing content item classification models |
EP4227826A1 (en) * | 2022-02-10 | 2023-08-16 | Gregor Zebic | Method and system for processing and arranging data items |
US11741071B1 (en) | 2022-12-28 | 2023-08-29 | Monday.com Ltd. | Digital processing systems and methods for navigating and viewing displayed content |
US11886683B1 (en) | 2022-12-30 | 2024-01-30 | Monday.com Ltd | Digital processing systems and methods for presenting board graphics |
US11893381B1 (en) | 2023-02-21 | 2024-02-06 | Monday.com Ltd | Digital processing systems and methods for reducing file bundle sizes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061695A (en) * | 1996-12-06 | 2000-05-09 | Microsoft Corporation | Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document |
US20040193621A1 (en) * | 2003-03-27 | 2004-09-30 | Microsoft Corporation | System and method utilizing virtual folders |
US20040230599A1 (en) | 2003-05-16 | 2004-11-18 | Microsoft Corporation | File system shell |
US20040230917A1 (en) * | 2003-02-28 | 2004-11-18 | Bales Christopher E. | Systems and methods for navigating a graphical hierarchy |
US20050080807A1 (en) | 2003-10-12 | 2005-04-14 | Microsoft Corporation | Extensible creation and editing of integrated collections |
Family Cites Families (502)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US34771A (en) * | 1862-03-25 | parmenter | ||
US120505A (en) * | 1871-10-31 | Improvement in mill-stone dressings | ||
US192953A (en) * | 1877-07-10 | A hptci wnp o | ||
US156895A (en) * | 1874-11-17 | Improvement in tram-staffs for truing millstones | ||
US30731A (en) * | 1860-11-27 | Improvement in sewing-machines | ||
US220899A (en) * | 1879-10-21 | Improvement in car-couplings | ||
US215600A (en) * | 1879-05-20 | Improvement in protecting wooden piles | ||
US135495A (en) * | 1873-02-04 | Improvement in finger-bars for harvesters | ||
US117422A (en) * | 1871-07-25 | Improvement in elastic tires for traction-engines | ||
US177422A (en) * | 1876-05-16 | Improvement in lanterns | ||
US88374A (en) * | 1869-03-30 | Improvement in cotton-gins | ||
US233419A (en) * | 1880-10-19 | jones | ||
FR2413170A1 (en) | 1977-12-29 | 1979-07-27 | Kobe Steel Ltd | SUBMERSIBLE ARC WELDING PROCESS WITH MULTIPLE ELECTRODES |
JPS55108075A (en) | 1979-02-09 | 1980-08-19 | Sharp Corp | Data retrieval system |
US4829423A (en) | 1983-01-28 | 1989-05-09 | Texas Instruments Incorporated | Menu-based natural language understanding system |
JPS6410300A (en) | 1987-07-03 | 1989-01-13 | Hitachi Ltd | User's interface system for searching |
US4881179A (en) | 1988-03-11 | 1989-11-14 | International Business Machines Corp. | Method for providing information security protocols to an electronic calendar |
US5060135A (en) | 1988-09-16 | 1991-10-22 | Wang Laboratories, Inc. | Apparatus for manipulating documents in a data processing system utilizing reduced images of sheets of information which are movable |
FR2647239B1 (en) | 1989-05-22 | 1991-07-05 | Bull Sa | METHOD FOR GENERATING INTERFACES FOR USER APPLICATIONS VISUALIZABLE ON THE SCREEN OF A COMPUTER SYSTEM AND DEVICE FOR IMPLEMENTING SAID METHOD |
US6024843A (en) | 1989-05-22 | 2000-02-15 | Novellus Systems, Inc. | Sputtering apparatus with a rotating magnet array having a geometry for specified target erosion profile |
US5241671C1 (en) * | 1989-10-26 | 2002-07-02 | Encyclopaedia Britannica Educa | Multimedia search system using a plurality of entry path means which indicate interrelatedness of information |
US5513306A (en) * | 1990-08-09 | 1996-04-30 | Apple Computer, Inc. | Temporal event viewing and editing system |
US5388196A (en) | 1990-09-07 | 1995-02-07 | Xerox Corporation | Hierarchical shared books with database |
US5327529A (en) | 1990-09-24 | 1994-07-05 | Geoworks | Process of designing user's interfaces for application programs |
US5333315A (en) | 1991-06-27 | 1994-07-26 | Digital Equipment Corporation | System of device independent file directories using a tag between the directories and file descriptors that migrate with the files |
US5504852A (en) | 1991-09-09 | 1996-04-02 | Apple Computer, Inc. | Method for creating a collection of aliases representing computer system files |
JP3303926B2 (en) | 1991-09-27 | 2002-07-22 | 富士ゼロックス株式会社 | Structured document classification apparatus and method |
US5461710A (en) * | 1992-03-20 | 1995-10-24 | International Business Machines Corporation | Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface |
US5333266A (en) | 1992-03-27 | 1994-07-26 | International Business Machines Corporation | Method and apparatus for message handling in computer systems |
US5416895A (en) | 1992-04-08 | 1995-05-16 | Borland International, Inc. | System and methods for improved spreadsheet interface with user-familiar objects |
EP0592638B1 (en) | 1992-04-30 | 2001-02-07 | Apple Computer, Inc. | Method and apparatus for organizing information in a computer system |
FR2694105B1 (en) | 1992-07-22 | 1994-11-25 | Bull Sa | Use of an on-board interpreter language for the creation of an interactive user interface definition tool. |
EP0584913B1 (en) * | 1992-08-27 | 2000-05-03 | Sun Microsystems, Inc. | Method and apparatus for providing collection browsers |
JP2525546B2 (en) | 1992-09-08 | 1996-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Graphic resource editor |
US6947959B1 (en) | 1992-10-01 | 2005-09-20 | Quark, Inc. | Digital media asset management system and process |
AU5670394A (en) | 1992-11-23 | 1994-06-22 | Paragon Concepts, Inc. | Computer filing system with user selected categories to provide file access |
DE69310214T2 (en) | 1992-12-23 | 1997-11-20 | Taligent Inc | DIALOG SYSTEM |
US5559948A (en) | 1992-12-23 | 1996-09-24 | International Business Machines Corporation | Apparatus and method for manipulating an object in a computer system graphical user interface |
ATE164016T1 (en) | 1992-12-28 | 1998-03-15 | Apple Computer | FILE CONVERSION SYSTEM |
US5864844A (en) | 1993-02-18 | 1999-01-26 | Apple Computer, Inc. | System and method for enhancing a user interface with a computer based training tool |
US5420605A (en) | 1993-02-26 | 1995-05-30 | Binar Graphics, Inc. | Method of resetting a computer video display mode |
US5598524A (en) * | 1993-03-03 | 1997-01-28 | Apple Computer, Inc. | Method and apparatus for improved manipulation of data between an application program and the files system on a computer-controlled display system |
US5596702A (en) | 1993-04-16 | 1997-01-21 | International Business Machines Corporation | Method and system for dynamically sharing user interface displays among a plurality of application program |
US5710926A (en) | 1993-09-03 | 1998-01-20 | Maurer; Joseph Clark | Developers tool for object-oriented programming |
US5499364A (en) | 1993-10-14 | 1996-03-12 | Digital Equipment Corporation | System and method for optimizing message flows between agents in distributed computations |
US6243071B1 (en) * | 1993-11-03 | 2001-06-05 | Apple Computer, Inc. | Tool set for navigating through an electronic book |
US6339767B1 (en) * | 1997-06-02 | 2002-01-15 | Aurigin Systems, Inc. | Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing |
JPH10501905A (en) | 1994-01-27 | 1998-02-17 | ミネソタ マイニング アンド マニュファクチャリング カンパニー | Software memo |
US7106843B1 (en) | 1994-04-19 | 2006-09-12 | T-Netix, Inc. | Computer-based method and apparatus for controlling, monitoring, recording and reporting telephone access |
US6453311B1 (en) | 1994-05-06 | 2002-09-17 | Apple Computer, Inc. | System and method for performing context checks |
DE69525338T2 (en) | 1994-05-16 | 2002-10-24 | Apple Computer | ABSTRACTING PATTERNS AND COLORS IN A GRAPHIC USER INTERFACE |
US5546527A (en) | 1994-05-23 | 1996-08-13 | International Business Machines Corporation | Overriding action defaults in direct manipulation of objects on a user interface by hovering a source object |
EP0684716B1 (en) | 1994-05-25 | 2002-02-27 | International Business Machines Corporation | A data communication network and method for operating said network |
US5680563A (en) * | 1994-07-25 | 1997-10-21 | Object Technology Licensing Corporation | Object-oriented operating system enhancement for filtering items in a window |
US5625783A (en) | 1994-12-13 | 1997-04-29 | Microsoft Corporation | Automated system and method for dynamic menu construction in a graphical user interface |
US5956715A (en) | 1994-12-13 | 1999-09-21 | Microsoft Corporation | Method and system for controlling user access to a resource in a networked computing environment |
US5831606A (en) | 1994-12-13 | 1998-11-03 | Microsoft Corporation | Shell extensions for an operating system |
SE503936C2 (en) | 1995-02-01 | 1996-09-30 | Etp Transmission Ab | Hydraulic clamp bushing with sigma shaped ends |
US5550852A (en) | 1995-02-10 | 1996-08-27 | Opto Power Corporation | Laser package with reversed laser diode |
JPH08263664A (en) | 1995-03-22 | 1996-10-11 | Honda Motor Co Ltd | Artificial visual system and image recognizing method |
US5696486A (en) | 1995-03-29 | 1997-12-09 | Cabletron Systems, Inc. | Method and apparatus for policy-based alarm notification in a distributed network management environment |
US5675520A (en) | 1995-03-30 | 1997-10-07 | Microsoft Corporation | Method for extending a common user interface |
US5721908A (en) | 1995-06-07 | 1998-02-24 | International Business Machines Corporation | Computer network for WWW server data access over internet |
US5838317A (en) | 1995-06-30 | 1998-11-17 | Microsoft Corporation | Method and apparatus for arranging displayed graphical representations on a computer interface |
US5907837A (en) | 1995-07-17 | 1999-05-25 | Microsoft Corporation | Information retrieval system in an on-line network including separate content and layout of published titles |
US6535230B1 (en) | 1995-08-07 | 2003-03-18 | Apple Computer, Inc. | Graphical user interface providing consistent behavior for the dragging and dropping of content objects |
US5929854A (en) * | 1995-11-30 | 1999-07-27 | Ross; Michael M. | Dialog box method and system for arranging document windows |
US5867163A (en) * | 1995-12-01 | 1999-02-02 | Silicon Graphics, Inc. | Graphical user interface for defining and invoking user-customized tool shelf execution sequence |
US5628309A (en) * | 1996-01-25 | 1997-05-13 | Raya Systems, Inc. | Meter for electrically measuring and recording injection syringe doses |
US6014137A (en) | 1996-02-27 | 2000-01-11 | Multimedia Adventures | Electronic kiosk authoring system |
US6405265B1 (en) | 1996-05-08 | 2002-06-11 | Mijenix Corporation | Device driver for accessing computer files |
US5907703A (en) | 1996-05-08 | 1999-05-25 | Mijenix Corporation | Device driver for accessing computer files |
US5870088A (en) | 1996-05-09 | 1999-02-09 | National Instruments Corporation | System and method for editing a control via direct graphical user interaction |
US5760770A (en) | 1996-05-15 | 1998-06-02 | Microsoft Corporation | System and method for defining a view to display data |
US6006227A (en) | 1996-06-28 | 1999-12-21 | Yale University | Document stream operating system |
US6768999B2 (en) | 1996-06-28 | 2004-07-27 | Mirror Worlds Technologies, Inc. | Enterprise, stream-based, information management system |
US6021262A (en) | 1996-07-12 | 2000-02-01 | Microsoft Corporation | System and method for detection of, notification of, and automated repair of problem conditions in a messaging system |
US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
US5923328A (en) | 1996-08-07 | 1999-07-13 | Microsoft Corporation | Method and system for displaying a hierarchical sub-tree by selection of a user interface element in a sub-tree bar control |
US6025843A (en) * | 1996-09-06 | 2000-02-15 | Peter Sklar | Clustering user interface |
US5790121A (en) * | 1996-09-06 | 1998-08-04 | Sklar; Peter | Clustering user interface |
US5878410A (en) | 1996-09-13 | 1999-03-02 | Microsoft Corporation | File system sort order indexes |
US5828376A (en) | 1996-09-23 | 1998-10-27 | J. D. Edwards World Source Company | Menu control in a graphical user interface |
US6101509A (en) | 1996-09-27 | 2000-08-08 | Apple Computer, Inc. | Method and apparatus for transmitting documents over a network |
JP3658471B2 (en) | 1996-09-30 | 2005-06-08 | 株式会社日立製作所 | Presenting method of shopping basket function in electronic shopping system and electronic shopping system |
EP0833243B1 (en) | 1996-09-30 | 2003-05-02 | Kabushiki Kaisha Toshiba | GUI edition aiding apparatus and method |
US5875448A (en) | 1996-10-08 | 1999-02-23 | Boys; Donald R. | Data stream editing system including a hand-held voice-editing apparatus having a position-finding enunciator |
US6037944A (en) * | 1996-11-07 | 2000-03-14 | Natrificial Llc | Method and apparatus for displaying a thought network from a thought's perspective |
US6918096B2 (en) | 1996-11-07 | 2005-07-12 | Thebrain Technologies, Corp. | Method and apparatus for displaying a network of thoughts from a thought's perspective |
US6544295B1 (en) | 1996-11-18 | 2003-04-08 | Starfish Software, Inc. | Methods for managing preferred internet sites in a computer system having a browser |
US5987506A (en) | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
US5909540A (en) | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
US20060129627A1 (en) | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
US6185574B1 (en) | 1996-11-27 | 2001-02-06 | 1Vision, Inc. | Multiple display file directory and file navigation system for a personal computer |
US5935210A (en) | 1996-11-27 | 1999-08-10 | Microsoft Corporation | Mapping the structure of a collection of computer resources |
US6023708A (en) | 1997-05-29 | 2000-02-08 | Visto Corporation | System and method for using a global translator to synchronize workspace elements across a network |
US5835094A (en) * | 1996-12-31 | 1998-11-10 | Compaq Computer Corporation | Three-dimensional computer environment |
US6160552A (en) | 1997-01-09 | 2000-12-12 | Sun Microsystems, Inc. | Method and apparatus for managing multiple hierarchical lists within a browser |
US6944819B2 (en) | 1997-01-10 | 2005-09-13 | Eastman-Kodak Company | Computer method and apparatus for previewing files outside of an application program |
US5933139A (en) * | 1997-01-31 | 1999-08-03 | Microsoft Corporation | Method and apparatus for creating help functions |
US5875446A (en) | 1997-02-24 | 1999-02-23 | International Business Machines Corporation | System and method for hierarchically grouping and ranking a set of objects in a query context based on one or more relationships |
US7062500B1 (en) | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
US6144968A (en) * | 1997-03-04 | 2000-11-07 | Zellweger; Paul | Method and apparatus for menu access to information objects indexed by hierarchically-coded keywords |
US5930801A (en) | 1997-03-07 | 1999-07-27 | Xerox Corporation | Shared-data environment in which each file has independent security properties |
US6175364B1 (en) | 1997-04-01 | 2001-01-16 | Sun Microsystems, Inc. | Framework and method for interfacing a GUI, container with a GUI component |
US6317142B1 (en) * | 1997-04-04 | 2001-11-13 | Avid Technology, Inc. | Taxonomy of objects and a system of non-modal property inspectors |
JPH10301938A (en) * | 1997-04-22 | 1998-11-13 | Canon Inc | Image processor, method therefor, image processing system and storage medium |
US6057844A (en) | 1997-04-28 | 2000-05-02 | Adobe Systems Incorporated | Drag operation gesture controller |
US6016692A (en) | 1997-04-28 | 2000-01-25 | Seagate Technology, Inc. | Glide test slider having electrically isolated piezoelectric crystal for improved noise suppression |
EP2278503A3 (en) | 1997-04-30 | 2011-04-20 | Sony Corporation | Browser apparatus with address registering and browser system |
US5924090A (en) | 1997-05-01 | 1999-07-13 | Northern Light Technology Llc | Method and apparatus for searching a database of records |
US7631012B2 (en) * | 1997-05-22 | 2009-12-08 | Computer Associates Think, Inc. | System and method of operating a database |
US6268852B1 (en) | 1997-06-02 | 2001-07-31 | Microsoft Corporation | System and method for facilitating generation and editing of event handlers |
US5987454A (en) | 1997-06-09 | 1999-11-16 | Hobbs; Allen | Method and apparatus for selectively augmenting retrieved text, numbers, maps, charts, still pictures and/or graphics, moving pictures and/or graphics and audio information from a network resource |
US6055540A (en) | 1997-06-13 | 2000-04-25 | Sun Microsystems, Inc. | Method and apparatus for creating a category hierarchy for classification of documents |
US5899995A (en) | 1997-06-30 | 1999-05-04 | Intel Corporation | Method and apparatus for automatically organizing information |
US6573907B1 (en) | 1997-07-03 | 2003-06-03 | Obvious Technology | Network distribution and management of interactive video and multi-media containers |
US6208985B1 (en) | 1997-07-09 | 2001-03-27 | Caseventure Llc | Data refinery: a direct manipulation user interface for data querying with integrated qualitative and quantitative graphical representations of query construction and query result presentation |
US5886694A (en) | 1997-07-14 | 1999-03-23 | Microsoft Corporation | Method for automatically laying out controls in a dialog window |
GB2327564A (en) | 1997-07-16 | 1999-01-27 | Ibm | Apparatus and method for accessing a data file in a data communication network |
US6182068B1 (en) | 1997-08-01 | 2001-01-30 | Ask Jeeves, Inc. | Personalized search methods |
US5877766A (en) | 1997-08-15 | 1999-03-02 | International Business Machines Corporation | Multi-node user interface component and method thereof for use in accessing a plurality of linked records |
US6249866B1 (en) | 1997-09-16 | 2001-06-19 | Microsoft Corporation | Encrypting file system and method |
US6279016B1 (en) | 1997-09-21 | 2001-08-21 | Microsoft Corporation | Standardized filtering control techniques |
US6301586B1 (en) | 1997-10-06 | 2001-10-09 | Canon Kabushiki Kaisha | System for managing multimedia objects |
US6810404B1 (en) | 1997-10-08 | 2004-10-26 | Scansoft, Inc. | Computer-based document management system |
US6237011B1 (en) | 1997-10-08 | 2001-05-22 | Caere Corporation | Computer-based document management system |
US6202061B1 (en) * | 1997-10-24 | 2001-03-13 | Pictra, Inc. | Methods and apparatuses for creating a collection of media |
US6097389A (en) * | 1997-10-24 | 2000-08-01 | Pictra, Inc. | Methods and apparatuses for presenting a collection of digital media in a media container |
US6359892B1 (en) | 1997-11-04 | 2002-03-19 | Inventions, Inc. | Remote access, emulation, and control of office equipment, devices and services |
US6061692A (en) * | 1997-11-04 | 2000-05-09 | Microsoft Corporation | System and method for administering a meta database as an integral component of an information server |
US6216122B1 (en) | 1997-11-19 | 2001-04-10 | Netscape Communications Corporation | Electronic mail indexing folder having a search scope and interval |
US6055543A (en) | 1997-11-21 | 2000-04-25 | Verano | File wrapper containing cataloging information for content searching across multiple platforms |
US6275829B1 (en) | 1997-11-25 | 2001-08-14 | Microsoft Corporation | Representing a graphic image on a web page with a thumbnail-sized image |
US6807632B1 (en) | 1999-01-21 | 2004-10-19 | Emc Corporation | Content addressable information encapsulation, representation, and transfer |
US6401097B1 (en) | 1998-01-23 | 2002-06-04 | Mccotter Thomas M. | System and method for integrated document management and related transmission and access |
US6003040A (en) | 1998-01-23 | 1999-12-14 | Mital; Vijay | Apparatus and method for storing, navigating among and adding links between data items in computer databases |
US6078924A (en) | 1998-01-30 | 2000-06-20 | Aeneid Corporation | Method and apparatus for performing data collection, interpretation and analysis, in an information platform |
US6061059A (en) | 1998-02-06 | 2000-05-09 | Adobe Systems Incorporated | Providing a preview capability to a graphical user interface dialog |
US6237004B1 (en) | 1998-02-24 | 2001-05-22 | International Business Machines Corporation | System and method for displaying data using graphical user interface control elements |
US6065012A (en) | 1998-02-27 | 2000-05-16 | Microsoft Corporation | System and method for displaying and manipulating user-relevant data |
US6784925B1 (en) | 1998-03-24 | 2004-08-31 | Canon Kabushiki Kaisha | System to manage digital camera images |
US6128623A (en) | 1998-04-15 | 2000-10-03 | Inktomi Corporation | High performance object cache |
US7756892B2 (en) | 2000-05-02 | 2010-07-13 | Digimarc Corporation | Using embedded data with file sharing |
US6240407B1 (en) | 1998-04-29 | 2001-05-29 | International Business Machines Corp. | Method and apparatus for creating an index in a database system |
US6473100B1 (en) | 1998-05-20 | 2002-10-29 | Microsoft Corporation | Hosting controls in a window via an interface for controlling the window |
US6496203B1 (en) | 1998-05-27 | 2002-12-17 | Microsoft Corporation | Standardized and application-independent graphical user interface components implemented with web technology |
CA2334880A1 (en) | 1998-06-11 | 1999-12-16 | Boardwalk Ltd. | System, method, and computer program product for providing relational patterns between entities |
US6326953B1 (en) | 1998-06-24 | 2001-12-04 | Microsoft Corporation | Method for converting text corresponding to one keyboard mode to text corresponding to another keyboard mode |
US6256031B1 (en) * | 1998-06-26 | 2001-07-03 | Microsoft Corporation | Integration of physical and virtual namespace |
US6466238B1 (en) | 1998-06-30 | 2002-10-15 | Microsoft Corporation | Computer operating system that defines default document folder for application programs |
US6181342B1 (en) * | 1998-07-06 | 2001-01-30 | International Business Machines Corp. | Computer file directory system displaying visual summaries of visual data in desktop computer documents for quickly identifying document content |
US7278106B1 (en) | 1998-07-14 | 2007-10-02 | Computer Associates Think, Inc. | Method and apparatus for interacting with a source code control system |
US6363377B1 (en) | 1998-07-30 | 2002-03-26 | Sarnoff Corporation | Search data processor |
JP3792405B2 (en) | 1998-08-10 | 2006-07-05 | 富士通株式会社 | File operation device and recording medium recording file operation program |
US6466932B1 (en) | 1998-08-14 | 2002-10-15 | Microsoft Corporation | System and method for implementing group policy |
US6324551B1 (en) | 1998-08-31 | 2001-11-27 | Xerox Corporation | Self-contained document management based on document properties |
US6240421B1 (en) * | 1998-09-08 | 2001-05-29 | Edwin J. Stolarz | System, software and apparatus for organizing, storing and retrieving information from a computer database |
US6356863B1 (en) | 1998-09-08 | 2002-03-12 | Metaphorics Llc | Virtual network file server |
US6373507B1 (en) * | 1998-09-14 | 2002-04-16 | Microsoft Corporation | Computer-implemented image acquistion system |
US6377283B1 (en) | 1998-09-17 | 2002-04-23 | General Electric Company | Man-machine interface for a custom tabular display |
US6803926B1 (en) | 1998-09-18 | 2004-10-12 | Microsoft Corporation | System and method for dynamically adjusting data values and enforcing valid combinations of the data in response to remote user input |
CA2345241A1 (en) | 1998-09-22 | 2000-03-30 | Science Applications International Corporation | User-defined dynamic collaborative environments |
US6271846B1 (en) | 1998-09-30 | 2001-08-07 | International Business Machines Corporation | Method for reanchoring branches within a directory tree |
US8332478B2 (en) | 1998-10-01 | 2012-12-11 | Digimarc Corporation | Context sensitive connected content |
JP2000112797A (en) | 1998-10-02 | 2000-04-21 | Nippon Telegr & Teleph Corp <Ntt> | Method for view directory processing, device therefor and storage medium recording view directory processing program |
US6342907B1 (en) | 1998-10-19 | 2002-01-29 | International Business Machines Corporation | Specification language for defining user interface panels that are platform-independent |
US6134568A (en) | 1998-10-30 | 2000-10-17 | Kinko's Ventures, Inc. | Previewing an assembled document |
US6341280B1 (en) * | 1998-10-30 | 2002-01-22 | Netscape Communications Corporation | Inline tree filters |
US7730089B2 (en) | 1998-11-16 | 2010-06-01 | Punch Networks Corporation | Method and system for providing remote access to the facilities of a server computer |
US6823344B1 (en) | 1998-12-03 | 2004-11-23 | International Business Machines Corporation | File manager system providing faster and more efficient interactive user access to files in computer displays |
US20030097361A1 (en) | 1998-12-07 | 2003-05-22 | Dinh Truong T | Message center based desktop systems |
US6571245B2 (en) | 1998-12-07 | 2003-05-27 | Magically, Inc. | Virtual desktop in a computer network |
US6330007B1 (en) | 1998-12-18 | 2001-12-11 | Ncr Corporation | Graphical user interface (GUI) prototyping and specification tool |
US6762777B2 (en) * | 1998-12-31 | 2004-07-13 | International Business Machines Corporation | System and method for associating popup windows with selective regions of a document |
US6480835B1 (en) | 1998-12-31 | 2002-11-12 | Intel Corporation | Method and system for searching on integrated metadata |
US6751604B2 (en) | 1999-01-06 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Method of displaying temporal and storage media relationships of file names protected on removable storage media |
US6147601A (en) | 1999-01-09 | 2000-11-14 | Heat - Timer Corp. | Electronic message delivery system utilizable in the monitoring of remote equipment and method of same |
US6628309B1 (en) | 1999-02-05 | 2003-09-30 | International Business Machines Corporation | Workspace drag and drop |
US6411311B1 (en) | 1999-02-09 | 2002-06-25 | International Business Machines Corporation | User interface for transferring items between displayed windows |
US6356915B1 (en) | 1999-02-22 | 2002-03-12 | Starbase Corp. | Installable file system having virtual file system drive, virtual device driver, and virtual disks |
US6369840B1 (en) | 1999-03-10 | 2002-04-09 | America Online, Inc. | Multi-layered online calendaring and purchasing |
US6438590B1 (en) | 1999-04-13 | 2002-08-20 | Hewlett-Packard Company | Computer system with preferential naming service |
US6636238B1 (en) * | 1999-04-20 | 2003-10-21 | International Business Machines Corporation | System and method for linking an audio stream with accompanying text material |
JP3284543B2 (en) * | 1999-04-23 | 2002-05-20 | ソニー株式会社 | Information processing apparatus, information processing method, and program storage medium |
US6573906B1 (en) * | 1999-04-26 | 2003-06-03 | International Business Machines Corporation | Method and system for delivering integrated user assistance information and traditional help from the same source |
US20020174329A1 (en) | 1999-04-28 | 2002-11-21 | Bowler Richard A. | Method and system for automatically transitioning files among computer systems |
US6539399B1 (en) | 1999-04-29 | 2003-03-25 | Amada Company, Limited | Stand alone data management system for facilitating sheet metal part production |
US6340977B1 (en) | 1999-05-07 | 2002-01-22 | Philip Lui | System and method for dynamic assistance in software applications using behavior and host application models |
US6470344B1 (en) | 1999-05-29 | 2002-10-22 | Oracle Corporation | Buffering a hierarchical index of multi-dimensional data |
US6526399B1 (en) * | 1999-06-15 | 2003-02-25 | Microsoft Corporation | Method and system for grouping and displaying a database |
US6535229B1 (en) | 1999-06-29 | 2003-03-18 | International Business Machines Corporation | Graphical user interface for selection of options within mutually exclusive subsets |
IL130972A0 (en) * | 1999-07-15 | 2001-01-28 | Hotbar Com Israel Ltd | Method for the dynamic improvement of internet browser appearance and connectivity |
JP3759344B2 (en) | 1999-08-02 | 2006-03-22 | アルプス電気株式会社 | Magnetic head and method of manufacturing magnetic head |
US6462762B1 (en) | 1999-08-05 | 2002-10-08 | International Business Machines Corporation | Apparatus, method, and program product for facilitating navigation among tree nodes in a tree structure |
US6549916B1 (en) | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
US6448985B1 (en) | 1999-08-05 | 2002-09-10 | International Business Machines Corporation | Directory tree user interface having scrollable subsections |
US6763388B1 (en) | 1999-08-10 | 2004-07-13 | Akamai Technologies, Inc. | Method and apparatus for selecting and viewing portions of web pages |
US6505233B1 (en) * | 1999-08-30 | 2003-01-07 | Zaplet, Inc. | Method for communicating information among a group of participants |
JP3211956B2 (en) | 1999-08-31 | 2001-09-25 | 勲 清水 | Database system |
US6430575B1 (en) | 1999-09-10 | 2002-08-06 | Xerox Corporation | Collaborative document management system with customizable filing structures that are mutually intelligible |
US6871348B1 (en) | 1999-09-15 | 2005-03-22 | Intel Corporation | Method and apparatus for integrating the user interfaces of multiple applications into one application |
US6763458B1 (en) | 1999-09-27 | 2004-07-13 | Captaris, Inc. | System and method for installing and servicing an operating system in a computer or information appliance |
US7444390B2 (en) | 1999-10-20 | 2008-10-28 | Cdimensions, Inc. | Method and apparatus for providing a web-based active virtual file system |
US7039860B1 (en) | 1999-10-01 | 2006-05-02 | Netspinner Solutions As | Creating web pages category list prior to the list being served to a browser |
JP4025475B2 (en) | 1999-11-10 | 2007-12-19 | 日本電気株式会社 | Database exchange system |
US7146575B2 (en) | 1999-11-24 | 2006-12-05 | Shutterfly, Inc. | Image uploading |
US6583799B1 (en) * | 1999-11-24 | 2003-06-24 | Shutterfly, Inc. | Image uploading |
JP3570940B2 (en) | 1999-11-25 | 2004-09-29 | 北海道日本電気ソフトウェア株式会社 | Dynamic link library control method, method and recording medium |
US7917628B2 (en) | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7325012B2 (en) | 1999-12-06 | 2008-01-29 | Interface Software, Inc. | Relationship management system determining contact pathways in a contact relational database |
US7613695B1 (en) | 1999-12-06 | 2009-11-03 | Reed Elsevier Inc. | Relationship management system that provides an indication of users having a relationship with a specified contact |
US6820111B1 (en) | 1999-12-07 | 2004-11-16 | Microsoft Corporation | Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history |
US6754829B1 (en) | 1999-12-14 | 2004-06-22 | Intel Corporation | Certificate-based authentication system for heterogeneous environments |
US6408298B1 (en) | 1999-12-15 | 2002-06-18 | Microsoft Corporation | Methods and systems for copying and moving across virtual namespaces |
US6606105B1 (en) | 1999-12-22 | 2003-08-12 | Adobe Systems Incorporated | Layer enhancements in digital illustration system |
JP2001188702A (en) | 1999-12-28 | 2001-07-10 | Hitachi Ltd | Distributed file system and file operating method |
US6686938B1 (en) | 2000-01-05 | 2004-02-03 | Apple Computer, Inc. | Method and system for providing an embedded application toolbar |
US6847959B1 (en) | 2000-01-05 | 2005-01-25 | Apple Computer, Inc. | Universal interface for retrieval of information in a computer system |
US20010039571A1 (en) | 2000-01-06 | 2001-11-08 | Atkinson Paul D. | System and method for facilitating electronic commerce within public spaces |
US6425121B1 (en) | 2000-01-14 | 2002-07-23 | Softwire Technology, Llp | Method and apparatus for resolving divergent paths in graphical programming environments |
EP1117220A1 (en) | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Method and system for protocol conversion |
US6425120B1 (en) | 2000-01-14 | 2002-07-23 | Softwire Technology Llc | Repeating program object for use with a graphical program-development system |
EP1259901A1 (en) | 2000-01-27 | 2002-11-27 | Synquiry Technologies, Ltd | Software composition using graph types, graphs, and agents |
US6658436B2 (en) | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US6195650B1 (en) | 2000-02-02 | 2001-02-27 | Hewlett-Packard Company | Method and apparatus for virtualizing file access operations and other I/O operations |
US20020046299A1 (en) | 2000-02-09 | 2002-04-18 | Internet2Anywhere, Ltd. | Method and system for location independent and platform independent network signaling and action initiating |
US6735623B1 (en) | 2000-02-09 | 2004-05-11 | Mitch Prust | Method and system for accessing a remote storage area |
US7412462B2 (en) | 2000-02-18 | 2008-08-12 | Burnside Acquisition, Llc | Data repository and method for promoting network storage of data |
US7162493B2 (en) | 2000-02-23 | 2007-01-09 | Penta Trading Ltd. | Systems and methods for generating and providing previews of electronic files such as web files |
US6760720B1 (en) | 2000-02-25 | 2004-07-06 | Pedestrian Concepts, Inc. | Search-on-the-fly/sort-on-the-fly search engine for searching databases |
JP2001243244A (en) | 2000-02-28 | 2001-09-07 | Hitachi Ltd | Retrieving method of multi-dimensional database, retrieving device and computer readable recording medium storing multi-dimensional database retrieval program |
US20060173873A1 (en) | 2000-03-03 | 2006-08-03 | Michel Prompt | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US6985905B2 (en) | 2000-03-03 | 2006-01-10 | Radiant Logic Inc. | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US20020010736A1 (en) | 2000-03-06 | 2002-01-24 | Telenova Communications Corp. | Internet based audio and video communication system using a virtual desktop |
US6757362B1 (en) | 2000-03-06 | 2004-06-29 | Avaya Technology Corp. | Personal virtual assistant |
GB2367661B (en) | 2000-03-09 | 2004-11-24 | Ibm | A method and system for managing objects |
EP1293077B1 (en) | 2000-03-10 | 2009-06-03 | Herbert Street Technologies Ltd. | A data transfer and management system |
US6549217B1 (en) * | 2000-03-23 | 2003-04-15 | Koninklijke Philips Electronics N.V. | System and method for computer system management using bookmarks |
US6658406B1 (en) | 2000-03-29 | 2003-12-02 | Microsoft Corporation | Method for selecting terms from vocabularies in a category-based system |
JP2001282813A (en) | 2000-03-29 | 2001-10-12 | Toshiba Corp | Multimedia data retrieval method, index information providing method, multimedia data retrieval device, index server and multimedia data retrieval server |
US20020073033A1 (en) | 2000-04-07 | 2002-06-13 | Sherr Scott Jeffrey | Online digital video signal transfer apparatus and method |
US6636250B1 (en) | 2000-04-12 | 2003-10-21 | Emc Corp | Methods and apparatus for presenting information to a user of a computer system |
US6563514B1 (en) * | 2000-04-13 | 2003-05-13 | Extensio Software, Inc. | System and method for providing contextual and dynamic information retrieval |
US6760721B1 (en) | 2000-04-14 | 2004-07-06 | Realnetworks, Inc. | System and method of managing metadata data |
JP4325075B2 (en) | 2000-04-21 | 2009-09-02 | ソニー株式会社 | Data object management device |
US7188319B2 (en) * | 2000-04-21 | 2007-03-06 | Microsoft Corporation | Displaying graphical information and user selected properties on a computer interface |
US20010056434A1 (en) | 2000-04-27 | 2001-12-27 | Smartdisk Corporation | Systems, methods and computer program products for managing multimedia content |
US6430835B1 (en) * | 2000-04-28 | 2002-08-13 | Daimlerchrysler Corporation | Setting fixture for door measurement |
US20020049717A1 (en) | 2000-05-10 | 2002-04-25 | Routtenberg Michael D. | Digital content distribution system and method |
US20010056508A1 (en) | 2000-05-12 | 2001-12-27 | Kenneth Arneson | Event notification system and method |
US6760722B1 (en) | 2000-05-16 | 2004-07-06 | International Business Machines Corporation | Computer implemented automated remote support |
US20040133572A1 (en) * | 2000-05-18 | 2004-07-08 | I2 Technologies Us, Inc., A Delaware Corporation | Parametric searching |
US9213836B2 (en) | 2000-05-28 | 2015-12-15 | Barhon Mayer, Batya | System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages |
US6745207B2 (en) | 2000-06-02 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | System and method for managing virtual storage |
US6745206B2 (en) * | 2000-06-05 | 2004-06-01 | International Business Machines Corporation | File system with access and retrieval of XML documents |
US7043472B2 (en) | 2000-06-05 | 2006-05-09 | International Business Machines Corporation | File system with access and retrieval of XML documents |
US6983424B1 (en) | 2000-06-23 | 2006-01-03 | International Business Machines Corporation | Automatically scaling icons to fit a display area within a data processing system |
US6925608B1 (en) | 2000-07-05 | 2005-08-02 | Kendyl A. Roman | Graphical user interface for building Boolean queries and viewing search results |
US7219332B2 (en) | 2000-07-07 | 2007-05-15 | Microsoft Corporation | Configuring software components(merge) with transformation component using configurable and non-configurable data elements |
US6938207B1 (en) * | 2000-07-19 | 2005-08-30 | International Business Machines Corporation | Method and system for indicating document traversal direction in a hyper linked navigation system |
US7219302B1 (en) | 2000-07-19 | 2007-05-15 | Everez Systems Limited | System and method for organizing, managing, and manipulating desktop objects with an activity-oriented user interface |
WO2002008858A2 (en) | 2000-07-20 | 2002-01-31 | Fazix Corporation | A method for ab initio determination of macromolecular crystallographic phases using bessel function |
AU2001277071A1 (en) | 2000-07-21 | 2002-02-13 | Triplehop Technologies, Inc. | System and method for obtaining user preferences and providing user recommendations for unseen physical and information goods and services |
US8538770B2 (en) | 2000-08-01 | 2013-09-17 | Logical Images, Inc. | System and method to aid diagnoses using cross-referenced knowledge and image databases |
JP2002140216A (en) | 2000-08-22 | 2002-05-17 | Ns Solutions Corp | File management system |
AU2001288469A1 (en) | 2000-08-28 | 2002-03-13 | Emotion, Inc. | Method and apparatus for digital media management, retrieval, and collaboration |
US7451099B2 (en) | 2000-08-30 | 2008-11-11 | Kontera Technologies, Inc. | Dynamic document context mark-up technique implemented over a computer network |
AU2001296866A1 (en) * | 2000-09-05 | 2002-03-22 | Zaplet, Inc. | Methods and apparatus providing electronic messages that are linked and aggregated |
JP2002082745A (en) | 2000-09-07 | 2002-03-22 | Sony Corp | Device and method for information processing, and program storage medium |
AUPR015700A0 (en) | 2000-09-15 | 2000-10-12 | Filecat Pty Ltd | Distributed file-sharing network |
US20020062310A1 (en) | 2000-09-18 | 2002-05-23 | Smart Peer Llc | Peer-to-peer commerce system |
JP2002099565A (en) | 2000-09-26 | 2002-04-05 | Fujitsu Ltd | Information retrieval apparatus |
US7168051B2 (en) | 2000-10-10 | 2007-01-23 | Addnclick, Inc. | System and method to configure and provide a network-enabled three-dimensional computing environment |
US6738770B2 (en) * | 2000-11-04 | 2004-05-18 | Deep Sky Software, Inc. | System and method for filtering and sorting data |
AU2002230648A1 (en) | 2000-11-06 | 2002-05-15 | Envoy Worlwide, Inc. | System and method for service specific notification |
US6684222B1 (en) | 2000-11-09 | 2004-01-27 | Accenture Llp | Method and system for translating data associated with a relational database |
US7242421B2 (en) * | 2000-11-10 | 2007-07-10 | Perceptive Network Technologies, Inc. | Methods of establishing a communications link using perceptual sensing of a user's presence |
US6762776B2 (en) | 2000-11-10 | 2004-07-13 | Microsoft Corporation | Mouse input panel windows class list |
JP3754912B2 (en) * | 2000-11-13 | 2006-03-15 | キヤノン株式会社 | Multimedia content distribution method |
US20020118231A1 (en) | 2000-11-14 | 2002-08-29 | Jeff Smith | Method of realistically displaying and interacting with electronic files |
US6948120B1 (en) | 2000-11-14 | 2005-09-20 | Sas Institute Inc. | Computer-implemented system and method for hosting design-time controls |
US7039875B2 (en) | 2000-11-30 | 2006-05-02 | Lucent Technologies Inc. | Computer user interfaces that are generated as needed |
US20020156756A1 (en) | 2000-12-06 | 2002-10-24 | Biosentients, Inc. | Intelligent molecular object data structure and method for application in heterogeneous data environments with high data density and dynamic application needs |
JP2002269145A (en) | 2000-12-08 | 2002-09-20 | Fujitsu Ltd | Information processor, terminal device, method, medium and program |
US7409382B2 (en) | 2000-12-08 | 2008-08-05 | Fujitsu Limited | Information processing system, terminal device, method and medium |
JP2002182953A (en) | 2000-12-12 | 2002-06-28 | Hitachi Ltd | Distributed file management method |
US20020105548A1 (en) | 2000-12-12 | 2002-08-08 | Richard Hayton | Methods and apparatus for creating a user interface using property paths |
US7134085B2 (en) | 2000-12-13 | 2006-11-07 | National Instruments Corporation | System and method for automatically configuring program data exchange |
US6907580B2 (en) * | 2000-12-14 | 2005-06-14 | Microsoft Corporation | Selection paradigm for displayed user interface |
US6950989B2 (en) | 2000-12-20 | 2005-09-27 | Eastman Kodak Company | Timeline-based graphical user interface for efficient image database browsing and retrieval |
US6883146B2 (en) | 2000-12-20 | 2005-04-19 | Eastman Kodak Company | Picture database graphical user interface utilizing map-based metaphors for efficient browsing and retrieving of pictures |
US7032182B2 (en) | 2000-12-20 | 2006-04-18 | Eastman Kodak Company | Graphical user interface adapted to allow scene content annotation of groups of pictures in a picture database to promote efficient database browsing |
US7020848B2 (en) | 2000-12-20 | 2006-03-28 | Eastman Kodak Company | Comprehensive, multi-dimensional graphical user interface using picture metadata for navigating and retrieving pictures in a picture database |
AUPR230700A0 (en) * | 2000-12-22 | 2001-01-25 | Canon Kabushiki Kaisha | A method for facilitating access to multimedia content |
US7403952B2 (en) | 2000-12-28 | 2008-07-22 | International Business Machines Corporation | Numa system resource descriptors including performance characteristics |
US20020087969A1 (en) | 2000-12-28 | 2002-07-04 | International Business Machines Corporation | Interactive TV audience estimation and program rating in real-time using multi level tracking methods, systems and program products |
US7028262B2 (en) | 2000-12-29 | 2006-04-11 | International Business Machines Corporation | Method and system for designing a theme and associating it with a collaboration space user interface |
US20040205698A1 (en) | 2000-12-29 | 2004-10-14 | Schliesmann Barry Edward | System and method for event driven programming |
US20020089540A1 (en) * | 2001-01-08 | 2002-07-11 | Freddie Geier | Media editing and creating interface |
US7266768B2 (en) * | 2001-01-09 | 2007-09-04 | Sharp Laboratories Of America, Inc. | Systems and methods for manipulating electronic information using a three-dimensional iconic representation |
US20020091679A1 (en) | 2001-01-09 | 2002-07-11 | Wright James E. | System for searching collections of linked objects |
GB0100753D0 (en) | 2001-01-11 | 2001-02-21 | Bate Matthew | Data system |
US6839721B2 (en) | 2001-01-12 | 2005-01-04 | Hewlett-Packard Development Company, L.P. | Integration of a database into file management software for protecting, tracking, and retrieving data |
US6885860B2 (en) | 2001-01-19 | 2005-04-26 | Microsoft Corporation | Information management and processing in a wireless network |
US20020100039A1 (en) | 2001-01-19 | 2002-07-25 | Nicholas Iatropoulos | Media interactivity method and architecture |
AU2002234258A1 (en) | 2001-01-22 | 2002-07-30 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US7437363B2 (en) | 2001-01-25 | 2008-10-14 | International Business Machines Corporation | Use of special directories for encoding semantic information in a file system |
US7043644B2 (en) | 2001-01-31 | 2006-05-09 | Qurio Holdings, Inc. | Facilitating file access from firewall-protected nodes in a peer-to-peer network |
CA2335395A1 (en) * | 2001-02-09 | 2002-08-09 | Opengraphics Corporation | Controlled access system for online communities |
US6831655B2 (en) * | 2001-02-20 | 2004-12-14 | Sun Microsystems, Inc. | Method and apparatus for determining display element attribute values |
US6813474B2 (en) | 2001-02-24 | 2004-11-02 | Echalk: L.L.C. | System and method for creating, processing and managing educational content within and between schools |
US6760047B2 (en) | 2001-02-26 | 2004-07-06 | Microsoft Corporation | Method for flagging and relating information in a computer system |
WO2002077871A1 (en) | 2001-02-26 | 2002-10-03 | Walter Reed Army Institute Of Research | Browser for an accident and incident registry |
US7139762B2 (en) | 2001-02-27 | 2006-11-21 | Microsoft Corporation | System and method for filtering database records |
US6828988B2 (en) * | 2001-02-27 | 2004-12-07 | Microsoft Corporation | Interactive tooltip |
US7603657B2 (en) | 2001-03-02 | 2009-10-13 | Oracle International Corporation | Customization of client-server interaction in an internet application |
US7302634B2 (en) | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
US7925513B2 (en) | 2001-03-15 | 2011-04-12 | Versata Development Group, Inc. | Framework for processing sales transaction data |
US7216289B2 (en) | 2001-03-16 | 2007-05-08 | Microsoft Corporation | Method and apparatus for synchronizing multiple versions of digital data |
US20020138552A1 (en) | 2001-03-21 | 2002-09-26 | Debruine Timothy S. | Method and system for optimizing private network file transfers in a public peer-to-peer network |
US7047406B2 (en) | 2001-03-21 | 2006-05-16 | Qurlo Holdings, Inc. | Method and system for providing a secure peer-to-peer file delivery network |
US7689711B2 (en) | 2001-03-26 | 2010-03-30 | Salesforce.Com, Inc. | System and method for routing messages between applications |
US7062490B2 (en) | 2001-03-26 | 2006-06-13 | Microsoft Corporation | Serverless distributed file system |
US7263666B2 (en) | 2001-04-09 | 2007-08-28 | Triveni Digital, Inc. | Targeted remote GUI for metadata generator |
US20020152262A1 (en) | 2001-04-17 | 2002-10-17 | Jed Arkin | Method and system for preventing the infringement of intellectual property rights |
US20020156895A1 (en) | 2001-04-20 | 2002-10-24 | Brown Michael T. | System and method for sharing contact information |
US7185050B2 (en) | 2001-04-30 | 2007-02-27 | Hewlett-Packard Development Company, L.P. | Document management system and method using content grouping system |
US6751626B2 (en) | 2001-05-03 | 2004-06-15 | International Business Machines Corporation | Method, system, and program for mining data in a personal information manager database |
JP2002334103A (en) | 2001-05-11 | 2002-11-22 | Fujitsu Ltd | Retrieval processing system and retrieval processing method |
US7058891B2 (en) | 2001-05-25 | 2006-06-06 | Learning Tree International, Inc. | Interface for a system of method of electronic presentations having multiple display screens with remote input |
US7228383B2 (en) | 2001-06-01 | 2007-06-05 | Visto Corporation | System and method for progressive and hierarchical caching |
US20020188735A1 (en) * | 2001-06-06 | 2002-12-12 | Needham Bradford H. | Partially replicated, locally searched peer to peer file sharing system |
US6910049B2 (en) | 2001-06-15 | 2005-06-21 | Sony Corporation | System and process of managing media content |
EP1407386A2 (en) | 2001-06-21 | 2004-04-14 | ISC, Inc. | Database indexing method and apparatus |
EP1410258A4 (en) * | 2001-06-22 | 2007-07-11 | Inc Nervana | System and method for knowledge retrieval, management, delivery and presentation |
US20040230572A1 (en) * | 2001-06-22 | 2004-11-18 | Nosa Omoigui | System and method for semantic knowledge retrieval, management, capture, sharing, discovery, delivery and presentation |
US6944647B2 (en) * | 2001-06-29 | 2005-09-13 | International Business Machines Corporation | Methods and apparatus for bookmarking and annotating data in a log file |
JP2003087785A (en) | 2001-06-29 | 2003-03-20 | Toshiba Corp | Method of converting format of encoded video data and apparatus therefor |
JP2003022206A (en) | 2001-07-06 | 2003-01-24 | Fujitsu Ltd | File managing program and file managing device |
US7440994B2 (en) | 2001-07-06 | 2008-10-21 | Intel Corporation | Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list |
KR20030006734A (en) | 2001-07-14 | 2003-01-23 | 엠텍비젼 주식회사 | Method and system for managing image data via network |
US6865568B2 (en) | 2001-07-16 | 2005-03-08 | Microsoft Corporation | Method, apparatus, and computer-readable medium for searching and navigating a document database |
US20030018657A1 (en) | 2001-07-18 | 2003-01-23 | Imation Corp. | Backup of data on a network |
US6801919B2 (en) * | 2001-07-27 | 2004-10-05 | Hewlett-Packard Development Company, L.P. | Object oriented database interface encapsulation that allows for chronologically overlapping transactions in a multi-threaded environment |
US7610218B2 (en) | 2001-07-31 | 2009-10-27 | Lightsurf Technologies, Inc. | Integrated shopping cart for sale of third party products and services via the internet |
AU2002313583A1 (en) | 2001-08-01 | 2003-02-17 | Actona Technologies Ltd. | Virtual file-sharing network |
JP3807961B2 (en) | 2001-08-01 | 2006-08-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Session management method, session management system and program |
US7146524B2 (en) | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US20030028610A1 (en) * | 2001-08-03 | 2003-02-06 | Pearson Christopher Joel | Peer-to-peer file sharing system and method using user datagram protocol |
US7107299B2 (en) | 2001-08-14 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing large numbers of objects having the same property |
US7367028B2 (en) | 2001-08-14 | 2008-04-29 | National Instruments Corporation | Graphically deploying programs on devices in a system |
AU2002323413A1 (en) | 2001-08-27 | 2003-03-10 | Gracenote, Inc. | Playlist generation, delivery and navigation |
US6662198B2 (en) | 2001-08-30 | 2003-12-09 | Zoteca Inc. | Method and system for asynchronous transmission, backup, distribution of data and file sharing |
CA2357969A1 (en) | 2001-09-28 | 2003-03-28 | Dirk Alexander Seelemann | Customazation of object property layout for a user interface |
US7203948B2 (en) | 2001-09-29 | 2007-04-10 | Siebel Systems, Inc. | Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications |
US6952714B2 (en) | 2001-10-02 | 2005-10-04 | Citrix Systems, Inc. | Method for distributed program execution with server-based file type association |
US8015204B2 (en) | 2001-10-16 | 2011-09-06 | Microsoft Corporation | Scoped access control metadata element |
US7290245B2 (en) | 2001-10-18 | 2007-10-30 | Microsoft Corporation | Methods and systems for navigating deterministically through a graphical user interface |
US8549434B2 (en) | 2001-10-18 | 2013-10-01 | Microsoft Corporation | Method for graphical representation of a content collection |
WO2003036541A1 (en) | 2001-10-22 | 2003-05-01 | Apple Computer, Inc. | Intelligent synchronization for a media player |
US20030078918A1 (en) | 2001-10-23 | 2003-04-24 | Souvignier Todd J. | Method, apparatus and system for file sharing between computers |
US7171626B2 (en) | 2001-10-29 | 2007-01-30 | Microsoft Corporation | System and method for presenting the contents of a content collection based on content type |
US20030081002A1 (en) | 2001-10-30 | 2003-05-01 | Microsoft Corporation | Method and system for chaining and extending wizards |
US7069547B2 (en) | 2001-10-30 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for utilizing impact analysis metadata of program statements in a development environment |
US20030081007A1 (en) | 2001-10-31 | 2003-05-01 | James Cyr | Object oriented explorer type environment |
US20030093580A1 (en) | 2001-11-09 | 2003-05-15 | Koninklijke Philips Electronics N.V. | Method and system for information alerts |
US7171468B2 (en) * | 2001-11-10 | 2007-01-30 | Kabushiki Kaisha Toshiba | System and method for accessing a document management repository |
US6876996B2 (en) | 2001-11-14 | 2005-04-05 | Sun Microsystems, Inc. | Method and apparatus for using a shared library mechanism to facilitate sharing of metadata |
US6944626B2 (en) | 2001-11-26 | 2005-09-13 | Microsoft Corp. | Dynamically generated schema representing multiple hierarchies of inter-object relationships |
JP4186456B2 (en) * | 2001-11-28 | 2008-11-26 | 沖電気工業株式会社 | Distributed file sharing system and control method thereof |
US6826443B2 (en) | 2001-11-29 | 2004-11-30 | Agilent Technologies, Inc. | Systems and methods for managing interaction with a presentation of a tree structure in a graphical user interface |
US7430723B2 (en) | 2001-11-29 | 2008-09-30 | Gse Advanced Industrial Technologies, Gmbh | System and method for implementing a three-dimensional graphic user interface |
CN1421800A (en) | 2001-11-30 | 2003-06-04 | 英业达股份有限公司 | Electronic file previewing system and method |
CA2364631A1 (en) | 2001-12-04 | 2003-06-04 | Kevin W. Jameson | Collection extensible action gui |
US20030105745A1 (en) | 2001-12-05 | 2003-06-05 | Davidson Jason A. | Text-file based relational database |
JP4225038B2 (en) | 2001-12-11 | 2009-02-18 | トヨタ自動車株式会社 | Unit design apparatus and unit design method |
US7133874B2 (en) | 2001-12-13 | 2006-11-07 | Microsoft Corporation | Prototyping model for components of a software program |
US7024427B2 (en) | 2001-12-19 | 2006-04-04 | Emc Corporation | Virtual file system |
JP3778079B2 (en) | 2001-12-20 | 2006-05-24 | 株式会社日立製作所 | Display device |
US20030120928A1 (en) | 2001-12-21 | 2003-06-26 | Miles Cato | Methods for rights enabled peer-to-peer networking |
KR100436815B1 (en) | 2001-12-24 | 2004-06-23 | 한국전자통신연구원 | method and apparatus for optimizing hardware graphics acceleration board operation for real time rendering |
US7266843B2 (en) | 2001-12-26 | 2007-09-04 | Mcafee, Inc. | Malware scanning to create clean storage locations |
US7266563B2 (en) | 2001-12-28 | 2007-09-04 | Fotomedia Technologies, Llc | Specifying, assigning, and maintaining user defined metadata in a network-based photosharing system |
US7143362B2 (en) * | 2001-12-28 | 2006-11-28 | International Business Machines Corporation | System and method for visualizing and navigating content in a graphical user interface |
WO2003058519A2 (en) | 2002-01-08 | 2003-07-17 | Sap Aktiengesellschaft | Enhanced email management system |
JP2003208343A (en) | 2002-01-10 | 2003-07-25 | Ricoh Co Ltd | File creation/browsing method, file creating method, file browsing method, file structure and program |
US20040205633A1 (en) | 2002-01-11 | 2004-10-14 | International Business Machines Corporation | Previewing file or document content |
US7243334B1 (en) | 2002-01-16 | 2007-07-10 | Prelude Systems, Inc. | System and method for generating user interface code |
US7089287B2 (en) * | 2002-01-16 | 2006-08-08 | Xerox Corporation | Message-based system having embedded information management capabilities |
US6961734B2 (en) | 2002-01-17 | 2005-11-01 | International Business Machines Corporation | Method, system, and program for defining asset classes in a digital library |
US7552189B2 (en) | 2002-01-18 | 2009-06-23 | Bea Systems, Inc. | System and method for using virtual directories to service URL requests URL requests in application servers |
US7424715B1 (en) | 2002-01-28 | 2008-09-09 | Verint Americas Inc. | Method and system for presenting events associated with recorded data exchanged between a server and a user |
US6922709B2 (en) * | 2002-02-19 | 2005-07-26 | International Business Machines Corporation | Method for maintaining consistent dual copies of vital product data in a dual accessor library of portable data storage media |
US7343365B2 (en) | 2002-02-20 | 2008-03-11 | Microsoft Corporation | Computer system architecture for automatic context associations |
US6751611B2 (en) | 2002-03-01 | 2004-06-15 | Paul Jeffrey Krupin | Method and system for creating improved search queries |
US6763777B1 (en) | 2002-03-08 | 2004-07-20 | Christian F. Rosenberg | Conversion cockpit for a sailboat |
AU2003223238A1 (en) | 2002-03-11 | 2003-09-29 | Visionshare, Inc. | Method and system for peer-to-peer secure communication |
US7607102B2 (en) | 2002-03-14 | 2009-10-20 | Apple Inc. | Dynamically changing appearances for user interface elements during drag-and-drop operations |
US7107285B2 (en) | 2002-03-16 | 2006-09-12 | Questerra Corporation | Method, system, and program for an improved enterprise spatial system |
EP1535195A4 (en) | 2002-03-18 | 2008-04-02 | Corporation Bigtribe | Community directory |
WO2003083700A1 (en) | 2002-03-22 | 2003-10-09 | Thought, Inc. | Micro edition dynamic object- driven database manipulation and mapping system |
US20040044776A1 (en) | 2002-03-22 | 2004-03-04 | International Business Machines Corporation | Peer to peer file sharing system using common protocols |
US20030212710A1 (en) | 2002-03-27 | 2003-11-13 | Michael J. Guy | System for tracking activity and delivery of advertising over a file network |
US6938042B2 (en) | 2002-04-03 | 2005-08-30 | Laplink Software Inc. | Peer-to-peer file sharing |
US20040030731A1 (en) | 2002-04-03 | 2004-02-12 | Liviu Iftode | System and method for accessing files in a network |
US7010755B2 (en) * | 2002-04-05 | 2006-03-07 | Microsoft Corporation | Virtual desktop manager |
US7068291B1 (en) * | 2002-04-11 | 2006-06-27 | Bellsouth Intellectual Property Corp. | Video display screen segmentation |
US20040019875A1 (en) | 2002-04-29 | 2004-01-29 | Welch Keith C. | Masked edit control for use in a graphical programming environment |
US7389242B2 (en) | 2002-05-07 | 2008-06-17 | Re3W Worldwide Limited | Interactive processing of real estate transactions |
US20030210281A1 (en) | 2002-05-07 | 2003-11-13 | Troy Ellis | Magnifying a thumbnail image of a document |
US6816863B2 (en) | 2002-05-09 | 2004-11-09 | International Business Machines Corporation | Method, system, and computer product for providing a distribution list |
US7457810B2 (en) | 2002-05-10 | 2008-11-25 | International Business Machines Corporation | Querying markup language data sources using a relational query processor |
US7080059B1 (en) | 2002-05-13 | 2006-07-18 | Quasm Corporation | Search and presentation engine |
US20030222915A1 (en) | 2002-05-30 | 2003-12-04 | International Business Machines Corporation | Data processor controlled display system with drag and drop movement of displayed items from source to destination screen positions and interactive modification of dragged items during the movement |
US7574488B2 (en) | 2002-05-31 | 2009-08-11 | Hitachi, Ltd. | Method and apparatus for peer-to-peer file sharing |
US20030227487A1 (en) | 2002-06-01 | 2003-12-11 | Hugh Harlan M. | Method and apparatus for creating and accessing associative data structures under a shared model of categories, rules, triggers and data relationship permissions |
US7191411B2 (en) | 2002-06-06 | 2007-03-13 | Moehrle Armin E | Active path menu navigation system |
US7100150B2 (en) | 2002-06-11 | 2006-08-29 | Sun Microsystems, Inc. | Method and apparatus for testing embedded examples in GUI documentation |
JP4308587B2 (en) * | 2002-06-24 | 2009-08-05 | 株式会社リコー | Document group management device |
US20040002993A1 (en) | 2002-06-26 | 2004-01-01 | Microsoft Corporation | User feedback processing of metadata associated with digital media files |
US20040001106A1 (en) * | 2002-06-26 | 2004-01-01 | John Deutscher | System and process for creating an interactive presentation employing multi-media components |
US20040004638A1 (en) | 2002-07-02 | 2004-01-08 | Ketan Babaria | Method and apparatus for multiple-window multiple-selection operations in graphical-user-interface environments |
WO2004008348A1 (en) * | 2002-07-16 | 2004-01-22 | Horn Bruce L | Computer system for automatic organization, indexing and viewing of information from multiple sources |
JP2004054721A (en) | 2002-07-23 | 2004-02-19 | Hitachi Ltd | Network storage virtualization method |
WO2004019187A2 (en) | 2002-08-26 | 2004-03-04 | Siftology, Inc. | Relating media to information in a workflow system |
US20040054674A1 (en) | 2002-09-13 | 2004-03-18 | Carpenter Keith A. | Enabling a web application to access a protected file on a secured server |
US6956942B2 (en) | 2002-09-18 | 2005-10-18 | Sbc Properties, L.P. | Multi-modal address book |
US20040056894A1 (en) | 2002-09-19 | 2004-03-25 | Igor Zaika | System and method for describing and instantiating extensible user interfaces |
US7197517B2 (en) | 2002-09-25 | 2007-03-27 | International Business Machines Corporation | Systems, methods, and computer program products to display and select hierarchical database segments and fields |
US7337409B2 (en) | 2002-09-25 | 2008-02-26 | Siemens Aktiengesellschaft | Customizable drag and drop for industrial software applications |
AU2002951709A0 (en) | 2002-09-26 | 2002-10-17 | Canon Information Systems Research Australia Pty Ltd | Efficient printing of frames pages |
US8935202B2 (en) | 2002-09-30 | 2015-01-13 | Reed Elsevier Inc. | Managing changes in a relationship management system |
JP4503438B2 (en) | 2002-09-30 | 2010-07-14 | マイクロソフト コーポレーション | System and method for informing applications and users of user interface elements |
US20040073705A1 (en) | 2002-10-15 | 2004-04-15 | Madril Robert John | Print preview with edit hyperlink |
US20040153968A1 (en) * | 2002-10-24 | 2004-08-05 | Jennie Ching | Method and system for user customizable asset metadata generation in a web-based asset management system |
KR20050061566A (en) | 2002-10-28 | 2005-06-22 | 그레이스노트, 인코포레이티드 | Personal audio recording system |
US20040088374A1 (en) | 2002-10-31 | 2004-05-06 | Webb James D. | Aggregation and sharing of patient data |
GB0226294D0 (en) | 2002-11-12 | 2002-12-18 | Autodesk Canada Inc | Image processing |
US20040153451A1 (en) | 2002-11-15 | 2004-08-05 | John Phillips | Methods and systems for sharing data |
AU2003297275A1 (en) | 2002-11-15 | 2004-06-15 | Big Champagne, Llc. | Monitor file storage and transfer on a peer-to-peer network |
TWI221746B (en) | 2002-11-18 | 2004-10-01 | Ulead Systems Inc | Preview file generating method applicable on multiple systems and device thereof |
US20040098379A1 (en) * | 2002-11-19 | 2004-05-20 | Dan Huang | Multi-indexed relationship media organization system |
US20040103073A1 (en) | 2002-11-21 | 2004-05-27 | Blake M. Brian | System for and method of using component-based development and web tools to support a distributed data management system |
US7293031B1 (en) | 2002-11-21 | 2007-11-06 | Ncr Corp. | Report specification generators and interfaces |
US7549047B2 (en) | 2002-11-21 | 2009-06-16 | Xerox Corporation | Method and system for securely sharing files |
US7386532B2 (en) * | 2002-12-19 | 2008-06-10 | Mathon Systems, Inc. | System and method for managing versions |
AU2002953500A0 (en) | 2002-12-20 | 2003-01-09 | Redbank Manor Pty Ltd | A system and method of requesting, viewing and acting on search results in a time-saving manner |
JP4102199B2 (en) * | 2003-01-06 | 2008-06-18 | オリンパス株式会社 | Imaging system, camera, external device, imaging program, recording medium, and imaging method |
US7581164B2 (en) | 2003-01-06 | 2009-08-25 | Apple Inc. | User interface for accessing presentations |
JP3900085B2 (en) | 2003-01-14 | 2007-04-04 | ミツミ電機株式会社 | Game controller |
US7383494B2 (en) | 2003-01-15 | 2008-06-03 | Xerox Corporation | Generating a confirmation sheet listing identifiers, thumbnails, and pages associated with page thumbnails |
US7769881B2 (en) | 2003-01-24 | 2010-08-03 | Hitachi, Ltd. | Method and apparatus for peer-to peer access |
US7945618B2 (en) | 2003-02-10 | 2011-05-17 | Oren Asher | Peer-to-peer service designer |
US7565618B2 (en) | 2003-02-13 | 2009-07-21 | LumaPix Inc. | Method and system for distributing multiple dragged objects |
US7739597B2 (en) | 2003-02-24 | 2010-06-15 | Microsoft Corporation | Interactive media frame display |
US7930350B2 (en) | 2003-03-05 | 2011-04-19 | Canon U.S.A., Inc. | Digital image sharing enabled chat application |
US20040181516A1 (en) | 2003-03-13 | 2004-09-16 | First Data Corporation | Methods and systems for monitoring document-production processes |
US7487460B2 (en) * | 2003-03-21 | 2009-02-03 | Microsoft Corporation | Interface for presenting data representations in a screen-area inset |
US7240292B2 (en) | 2003-04-17 | 2007-07-03 | Microsoft Corporation | Virtual address bar user interface control |
US7769794B2 (en) | 2003-03-24 | 2010-08-03 | Microsoft Corporation | User interface for a file system shell |
US7712034B2 (en) | 2003-03-24 | 2010-05-04 | Microsoft Corporation | System and method for shell browser |
US7823077B2 (en) | 2003-03-24 | 2010-10-26 | Microsoft Corporation | System and method for user modification of metadata in a shell browser |
US7627552B2 (en) | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7650575B2 (en) | 2003-03-27 | 2010-01-19 | Microsoft Corporation | Rich drag drop user interface |
US7526483B2 (en) * | 2003-03-27 | 2009-04-28 | Microsoft Corporation | System and method for virtual folder sharing including utilization of static and dynamic lists |
US7587411B2 (en) * | 2003-03-27 | 2009-09-08 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7499925B2 (en) | 2003-03-27 | 2009-03-03 | Microsoft Corporation | File system for displaying items of different types and from different physical locations |
US7536386B2 (en) * | 2003-03-27 | 2009-05-19 | Microsoft Corporation | System and method for sharing items in a computer system |
US7512885B2 (en) | 2003-03-31 | 2009-03-31 | Avid Technology, Inc. | Graphical user interface for navigating and displaying relationships among media data and metadata |
US7493614B2 (en) | 2003-03-31 | 2009-02-17 | Microsoft Corporation | System architecture and related methods for dynamically adding software components to extend functionality of system processes |
US8001088B2 (en) | 2003-04-04 | 2011-08-16 | Avid Technology, Inc. | Indexing media files in a distributed, multi-user system for managing and editing digital media |
US7415484B1 (en) | 2003-05-09 | 2008-08-19 | Vignette Corporation | Method and system for modeling of system content for businesses |
US7693867B2 (en) | 2003-05-14 | 2010-04-06 | Pixar | Model referencing method and apparatus |
US6882242B2 (en) | 2003-06-19 | 2005-04-19 | Radio Frequency Systems, Inc. | Frequency selective low loss transmission line system |
US20050015405A1 (en) | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Multi-valued properties |
JP4343633B2 (en) | 2003-09-19 | 2009-10-14 | 旭化成エンジニアリング株式会社 | Method and apparatus for winding filamentous material |
US20050188174A1 (en) | 2003-10-12 | 2005-08-25 | Microsoft Corporation | Extensible creation and editing of collections of objects |
US8024335B2 (en) | 2004-05-03 | 2011-09-20 | Microsoft Corporation | System and method for dynamically generating a selectable search extension |
US20050114672A1 (en) | 2003-11-20 | 2005-05-26 | Encryptx Corporation | Data rights management of digital information in a portable software permission wrapper |
US7392278B2 (en) | 2004-01-23 | 2008-06-24 | Microsoft Corporation | Building and using subwebs for focused search |
JP2005208515A (en) | 2004-01-26 | 2005-08-04 | Sumitomo Electric Ind Ltd | Wavelength conversion method and wavelength conversion device |
US8832600B2 (en) | 2004-01-27 | 2014-09-09 | International Business Machines Corporation | Method, system, and program for navigating files |
US7412447B2 (en) | 2004-03-01 | 2008-08-12 | Fuji Xerox Co., Ltd. | Remote file management using shared credentials for remote clients outside firewall |
EP1738251A2 (en) | 2004-04-16 | 2007-01-03 | Cascade Basic Research Corp. | Modelling relationships within an on-line connectivity universe |
US7694236B2 (en) | 2004-04-23 | 2010-04-06 | Microsoft Corporation | Stack icons representing multiple objects |
US7657846B2 (en) | 2004-04-23 | 2010-02-02 | Microsoft Corporation | System and method for displaying stack icons |
US8707209B2 (en) | 2004-04-29 | 2014-04-22 | Microsoft Corporation | Save preview representation of files being created |
US7853895B2 (en) | 2004-05-11 | 2010-12-14 | Sony Computer Entertainment Inc. | Control of background media when foreground graphical user interface is invoked |
US20060059204A1 (en) | 2004-08-25 | 2006-03-16 | Dhrubajyoti Borthakur | System and method for selectively indexing file system content |
US8683351B2 (en) | 2004-10-26 | 2014-03-25 | International Business Machines Corporation | Chat user interface for threaded text chat systems |
US20070168885A1 (en) | 2005-01-21 | 2007-07-19 | Michael Muller | Sorting and filtering activities in an activity-centric collaborative computing environment |
US7614016B2 (en) | 2005-04-21 | 2009-11-03 | Microsoft Corporation | Multiple roots in navigation pane |
US7536410B2 (en) | 2005-04-22 | 2009-05-19 | Microsoft Corporation | Dynamic multi-dimensional scrolling |
US8522154B2 (en) | 2005-04-22 | 2013-08-27 | Microsoft Corporation | Scenario specialization of file browser |
US20060242591A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | File dialog user interfaces and creation of same |
US8195646B2 (en) | 2005-04-22 | 2012-06-05 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
US20060242122A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
US7653638B2 (en) | 2005-12-01 | 2010-01-26 | Microsoft Corporation | Data ecosystem awareness |
US7565613B2 (en) | 2005-12-01 | 2009-07-21 | Microsoft Corporation | User interface incorporating data ecosystem awareness |
US7613713B2 (en) | 2005-12-01 | 2009-11-03 | Microsoft Corporation | Data ecosystem awareness |
US20070186183A1 (en) | 2006-02-06 | 2007-08-09 | International Business Machines Corporation | User interface for presenting a palette of items |
-
2005
- 2005-04-22 US US11/111,978 patent/US7769794B2/en not_active Expired - Fee Related
- 2005-08-01 WO PCT/US2005/027258 patent/WO2006036290A1/en active Application Filing
- 2005-08-01 EP EP05777489A patent/EP1836602A4/en not_active Ceased
- 2005-08-01 TW TW094126092A patent/TWI363295B/en not_active IP Right Cessation
- 2005-08-01 KR KR1020077006591A patent/KR101203274B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061695A (en) * | 1996-12-06 | 2000-05-09 | Microsoft Corporation | Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document |
US20040230917A1 (en) * | 2003-02-28 | 2004-11-18 | Bales Christopher E. | Systems and methods for navigating a graphical hierarchy |
US20040193621A1 (en) * | 2003-03-27 | 2004-09-30 | Microsoft Corporation | System and method utilizing virtual folders |
US20040230599A1 (en) | 2003-05-16 | 2004-11-18 | Microsoft Corporation | File system shell |
US20050080807A1 (en) | 2003-10-12 | 2005-04-14 | Microsoft Corporation | Extensible creation and editing of integrated collections |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1869582A2 (en) * | 2005-04-14 | 2007-12-26 | Microsoft Corporation | Computer input control for specifying scope with explicit exclusions |
EP1869582A4 (en) * | 2005-04-14 | 2012-04-25 | Microsoft Corp | Computer input control for specifying scope with explicit exclusions |
US8375335B2 (en) | 2005-04-14 | 2013-02-12 | Microsoft Corporation | Computer input control for specifying scope with explicit exclusions |
JP2007280125A (en) * | 2006-04-07 | 2007-10-25 | Canon Inc | Information processor, and information processing method |
WO2008038004A2 (en) * | 2006-09-27 | 2008-04-03 | Lee, Yisia Young Suk | A data object management apparatus and method |
WO2008038004A3 (en) * | 2006-09-27 | 2008-12-04 | Lee Yisia Young Suk | A data object management apparatus and method |
GB2443241B (en) * | 2006-09-27 | 2010-08-11 | Yisia Young Suk Lee | A data object management apparatus and method |
GB2473396A (en) * | 2006-09-27 | 2011-03-09 | Yisia Young Suk Lee | Data Object Management |
GB2468417B (en) * | 2006-09-27 | 2011-03-16 | Yisia Young Suk Lee | Data object management apparatus and method |
GB2473396B (en) * | 2006-09-27 | 2011-04-20 | Yisia Young Suk Lee | A Data object management apparatus and method |
JP2009205207A (en) * | 2008-02-26 | 2009-09-10 | Nec Corp | Information sorting and displaying system based on tag information |
US8290971B2 (en) | 2008-09-09 | 2012-10-16 | Applied Systems, Inc. | Method and apparatus for remotely displaying a list by determining a quantity of data to send based on the list size and the display control size |
US8732184B2 (en) | 2008-09-09 | 2014-05-20 | Applied Systems, Inc. | Method and apparatus for remotely displaying a list by determining a quantity of data to send based on the list size and the display control size |
JP2012510672A (en) * | 2008-11-28 | 2012-05-10 | フジフイルム メディカル システムズ ユーエスエイ インコーポレイテッド | Active overlay system and method for accessing and manipulating an image display |
US8782552B2 (en) | 2008-11-28 | 2014-07-15 | Sinan Batman | Active overlay system and method for accessing and manipulating imaging displays |
US10120850B2 (en) | 2008-11-28 | 2018-11-06 | Fujifilm Medical Systems Usa, Inc. | Active overlay system and method for accessing and manipulating imaging displays |
US10599883B2 (en) | 2008-11-28 | 2020-03-24 | Fujifilm Medical Systems Usa, Inc. | Active overlay system and method for accessing and manipulating imaging displays |
US8599242B2 (en) | 2008-12-02 | 2013-12-03 | Lg Electronics Inc. | Method for displaying 3D caption and 3D display apparatus for implementing the same |
US8878899B2 (en) | 2008-12-02 | 2014-11-04 | Lg Electronics Inc. | Method for displaying 3D caption and 3D display apparatus for implementing the same |
US9253469B2 (en) | 2008-12-02 | 2016-02-02 | Lg Electronics Inc. | Method for displaying 3D caption and 3D display apparatus for implementing the same |
US9104680B2 (en) | 2009-07-01 | 2015-08-11 | Thomson Licensing | Method for accessing files of a file system according to metadata and device implementing the method |
EP2463784A1 (en) * | 2010-12-10 | 2012-06-13 | Giga-Byte Technology Co., Ltd. | Method and human-to-machine interface apparatus for searching files |
CN111597323A (en) * | 2020-04-16 | 2020-08-28 | RealMe重庆移动通信有限公司 | Key field filtering method and device, storage medium and electronic equipment |
CN111597323B (en) * | 2020-04-16 | 2023-06-02 | RealMe重庆移动通信有限公司 | Key field filtering method and device, storage medium and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
TWI363295B (en) | 2012-05-01 |
US20060036568A1 (en) | 2006-02-16 |
EP1836602A4 (en) | 2008-11-26 |
EP1836602A1 (en) | 2007-09-26 |
TW200622895A (en) | 2006-07-01 |
US7769794B2 (en) | 2010-08-03 |
KR20070058517A (en) | 2007-06-08 |
KR101203274B1 (en) | 2012-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7769794B2 (en) | User interface for a file system shell | |
JP4861988B2 (en) | Computer program that implements a file system shell browser | |
US7188316B2 (en) | System and method for viewing and editing multi-value properties | |
US7409644B2 (en) | File system shell | |
US7496583B2 (en) | Property tree for metadata navigation and assignment | |
US8108430B2 (en) | Carousel control for metadata navigation and assignment | |
US8195646B2 (en) | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information | |
US7162488B2 (en) | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information | |
US20050188174A1 (en) | Extensible creation and editing of collections of objects | |
AU2003233558B8 (en) | File system shell | |
US20060242122A1 (en) | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information | |
NZ533296A (en) | File system shell | |
ZA200404250B (en) | File system shell |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2005777489 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2007533464 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1515/DELNP/2007 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200580029142.X Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020077006591 Country of ref document: KR |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWP | Wipo information: published in national office |
Ref document number: 2005777489 Country of ref document: EP |