Electronic file systems conventionally organize a set of objects in a hierarchy, such as a file within a folder, which is in another folder. However, such file systems have user interfaces are typically designed to allow a user to browse one level in the hierarchy at a time. For example, where the user is viewing a system organized into a set of files and folders, many systems require the user to navigate into a folder (i.e., open the folder) to view its contents. Some systems go a step further and allow the user to see pre-constructed thumbnails of the items within a folder without first opening the folder. For example, Microsoft's WINDOWS XP line of operating systems provide such a preview feature by showing a few pre-selected thumbnails of photos stored in a folder while the folder is closed.
However, this preview feature does not provide a live view of what is inside the folder; if a file in the folder is added, removed, or modified, the preview does not necessarily update to show the changes. Moreover, the preview feature does not provide information about what is in folders contained in the folder being previewed. For example, if a first folder contains photos, and if the first folder is contained in a second parent folder, then the preview thumbnail feature when viewing the closed second folder does not provide any information about what is in the first child folder. In addition, the user cannot interact directly with the preview thumbnails shown on a closed folder. Instead, the user must first open the folder in order to interact with the files contained therein.
It would be desirable to provide a live, real-time preview of what objects are in a folder or other container, including sub-folders, without requiring the user to open the folder or other container. When a user is previewing a set of objects in a closed container, any containers represented in the view may themselves concurrently show to the user a live preview of their contents. This may be displayed concurrently to the user at any number of levels, as desired.
In addition, each hierarchical level or container may itself be assigned an individual view that may be different from or the same as other views of other containers. For example, a first container may show a thumbnail view, a second container at the same hierarchical level as the first container may show a mantel view, and a third container contained within the second container may show a calendar view. The view for each container may be user-selectable and/or automatically selected by the computer. Thus, views may be embedded, or nested, in other views to show the contents of any organizational construct.
Moreover, while a set of objects may be displayed in accordance with a particular view, they may also be displayed in an intelligent manner that adjusts their layouts based on if they are the primary view of one many nested views. For example, if there are numerous objects in a container, it may be desirable to automatically reduce the number of objects represented in the closed container preview so that the user may be able to see them easily. If too many object thumbnails, for example, are displayed within a closed container preview, then the thumbnails may be too small to provide any useful information to the user.
These and other aspects of the disclosure will be apparent upon consideration of the following detailed description of illustrative embodiments.
The foregoing summary, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the accompanying drawings, which are included by way of example, and not by way of limitation with regard to the claimed invention.
One or more other general purpose or special purpose computing system environments or configurations may be used. Examples of well known computing systems, environments, and/or configurations that may be suitable include, but are not limited to, personal computers (PCs); server computers; hand-held and other portable devices such as personal digital assistants (PDAs), tablet PCs or laptop PCs; multiprocessor systems; microprocessor-based systems; set top boxes; programmable consumer electronics; network PCs; minicomputers; mainframe computers; distributed computing environments that include any of the above systems or devices; and the like.
Aspects of the disclosure herein may be described in the general context of computer-executable instructions, such as program modules, stored on computer-readable media and executable by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Embodiments discussed herein may also be operational with distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer-readable media including memory storage devices.
With reference to
Computer 100 typically includes a variety of computer-readable media. Computer readable media can be any available media that can be accessed by computer 100 such as volatile, nonvolatile, removable, and non-removable media. By way of example, and not limitation, computer-readable media may include computer-readable media and communication media. Computer-readable media are tangible media, and may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable media includes random-access memory (RAM), read-only memory (ROM), electrically-erasable programmable ROM (EEPROM), flash memory or other memory technology, compact-disc ROM (CD-ROM), digital video disc (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 100. 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. The term “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. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF) (e.g., BLUETOOTH, WiFi, UWB), optical (e.g., infrared) and other wireless media. Any single computer-readable medium, as well as any combination of multiple computer-readable media, are both intended to be included within the scope of the term “computer-readable medium” as used herein.
System memory 130 includes computer-readable storage media in the form of volatile and/or nonvolatile memory such as ROM 131 and RAM 132. A basic input/output system (BIOS) 133, containing the basic routines that help to transfer information between elements within computer 100, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
Computer 100 may also include other computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
Computer 100 may also include a touch-sensitive device 165, such as a digitizer, to allow a user to provide input using a stylus 166. Touch-sensitive device 165 may either be integrated into monitor 191 or another display device, or be part of a separate device, such as a digitizer pad. Computer 100 may also include other peripheral output devices such as speakers 197 and a printer 196, which may be connected through an output peripheral interface 195.
Computer 100 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. Remote computer 180 may be a 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 computer 100, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, computer 100 is coupled to LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, computer 100 may include a modem 172 or another device for establishing communications over WAN 173, such as the Internet. Modem 172, which may be internal or external, may be connected to system bus 121 via user input interface 160 or another appropriate mechanism. In a networked environment, program modules depicted relative to computer 100, or portions thereof, may be stored remotely such as in remote storage device 181. By way of example, and not limitation,
As discussed previously, touch-sensitive device 165 may be a device separate from or part of and integrated with computer 100. In addition, any or all of the features, subsystems, and functions discussed in connection with
An electronic file system may be implemented by computer 100 to manage files and other objects stored in the various electronic media to which computer 100 has access. The file system may be part of the other program modules 136 and/or part of operating system 134. The file system may be a traditional file system that stores files in a hierarchical tree structure. In such a case, each node of the tree is considered a folder that contains one or more files. The location of a file is limited by, and conflated with, its organization within the file system. This means that file locations and directory structure are dependent on one another; when a file is moved to another location, the directory structure also changes to accommodate the new location of the file.
Alternatively, the electronic file system may be more advanced, such as a database-driven file system. In more advanced file systems, shortcut references may be used, allowing files and other objects to appear in one or more locations while actually being in only one of the locations or even in another, completely different location.
In either case, the electronic file system may define various types of objects that provide a relatively flexible way of managing files and other objects. For example, objects may be broadly divided into containers and non-container objects. In general, containers are objects that contains other objects in the file system, whereas non-container objects typically do not contain other objects from the perspective of the file system. A simple example of a container is a folder (e.g., C:\My Documents), and a simple example of a non-container object is a file (e.g., Project.doc), such as a word-processing document, a photo, or an audio file. In addition to files, other types of non-container objects include, but are not limited to, calendar items, emails, and contacts.
In addition to folders, other types of containers include, but are not limited to, lists, persisted auto-lists, and stacks. A list is an object that references a set of other objects in a particular order. The objects referenced by a list are not actually stored in the list as they are in a conventional folder. Thus, more than one list may simultaneously reference the same object. A persisted auto-list is similar to a list except that the set of objects referenced by a persisted auto-list are determined by a query that defines one or more criteria. Thus, a persisted auto-list is a list containing a set of objects that meet one or more criteria of the query. A stack is a virtual container representing the set of items that meet a given requirement, in accordance with a given organization. For instance, the user may define an organization that stacks a persisted auto-list or query results by “author” and then presents all results organized by who wrote them; a different stack may be presented for each author.
The user may interact with objects in the electronic file system via a graphical user interface. The graphical user interface may cause various visual features to be displayed on a display such as monitor 191. For example, the graphical user interface may include displayed representations of each object, or of a subset of the objects, stored by the electronic file system. A representation may be any visual representation such as an icon or a picture. The graphical user interface may also respond to user input. The user input may be received via any user input device such as mouse 161, digitizer 165 and stylus 166, and/or keyboard 162. In response to such user input, computer 100 interprets the input and determines an appropriate action, which may include adjusting what is displayed in the graphical user interface. For example, where a representation is selected by the user, computer 100 may cause the graphical user interface to visually indicate on monitor 191 that the representation has been selected.
An example of what the user interface may display is shown in
Each container representation 201, 202, in this example, includes a text description of the associated container (e.g., Library Tour, 30 photos, Yesterday). Each container representation 201, 202 as shown also includes a set of further representations 211-240 or 251-284 each associated with a different object contained in one of the containers. The term “contained in” a container as used herein includes both an object actually being located in the container and also the object alternatively being referenced by the container (e.g., where a shortcut to the object is located in the container, such as an object being listed in a list). In this example, the objects in each container are photo files, and representations 211-40 and 251-284 are each a miniature version of the photos stored in one of the files. In other words, representations 211-240 and 251-284 are shown in accordance with a thumbnail view.
Each container may have a particular view associated with that container that is used to display contained objects both when a container is open and when the container is closed. The view for each container may be user-selected or automatically selected by computer 100 (such as via a software application or the operating system). A view as used herein refers to a defined way of displaying object representations to the user. For example, a view may define what representations are to look like, their size, their shape, their relative layout, the quantity of representations to show at any given time in an open and/or closed container state, whether or not they may be interacted with by the user, whether or not textual description is part of or accompanies the representations, and/or what information such textual description should provide. A thumbnail view, for example, would present each object representation as a thumbnail of its content or a portion thereof. For instance, a thumbnail view of a photo file would display a thumbnail of the photo stored in the photo file. A closed container having an assigned thumbnail view would be displayed to have therein a thumbnail of each representation that would be shown in the container if the container were opened.
Thus, representation 201 in
Another example is shown in
In addition, views may be nested at more than two levels. For example, in
If the user were to select representation 650 from
Referring to
Another example of interacting with representations is discussed in connection with
Any changes to the content of a container or non-container object may be updated dynamically to show the changes to the user in real time. For example, in response to the drag/drop operation, representation 611 is removed from being displayed within representation 650. This is because the user's act of dragging and dropping has caused the object previously associated with representation 611 to be removed from the container associated with representation 650. As an alternative to a drag/drop operation, a representation may be selected and cut/copy/paste commands (such as via keyboard shortcuts or menus) may be issued.
Thus, it can be seen that representations at any hierarchical level may be directly interacted with by the user, regardless of whether the container containing the objects associated with those representations is open or closed. As another example, the user may, with reference to
Thus, an improved graphical user interface has been described herein where a user may obtain useful and interactive preview information without having to open a container in an electronic file system.