U.S. patent application number 12/907898 was filed with the patent office on 2012-04-19 for grouping items in a folder.
This patent application is currently assigned to APPLE INC.. Invention is credited to David Hart, Bas Ording.
Application Number | 20120092346 12/907898 |
Document ID | / |
Family ID | 45933761 |
Filed Date | 2012-04-19 |
United States Patent
Application |
20120092346 |
Kind Code |
A1 |
Ording; Bas ; et
al. |
April 19, 2012 |
GROUPING ITEMS IN A FOLDER
Abstract
User interface changes and file system operations related to
grouping items in a destination folder are disclosed. A user can
group multiple items displayed on a user interface into a
destination folder using an input command. An animation can be
presented in the user interface illustrating the creation of the
destination folder and the movement of each selected item into the
newly created folder. The movement of each selected item can be
along a respective path starting from an initial location on the
user interface and terminating at the destination folder, and
initiation of the movement of each selected item can be
asynchronous with respect to the other selected items.
Implementations showing the animations in various types of user
interfaces are also disclosed.
Inventors: |
Ording; Bas; (San Francisco,
CA) ; Hart; David; (San Francisco, CA) |
Assignee: |
APPLE INC.
Cupertino
CA
|
Family ID: |
45933761 |
Appl. No.: |
12/907898 |
Filed: |
October 19, 2010 |
Current U.S.
Class: |
345/473 |
Current CPC
Class: |
G06F 3/04817 20130101;
G06F 3/0488 20130101; G06F 3/0481 20130101; G06T 13/00 20130101;
G06F 3/04842 20130101 |
Class at
Publication: |
345/473 |
International
Class: |
G06T 13/00 20110101
G06T013/00 |
Claims
1. A computer-implemented method performed by one or more
processors of a device, comprising: receiving first inputs
selecting one or more items presented in a user interface of the
device; receiving a second input for grouping the selected one or
more items in a folder; and in response to the second input,
causing an animation to be presented in the user interface
illustrating the folder being created and each of the selected one
or more items being moved into the folder along a respective path
on the user interface.
2. The method of claim 1, wherein causing the animation to be
presented in the user interface further comprises: determining a
folder location in the user interface based on respective locations
of the selected one or more items; and causing a representation of
the folder to be animated into the folder location.
3. The method of claim 2, wherein causing the animation to be
presented in the user interface further comprises: after the
representation of the folder is presented at the folder location,
causing respective representations of the one or more items to move
from their respective locations into the representation of the
folder along the items' respective paths.
4. The method of claim 3, wherein each path is along a respective
trajectory starting from the respective location of one of the
selected items and terminating at the location of the folder.
5. The method of claim 3, further comprising: in the animation,
causing the representation of the new folder to animate at the
folder location to visually indicate the receipt of the selected
items into the folder.
6. The method of claim 2, wherein the user interface is a desktop
of the device kept in a free-arranged state, and determining the
folder location in the user interface comprises: determining a
weighted average of the respective locations of the selected items
on the desktop; and designating the weighted average as the folder
location for the folder.
7. The method of claim 2, wherein the user interface is a desktop
of the device kept in a keep-arranged state and the desktop
includes an evenly spaced grid, and wherein determining the folder
location in the user interface further comprises: determining a
weighted average of the respective locations of the selected items
on the desktop; identifying an unoccupied grid location nearest the
weighted average; and designating the unoccupied grid location as
the folder location for the folder.
8. The method of claim 1, wherein the user interface is a desktop
of the device kept in a keep-arranged state according to a
keep-arranged criterion, wherein causing the animation to be
presented in the user interface further comprises: identifying an
initial folder location in the user interface based on respective
locations of the selected one or more items; causing a
representation of the folder to be animated into the initial folder
location and respective representations of the one or more items to
move from their respective locations into the representation of the
folder along the items' respective paths; receiving a third input
committing a name of the folder; in response to the third input,
determining a final folder location for the folder based on the
keep-arranged criterion; and causing the representation of the
folder to be animated from the initial folder location to the final
folder location in the user interface.
9. The method of claim 8, further comprising: in response to the
third input, determining respective new locations of existing items
on the desktop according to the keep-arranged criterion; and
causing representations of the existing items on the desktop to be
animated from their original locations to their respective new
locations as the folder is animated from the initial folder
location to the final folder location.
10. The method of claim 1, further comprising: waiting for a status
notification on file system operations for the grouping of the
selected items; causing changes to the user interface illustrating
progress of the file system operations if the status notification
indicates expiration of the defined period of time before the
successful completion of the file system operations; and causing
the animation to be presented if the status notification indicates
successful completion of the file system operations within a
defined period of time.
11. The method of claim 10, wherein after the expiration of the
defined period of time and before the successful completion of the
file system operations for grouping the selected items into the
folder, the user interface remains operable to respond to other
operations that do not conflict with the file system operations for
grouping the selected items into the folder.
12. The method of claim 10, further comprising: while waiting for
the status notification on the file system operations, queuing one
or more system events that require modifications to the user
interface; and responding to the queued one or more system events
after the expiration of the defined period of time or the
completion of the animation.
13. The method of claim 1, further comprising: receiving a third
input instructing restoration of the selected items to their
original locations; in response to the third input, determining
respective destination locations of the selected items and other
items in the user interface; and causing the selected items being
animated out of the folder and the selected items and the other
items being animated to their respective destination locations.
14. The method of claim 1, wherein the selected items belong to a
common folder and the user interface is a list view interface
showing the selected item in a list, and wherein causing the
animation to be presented in the user interface further comprises:
causing a representation of the folder to be presented in proximity
to the list; causing respective representations of the selected
items to be lifted off of the list and moved into the
representation of the folder along the items' respective paths;
determining respective destination locations of the folder and
other unselected items in the list based on a defined sort
criterion; and causing the respective representations of the folder
the other unselected items in the list to be animated to their
respective destination locations after a filename has been
determined for the folder.
15. The method of claim 14, wherein the respective representation
of each selected item follows a respective curved path to the
representation of the folder when the selected item is moved to the
representation of the folder.
16. The method of claim 14, wherein the respective representations
of the selected items change appearance when the respective
representations of the selected items are lifted off of the
list.
17. The method of claim 14, wherein the respective representations
of the selected items start to move toward the representation of
the folder asynchronously.
18. The method of claim 17, wherein the selected item that is
closest to the representation of the new folder is animated toward
the representation of the new folder first, followed by the other
selected items in an order based on the distance of the selected
item from the representation of the new folder.
19. The method of claim 1, wherein the user interface is a column
view interface showing one or more columns representing consecutive
levels of a file system hierarchy, each column presenting child
items of a selected parent item in an adjacent column, wherein the
selected items have a common parent item and are presented in a
first column in the user interface, and wherein causing the
animation to be presented in the user interface further comprises:
causing a representation of the folder to be presented in an
initial folder location in the first column in the column view
interface; causing respective representations of the selected items
to be lifted up and moved into a new column adjacent to the first
column in the column view interface; receiving a third input
committing a name for the folder; in response to the third input,
determining respective destination locations of the folder and
other unselected items in the first column based on a keep-arranged
criterion; and causing the respective representations of the new
folder and the other unselected items in the first column to be
animated to their respective destination locations in the column
view interface.
20. The method of claim 1, wherein the one or more selected items
are results of a search that are presented in a search result
window, and wherein causing the animation to be presented in the
user interface further comprises: causing a representation of the
folder to be animated into a folder location; and after the
representation of the folder is presented at the folder location,
causing respective representations of the one or more items to move
from their respective locations in the search result window into
the representation of the folder.
21. The method of claim 20, wherein at least a first item of the
selected items is a descendent item of a second item of the
selected items in a file system hierarchy, and wherein the method
further comprises: creating the new folder in the file system
hierarchy; and moving the selected items from their original
locations in the file system hierarchy into the new folder in the
file system hierarchy, wherein hierarchical relationship between
the first item and the second item is preserved in the folder.
22. A method performed by one or more processors of a device,
comprising: receiving first inputs selecting one or more items
presented in a user interface of the device; receiving a second
input for grouping the selected one or more items; and in response
to the second input, causing an animation to be presented in the
user interface illustrating a folder being created and each of the
selected one or more items being moved asynchronously into the
folder on the user interface.
23. A computer-readable storage medium having instructions stored
thereon, which, when executed by one or more processors, cause the
one or more processors to perform operations comprising: receiving
first inputs selecting one or more items presented in a user
interface of the device; receiving a second input for grouping the
selected one or more items in a folder; and in response to the
second input, causing an animation to be presented in the user
interface illustrating the folder being created and each of the
selected one or more items being moved into the folder along a
respective path on the user interface.
24. A system, comprising: one or more processors; and memory having
instructions stored thereon, which, when executed by the one or
more processors, cause the one or more processors to perform
operations comprising: receiving first inputs selecting one or more
items presented in a user interface of the device; receiving a
second input for grouping the selected one or more items in a
folder; and in response to the second input, causing an animation
to be presented in the user interface illustrating the folder being
created and each of the selected one or more items being moved into
the folder along a respective path on the user interface.
Description
TECHNICAL FIELD
[0001] This disclosure relates generally to user interfaces for
managing information items on a computing device.
BACKGROUND
[0002] Modern computing devices often include a file system that
stores information items in various directories or subdirectories
(e.g., folders) in a file system hierarchy. Each information item
(e.g., a file or a folder) can be given a respective filename. An
information item's filename and its file path in the file system
hierarchy can be used to uniquely identify the item in the file
system.
[0003] Each folder can include multiple files and subfolders. A
user can delete existing items (e.g., files and folders) from an
existing folder, and can add new items (e.g., files and folders) to
the existing folder. A user can also move items from one existing
folder to another existing folder. Many operating systems also
allow a user to create an empty new folder at a desired location in
the file system hierarchy, and then move items from various
locations in the file system hierarchy to the newly created empty
folder. Modern computing devices also provide graphical user
interfaces (GUIs) to help the user navigate and manipulate the file
system hierarchy and the items stored therein.
[0004] A user can group one or more existing items into a new
folder through the GUIs of a computing device. The grouping action
can be accomplished in several steps. First, the user can create
the new folder on the GUI (e.g., the desktop). If the one or more
existing items appear on the same GUI as the new folder, the user
can select the items and drag them as a group over to the new
folder. When the group of items enters the drop zone of the new
folder, the user can release the group of items, and the released
group of items would become items of the new folder. Alternatively,
the user can move the existing items to the new folder from their
original locations using one or more "cut and paste" operations in
the GUI. For example, after the new folder has been created, the
user can select an existing item in the GUI, "cut" the item from
its original location, and then "paste" the item into the new
folder in the GUI. The "pasted" item now belongs to the new
folder.
SUMMARY
[0005] A user can group multiple items into a destination folder
(e.g., a new folder) using an input command (e.g., a single input
command) in a graphical user interface. An animation can be
presented in the user interface illustrating the creation of the
destination folder and the movement of each selected item into the
destination folder. The movement of each selected item can be along
a respective path that starts at an initial location on the user
interface and terminates at the destination folder, and the
movement of each selected item can be initiated asynchronously with
respect to the other selected items. Implementations showing the
animations in various types of user interfaces, such as in a
free-arranged desktop, a keep-arranged desktop, a list view
interface of a folder, a column view interface of a folder, and a
search result window, are also disclosed.
[0006] In addition, the file system operations for grouping the
items into a folder can be completed asynchronously with the
presentation of the animation showing the grouping of the items
into the folder. In some implementations, the animation can be
presented when it has been determined that the file system
operations for creating the folder and moving the selected items to
the folder have been completed within a defined time window. System
events that affect the user interface can be queued during the
defined time window or until the animation is completed. The user
interface can be kept stable during the file system operations, and
operable to receive and respond to additional inputs that do not
conflict with the file system operations.
[0007] The details of one or more implementations of the item
grouping action and related user interface changes are set forth in
the accompanying drawings and the description below. Other
features, aspects, and advantages will become apparent from the
description, the drawings, and the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIGS. 1A-1D illustrate exemplary user interface changes
caused by the grouping of multiple items on a free-arranged desktop
into a destination folder on the free-arranged desktop.
[0009] FIGS. 1E-1G illustrate another set of exemplary user
interface changes caused by the grouping of multiple items on a
free-arranged desktop into a destination folder on the
free-arranged desktop.
[0010] FIGS. 2A-2G illustrate exemplary user interface changes
demonstrating the grouping of multiple items within a window
representing an arbitrary folder into a destination folder on a
keep-arranged desktop.
[0011] FIGS. 3A-3F illustrate exemplary user interface changes
demonstrating the grouping of multiple items from an existing
folder into a destination folder in a list view interface of the
existing folder.
[0012] FIGS. 3G-3L illustrate another set of exemplary user
interface changes demonstrating the grouping of multiple items from
an existing folder into a destination folder in a list view
interface of the existing folder.
[0013] FIGS. 4A-4E illustrate exemplary user interface changes
demonstrating the grouping of multiple items from an existing
folder into a destination folder in a column view interface of the
existing folder.
[0014] FIGS. 4F-4J illustrate another set of exemplary user
interface changes demonstrating the grouping of multiple items from
an existing folder into a destination folder in a list view
interface of the existing folder.
[0015] FIG. 5 is a flow diagram of an exemplary process for showing
an animation illustrating the grouping of items in response to a
grouping command.
[0016] FIG. 6 is a flow diagram of an exemplary process for showing
an animation illustrating the creation of a destination folder and
the respective movements of selected items into the destination
folder.
[0017] FIG. 7A is a flow diagram of an exemplary process for
determining a suitable folder location for the destination on a
free-arranged desktop.
[0018] FIG. 7B is a flow diagram of another exemplary process for
determining a suitable folder location for the destination folder
on a keep-arranged desktop.
[0019] FIG. 8A is a flow diagram of an exemplary process for
showing an animation illustrating the grouping of items in a
keep-arranged desktop.
[0020] FIG. 8B is a flow diagram of an exemplary process for
showing an animation illustrating the movements of the destination
folder and other items on the keep-arranged desktop to their final
destination locations on the keep-arranged desktop after the items
are grouped into the destination folder.
[0021] FIG. 9A is a flow diagram of an exemplary process for
suspending the start of the grouping animation for a defined time
window pending the completion of the file system operations for the
grouping action.
[0022] FIG. 9B is a flow diagram of an exemplary process for
queuing system events until completion of the animation or the end
of the defined time window.
[0023] FIG. 10 is a flow diagram of an exemplary process for
showing an animation illustrating the restoration of the selected
items from the destination folder.
[0024] FIG. 11 is a flow diagram of an exemplary process for
showing an animation illustrating the grouping of items from an
existing folder in a list view interface of the existing
folder.
[0025] FIG. 12A is a flow diagram of an exemplary process for
showing an animation illustrating the grouping of items from an
existing folder in a column view interface of the existing
folder.
[0026] FIG. 12B is a flow diagram of another exemplary process for
showing an animation illustrating the grouping of items from an
existing folder in a column view interface of the existing
folder.
[0027] FIG. 13A is a flow diagram of an exemplary process for
showing an animation illustrating the grouping of items from a
search result window.
[0028] FIG. 13B is a flow diagram of an exemplary process for
creating a destination folder for selected search results from a
file system hierarchy and maintaining the original hierarchical
relationships between the search results in the destination
folder.
[0029] FIG. 14 is a flow diagram of another exemplary process for
grouping items in a new folder.
[0030] FIG. 15 is a block diagram of exemplary hardware
architecture for implementing the features and processes described
in reference to FIGS. 1-14.
[0031] Like reference symbols in the various drawings indicate like
elements.
DETAILED DESCRIPTION
Exemplary User Interfaces for Grouping Items in a Folder
[0032] In conventional graphical user interfaces (GUIs), when a
user wishes to group one or more items into a new folder, the user
typically has to first create the new folder at a desired location
in the user interface. After the graphical representation (e.g., a
folder icon) of the new folder is presented in the user interface,
the user can select, from the user interface, respective
representations (e.g., file icons) of the items that he or she
wishes to group, and drag the representations of the items together
or one by one into the new folder presented on the user interface.
The movement of the items as a whole can be illustrated in the user
interface as an image containing the selected items being dragged
along by a pointer (e.g., a mouse pointer) to the graphical
representation of the new folder. When the items are released after
the image enters the drop zone of the new folder (e.g., as
indicated by a change in appearance of the new folder), the image
disappears into the new folder indicating the completion of the
move.
[0033] As disclosed herein, the grouping of multiple items or the
transfer of a single item into a new folder can be invoked via a
single input command after the selection of the item(s). The user
no longer has to create the new folder in a separate step prior to
selecting and moving the item(s) into the new folder. In response
to the single input command, a new folder can created at a default
location in the file system (e.g., in the desktop folder), and the
selected items can then be moved to the new folder from their
original locations in the file system hierarchy into the new
folder. In some implementations, the user can also specify an
existing folder as the destination folder for the group of selected
items.
[0034] Upon successful completion of the file system operations
(e.g., the creation of a new folder and the movement of the items
in the file system to the new folder), an animation showing a new
folder appearing at a selected folder location on the user
interface, and movements of the individual items from their
original locations on the user interface to the new folder at the
selected folder location can be presented. A suitable folder
location can be determined automatically by the operating system
based on one or more defined rules. The movements of the individual
items do not have to follow the movement of a pointer and do not
have to be synchronized or fixed in spatial relationship to one
another.
[0035] In some implementations, the user can also specify an
existing folder as the destination folder, and an animation showing
the selected items moving from their respective original locations
to the destination folder along the items' respective paths can be
presented.
[0036] FIGS. 1A-1D illustrate exemplary user interface changes
caused by the grouping of multiple items on a free-arranged user
interface into a folder on the free-arranged user interface.
[0037] In FIG. 1A, a free-arranged user interface is presented. The
free-arranged user interface can be a free-arranged desktop 102, or
other user interfaces (e.g., free-arranged search result windows or
folder windows) that do not adhere to defined rules or criteria for
the layout of items contained therein. As shown in the
free-arranged desktop 102, graphical representations of items
(e.g., icons for files, folders, hardware devices) can be located
at any coordinate locations within the area of the desktop 102 that
are not are already designated for and occupied by user interface
elements (e.g., the desktop menu bar 104 or the dock 106). A user
can move the items' graphical representations freely within the
desktop 102 and the layout of the items in the desktop can be
freely arranged by the user.
[0038] As shown in FIG. 1A, a number of items (e.g., files and/or
folders) are presented on the free-arranged desktop 102,
represented by icons 108, 110, 112, 114, 116, 118, and 120
respectively. The user has selected items represented by the icons
108, 112, and 118 (as indicated by the bolded outlines on the
item's icons). While the items are selected in the desktop 102, the
user can cause a menu 122 to be presented in the desktop 102 (e.g.,
by using a defined input). The menu 122 can present an option 124
that, when selected, can cause the grouping of the selected items
into a new folder. In some implementations, the menu 122 can also
present an option 126 that, when selected, can cause copies of the
selected items to be created and the copies to be grouped into the
new folder.
[0039] FIG. 2A illustrates the changes that can occur in the
free-arranged desktop 102 after the user has selected the option
124 to group the selected items into a new folder. After the user
has entered the single input command that causes the selected items
to be grouped into a new folder, a graphical representation 128 of
the new folder can be presented on the free-arranged desktop 102.
The new folder 128 can be shown to have a default filename, such as
"untitled" or "new folder." The default filename can be shown in a
text label 130 attached to the graphical representation 128.
[0040] In some implementations, a suitable location for the new
folder 128 on the free-arranged desktop 102 can be determined based
on various defined rules. For example, the suitable location for
the new folder 128 can be determined based on the locations of the
selected items 108, 112, and 118 on the free-arranged desktop. The
coordinates of the selected items on the free-arranged desktop 102
can be used to compute a weighted average of the items' locations,
and the weighted average can be used as the suitable folder
location for the new folder. In some implementations, if the
computed weighted average is already occupied by another item in
the item or user interface element in the free-arranged desktop
102, another unoccupied location that is closest to the weighted
average can be used as the suitable location for the new folder 128
on the free-arranged desktop 102. Exemplary user interface changes
illustrating the selection of the unoccupied location are shown in
FIGS. 1E-1G.
[0041] In some implementations, the representation of the new
folder 128 can be animated into the suitable folder location. For
example, the representation 128 can originate from the suitable
folder location as a small point and gradually grow into its final
size. Visual effects imitating the rising of the new folder 128
from the suitable folder location can be displayed. Other ways of
introducing the new folder 108 into the free-arranged desktop 102
are also possible.
[0042] In some implementations, as the representation of the new
folder 128 is popping up or immediately after the new folder 128
has settled into position at the suitable folder location, the
representations of the selected items (e.g., the items 108, 112,
and 118) can be animated to move toward the representation of the
new folder 128 from their respective original locations.
[0043] In some implementations, each of the selected items can
follow a respective path or trajectory starting from the item's
original location in the free-arranged desktop 102 and terminating
at the location of the new folder 128. The item's movement can be
animated to simulate the item being tossed up from the surface of
the desktop plane toward the user, and then falling back toward the
folder along the trajectory. Other kinds of paths are also
possible, and each item's path can be different.
[0044] Exemplary paths of the three selected items are shown in
FIG. 1B by the dashed curves leading from the selected items 108,
112, and 118 to the new folder 128. Although shown in FIG. 1B for
illustrative purposes, the dashed lines need not actually appear on
the user interface during the movement of the items to the new
folder 128.
[0045] In some implementations, the selected items can be shown to
take off from their respective original locations on the user
interface at slightly different times. For example, an item located
closest to the new folder 128 can be shown to depart from its
original location slightly earlier than an item that is located
farther away from the new folder 128. By implementing the different
delays in take-off times for different selected items, the user
interface changes can appear more natural, and also can avoid
clashing of the items when the items arrive at the new folder
128.
[0046] As illustrated in FIG. 1B, the item 108 is located closest
to the new folder 108, as compared to items 110 and 118. The item
108 is shown to have departed from its original location and be
farther along its path toward the new folder 128 than the items 110
and 118.
[0047] In some implementations, the respective take-off times and
accelerations of the items along their respective paths can also
take into account the size of the graphical representations for the
items. For example, a larger icon can be shown to move slower and
start slightly later than a smaller icon.
[0048] In some implementations, when the graphical representations
of the selected items are in the process of moving along their
respective paths toward the new folder 128, the appearances (e.g.,
sizes and shapes) of the representations can change to reflect the
changes in the items' physical locations and the viewer's viewing
perspectives. For example, as illustrated in FIG. 1B and FIG. 1C,
an item (e.g., item 118) reaching the peak of the trajectory can
appear to be enlarged as compare to when the item was at the
beginning or the end of the trajectory. FIG. 1C also illustrates
the landing of the item 108 in the new folder 128, which can also
be animated to appear to shake when the item 108 is received.
Immediately following the item 108, the items 112 and 118 are shown
as just about to enter the new folder 128.
[0049] FIG. 1D illustrates the free-arranged desktop 102 after the
selected items 108, 112, and 118 have all landed in the new folder
128, and the desktop 102 has stabilized. The user seeing the
conclusion of the animation showing the creation of the new folder
128 and the movements of the selected items 110, 112, and 118 into
the new folder 128, now has visual confirmation that the file
system operations for grouping the selected items into the new
folder has been successfully completed. The user can now move the
new folder 128 freely on the desktop 102, commit the default name
of the new folder, rename the new folder, and/or manipulate the new
folder in various manners permitted by the operating system.
[0050] In some implementations, as will be described in more
details later in the specification, the animation described above
can be presented upon a determination that the necessary file
system operations for creating the new folder and moving the
selected items have been successfully completed with a defined time
window. If the file system operations have not been successfully
completed within the defined time window, the animation showing the
creation of the new folder and the movements of the selected items
can be omitted. The user interface can be updated in a usual manner
as the file system operations are finally completed or when an
error message is generated due to a failed file system
operation.
[0051] In some implementations, the user can specify an existing
folder as the destination folder for the selected items. The
existing folder can be located at a default location in the file
system. When the user enters a command to send the selected items
to the destination folder, the animation showing the selected items
flying into a representation of the destination folder along the
items' respective paths on the user interface can be presented. In
some implementations, the new folder can be created at a default
location (e.g., in the next unoccupied grid location on the
desktop, in a default folder window, etc.) on the user interface,
where the default location is determined independently of the
current locations of the selected items.
[0052] In some implementations, the destination folder can be
already presented in the same user interface (e.g., the desktop) as
the selected items and the destination folder does not need to be
animated into a folder location on the user interface. In some
implementations, the destination folder is not already on the same
user interface as the selected items, a representation of the
destination folder can be animated into a suitable folder location
on the user interface, and after the selected items are shown to
enter the destination folder, the destination folder can be shown
to animate out of the interface again (e.g., presumably returned to
the destination's original location in the file system
hierarchy).
[0053] In some implementations, when the destination folder is an
existing folder in the file system, the only file system operation
that needs to be carried out to group the items into the
destination folder is a move of the selected items to the
destination folder in the file system hierarchy. Even though an
animation showing the appearance of the destination folder in the
same user interface as the selected items can be displayed, the
destination folder needs not be actually moved to a different
location (e.g., the desktop folder), and then returned to its
original location in the file system hierarchy after the items are
moved into the destination folder.
[0054] Although FIGS. 1A-1D illustrate a scenario where both the
selected items and the destination folder are on a free-arranged
desktop, the items can be selected from other user interfaces in
the free-arranged layout. For example, the items can be selected
from a folder window in the free-arranged layout.
[0055] In some implementations, when selecting a suitable folder
location for the destination folder, if an initially identified
folder location based on a default method (e.g., using the weighted
average of the locations of the selected items) is already occupied
or obscured by another item or user interface element, the
operating system can try to find another unoccupied location that
is nearest to the initially identified location and is not obscured
by other items or user interface elements.
[0056] FIGS. 1E-1G illustrate the user interface changes caused by
the grouping of multiple items on a free-arranged user interface
into a destination folder on the free-arranged desktop.
[0057] In FIG. 1E, a free-arranged user interface (e.g., the
free-arranged desktop 102) is presented. For illustrative purposes,
the same items are present on the free-arranged desktop 102 as
shown in FIG. 1A. However, in FIG. 1E, a folder window 132 is shown
to occupy the location at which the destination folder 128 would
have been displayed if the folder window 132 did not exist on the
desktop 102.
[0058] Also shown in FIG. 1E, the user has selected a number of
items (e.g., items 108, 112, and 118), and invoked the option to
group the selected items into a destination folder via the pop-up
menu 122.
[0059] As shown in FIG. 1F, a new folder 128 is presented at a
location next to the folder window 132. The location can be
selected by the operating system which has identified an initial
location based on the weighted average of the respective locations
of the selected items (e.g., items 108, 112, and 118). The
operating system then discovers that the initially identified
location has been occupied or obscured by the folder window 132.
Therefore, an alternative location that is nearest to the initially
identified location and is not currently occupied or obscured by
another item or user interface element can be determined. Once the
alternative location has been determined, the destination folder
128 can be animated into the alternative location (as shown in FIG.
1F). As shown in FIG. 1F, as the destination folder 128 is animated
into the alternative location near the folder window,
representations of the selected items (e.g., the items 108, 112,
and 118) can be animated along their respective paths into the
destination folder 128.
[0060] FIG. 1G illustrates that the selected items have all entered
the destination folder 128, and the destination folder 128 is shown
to settle in at the alternative location near the folder window
132. The user can now move the new folder 128 freely on the desktop
102, commit the default name of the new folder, rename the new
folder, and/or manipulate the new folder in various manners
permitted by the operating system.
[0061] FIGS. 2A-2G illustrate exemplary user interface changes
demonstrating the grouping of multiple items within a window
representing an arbitrary folder into a destination folder (e.g., a
new folder) in a keep-arranged user interface.
[0062] A keep-arranged user interface arranges representations of
items (e.g., icons of files and/or folders) on an evenly spaced
grid. The items can be sorted along grid locations in rows and/or
columns according to one or more keep-arranged criterion. For
example, the items can be arranged by filename, modification time,
file type, file size, and so on. When the user interface is in a
keep-arranged state, if new items are introduced into the user
interface, or if the attributes associated with a keep-arranged
criterion (e.g., a sorting criterion) are changed for one or more
items in the user interface, the user interface will be updated to
re-organize the items on the user interface according to the one or
more keep-arranged criterion and the new values of the
attributes.
[0063] FIG. 2A shows an exemplary keep-arranged user interface
(e.g., an exemplary keep-arranged desktop 202). The items on the
exemplary keep-arranged desktop 202 can be arranged according to
filename. Other keep-arranged user interfaces are possible, such as
a folder window with its content arranged and sorted by increasing
file size, or a search result window sorted by file type, and so
on.
[0064] In the example shown in FIG. 2A, the user has selected items
204, 206, and 208 from a folder window 210. One or more unselected
items (e.g., items 205a-c) can also exist in the folder window 210.
The folder window 210 is located on the keep-arranged desktop 202.
The folder window 210 can be in a free-arranged state or a
keep-arranged state. Other items (e.g., items 212a-e) can be
located on the keep-arranged desktop 202. The items on the
keep-arranged desktop 202 can be laid out along the grid locations
of the desktop grid (as indicated by the dashed grid 214) in an
order according to their respective filenames, for example.
[0065] As shown in FIG. 2A, the user has selected the items 204,
206, and 208, and invoked the option to group the selected items
into a new folder through a pop-up menu 216. After the user has
made the selection of the grouping option in the menu 216, an
animation illustrating the creation of the new folder and the
movement of the selected items into the new folder can be presented
in the user interface (e.g., the keep-arranged desktop 202).
[0066] As shown in FIG. 2B, a graphical representation 218 of the
new folder has been presented at an initial folder location 220 in
the keep-arranged desktop 202. The initial folder location 220 can
be at a grid location in the desktop grid 214. In some
implementations, the coordinate locations of the selected items can
be used to calculate a weighted average location 222 for the
selected items, and the grid location that is nearest the weighted
average location 222 can be chosen as the initial folder location
220 for the new folder. In some implementations, if the grid
location that is nearest the weighted average location 222 is
already occupied or obscured by another item or user interface
element on the keep-arrange desktop 202, an unoccupied grid point
that is nearest the weighted average location and is not obscured
by any item or user interface element can be chosen as the initial
folder location for the new folder. In some implementations, the
representation of the new folder 218 can be shown to pop up from
the initial folder location 220 and gradually grow into its final
size.
[0067] In some implementations, the new folder 218 can be shown
with a text label 224 indicating a temporary or default filename,
such as "new folder" or "untitled." The user can modify the name of
the folder after the animation showing the movement of the selected
items into the new folder has been completed.
[0068] In some implementations, as shown in FIG. 2B, as the new
folder 218 is being animated into the initial folder location 220
in keep-arranged desktop 202 or immediately after the new folder
218 has settled into the initial folder location 220, the
representations of the selected items 204, 206, and 208 can be
shown to start their take-offs from their respective original
locations in the folder window 210. The take-off timings of the
items can be slightly different to one another, and the respective
paths taken by the items can be different as well.
[0069] For example, each of the selected items 204, 206, and 208
can follow a respective path (e.g., a curved path) shown in dashed
lines from the items original locations to the initial folder
location 220 of the new folder 218. As the representations of the
selected items move along their respective paths toward the new
folder 218, the appearance of the items (e.g., the size of the
items) can change as if the items have been tossed up and away from
the desktop plane and then fallen back toward the new folder.
[0070] As shown in FIG. 2C, the selected items are moving into new
folder 218 along their respective paths. In some implementations,
when an item lands into the folder, visual effects, such as a shake
or a bounce of the new folder 218, can be shown to indicate the
landing or receipt of the item in the new folder 218. Also as shown
in FIG. 2C, the items can arrive at the new folder at different
times. The movements of the individual items do not have to be
synchronized in take-off time, or have the same acceleration,
speed, or path shape or length.
[0071] FIG. 2D shows the keep-arranged desktop 202 immediately
after all of the selected items have entered the new folder 218,
and the user interface has stabilized. As shown in FIG. 2D, if the
user has chosen to move the selected items, the selected items are
no longer shown in their original locations in the folder window
210. If the user had chosen to copy the items and group the copies
of the items into the new folder, the original selected items can
be left at their original locations in the folder window 210, and
the animation would show the movements of the copies to the new
folder 218.
[0072] In some implementations, the user can edit or accept the
filename of the new folder 218 that is initially shown in the text
label 224. Once the user has committed the filename of the new
folder 218, the final folder location of the new folder 218 can be
determined based on the keep-arranged criteria of the keep-arrange
desktop 202. For example, if the items on the keep-arrange desktop
202 are laid out according to their filenames, the items (e.g., the
items 212a-e) on the desktop 202 and the new folder 218 can be laid
out at consecutive grid locations on the desktop 202 in an order
according to the new folder's filename and the respective names of
the other items on the desktop 202.
[0073] In some implementations, once the final location of the new
folder 218 and the new locations of the other items on the
keep-arranged desktop 202 are determined according to the
keep-arranged criteria of the keep-arrange desktop 202, an
animation can be presented showing the other items and the new
folder 218 moving to their respective final locations on the
desktop 202 from their current locations. The keep-arranged desktop
202 showing items and the new folder 218 arranged at their
respective final locations according to the keep-arranged criteria
of the keep-arrange desktop are shown in FIG. 2E.
[0074] In some implementations, if the folder window from which the
items are selected (e.g., the folder window 210) is in a
keep-arranged layout, after the selected items are moved out of the
folder window into the destination window 218, the remaining items
in the folder window can be animated into their final locations
based on the keep-arranged criteria of the folder window.
[0075] For example, as shown in FIG. 2F, suppose the folder window
210 is in a keep-arranged layout, the remaining items (e.g., the
unselected items 205a-c) in the folder window 210 can be shown to
move from their respective original locations to their respective
final locations along their respective paths (e.g., shown by the
dashed lines). FIG. 2G illustrates that the unselected items (e.g.,
the items 205a-c) have arrived at and settled into their respective
final locations in the folder window 210. The respective final
locations of the unselected items can be determined based on the
keep-arranged criteria associated with the folder window 210.
[0076] Although FIGS. 2F and 2G show that the unselected items are
animated into their respective final locations after the
destination folder 218 have settled into its final location on the
desktop 202, the animation showing the movement of the unselected
items to their respective final locations can be presented at any
time while the animation showing the movement of the selected items
are being presented, or after the selected items have settled into
the destination folder at the destination folder's initial folder
location.
[0077] Although FIGS. 2A-2G shows the destination folder being
created on the desktop, in some implementations, the destination
folder can be created in another type of user interface kept in the
keep-arranged state. For example, the destination folder can be
created in another folder window (e.g., a default folder window)
that is present on the desktop, and the initial folder location of
the destination folder can be selected such that the initial folder
location is at an unoccupied grid location in the default folder
window and is not currently obscured by any other items or user
interface elements. After the selected items have entered the
destination folder and the user has committed the name of the
destination folder, the destination folder and other items in the
default folder window can be animated into their respective final
locations in the default folder window according to the
keep-arranged criteria associated with the default folder
window.
[0078] In some implementations, the animation showing the creating
of the new folder 218 and the movements of the selected items 204,
206, and 208 can be presented only upon determination that the file
system operations for creating the new folder in the desktop folder
(or another default location in the file system hierarchy) and
moving the selected items from their original locations in the file
system hierarchy to the new folder are completed successfully
within a defined time window. The length of the defined time window
can be chosen such that the animation can appear without
substantial delay after the user has entered the input to group the
selected items. The length of the defined time window are also
chosen to be long enough such that most typical file system
operations for grouping items can be completed within the defined
time window.
[0079] In some implementations, the operating system can queue up
system events that will cause changes to the user interface (e.g.,
the desktop) while the operating system waits for a notification
indicating the successful completion of the file system operations
for creating the new folder and moving the selected items into the
new folder or the expiration of the defined time window. If the
file system operations are completed within the defined time
window, the animation illustrating the creation of the new folder
and the movements of the selected items into the new folder in the
user interface can be presented, and the system events that will
cause changes to the user interface can continue to be queued until
the completion of the animation.
[0080] After the completion of the animation, the queued system
events can be carried out, and the user interface changes caused by
the queued system events can be manifested one by one. If the file
system operations were not completed during the defined time
period, the animation are not presented. The queued system events
can be carried out after the defined time window expires and the
user interface changes caused by the queued system events can be
manifested.
[0081] In some implementations, during the wait for the completion
of the file system operations and the presentation of the
animation, the user interface can be kept responsive to user inputs
that do not conflict with the file system operations. For example,
during the wait time within the defined time window and during the
presentation of the animation, the user can enter inputs to
manipulate (e.g., open or delete) other items on the user interface
that are not affected by the grouping action, and the user
interface would be able to respond to the user inputs.
[0082] In some implementations, if the file system operations for
creating the new folder and moving the items to the new folder are
not completed within the defined time window, the animation
illustrating the creation of the new folder and the movements of
the selected items to the new folder is not presented in the user
interface. The file system operations can take longer than usual
and go beyond the defined time window when, for example, items from
multiple disk volumes are being accessed, network resources are
accessed, a large number of items are being moved, and so on.
[0083] When the file system operations continue in the background,
the user interface can be kept responsive to user inputs that do
not conflict with the on-going file system operations. For example,
the user can open a document that is not affected by the grouping
action, and work within the document, while the file system
operations for grouping the selected items are under way. When the
file system operations are completed, the representation of the new
folder containing the selected items can be presented at a suitable
folder location of the user interface without an animation.
[0084] By keeping the file system operations and the user interface
changes separate or asynchronous, the user does not have to wait
for the file system operations to complete before moving onto other
actions in the user interface. In addition, by waiting a defined
time window of a suitable duration, the animation can timely
illustrate the completion of the file system operations to the user
without holding up the user interface when the file system
operations take a longer time than usual.
[0085] In addition to the icon view of items in a free-arrange user
interface and a keep-arrange interface as described above with
respect to FIGS. 1A-2G, animations showing the grouping of items
into a destination folder can also be presented in a list view
interface or a column view interface.
[0086] For example, FIGS. 3A-3F illustrate exemplary user interface
changes demonstrating the grouping of multiple items from an
existing folder into a destination folder (e.g., a new folder) in a
list view interface of the existing folder.
[0087] As shown in FIG. 3A, a folder is shown in a list view
interface (e.g., in a list view folder window 302 on a desktop).
The items shown in the list view interface are items within a
folder represented by the folder window 302 (e.g., a folder
"Origin"). The items (e.g., items 304a-h) shown in the list view
folder window 302 can be files and/or folders. A graphical
representation of an item in the list view folder window 302 can
include a small icon representing the item and a text label showing
the filename of the item. In addition, the items within a list view
folder window 302 typically are sorted according to a keep-arranged
criterion, such as by filename, by size, by modification time, by
item type, and so on.
[0088] In the example folder window 302, items 304a-h are arranged
by filename. Also as shown in FIG. 3A, the user has selected a few
items (e.g., items 304b, 304d, and 3040 from the folder window 302,
and chosen the option to group the selected items in a new folder
through the pop-up menu 306. In some implementations, the default
location of the new folder in the file system hierarchy can be in
the original folder from which the items to be grouped were
selected.
[0089] In some implementations, when the user has selected the
option to group the selected items in a new folder (e.g., through
the pop-up menu 306), an animation showing the creation of the new
folder and the movements of the selected items into the new folder
can be presented in the user interface. In some implementations, as
shown in FIG. 3B, a graphical representation 308 of the new folder
can be presented at an initial folder location 310. The initial
folder location 310 can be a weighted average of the respective
locations of the selected items (items 304b, 304d, and 304f) along
the vertical direction. The initial folder location can be chosen
to be close to the selected items in the horizontal direction.
[0090] In some implementations, the representation 308 of the new
folder can be presented at the initial folder location 310 through
an animation. The new folder 308 can be shown to pop-up from the
initial folder location 310, and grow into its final size
gradually. In some implementations, the new folder 308 can also
slide into the user interface to the initial folder location 310
along a respective path on the user interface.
[0091] In some implementations, the appearance of the new folder
308 can be slightly different from a folder item in the list view
interface. For example, the new folder 308 can appear to float
above the list view folder window 302 and/or be highlighted. The
new folder 308 can include a text label showing a default filename,
such as "untitled" or "new folder." In some implementations, the
text label can have rounded corners to distinguish from the text
labels of items in the list view interface. The differing
appearance of the new folder 308 can indicate that the new folder
is still in a transitory state and has not been finalized in terms
of content, appearance, and/or location.
[0092] In some implementations, as the representation of the new
folder 308 is settling into the initial folder location 310 near
the selected items or immediately after the representations 308 has
stabilized at the initial folder location 310 (e.g., as shown in
FIG. 3B), the selected items (e.g., items 304b, 304d, and 3040 can
change their appearances as if they are lifted off of the plane of
the list view folder window 302. For example, the selected items
can be highlighted and shifted slightly away from their original
locations. The text labels of the selected items can also change
appearance when the selected items are lifted up. For example, as
shown in FIG. 3B, the text labels of the selected items 304b, 304d,
and 304f have changed from their original appearances and the
corners of the text labels have become rounded.
[0093] In some implementations, immediately after the selected
items 304b, 304d, and 304f are lifted off of the list view folder
window 302, the selected items can move toward the new folder 308
along their respective paths (e.g., as indicated by the dashed
curves in FIG. 3B). In some implementations, the motion of the
selected items 304b, 304d, and 304f are not synchronized, and the
take-off times, speeds, accelerations, and/or path shapes of the
selected items can be different from one another.
[0094] FIG. 3C shows the user interface while the selected items
are moving toward the new folder 308 along their respective paths.
In some implementations, the path for each selected item can be a
curve path starting from the initial location (the location before
or after the lift-off) of the selected item and terminating at the
new folder 308. In some implementations, the selected items 304b,
304d, and 304f can appear larger at the bends of the curved path
than at the initial and end location of the path, imitating the
appearance of the item having been tossed up and away from the
plane of the list view folder window 302 and then falling back down
toward the new folder 308. In some implementations, other types of
paths can be implemented, such as a straight path, a zigzagged
path, or a floating path leading from the item's initial location
to the new folder 308.
[0095] In some implementations, when the items enter the new folder
308, either together or one by one, the new folder 308 can be
animated to bounce slightly or shake to visually indicate the
receipt of the selected items in the new folder 308. In some
implementations, when all the items have entered the new folder 308
at the initial folder location 310 (as shown in FIG. 3D), the user
can modify and/or commit the filename of the new folder 308 in the
text label of the new folder 308.
[0096] Once the user has committed the filename (e.g., "Test") of
the new folder 308 (e.g., as shown in FIG. 3E), the operating
system can determine a final location for each remaining item
(e.g., items 304a, 304c, 304e, 304g, and 304h) and the new folder
308 in the list view folder window 302 according to the
keep-arranged criterion of the list view folder window 302. For
example, if the keep-arranged criterion of the list view folder
window 302 is sorting by filename, the order by which the remaining
items 304a, 304c, 304g, and 304h and the new folder 308 are: item
304a, item 304c, new folder 308, item 304g, and item 304h.
[0097] In some implementations, once the operating system has
determined the final locations for the remaining items 304a 304c,
304g, and 304h and the new folder 308 in the list view folder
window 302, an animation can be presented to show the movement of
the remaining items and the new folder 308 from their current
locations to their respective final locations. The paths taken by
the items and the new folder 308 are indicated by the dashed lines
shown in FIG. 3E. Although straight paths are shown in FIG. 3E,
other paths shapes are also possible.
[0098] As shown in FIG. 3F, after the remaining items and the new
folder are moved to their respective final locations, the list view
window shows the remaining items and the new folder in an order
sorted according to the keep-arranged criterion of the list view
folder window 302. The user can open the new folder 308 to see the
selected items in the new folder 308.
[0099] In this example, the user had selected to move the selected
items to the new folder 308, therefore, the selected items no
longer appear the in the list view folder window 302 of the
"Origin" folder. If the user had selected the option to make copies
of the selected window and group the copies into the new folder.
The selected items can remain in the list view folder window 302,
and the copies are moved along their respective paths to the new
folder 302. In addition, when the user has committed the filename
for the new folder 308, the new folder can be inserted into its
final location among the remaining items in the list view window
308 according to the keep-arranged criterion of the list view
folder window 302.
[0100] FIGS. 3A-3F illustrate merely one set of exemplary user
interface changes that can be implemented to show the grouping of
multiple selected items into a destination folder in a list view
interface. FIGS. 3G-3L illustrate another set of exemplary user
interface changes that can be implemented to show the grouping of
multiple selected items into a destination folder in a list view
interface.
[0101] For illustrative purposes, FIG. 3G shows the same list view
interface (e.g., the list view folder window 302) as FIG. 3A. As
shown in FIG. 3G, the user has selected a number of items (e.g.,
the items 304b, 304d, and 304f) from the folder window 302. The
user has also invoked the option to group the selected items in a
new folder through the pop-up menu 306.
[0102] In response to the user's command to group the selected
items, the representations of the selected items (e.g., the items
304b, 304d, and 3040 can be shown to be lifted off from the folder
window 302, and moved to another location (e.g., to the right of
their original locations as indicated by the dashed lines), as
shown in FIG. 3H. In some implementations, the appearances of the
items' representations can change as well. For example, the icons
and the text labels of the selected items can be highlighted or
shown with rounded corners. The change in appearance in the
selected items can be used to indicate the transitory state that
the selected items are currently under. In some implementations,
the textual information that are commonly displayed for the
selected items (e.g., the items 304b, 304d, and 3040 can be removed
from the user interface (e.g., the folder window 302) as well.
[0103] As shown in FIG. 3I, as the representations of the selected
items are animated toward the right side of the folder window 302,
a destination folder 308 can be shown to animate into an initial
folder location of the destination folder 308. In some
implementations, the destination folder 308 can be given a default
name (e.g., "untitled"). If the folder window 302 is associated
with a keep-arranged criterion based on filename, the initial
folder location can be determined based on the default name of the
destination folder and the remaining items (e.g., the unselected
items 304a, 304c, 304e, 304g, and 304h) in the folder window 302.
In this example, the initial folder location of the destination
folder 308 is between the item 304e (e.g., a document named "E")
and the item 304g (e.g., a document named "X").
[0104] In some implementations, other keep-arranged criterion
associated with the folder window 302 can be used, such as by file
type, modified time, etc. In some implementations, other textual
information (e.g., filename, modification time, file type, size,
etc.) related to the destination folder that is commonly displayed
in the list view folder window 302 can be displayed as well, as
shown in FIG. 3I.
[0105] Also shown in FIG. 3I, once the destination folder 308 has
appeared at its initial folder location in a stable form (e.g.,
when the destination folder 308 has grown to its final size), the
representations of the selected items (e.g., the items 304b, 304d,
and 3040 can be shown to move toward the destination folder 308
along their respective paths (e.g., as indicated by the dashed
lines).
[0106] In some implementations, the respective speeds and
accelerations of the representations of the selected items (e.g.,
the items 304b, 304d, and 3040 can be different from one another.
For example, the representation of a selected item that is closer
to the destination folder 308 can be shown to take off earlier and
move faster than the representation of another selected item that
is farther away from the destination folder 308.
[0107] FIG. 3J shows that the representations of the selected items
have entered the destination folder 308 at the initial folder
location. In some implementations, the user is given an opportunity
to commit the name of the destination folder 308. For example, the
default folder name that has appeared next to the destination
folder 308 can be highlighted or underlined to indicate that it can
be modified or accepted. The user can accept the default name given
to the destination folder 308. If the user accepts the default name
given to the destination folder 308, the destination folder 308 can
remain in its current location, and the initial folder location of
the destination folder 308 can become the final folder location of
the destination folder 308.
[0108] If the user does not accept the default name for the
destination folder, the user can enter a new folder name for the
destination folder, for example, by typing the new folder name into
the space currently displaying the default folder name. As shown in
FIG. 3K, the user has entered a different folder name (e.g., "Z")
for the destination folder 308. Once the user commits the new
folder name (e.g., by entering a pre-defined command such as
"Enter"), the destination folder 308 and the other items currently
displayed in the folder window 302 can be rearranged according to
the keep-arrange criteria associated with the folder window and the
new folder name that the user has entered. For example, as shown in
FIG. 3L, the destination folder 308 and the remaining items (e.g.,
the unselected items 304a, 304c, 304e, 304g, and 304h) have been
rearranged according to their filenames. An animation can be
presented to show the destination folder 308 and the remaining
items (e.g., the unselected items 304a, 304c, 304e, 304g, and 304h)
in the folder window moving from their current locations to their
final locations determined based on the keep-arranged criteria
associated with the folder window 302.
[0109] In some implementations, as described with respect to the
icon view of the user interfaces shown in FIGS. 1A-2E, the
animation can be presented in the list view interfaces when it is
determined that the file system operations can be completed within
a defined time window. In some implementations, the user interface
can be kept responsive to user inputs that do not interfere with
the file system operations, while the file system operations are
underway.
[0110] In some implementations, as described above with respect to
the free-arranged and the keep-arranged user interfaces in the icon
view, operating system events that would affect the user interfaces
can be queued during the defined time window and/or while the
animation is being presented in the user interfaces. After the
expiration of the defined time window or the completion of the
animation, the queued system events can be carried out and the user
interface changes caused by the queued system events can be
manifested.
[0111] FIGS. 4A-4E illustrate exemplary user interface changes
demonstrating the grouping of multiple items from an existing
folder into a destination (e.g., a new folder) in a column view
interface.
[0112] FIG. 4A shows an exemplary folder in a column view
interface. A column view folder window 402 for an existing folder
(e.g., folder "Practice") can be shown on a desktop when a user
opens the existing folder and chooses to view the content of the
existing folder in a column view. The column view folder window 402
can include one or more columns (e.g., columns 404 and 406). Each
column can correspond to a respective level in the file system
hierarchy and be associated with a respective parent item from a
parent level of the respective level in the file system hierarchy.
Consecutive columns in the column view folder window correspond to
consecutive levels of the file system hierarchy.
[0113] For example, in the column view folder window 402, column
404 can be associated with the parent item of a currently selected
folder "Practice" and present all child items of the parent item
(e.g., folders "Work," "Play," and "Practice"). Column 404 can
correspond to a first level of the file system hierarchy, while
column 406 adjacent to the column 404 to the right can correspond
to a second level of the file system hierarchy that is one level
below the level that corresponds to the column 404. The user can
select an item from the column 406 to cause child items of the
selected item to be presented in a new column added to the right of
the column 406. The user can continue to select another item from
the new column to explore further down the file system hierarchy.
At any given time, the rightmost column shown in the column view
folder window 402 can display child items of a currently selected
item from the column adjacent to the rightmost column to the left.
In FIG. 1A, no item is currently selected from the column 406 for
further expansion, and the column 406 exists as the rightmost
column in the column view folder window 402.
[0114] In some implementations, as the user explores down the file
system hierarchy level by level from an initially selected item
shown in a leftmost column (e.g., the column 404) of the column
view folder window 402, multiple additional columns can be added to
the column view folder window 402 one by one to the right side of
the column view folder window 402. If the viewable area of the
column view folder window 402 does not have enough space to show
all columns that are currently open, the columns associated with
the higher levels of the file system hierarchy can be moved out of
view to the left to make room for the newly added columns. A
horizontal scroll bar 408 can be presented that allows the user to
being the columns that are moved out of the viewable area of the
column view folder window back into the viewable area of the column
view folder window 402.
[0115] In some implementations, the grouping of multiple selected
items described with respect to the icon view and the list view
user interfaces can be accomplished in the column view interface as
well. As shown in FIG. 4A, the user has selected multiple items
(e.g., items 410, 412, and 414) from a column (e.g., column 406) in
the column view folder window 402. The column (e.g., the column
406) may also present one or more unselected items (e.g., items
411a-d). While the items (e.g., the items 410, 412, and 414) remain
selected, the user can invoke the input command for grouping the
items in a new folder, for example, through a menu option in a
pop-up menu 416.
[0116] After the user has entered the input command to group the
selected items in a column, an animation illustrating the creation
of the new folder and the movement of the selected items into the
new folder can be presented. In some implementations, the items
shown in each column of the column view interface can be sorted
according to one or more keep-arranged criteria (e.g., filename,
type, etc.). In some implementations, the new folder can be given a
default or temporary filename. After the user has entered and
committed the filename for the new folder, another animation can be
presented to illustrate the movements of the new folder and the
remaining items in the column to their respective final locations
that have been determined based on the one or more keep-arranged
criteria of the column view folder window 402. In some
implementations, the keep-arranged criteria can be column specific
for each column in the column view folder window.
[0117] FIG. 4B illustrates that, after the user has entered the
input command to group the selected items in a new folder, a
representation 418 of the new folder can be presented in the column
view folder window 402. In some implementations, a new column 420
can be added to the right of the previous rightmost column (e.g.,
the column 406) of the column view folder window 402, and the
representation of the new folder can be shown within the new column
420. In some implementations, if there isn't enough space in the
viewable area of the column view folder window 402, the leftmost
columns can be shifted left and out of the viewable area of the
column view folder window 402 to make room for the new column
420.
[0118] In some implementations, the representation of the new
folder 418 can be animated into an initial folder location in the
new column 420. For example, the representation of the new folder
418 can pop-up from the suitable folder location like a mushroom,
and grows into its final size. The appearance of the representation
418 for the new folder can be slightly different from that of other
folders in the column view folder window 402. For example, the
representation 418 of the new folder can appear to be highlighted
or raised up from the plane of the column view folder window 402.
The text label of the new folder can appear with rounded corners.
The different appearance of the new folder can indicate that the
new folder is in a transitory state.
[0119] In some implementations, the initial folder location of the
new folder in the new column 420 can be determined based on the
locations of the selected items in the adjacent column to the left.
For example, the vertical position of the new folder 418 in the new
column 420 can be a weighted average of the vertical positions of
the selected items in the adjacent column (e.g., column 406) to the
left of the new column 420. Other methods of determining the
location of the new folder in the new column are possible. For
example, the new folder can be shown in the top area, middle area,
or the bottom area of the new column 420 in various
implementations.
[0120] In some implementations, as shown in FIG. 4B, as the
representation of the new folder 418 is being animated into the
column view folder window 402 or immediately after the
representation 418 settles into the initial folder location, the
selected items in the column 406 can appear to be lifted off from
their original locations and raised above the plane of the column
view folder window 402. The raised items are ready to take-off and
move toward the representation of the new folder 418 along their
respective paths.
[0121] In some implementations, the respective paths by which the
selected items reach the new folder 418 can be curved paths
originating from the respective initial locations of the selected
items and terminating inside the new folder 418. Exemplary paths
for the selected items are indicated in FIG. 4B in dashed lines.
The respective initial locations of the selected items can be the
items' respective locations either before or after the initial
lift-off. In some implementations, paths of other shapes are
possible. For example, the selected items can travel in a straight
line, a wavy line from their initial locations to the new folder as
well.
[0122] In some implementations, the take-off time of each selected
item can be slightly different from the take-off times of other
selected items. In some implementations, the item that is located
closest to the new folder 418 can take-off first, followed by items
that are located at increasing distances from the new folder 418.
In some implementations, the speeds, accelerations, and path shapes
of the different selected items can be different as well.
[0123] By allowing variations to the take-off times, speeds,
accelerations, and path shapes of the different selected items, the
movements of the different items can appear more natural, and the
order by which the items enter the new folder can be controlled. In
addition, clashing of the items at the entrance of the new folder
can be avoided. In some implementations, visual effects showing
items braking near the entrance of the new folder to give way to
another item can be implemented.
[0124] FIG. 4C illustrates the selected items moving along their
respective paths toward the new folder 418. In some
implementations, the selected items are animated to appear as if
they were tossed from their initial locations up and away from the
plane of the column view folder window 402 and then fall back
toward the new folder 418. As the representations of the selected
items move toward the peaks of their respective trajectories, the
size of the representations can be made larger. And, as the
representations of the selected items approach the end of their
respective trajectories, the size of the representations can be
made smaller. This animation creates the illusion that the items
are being tossed above the user interface and then falling back
toward the destination folder under the force of gravity. As the
selected items enter the new folder one by one, the landing of the
selected items can cause the new folder to be animated to bounce or
shake.
[0125] FIG. 4D illustrates the column view folder window 402 after
all of the selected items have entered the new folder 418. As shown
in FIG. 4D, the selected items are no longer shown in the column
view folder window 402. The new folder 418 now contains the
selected items. On the file system level, a new folder has been
created in the folder "Practice," and the selected items from the
folder "Practice" have been moved to the new folder. The new folder
now has a default temporary name, such as "untitled" or "new
folder." In some implementations, the new folder can be created at
some other default location or temporary location in the file
system hierarchy, such as the desktop folder or a temporary folder.
When the user eventually specifies the filename of the new folder,
the new folder can be moved to the folder "Practice."
[0126] In some implementations, if the user had selected the option
to copy the selected items and group the copies into the new
folder, the selected items would still appear in their original
locations in the column 406, and the representations of the copies
would be moved to the new folder 418. On the file system level, a
new folder would be created at a default location in the filed
system hierarchy (e.g., in the "Practice" folder), copies of the
selected items can be made and the copies can be moved to the new
folder.
[0127] In some implementations, the new folder 418 is presented
with a default or temporary filename initially. When the user can
keep the default name or modifies the default or temporary name in
the text label 422. Once the user commits the filename in the text
label 422, final locations of the new folder and the remaining
items in the column 406 can be determined based on the one or more
keep-arranged criteria associated with the column 406. Once the
final locations of the new folder 418 and the remaining items in
the column 406 have been determined, the new folder 418 and the
remaining items can be animated from their current locations to
their respective final locations. As shown in FIG. 4E, suppose the
items in the column 406 are arranged by filename, the new folder
418 and the remaining items are sorted according to their filenames
in the column 406.
[0128] FIGS. 4A-4E illustrate merely one set of exemplary user
interface changes that can be implemented to demonstrate the
grouping of multiple items from an existing folder into a
destination folder in a column view interface of the existing
folder. FIGS. 4F-4J illustrate another set of exemplary user
interface changes that can be implemented to demonstrate the
grouping of multiple items from an existing folder into a
destination folder in a column view of the existing folder.
[0129] FIG. 4F shows an example list view folder window 402. For
illustrative purposes, the column view folder window 402 shown in
FIG. 4F is the same as the column view folder window 402 shown in
FIG. 4A. As shown in FIG. 4F, the user has selected a number of
items (e.g., the items 410, 412, and 414) from a column 406
displaying all the items in a selected folder (e.g., folder
"Practice"). The column 406 also include a number of unselected
items (e.g., the items 411a-d). The selected folder (e.g., folder
"Practice") can be shown in another column 404 to the left of the
column 406. After selecting the items 410, 412, and 414 from the
column 406, the user has also invoked the option to group the
selected items into a destination folder (e.g., a new folder) via a
pop-up menu 416.
[0130] In response to the user's command to group the selected
items, representations of the selected items can be shown to move
from their original locations toward the right side of the column
view folder window 402. As shown in FIG. 4G, the representations of
the selected items (e.g., the items 410, 412, and 414) are animated
toward the right side of the column view folder window 402. A new
column 420 can be shown to appear in the column view folder window
402 to the right side of the column 406. The new column 420 now
becomes the rightmost column in the folder window 402.
[0131] In some implementations, the representations of the selected
items (e.g., the items 410, 412, and 414) can change appearance as
they are moving from their original locations in the column 406
toward their final locations in the new column 420. For example, an
animation can be presented to show that the selected items are
first lifted off of the plane of the folder window 402, and then
moved toward their final locations in the new column 420 along
their respective paths (e.g., as indicated by the dashed lines in
FIG. 4G). In some implementations, the icons and text labels of the
selected items can be highlighted or the corners of the text labels
can be rounded. The changed appearance of the selected items can be
used to indicate that the selected items are currently in a
transitory state.
[0132] In some implementations, as shown in FIG. 4G, the unselected
items (the items 411a-d) can be shown to move from their respective
original locations in the column 406 toward their respective new
locations in the column 406 after the selected items have moved out
of their original locations in the column 406 and left open some
item slots in the column 406. The new locations of the unselected
items (e.g., the items 411a-d) can be determined based on the
keep-arranged criteria (e.g., by filename, type, etc.) associated
with the folder window 402. The new locations of the unselected
items are also influenced by the initial folder location of the
destination folder for the selected items in the column 406.
[0133] As shown in FIG. 4H, in some implementations, a destination
folder 424 can be animated into the column 406 as the selected
items are moving out of the column 406. For example, the
destination folder 424 can be shown to grow from the initial folder
location in the column 424 gradually into its final size.
Alternatively, the destination folder 424 can be shown to slide in
from outside of the user interface into the initial folder location
in the column 406. In some implementations, other ways of
introducing the destination folder 424 into the initial folder
location in the column 406 are possible.
[0134] In some implementations, the destination folder 424 can be
given a default name (e.g., "Untitled"), and the initial folder
location of the destination folder can be determined based on the
default name and the names of other unselected items in the column
406, given that the column view folder window 402 is arranged
according to filename. As shown in FIG. 4H, the initial folder
location of the destination folder 424 (e.g., initialed named
"Untitled") is between the new locations of the item 411c (e.g.,
the document named "E") and the item 411d (e.g., the folder named
"Y"). As the unselected items 411a-d are moving toward their
respective new locations and the destination folder 424 is animated
into its initial folder location in the column 406, the selected
items (e.g., the items 410, 412, and 414) are being animated toward
their respective final locations in the new column 420 as well. The
respective final locations of the selected items (e.g., the items
410, 412, and 414) can be determined based on the keep-arranged
criteria associated with the folder window 402 as well. For
example, as shown in FIG. 4H, the order by which the selected items
will appear in the new column 420 is according to the names of the
selected items.
[0135] FIG. 4I illustrate that the selected items (e.g., the items
410, 412, and 414) have arrived at their final locations in the new
column 420. In some implementations, the representations of the
selected items (e.g., the items 410, 412, and 414) can revert back
to their original appearances (e.g., shown as a small icon with a
text label). Also as shown in FIG. 4I, the destination folder 424
has also settled into its initial folder location in the column
406, and is the currently selected item in the column 406. In some
implementations, the destination folder 424 can be highlighted to
indicate its currently selected status.
[0136] In some implementations, the user can be given an
opportunity to commit the default name given to the destination
folder 424 or to enter a new name for the destination folder 424.
For example, the text label of the destination folder can be
highlighted and becomes editable, and the user can enter the new
folder name by typing into the text label field. Alternatively, the
user can accept the default name currently displayed in the text
label by entering a pre-defined command. If the user decides to
accept the default name given to the destination folder 406, the
destination folder will remain at the initial folder location, and
the initial folder location will become the final folder location
for the destination folder 424.
[0137] If the user chooses to enter a new name for the destination
folder, the final locations of the destination folder 424 and the
other unselected items in the column 406 can be determined based on
the new name of the destination folder and the keep-arranged
criteria associated with the folder window 402.
[0138] As shown in FIG. 4I, the user has entered a new name (e.g.,
"Z") for the destination window 424. Once the user commits the new
name, the operating system can determine the final locations of the
destination folder 424 and the other items in the column 406, for
example, according to the names of the destination folder 424 and
the names of the unselected items in the column 406. Once the final
locations of the destination folder 424 and the unselected items
(e.g., the items 411a-d) in the column 424 have been determined,
the destination folder 424 and the unselected items (e.g., the
items 411a-d) can be animated from their current locations in the
column 406 to their respective final locations in the column 406.
For example, FIG. 4J illustrate that the destination folder 424 and
the unselected items (e.g., the items 411a-d) have been moved to
their respective final locations in the column 406 determined based
on their names.
[0139] In some implementations, the animation illustrating the
creation of the new folder and the movements of the selected items
into the new folder can be displayed asynchronously relatively to
the file system operations for creating the new folder and moving
the selected items to the new folder in the file system hierarchy.
In some implementations, the animation can be presented only if it
has been determined that the file system operations can complete
within a defined time window. In some implementations, the
operating system can hold the animation until the operating system
has received a notification indicating the successful completion of
the file system operations before the expiration of the defined
time window. If the defined time window expires before the file
system operations for creating the new folder and moving the
selected items into the new folder are completed, the operating
system can omit the animation.
[0140] In some implementations, the operating system can queue up
operating system events that can cause changes to the user
interface (e.g., the list view folder window or the column view
folder window) until the expiration of the defined time window
and/or the completion of the animation. When the defined time
window has expired or when the animation has been completed, the
queued system events can be carried out and the user interface
changes caused by the queued system events can be manifested in the
user interface.
[0141] In some implementations, if the file system operations are
not completed within the defined time window, the animation showing
the creation of the new folder and the movement of the selected
items into the new folder can be omitted. The uncompleted file
system operations can be allowed to continue in the background. In
some implementations, the user interface can be kept responsive to
user inputs that do not conflict with the file system operations.
For example, the user can open a document that is not affected by
the file system operations in a corresponding application and work
on the document while the file system operations continue in the
background.
[0142] In some implementations, the items that are grouped into a
new folder need not be items from a common parent folder. For
example, the user can search and locate items that satisfy
particular search criteria, and the search results can appear
together in a user interface, such as a search result window. In
various implementations, the search result window can be in a
free-arranged icon view, a keep-arranged icon view, a list view, or
a column view. The user can select one or more items from the
search result window and group the selected items in a new
folder.
[0143] In some implementations, one or more items in the search
result window can be the ancestor items of one or more other items
in the search result window. When the user happens to select items
that have ancestor-descendent relationship to each other (e.g.,
when both a folder and a subfolder of the folder are selected, or
when both a folder and an item in the folder or in a subfolder of
the folder are selected), the representations of the selected items
can be shown to move toward the new folder in the same manner as
described above with respect to FIGS. 1A-4E.
[0144] In some implementations, although the representations of the
selected items are moved to the new folder as individual items
along their respective paths in the animation, in the file system,
any existing ancestor-descendent relationship between the selected
items can be preserved in the new folder when the selected items
are moved to the new folder in the file system hierarchy. For
example, if the search results include a folder "parent" and an
item "child" that belongs to the folder "parent," when the
animation is presented, the folder "parent" and the item "child"
moves toward the new folder as separate items along their
respective paths in the animation. However, in the file system
hierarchy, only the folder "parent" is moved to the new folder, and
the item "child" is moved as part of the content of the folder
"parent." A copy of the item child needs not be moved to the new
folder separately from the folder "parent."
[0145] In some implementations, the animation can be presented when
the file system operations involved in grouping the selected search
results can be completed in a defined time window. In some
implementations, the user interface can be kept responsive to
inputs that do not conflict with the file system operations while
the file system operations are underway in the background. In some
implementations, operating system events that would affect the user
interface can be queued and dealt with after the completion of the
animation, if the animation is presented in the user interface.
[0146] In some implementations, the user can restore the items in
the new folder to their original locations. For example, the user
can enter a defined input for restoring items in the new folder to
their original locations in the file system hierarchy. On the user
interface, in response to the restore command, the reverse
animation can be presented showing the items flying out of the new
folder back to the original folder from which the items were
selected, and the new folder is removed from the user interface. In
some implementations, respective destination locations of the
selected items and other items in the user interface presenting the
original folder can be determined, for example, based on the
keep-arranged criteria associated with the user interface. In some
implementations, if intervening operations have caused changes to
the original folder, and the restoration cannot be completed
successfully in the file system hierarchy, an error message can be
generated, and the animation showing the selected items flying from
the new folder back to the original folder will not be
presented.
Exemplary Processes for Grouping Items in a Folder
[0147] FIG. 5 is a flow diagram of an exemplary process 500 for
showing an animation illustrating the grouping of items in response
to a grouping command. In the exemplary process 500, first inputs
selecting one or more items presented in a user interface of the
device can be received (502). Then, a second input for grouping the
selected one or more items in a folder can be received (504). In
response to the second input, the operating system can cause an
animation to be presented in the user interface illustrating the
folder being created and each of the selected one or more items
being moved into the folder along a respective path on the user
interface (506). More details of the presentation of the animation
can be found in the description of FIGS. 1A-4E.
[0148] FIG. 6 is a flow diagram of an exemplary process 600 for
showing an animation illustrating the creation of a folder and the
respective movements of selected items into the folder. In the
exemplary process 600, a folder location can be determined in the
user interface based on respective locations of the selected one or
more items (602). Then, a representation of the folder can be
animated into the folder location (604). After the representation
of the folder is presented at the folder location, the operating
system can cause respective representations of the one or more
items to move from their respective locations into the
representation of the folder along the items' respective paths
(606).
[0149] In some implementations, each path is along a respective
trajectory starting from the respective location of one of the
selected items and terminates at the folder location of the
folder.
[0150] In some implementations, the operating system can cause the
representation of the folder to animate at the folder location
visually indicate receipt of the selected items into the
folder.
[0151] FIG. 7A is a flow diagram of an exemplary process 700 for
determining a suitable folder location on a free-arranged desktop.
In the process 700, a weighted average of the respective locations
of the selected items on the desktop can be determined (702). Then,
the weighted average can be designated as the folder location for
the folder (704).
[0152] FIG. 7B is a flow diagram of another exemplary process 710
for determining a folder location on a keep-arranged desktop. The
desktop includes an evenly spaced grid. In the process 710, a
weighted average of the respective locations of the selected items
on the desktop can be determined (712). An unoccupied grid location
nearest the weighted average can be identified (714). Then, the
identified unoccupied grid location can be designated as the folder
location for the folder (716).
[0153] FIG. 8A is a flow diagram of an exemplary process 800 for
showing an animation illustrating the grouping of items in a
keep-arranged desktop. In the process 800, an initial folder
location can identified in the user interface based on respective
locations of the selected one or more items (802). Then, the
operating system can cause a representation of the destination
folder to be animated into the initial folder location and
respective representations of the one or more items to move from
their respective locations into the representation of the
destination folder along the items' respective paths (804). A third
input committing a name of the destination folder can be received
(806). In response to the third input, a final folder location can
be determined for the destination folder based on the keep-arranged
criterion (808). Then, the operating system can cause the
representation of the destination folder to be animated from the
initial folder location to the final folder location in the user
interface (810).
[0154] FIG. 8B is a flow diagram of an exemplary process 820 for
showing an animation illustrating the movements of the destination
folder and other items on the keep-arranged desktop to their final
destinations on the keep-arranged desktop after the items are
grouped into the destination folder. In the process 820, in
response to the third input, respective new locations of existing
items on the desktop can be determined according to the
keep-arranged criterion (822). Then, the operating system can cause
representations of the existing items on the desktop to be animated
from their original locations to their respective new locations as
the destination folder is animated from the initial folder location
to the final folder location (824).
[0155] FIG. 9A is a flow diagram of an exemplary process 900 for
suspending the start of the grouping animation for a defined time
window pending the completion of the file system operations for the
grouping action. In the exemplary process 900, the operating system
can wait for a status notification on file system operations for
the grouping of the selected items (902). The operating system
determines whether the notification indicating the successfully
completion of the file system operations is received before the
expiration of the defined time window (904). The operating system
can cause changes to the user interface illustrating progress of
the file system operations if the status notification indicates
expiration of the defined period of time before the successful
completion of the file system operations (906). The operating
system can cause the animation to be presented if the status
notification indicates successful completion of the file system
operations within a defined period of time (908).
[0156] In some implementations, after the expiration of the defined
period of time and before the successful completion of the file
system operations for grouping the selected items into the
destination folder, the user interface remains operable to respond
to other operations that do not conflict with the file system
operations for grouping the selected items into the destination
folder.
[0157] FIG. 9B is a flow diagram of an exemplary process 910 for
queuing system events until completion of the animation or the end
of the defined time window. In the example process 910, while
waiting for the status notification on the file system operations,
the operating system can queue up one or more system events that
require modifications to the user interface (912). The operating
system can respond to the queued one or more system events after
the expiration of the defined period of time or the completion of
the animation (914).
[0158] FIG. 10 is a flow diagram of an exemplary process 1000 for
showing an animation illustrating the reversing of the grouping of
the selected items. In the exemplary process 1000, a third input
instructing restoration of the selected items to their original
locations can be received (1002). In response to the third input,
respective destination locations of the selected items and other
items in the user interface can be determined (1004). Then, the
operating system can cause the selected items being animated out of
the destination folder and the selected items and the other items
being animated to their respective destination locations
(1006).
[0159] FIG. 11 is a flow diagram of an exemplary process 1100 for
showing an animation illustrating the grouping of items from an
existing folder in a list view interface of the existing folder. In
some implementations, the selected items and zero or more other
items belong to a common folder and the user interface is a list
view interface showing the selected items (and zero or more
unselected items) in a list. In the exemplary process 1100, the
operating system can cause a representation of the destination
folder to be presented in proximity to the list (1102). Then, the
operating system can cause respective representations of the
selected items to be lifted off of the list and moved into the
representation of the destination folder along the items'
respective paths (1104). Respective destination locations of the
new folder and other unselected items in the list can be determined
based on a keep-arranged criterion (1106). Then, the operating
system can cause the respective representations of the destination
folder and the other unselected items in the list to be animated to
their respective destination locations after a filename has been
determined for the destination folder (1108).
[0160] In some implementations, the respective representation of
each selected item follows a respective path (e.g., curved path) to
the representation of the destination folder when the selected item
is moved to the representation of the destination folder.
[0161] In some implementations, the respective representations of
the selected items change appearance when the respective
representations of the selected items are lifted off of the
list.
[0162] In some implementations, the respective representations of
the selected items start to move toward the representation of the
destination folder asynchronously.
[0163] In some implementations, the selected item that is closest
to the representation of the new folder is animated toward the
representation of the new folder first, followed by other selected
items in an order based on the respective distances of the selected
items from the representation of the destination folder.
[0164] FIG. 12A is a flow diagram of an exemplary process 1200 for
showing an animation illustrating the grouping of items from an
existing folder in a column view interface of the existing folder.
In some implementations, the user interface is a column view
interface showing one or more columns representing consecutive
levels of a file system hierarchy, each column presenting child
items of a selected parent item in an adjacent column, and the
selected items have a common parent item and are presented in a
first column in the user interface. In the exemplary process 1200,
the operating system can cause a representation of the destination
folder to be presented in a new column adjacent to the first column
in the column view interface (1202). The operating system can cause
respective representations of the selected items to be lifted up
and moved into the representation of the destination folder (1204).
A third input committing a name for the destination folder can be
received (1206). In response to the third input, respective
destination locations of the destination folder and other
unselected items in the first column can be determined based on a
keep-arranged criterion (1208). Then, the operating system can
cause the respective representations of the destination folder and
the other unselected items to be animated to their respective
destination locations in the column view interface (1210).
[0165] FIG. 12B is a flow diagram of another exemplary process 1220
for showing an animation illustrating the grouping of items from an
existing folder in a column view interface of the existing folder.
In the exemplary process 1220, the operating system can cause a
representation of the destination folder to be presented at an
initial folder location in a first column in the column view
interface (1222). In some implementations, the first column
displays the items of the existing folder and one or more items
have been selected from the first column. The operating system can
cause respective representations of the selected items to be lifted
up and moved into a new column adjacent to the first column in the
column view interface (1224). An input committing a name for the
destination folder can be received (1226). In response to the
input, respective destination locations of the destination folder
and other unselected items in the first column can be determined
based on a keep-arranged criterion (1228). Then, the operating
system can cause the respective representations of the destination
folder and the other unselected items to be animated to their
respective destination locations in the column view interface
(1230).
[0166] FIG. 13A is a flow diagram of an exemplary process 1300 for
showing an animation illustrating the grouping of items from a
search result window. In some implementations, the one or more
selected items are results of a search that are presented in a
search result window. In the exemplary process 1300, the operating
system can cause a representation of the destination folder to be
animated into a folder location (1302). After the representation of
the destination folder is presented at the folder location, the
operating system can cause respective representations of the one or
more items to move from their respective locations in the search
result window into the representation of the destination folder
(1304).
[0167] FIG. 13B is a flow diagram of an exemplary process 1310 for
creating a destination folder for the search results in the file
system and maintaining the original hierarchical relationship
between the search results in the destination folder. In some
implementations, at least a first item of the selected items is a
descendent item of a second item of the selected items in a file
system hierarchy. In the exemplary process 1310, the new folder can
be created in the file system hierarchy (1312). Then, the selected
items can be moved from their original locations in the file system
hierarchy into the new folder in the file system hierarchy, where
the hierarchical relationship between the first item and the second
item is preserved in the destination folder (1314).
[0168] FIG. 14 is a flow diagram of another exemplary process 1400
for grouping items in a destination folder (e.g., a new folder). In
the exemplary process 1400, first inputs selecting one or more
items presented in a user interface of the device can be received
(1402). A second input for grouping the selected one or more items
can be received (1404). In response to the second input, the
operating system can cause an animation to be presented in the user
interface illustrating a destination folder being created and each
of the selected one or more items being moved asynchronously into
the destination folder on the user interface (1406).
Exemplary Device Architecture
[0169] FIG. 15 is a block diagram of exemplary hardware
architecture for implementing the features and processes described
in reference to FIGS. 1-14. The device can include memory interface
1502, one or more data processors, image processors and/or
processors 1504, and peripherals interface 1506. Memory interface
1502, one or more processors 1504 and/or peripherals interface 1506
can be separate components or can be integrated in one or more
integrated circuits. The various components in the device, for
example, can be coupled by one or more communication buses or
signal lines.
[0170] Sensors, devices, and subsystems can be coupled to
peripherals interface 1506 to facilitate multiple functionalities.
For example, motion sensor 1510, light sensor 1512, and proximity
sensor 1514 can be coupled to peripherals interface 1506 to
facilitate orientation, lighting, and proximity functions of the
mobile device. Location processor 1515 (e.g., GPS receiver) can be
connected to peripherals interface 1506 to provide geopositioning.
Electronic magnetometer 1516 (e.g., an integrated circuit chip) can
also be connected to peripherals interface 1506 to provide data
that can be used to determine the direction of magnetic North.
Thus, electronic magnetometer 1516 can be used as an electronic
compass. Accelerometer 1517 can also be connected to peripherals
interface 1506 to provide data that can be used to determine change
of speed and direction of movement of the mobile device.
[0171] Camera subsystem 1520 and an optical sensor 1522, e.g., a
charged coupled device (CCD) or a complementary metal-oxide
semiconductor (CMOS) optical sensor, can be utilized to facilitate
camera functions, such as recording photographs and video
clips.
[0172] Communication functions can be facilitated through one or
more wireless communication subsystems 1524, which can include
radio frequency receivers and transmitters and/or optical (e.g.,
infrared) receivers and transmitters. The specific design and
implementation of the communication subsystem 1024 can depend on
the communication network(s) over which a mobile device is intended
to operate. For example, a mobile device can include communication
subsystems 1524 designed to operate over a GSM network, a GPRS
network, an EDGE network, a WiFi or WiMax network, and a Bluetooth
network. In particular, the wireless communication subsystems 1524
can include hosting protocols such that the mobile device can be
configured as a base station for other wireless devices.
[0173] Audio subsystem 1526 can be coupled to a speaker 1528 and a
microphone 1530 to facilitate voice-enabled functions, such as
voice recognition, voice replication, digital recording, and
telephony functions.
[0174] I/O subsystem 1540 can include touch screen controller 1542
and/or other input controller(s) 1544. Touch-screen controller 1542
can be coupled to a touch screen 1546 or pad. Touch screen 1546 and
touch screen controller 1542 can, for example, detect contact and
movement or break thereof using any of a plurality of touch
sensitivity technologies, including but not limited to capacitive,
resistive, infrared, and surface acoustic wave technologies, as
well as other proximity sensor arrays or other elements for
determining one or more points of contact with touch screen
1546.
[0175] Other input controller(s) 1544 can be coupled to other
input/control devices 1548, such as one or more buttons, rocker
switches, thumb-wheel, infrared port, USB port, and/or a pointer
device such as a stylus. The one or more buttons (not shown) can
include an up/down button for volume control of speaker 1528 and/or
microphone 1530.
[0176] In one implementation, a pressing of the button for a first
duration may disengage a lock of the touch screen 1546; and a
pressing of the button for a second duration that is longer than
the first duration may turn power to the device on or off. The user
may be able to customize a functionality of one or more of the
buttons. The touch screen 1546 can, for example, also be used to
implement virtual or soft buttons and/or a keyboard.
[0177] In some implementations, the device can present recorded
audio and/or video files, such as MP3, AAC, and MPEG files. In some
implementations, the device can include the functionality of an MP3
player, such as an iPod.TM.. The device may, therefore, include a
pin connector that is compatible with the iPod. Other input/output
and control devices can be used.
[0178] Memory interface 1502 can be coupled to memory 1550. Memory
1550 can include high-speed random access memory and/or
non-volatile memory, such as one or more magnetic disk storage
devices, one or more optical storage devices, and/or flash memory
(e.g., NAND, NOR). Memory 1550 can store operating system 1552,
such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded
operating system such as VxWorks. Operating system 1552 may include
instructions for handling basic system services and for performing
hardware dependent tasks. In some implementations, operating system
1552 can include a kernel (e.g., UNIX kernel).
[0179] Memory 1550 may also store communication instructions 1554
to facilitate communicating with one or more additional devices,
one or more computers and/or one or more servers. Memory 1550 may
include graphical user interface instructions 1556 to facilitate
graphic user interface processing, such as the user interfaces
illustrated in FIGS. 1A-4E; sensor processing instructions 1558 to
facilitate sensor-related processing and functions; phone
instructions 1560 to facilitate phone-related processes and
functions; electronic messaging instructions 1562 to facilitate
electronic-messaging related processes and functions, such as SMS
and MMS; web browsing instructions 1564 to facilitate web
browsing-related processes and functions; media processing
instructions 1566 to facilitate media processing-related processes
and functions; GPS/Navigation instructions 1568 to facilitate GPS
and navigation-related processes and instructions; and camera
instructions 1570 to facilitate camera-related processes and
functions. The memory 1550 may also store other software
instructions (not shown), such as security instructions, web video
instructions to facilitate web video-related processes and
functions, and/or web shopping instructions to facilitate web
shopping-related processes and functions.
[0180] Memory 1550 can include instructions 1572 for presenting the
user interface changes and implementing the file system operations
and operating system operations for grouping items in a new folder.
Memory 1550 can also include other instructions 1574 for
implementing other features, user interfaces, and processes
described in reference to FIGS. 1-14.
[0181] Each of the above identified instructions and applications
can correspond to a set of instructions for performing one or more
functions described above. These instructions need not be
implemented as separate software programs, procedures, or modules.
Memory 1050 can include additional instructions or fewer
instructions. Furthermore, various functions of the mobile device
may be implemented in hardware and/or in software, including in one
or more signal processing and/or application specific integrated
circuits.
[0182] The described features can be implemented advantageously in
one or more computer programs that are executable on a programmable
system including at least one programmable processor coupled to
receive data and instructions from, and to transmit data and
instructions to, a data storage system, at least one input device,
and at least one output device. A computer program is a set of
instructions that can be used, directly or indirectly, in a
computer to perform a certain activity or bring about a certain
result. A computer program can be written in any form of
programming language (e.g., Objective-C, Java), including compiled
or interpreted languages, and it can be deployed in any form,
including as a stand-alone program or as a module, component,
subroutine, or other unit suitable for use in a computing
environment.
[0183] Suitable processors for the execution of a program of
instructions include, by way of example, both general and special
purpose microprocessors, and the sole processor or one of multiple
processors or cores, of any kind of computer. Generally, a
processor will receive instructions and data from a read-only
memory or a random access memory or both. The essential elements of
a computer are a processor for executing instructions and one or
more memories for storing instructions and data. Generally, a
computer will also include, or be operatively coupled to
communicate with, one or more mass storage devices for storing data
files; such devices include magnetic disks, such as internal hard
disks and removable disks; magneto-optical disks; and optical
disks. Storage devices suitable for tangibly embodying computer
program instructions and data include all forms of non-volatile
memory, including by way of example semiconductor memory devices,
such as EPROM, EEPROM, and flash memory devices; magnetic disks
such as internal hard disks and removable disks; magneto-optical
disks; and CD-ROM and DVD-ROM disks. The processor and the memory
can be supplemented by, or incorporated in, ASICs
(application-specific integrated circuits).
[0184] To provide for interaction with a user, the features can be
implemented on a computer having a display device such as a CRT
(cathode ray tube) or LCD (liquid crystal display) monitor for
displaying information to the user and a keyboard and a pointing
device such as a mouse or a trackball by which the user can provide
input to the computer.
[0185] The features can be implemented in a computer system that
includes a back-end component, such as a data server, or a
middleware component, such as an application server or an Internet
server, or that includes a front-end component, such as a client
computer having a graphical user interface or an Internet browser,
or any combination of them. The components of the system can be
connected by any form or medium of digital data communication such
as a communication network. Examples of communication networks
include, e.g., a LAN, a WAN, and the computers and networks forming
the Internet.
[0186] The computer system can include clients and servers. A
client and server are generally remote from each other and
typically interact through a network. The relationship of client
and server arises by virtue of computer programs running on the
respective computers and having a client-server relationship to
each other.
[0187] One or more features or steps of the disclosed embodiments
can be implemented using an API. An API can define on or more
parameters that are passed between a calling application and other
software code (e.g., an operating system, library routine,
function) that provides a service, that provides data, or that
performs an operation or a computation.
[0188] The API can be implemented as one or more calls in program
code that send or receive one or more parameters through a
parameter list or other structure based on a call convention
defined in an API specification document. A parameter can be a
constant, a key, a data structure, an object, an object class, a
variable, a data type, a pointer, an array, a list, or another
call. API calls and parameters can be implemented in any
programming language. The programming language can define the
vocabulary and calling convention that a programmer will employ to
access functions supporting the API.
[0189] In some implementations, an API call can report to an
application the capabilities of a device running the application,
such as input capability, output capability, processing capability,
power capability, communications capability, etc.
[0190] A number of implementations have been described.
Nevertheless, it will be understood that various modifications may
be made. For example, elements of one or more implementations may
be combined, deleted, modified, or supplemented to form further
implementations. Yet another example, the logic flows depicted in
the figures do not require the particular order shown, or
sequential order, to achieve desirable results. In addition, other
steps may be provided, or steps may be eliminated, from the
described flows, and other components may be added to, or removed
from, the described systems. Accordingly, other implementations are
within the scope of the following claims.
* * * * *