U.S. patent application number 14/193441 was filed with the patent office on 2014-06-26 for displaying information having headers or labels on a display device display pane.
This patent application is currently assigned to ADOBE SYSTEMS INCORPORATED. The applicant listed for this patent is ADOBE SYSTEMS INCORPORATED. Invention is credited to Vincent L. Parsons.
Application Number | 20140181732 14/193441 |
Document ID | / |
Family ID | 49958098 |
Filed Date | 2014-06-26 |
United States Patent
Application |
20140181732 |
Kind Code |
A1 |
Parsons; Vincent L. |
June 26, 2014 |
DISPLAYING INFORMATION HAVING HEADERS OR LABELS ON A DISPLAY DEVICE
DISPLAY PANE
Abstract
Computer-implemented methods, apparatus, and systems
implementing techniques for displaying labels included in a body of
content are presented. Part of a portion of a body of content is
displayed in a display area. The body of content includes a label
for the portion, and the label has a normal position adjacent to
and not overlapping the portion in the body of content. The label
is displayed in the display area in the normal position if doing so
places the label fully within the display area. The label is
displayed at a separate location only if displaying the label in
the normal position does not place the label fully within the
display area and only while any non-trivial part of the portion is
displayed in the display area.
Inventors: |
Parsons; Vincent L.; (San
Jose, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
ADOBE SYSTEMS INCORPORATED |
San Jose |
CA |
US |
|
|
Assignee: |
ADOBE SYSTEMS INCORPORATED
San Jose
CA
|
Family ID: |
49958098 |
Appl. No.: |
14/193441 |
Filed: |
February 28, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14148656 |
Jan 6, 2014 |
|
|
|
14193441 |
|
|
|
|
11000563 |
Nov 30, 2004 |
8640048 |
|
|
14148656 |
|
|
|
|
Current U.S.
Class: |
715/784 |
Current CPC
Class: |
G06F 40/103 20200101;
G06F 40/14 20200101; G06F 3/04855 20130101; G06F 3/0485
20130101 |
Class at
Publication: |
715/784 |
International
Class: |
G06F 3/0485 20060101
G06F003/0485 |
Claims
1-47. (canceled)
48. A computer implemented method for displaying on a display
device information received from a communication network,
comprising: in response to a user input, displaying at least a
portion of information organizable by section labels, wherein the
information is implemented with a mark-up language and accessed via
a communication network; displaying a first section label
corresponding to a first section of the information, wherein the
entire first section of the information cannot be displayed at the
same time; in response to user input, scrolling the information to
reveal undisplayed portions of the first section while
simultaneously maintaining display of the first section label at a
location; in response to user input, scrolling the information to
reveal a second section label corresponding to a second section of
the information, wherein the second section label scrolls with the
second section while the first section label remains at the
location; and in response to the second section label being
scrolled to the location of the first section label, replacing the
first section label with the second section label at the
location.
49. The method of claim 48, wherein the display device has a
viewing area and replacing the first section label with the second
section label at the location includes scrolling the first section
label out of the viewing area while the second section label
scrolls into the location.
50. The method of claim 48, further comprising: in response to user
input, scrolling the information to reveal a third section label
corresponding to a third section of the information, wherein the
third section label is positioned between the second section and
the third section and scrolls with the third section while the
second section label remains at the location; and in response to
the third section label being scrolled to the location of the
second section label, replacing the second section label with the
third section label at the location.
51. The method of claim 48, wherein the display device is a mobile
computer.
52. The method of claim 48, wherein the second section label is
positioned between the first section and the second section.
53. The method of claim 48, wherein the information organizable by
section labels includes at least one content element that is
defined using a start tag and an end tag.
54. The method of claim 48, wherein the information organizable by
section labels is an Extensible Markup Language (XML) document.
55. The method of claim 48, wherein the user input is tactile
input.
56. The method of claim 48, wherein the method is executed on
multiple computers interconnected by the communication network.
57. A computing system, comprising: a display; a processor; a user
interface at least partially executable by the processor and
configured to: in response to a user input, display at least a
portion of information organizable by section labels, wherein the
information is implemented with a mark-up language and accessed via
a communication network; display a first section label
corresponding to a first section of the information, wherein the
entire first section of the information cannot be displayed at the
same time; in response to user input, scroll the information to
reveal undisplayed portions of the first section while
simultaneously maintaining display of the first section label at a
location; in response to user input, scroll the information to
reveal a second section label corresponding to a second section of
the information, wherein the second section label is positioned
between the first section and the second section and scrolls with
the second section while the first section label remains at the
location; and in response to the second section label being
scrolled to the location of the first section label, replace the
first section label with the second section label at the
location.
58. The system of claim 57, wherein the display has a viewing area
and the user interface replaces the first section label with the
second section label at the location by scrolling the first section
label out of the viewing area while the second section label
scrolls into the location.
59. The system of claim 57, wherein the user interface is further
configured to: in response to user input, scroll the information to
reveal a third section label corresponding to a third section of
the information, wherein the third section label is positioned
between the second section and the third section and scrolls with
the third section while the second section label remains at the
location; and in response to the third section label being scrolled
to the location of the second section label, replace the second
section label with the third section label at the location.
60. The system of claim 57, wherein the system is a mobile computer
and the user input is tactile input.
61. The system of claim 57, wherein the information organizable by
section labels includes at least one content element that is
defined using a start tag and an end tag.
62. The system of claim 57, wherein the information organizable by
section labels is an Extensible Markup Language (XML) document.
63. The system of claim 57, wherein the system is configured to
communicate with one or more additional computer systems
interconnected by the communication network, and the user interface
executes on a plurality of the computing systems.
64. A non-transient computer program product encoded with
instructions that when executed by one or more processors cause a
process for displaying on a display device information received
from a communication network, the process comprising: in response
to a user input, display at least a portion of information
organizable by section labels, wherein the information is
implemented with a mark-up language and accessed via a
communication network; display a first section label corresponding
to a first section of the information, wherein the entire first
section of the information cannot be displayed at the same time; in
response to user input, scroll the information to reveal
undisplayed portions of the first section while simultaneously
maintaining display of the first section label at a location; in
response to user input, scroll the information to reveal a second
section label corresponding to a second section of the information,
wherein the second section label is positioned between the first
section and the second section and scrolls with the second section
while the first section label remains at the location; and in
response to the second section label being scrolled to the location
of the first section label, replace the first section label with
the second section label at the location.
65. The computer program product of claim 64, wherein the display
device has a viewing area and replacing the first section label
with the second section label at the location includes scrolling
the first section label out of the viewing area while the second
section label scrolls into the location.
66. The computer program product of claim 64, the process further
comprising: in response to user input, scroll the information to
reveal a third section label corresponding to a third section of
the information, wherein the third section label is positioned
between the second section and the third section and scrolls with
the third section while the second section label remains at the
location; and in response to the third section label being scrolled
to the location of the second section label, replace the second
section label with the third section label at the location.
67. The computer program product of claim 64, wherein the
information organizable by section labels is an Extensible Markup
Language (XML) document.
Description
BACKGROUND
[0001] The present invention relates to displaying information on
an electronic device in an interactive system.
[0002] Electronic devices, such as personal computers and personal
digital assistants (PDAs), typically include a display to provide
information (e.g., documents or directories of files) to a user. A
user interface can present information on the display in one or
more display panes. The viewing area of every pane is of a finite
extent, so when a large amount of information is being displayed to
a user, only part of the information typically is displayed in the
pane at any given time.
[0003] User interfaces often allow a user to scroll through
information along one or more dimensions. Scrolling allows a user
to bring a section of the information that previously was out of
sight into the pane. If a user cannot view all of the information
simultaneously, it can be difficult for the user to keep track of
what section of the information they are viewing.
[0004] A body of information is commonly organized into multiple
(possibly overlapping) subsets of information that have associated
visible labels, such as headings or names. For example,
word-processing documents stored in a file system typically are
arranged into named folders, the names of which are displayed in a
user interface for the file system. Each document typically
includes an associated filename or title that also is displayed.
Within an individual document, sections and subsections typically
have associated headings and subheadings that are displayed in a
word-processing application. In a spreadsheet, a cell of
information can have two or more associated headings, such as one
heading for the column in which the cell is located, and one for
the row.
[0005] When the information displayed in the pane of a conventional
user interface is scrolled, the visible labels associated with
subsets of the information scroll along with the information
because the labels are part of the information. Some labels provide
contextual cues (e.g., headings or directory names), and some
labels provide details (e.g., the size or date of creation of a
file) about the information with which they are associated.
[0006] Some user interfaces provide a separate window that displays
contextual information for primary information being displayed in a
main window. For example, in a file system, a directory tree often
is displayed while a user views the contents of a folder. In a
word-processing application, a listing of headings and subheadings
in a document can be displayed in a separate pane while the user is
editing the document. In a spreadsheet application, rows, columns,
or both can be frozen so that they do not scroll with the other
cells in a spreadsheet.
[0007] Certain display environments, in which the display of
information is not controlled by a user, display a label when any
portion of information with which the label is associated is
visible. For example, a non-interactive display environment exists
for displaying information on a television screen. The information
is scrolled in a display area on the screen, and visible labels
associated with subsets of the information scroll along with the
information. When certain labels (e.g., start times in a directory
of television programs) reach the top of the display area, the
label is fixed while the subset of information continues to scroll.
A viewer does not have control over the display of the information
in this non-interactive display environment.
[0008] Some computer programs allow a user to place a comment in a
document. The Adobe.RTM. Acrobat.RTM. application allows a user to
place a comment in a document by adding an electronic sticky note.
When displayed, a sticky note overlaps the content of the document
and does not affect the original layout of the document. The sticky
note can be displayed in a normal display position overlying a
portion of the page on which the note is located. If the normal
display position of the note is visible, the note scrolls with the
content. If the normal display position of the note is not visible,
but part of the page on which the note is located is visible, the
note remains visible at an edge of the display area as the page is
scrolled. When the page scrolls out of view, the note scrolls out
of view as well. Highlighting can indicate specific words or lines
in the document to which the sticky note is related, but the
display behavior of the note is based on the page on which the note
is placed, rather than on the highlighted text.
SUMMARY
[0009] In one aspect, the invention features computer-implemented
methods and apparatus, including computer program products,
implementing techniques for displaying information. A user-selected
part of a first portion of a body of content is displayed in a
display area according to a rendering of the body of content. The
body of content includes a first label for the first portion, and
the rendering places the first label at a normal position adjacent
to and not overlapping the first portion in the body of content.
The first label is displayed in the display area in the normal
position relative to the first portion if doing so places the first
label fully within the display area. The first label is displayed
at a separate location only if to displaying the first label in the
normal position does not place the first label fully within the
display area and only while any non-trivial part of the first
portion is displayed in the display area. The separate location is
distinct from the normal position.
[0010] Particular implementations can include one or more of the
following features. A user-selected part of a second portion of the
body of content is displayed in the display area according to the
rendering of the body of content. The body of content includes a
second label for the second portion, and the rendering places the
second label at a normal position adjacent to and not overlapping
the second portion in the body of content. The second label is
distinct from the first label, and the second portion includes the
first portion. The second label is displayed in the display area in
the normal position relative to the second portion if doing so
places the second label fully within the display area. The second
label is displayed at the separate location only if displaying the
second label in the normal position relative to the second portion
does not place the second label fully within the display area and
only while any non-trivial part of the second portion is displayed
in the display area. The separate location is distinct from the
normal position relative to the second portion. The first label is
displayed adjacent to the second label while both labels are
displayed at the separate location. The first label is displayed
adjacent to the second label in one of (i) a normal positional
relationship and (ii) a space-saving positional relationship.
[0011] The separate location is one of an edge of the display area
and an auxiliary display area. The first label is displayed as a
semi-transparent background in the display area. The body of
content is generated dynamically. The first label displayed at the
separate location is visually differentiated from the first label
displayed in the normal position. A number of labels displayed at
the separate location, an area used to display labels at the
separate location, or both, are limited. The user-selected part is
a proper subset of the first portion. The body of content is a
word-processing document, the first label is a heading, and the
first portion lies between the first label and a second label. The
first portion is one of a figure, a table, and a text box, and the
first label is a caption. The first portion is a set of images,
each image representing a page in a document, and the first label
includes a name of the document.
[0012] An end of the first portion is indicated by an explicit end
marker in the body of content. The first portion is scrolled to
display the user-selected part, where the scrolling can be in two
directions. The separate location is selected according to a
relative relationship of the normal display position to the first
portion. If the normal display position is below the first portion,
a bottom edge of the display area is selected as the separate
location, if the normal display position is above the first
portion, a top edge of the display area is selected as the separate
location. The first label is a closest label in the body of content
that has a specified positional relationship to the first portion.
The first label is one of a heading, a filename, a start tag, a
programming-language statement, and a user-defined category name.
The first label is a member of a user-selected group of labels,
where the body of content includes labels that are not members of
the group of labels. The display area is resized, where the
separate location is a location in the display area, and the
separate location is adjusted based on the resizing.
[0013] In another aspect of the invention, content is received for
display in a display area. The content has an associated label,
where the label has a normal position adjacent to, and not
overlapping, the content. The content and the label are scrolled in
one direction responsive to user input until the label
substantially reaches a boundary of the display area. The label is
fixed at the boundary, while the content continues to be scrolled,
until no part of the content with which the label is associated is
visible in the display area.
[0014] Particular implementations can include one or more of the
following features. The label is above the content with which the
label is associated, and the label is fixed to a top of the display
area. The label is below the content with which the label is
associated, and the label is fixed to a bottom of the display
area.
[0015] In one aspect, the invention features methods and apparatus
implementing techniques that receive user input scrolling a body of
content in a display area in a first direction toward a first edge
of the display area to display a label preceding a portion of the
body of content as the body of content is scrolled in the first
direction, where the label is associated with the portion. After
the label is scrolled to the first edge of the display area the
label is fixed at the first edge of the display area while the body
of content continues to be scrolled in the first direction as long
as, but no longer than, any part of the portion is visible in the
display area.
[0016] In another aspect, the invention features a system for
displaying information. The system includes means for displaying a
user-selected part of a first portion of a body of content in a
display area according to a rendering of the body of content. The
body of content includes a first label for the first portion, and
the rendering places the first label at a normal position adjacent
to and not overlapping the first portion in the body of content.
The system includes means for displaying the first label in the
display area in the normal position relative to the first portion
if displaying the first label in the normal position places the
first label fully within the display area. The system also includes
means for displaying the first label at a separate location only if
displaying the first label in the normal position does not place
the first label fully within the display area and only while any
non-trivial part of the first portion is displayed in the display
area. The separate location is distinct from normal location.
[0017] Particular implementations can include means for performing
one or more of the following functions. The first label displayed
at the separate location is visually differentiated from the first
label displayed in the normal position. One of (i) a number of
labels displayed at the separate location and (ii) an area of the
separate location used to display the labels is limited. The first
portion is scrolled to display the user-selected part The separate
location is selected according to a relative relationship of the
normal position to the first portion.
[0018] The invention can be implemented to realize one or more of
the following advantages. A label associated with a subset of a
group of information is visible in a pane when any part of the
subset is visible in the pane. A user can scroll through the
information quickly to find a desired subset without hunting for
the precise location of labels. If a user quickly scrolls to an
arbitrary location in the information, or if the user jumps to the
arbitrary location (e.g., using a search feature), the user
immediately sees the labels associated with the information at the
arbitrary location.
[0019] The details of one or more embodiments of the invention are
set forth in the accompanying drawings and the description below.
Other features and advantages of the invention will become apparent
from the description, the drawings, and the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] FIG. 1A shows a document.
[0021] FIG. 1B shows the document displayed in a pane.
[0022] FIGS. 1C-1E show the document displayed in the pane after
being scrolled.
[0023] FIG. 2A shows a spreadsheet document.
[0024] FIG. 2B shows the spreadsheet document in a pane.
[0025] FIGS. 2C-2F show the spreadsheet document in the pane after
being scrolled.
[0026] FIG. 3A shows a dynamically-generated collection of
thumbnail images.
[0027] FIG. 3B shows the collection of thumbnail images in a
pane.
[0028] FIGS. 3C-3D show the collection of thumbnail images in the
pane after being scrolled.
[0029] FIG. 4A shows an XML document.
[0030] FIG. 4B shows the XML document in a pane.
[0031] FIGS. 4C-4E show the XML document in the pane after being
scrolled.
[0032] FIG. 5A shows a C program.
[0033] FIGS. 5B-5D show the C program in a pane after being
scrolled.
[0034] FIG. 6 is a flowchart of a process for displaying labels in
a pane.
[0035] Like reference numbers and designations in the various
drawings indicate like elements.
DETAILED DESCRIPTION
[0036] This specification describes a user-interface design in
which a label is displayed in a pane when a subset of information
with which the label is associated is displayed in the pane. The
label has a normal display position that is part of, and does not
overlap, the displayed information. As the subset of information
scrolls in a given direction, the label scrolls in a conventional
manner until the label reaches a boundary of the pane. As long as
the scrolling continues in the same direction and a non-trivial
(that is, usable or identifiable) part of the subset of information
with which the label is associated remains visible in the pane, the
label remains fixed to the boundary of the pane. When the subset of
information no longer is visible in the pane, the label scrolls out
of the pane as well. Labels typically are adjacent to the
associated subset of information in the plane of the pane when
displayed in the normal display position. A body of information can
include multiple subsets of information arranged in a linear order.
Labels associated with the subsets of information have a position
in the linear order that determines the normal display position of
each label.
[0037] FIG. 1A shows a document 100 (e.g., a word-processing
document) that includes a title 110, a heading 120, subheadings 130
and 140, and text blocks 150, 160, and 170. The title 110, the
heading 120, and the subheadings 130 and 140 form a hierarchical
set of labels. The subheading 140 is associated with the text block
170, and the subheading 130 is associated with text block 160. The
heading 120 is associated with the subheadings 130 and 140 and with
the text blocks 160 and 170. The title 110 is associated with the
text blocks 150-170, the subheadings 130 and 140, and the heading
120. The foregoing associations exist by virtue of the relative
physical positions of these parts of the document to each other on
the displayed page or pages of the document.
[0038] FIG. 1B shows a pane 180 that includes a scroll bar 190. A
user-selected portion of the document 100 is visible in the pane
180. The document 100 is scrolled all of the way to the top, so the
title 110, the heading 120, the subheading 130, and the text block
150 are fully visible in their normal positions in the document
100. The text block 160 is partially obscured because it extends
outside of the pane 180.
[0039] FIG. 1C shows the pane 180 after a user has scrolled down
slightly in the document 100 (e.g., using the scroll bar 190 or
cursor keys). The title 110 is fixed in the pane 180 because all of
the text of the document 100 is associated with the title 110, and
the text of the document 100 is still visible in the pane 180. In a
conventional system, the title 110 would have scrolled out of the
pane 180 as the user scrolled down in the document 100. The heading
120 and the subheading 130 have scrolled up in their normal
positions adjacent to text box 160 as the user scrolled down.
[0040] FIG. 1D shows the pane 180 after the user has scrolled down
farther in the document 100. The title 110 is still fixed in the
pane 180. Part of the text box 160 has scrolled out of the pane
180. The heading 120 and the subheading 130 are fixed in the pane
180 because both are associated with the text box 160, and part of
the text box 160 is still visible. The subheading 140 has scrolled
up normally as the user scrolled down.
[0041] FIG. 1E shows the pane 180 after the user has scrolled down
even farther in the document 100. The title 110 and the heading 120
are still fixed in the pane 180. All of the text box 160 has
scrolled out of the pane 180, so the subheading 130 no longer is
fixed because no text associated with subheading 130 is visible in
the pane 180. If the user were to scroll back up in the document
100 far enough that part of the text block 160 (e.g., the line
"which . . . Representatives.") reappeared, the subheading 130
would again be fixed below the heading 120. The subheading 140 has
scrolled up normally as the user scrolled down and will remain
visible as long as part of the text box 170 is visible.
[0042] Sometimes it is not desired to display all of the levels of
a hierarchical set of labels, or to fix all the labels that could
be fixed. For example, fixing the title 110 in FIGS. 1C-1E may be
of limited use because all of the text of the document 100 is
associated with the title 110. A display system can specify which
labels are necessary or useful to fix and allow the other labels to
scroll normally. What levels of labels or kinds of labels (e.g.,
headings, table headings, and figure captions) to fix can also be
user-selectable. A user can decide whether to fix labels, or
whether to allow labels to scroll in a conventional manner.
[0043] The discussion of FIGS. 1A-1E assumes that the labels in the
document 100 have already been identified. Labels can be identified
explicitly or implicitly. In a word-processing environment, the
title 110, the heading 120, and the subheadings 130 and 140
typically have styles associated with them. The styles allow a
word-processing application to identify the relevant labels and the
subsets(s) of document 100 with which each label is associated. For
example, in an environment that uses hierarchical labels, content
between two labels at the same level of the hierarchy can be
associated with the first label, with the second label, or with a
label specified by a user.
[0044] In an application that processes documents that do not
contain information explicitly identifying labels, a document can
be processed to infer the existence of labels based on properties
of the text. For example, a method that examines the layout (e.g.,
paragraph length and word position) and text properties (e.g., font
size, underlining, and bolding) of the document can be used to find
labels. This method can also be used to find labels such as
captions for figures, tables, or text boxes. The figure, table, or
text box is identified in the document, and a caption associated
with the object is found by examining the layout and text
properties of text adjacent to the object.
[0045] FIG. 2A shows a spreadsheet document 200 that includes
column labels 204-214 and row labels 230-256. Labels 216-222 are
associated with areas (i.e., both rows and columns) of the document
200. The document 200 also includes blocks of cells 260-266. Each
cell within the blocks of cells is uniquely identifiable by the
combination of a row coordinate and a column coordinate.
[0046] FIG. 2B shows a pane 280 that includes a vertical scroll bar
290 and a horizontal scroll bar 295. A portion of the document 200
is visible in the pane 280. The document 200 is scrolled all of the
way to the top left corner, so the column labels 204-208, the
labels 216 and 220, the row labels 230-236 and 250-252, and the
block of cells 260 are fully visible in their normal positions in
the document 200 (that is, their positions in the document 200
shown in FIG. 2A).
[0047] FIG. 2C shows the pane 280 after a user has scrolled down in
the document 200. The rows containing column labels 204-208 and the
labels 216 and 220 are fixed because portions of the document 200
associated with these labels are still visible in the pane 280. The
rows associated with row labels 230-234 and 250-252 have scrolled
out of pane 280, so the row labels 230-234 and 250-252 no longer
are visible. The rows containing labels 218 and 222 and the row
labels 240-242 and 254-256 have scrolled into the pane 280 in a
normal manner as the user scrolled down.
[0048] FIG. 2D shows the pane 280 after the user has scrolled down
farther in the document 200. The row containing column labels
204-208 remains fixed in the pane 280, but the row containing
labels 218 and 222 has replaced the row containing labels 216 and
220 because no portion of the document 200 that is associated with
the labels 216 and 220 is visible.
[0049] FIG. 2E shows the pane 280 after the user has scrolled up
and to the right in the document 200. The row containing labels 216
and 220 again is fixed, as is the column containing row labels
232-236. Because the columns associated with column labels 204 and
206 have scrolled out of the pane 280, the column labels 204 and
206 are not visible.
[0050] FIG. 2F shows the pane 280 after a user has scrolled down
and to the right in the document 200. The label 222, the row label
256, and column labels 212 and 214 are fixed because cells from the
block of cells 266 are associated with these labels and are
visible.
[0051] The discussion of FIGS. 2A-2F assumes that the labels in the
document 200 have already been identified. A user can explicitly
identify labels in a spreadsheet environment (e,g., by assigning a
label type to a spreadsheet cell). The existence of labels can also
be inferred, for example, by recognizing patterns in the contents
of the spreadsheet cells.
[0052] FIG. 3A shows a collection 300 of thumbnail images. The
collection 300 includes thumbnail images 310-324, each of which is
an image of a page in a document. Headings 360, 364, and 368
separate the thumbnail images 310-324 by document. Therefore,
thumbnail images 310-314 are part of a first document, thumbnail
images 316-318 are part of a second document, and thumbnail images
320-324 are part of a third document. The headings 360, 364, and
368 display information about the document to which the respective
heading's thumbnail images belong (e.g., a title, number of pages,
filename, directory, file size, author, and/or date of creation).
Icons 361, 365, and 369 are displayed next to the headings 360,
364, and 368. The icons 361, 365, and 369 graphically indicate the
file type of the corresponding document. Labels 340-354 display
information associated with the respective thumbnail image 310-324
(e.g., page number or layout information).
[0053] The collection 300 is generated dynamically. That is, the
visual presentation of the images and headings displayed in
collection 300 is not stored in a file, but is assembled
dynamically from the documents.
[0054] FIG. 3B shows a pane 380 in which the collection 300 is
displayed. Thumbnail images 310-318, headings 360 and 364, icons
361 and 365, and labels 340-344 are visible. Labels 346-348, which
are associated with thumbnail images 316-318 and are located below
the images, are not visible in the pane 380. In one implementation,
such labels are fixed at the bottom of the pane 380 whenever the
associated thumbnail images 316-318 are partially visible. The
labels are fixed at the bottom of the pane 380 because the position
of the label is below the image with which it is associated. A
slider 385 allows a user to vary the size of the thumbnail images
310-318. A scroll bar 390 allows the user to scroll through one or
more documents to see all of the thumbnail images.
[0055] FIG. 3C shows the pane 380 after the user has scrolled down.
Labels 346 and 348 are now visible. Heading 360 and icon 361 are
fixed at the top of the pane 380 because the associated thumbnail
images 310-314 are visible. A new heading 368 and icon 369 have
scrolled into the pane 380.
[0056] FIG. 3D shows the pane 380 after the user has scrolled down
farther. The heading 364 and icon 365 have replaced the heading 360
and the icon 361 because thumbnail images 310-314 have scrolled out
of the pane 380. Thumbnail images 320-324 have scrolled into the
pane 380.
[0057] In another implementation, collection 300 and the user
interface displays illustrated in FIGS. 3B-3D are generated by an
image viewing or image editing application. The thumbnail images
310-324 are individual images that are associated with the
respective headings 360, 364, and 368 because the thumbnail images
310-314 share one or more common traits, the thumbnail images
316-318 share one or more common traits that are different from the
traits shared by the thumbnail images 310-314, and the thumbnail
images 320-324 share one or more common traits that are different
from the traits shared by the thumbnail images 310-318. Examples of
common traits include: being stored in the same directory in a file
system, having been created on the same date, or having been
grouped together by the user. At least one of the common traits is
indicated by the corresponding heading 360, 364, or 368.
[0058] Fixing labels in a display area while scrolling is useful in
a markup language editing context. For example, in Extensible
Markup Language (XML) documents, elements are defined using a start
tag and an end tag. The end tag is an explicit end marker, so text
between the start tag and the end tag is an element's content. An
element can contain other elements. FIG, 4A shows an XML document
400 that contains start tags 410-412 and 415 and end tags 431 and
434.
[0059] FIG. 4B shows a pane 480 in an editing application. The pane
480 includes a scroll bar 490. A portion of the XML document 400 is
visible in the pane 480. The XML program 400 is scrolled all of the
way to the top, so the start tags 410-412 and the end tags 431 and
434 are visible in their normal positions in the XML document
400.
[0060] FIG. 4C shows the pane 480 after a user has scrolled down
one line in the XML document 400. The start tag 410 for the element
"person" is fixed in the pane 480 because contents of the element
"person" are visible. In a conventional editing application, the
start tag 410 would scroll out of the pane 480 as the user scrolled
down one line in the XML document 400. The start tag 411 and the
end tag 431 have scrolled out of pane 480 because no content
associated with the element "name" is visible in the pane 480.
[0061] FIG. 4D shows the pane 480 after the user has scrolled down
farther in the X document 400. The start tags 410 and 412 are fixed
in the pane 480 because content associated with the elements
"person" and "children" is still visible.
[0062] FIG. 4E shows the pane 480 in an alternative implementation.
The fixed tags--start tags 410, 412, and 415--are all displayed on
the same line at the top of the pane 480, thus saving space in the
pane 480.
[0063] FIG. 5A shows a program 500 written in the C programming
language. The program 500 includes an "include" directive 510, a
function header 520, a declaration 530, a "for" statement 540, and
an "it' statement 550. The program 500 also includes a comment 560,
a return statement 575, opening brace 524, and closing braces 526,
546, and 556. An opening brace and a closing brace (an explicit end
marker) enclose portions of a C program that are associated with a
label. For example, the opening brace 524 and the closing brace 526
enclose a portion of the program 500 that is associated with the
function header 520.
[0064] FIG. 5B shows a portion of the program 500 displayed in the
pane 580. The pane 580 includes a scroll bar 590. The contents of
the pane 580 have been scrolled, and the function header 520 is
fixed at the top of the pane 580. The function header 520 is fixed
because a portion of the program 500 that is associated with the
function header 520 is visible in the pane 580. The directive 510
has scrolled out of the pane 580, as has opening brace 524.
[0065] FIG. 5C shows the pane 580 after a user has scrolled down
farther in the program 500. The declaration 530 and the comment 560
have scrolled out of the pane 580, and the function header 520, the
statement 540, and the statement 550 are fixed. Closing braces 546
and 556 are visible in the pane 580 and indicate where the portions
of the program 500 that are associated with the statements 540 and
550 respectively end.
[0066] FIG. 5D shows the pane 580 after a user has scrolled almost
to the end of the program 500. Statements 540 and 550 have scrolled
out of the pane 580 because the portions of the program 500 with
which statements 540 and 550 are associated are not visible in the
pane 580. The function header 520 is still fixed at the top of pane
580 because the function header 520 is associated with statement
575.
[0067] In an alternative implementation, opening braces are fixed
in a pane along with the label with which the opening braces arc
associated. For example, in FIG. 5B, the opening brace 524 would be
fixed on the line below, or on the same line as, the function
header 520.
[0068] As shown in FIG. 6, a process 600 receives a body of
information that is to be displayed in a pane (step 610). The body
of information includes subsets of information that have associated
visible labels. The labels are part of the information to be
displayed and typically occupy specific locations in the
information. For example, a label that is a heading typically is
located just before the information with which the heading is
associated.
[0069] When the body of information is too extensive to display
using the settings of the pane (e.g., zoom), only a portion of the
information is displayed (step 620). The process 600 determines
which subset or subsets of information are visible in the pane
(step 630). The process 600 also determines whether the label or
labels associated with any visible subsets are visible at their
specific location in the information (step 640). That is, the
process 600 determines whether a label with which a visible subset
is associated is outside of the pane.
[0070] If the label for the visible subset is outside of the pane,
the label is fixed along a border of the pane (step 650). When a
user is scrolling the information, step 650 fixes the label to the
border of the pane. In one implementation, labels can be fixed at a
pre-selected location other than the border of the pane. For
example, if the label for a visible subset is outside of the pane,
the label can be displayed in a popup pane that overlies the main
pane in which the information is displayed or in a second pane that
does not overlie the main pane. Alternatively, an expanded version
of the label can be displayed semi-transparently in the background
of the main pane, and the information can be displayed opaquely
over it.
[0071] In one implementation, labels are fixed in a pane when
subsets of information are accessed using a method other than
scrolling. For example, if a user searches for a particular term in
a document and the application jumps to a portion of the document
containing the search term, labels associated with any visible
subsets of the information can be fixed in the pane as described
above.
[0072] In another implementation, labels that are not being
displayed at their normal location in the information (e.g., labels
that have been fixed to the border of the pane) are visually
differentiated. For example, such labels can be displayed in a
special color or can have one or more changed visual attributes,
such as transparency.
[0073] In yet another implementation, the number of labels that are
fixed in a pane is limited. Alternatively, the area of the pane in
which labels are fixed is limited. In one example, the area of the
pane in which labels are fixed is limited to one quarter of the
total area of the pane. When fixed labels occupy a quarter of the
total area, some labels that normally would be fixed are removed.
If the labels are part of a hierarchical set of labels, the highest
(alternatively, lowest) labels in the hierarchy can be removed.
[0074] The invention and all of the functional operations described
in this specification can be implemented in digital electronic
circuitry, or in computer software, firmware, or hardware,
including the structural means disclosed in this specification and
structural equivalents thereof, or in combinations of them. The
invention can be implemented as one or more computer program
products, i.e., one or more computer programs tangibly embodied in
an information carrier, e.g., in a machine-readable storage device
or in a propagated signal, for execution by, or to control the
operation of, data processing apparatus, e.g., a programmable
processor, a computer, or multiple computers. A computer program
(also known as a program, software, software application, or code)
can be written in any form of programming language, 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. A computer program does not necessarily correspond to
a file. A program can be stored in a portion of a file that holds
other programs or data, in a single file dedicated to the program
in question, or in multiple coordinated files (e.g., files that
store one or more modules, sub-programs, or portions of code). A
computer program can be deployed to be executed on one computer or
on multiple computers at one site or distributed across multiple
sites and interconnected by a communication network.
[0075] The processes and logic flows described in this
specification, including the method steps of the invention, can be
performed by one or more programmable processors executing one or
more computer programs to perform functions of the invention by
operating on input data and generating output. The processes and
logic flows can also be performed by, and apparatus of the
invention can be implemented as, special purpose logic circuitry,
e.g., an FPGA (field programmable gate array) or an ASIC
(application-specific integrated circuit).
[0076] Processors suitable for the execution of a computer program
include, by way of example, both general and special purpose
microprocessors, and any one or more processors of any kind of
digital 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 memory devices for storing
instructions and data. Generally, a computer will also include, or
be operatively coupled to receive data from or transfer data to, or
both, one or more mass storage devices for storing data, e.g.,
magnetic, magneto-optical disks, or optical disks. Information
carriers suitable for embodying computer program instructions and
data include all forms of non-volatile memory, including by way of
example semiconductor memory devices, e.g., EPROM, EEPROM, and
flash memory devices; magnetic disks, e.g., internal hard disks or
removable disks; magneto-optical disks; and CD-ROM and DVD-ROM
disks. The processor and the memory can be supplemented by, or
incorporated in, special purpose logic circuitry.
[0077] To provide for interaction with a user, the invention can be
implemented on a computer having a display device, e.g., a CRT
(cathode ray tube) or LCD (liquid crystal display) monitor, for
displaying information to the user and a keyboard and a pointing
device, e.g., a mouse or a trackball, by which the user can provide
input to the computer. Other kinds of devices can be used to
provide for interaction with a user as well; for example, feedback
provided to the user can be any form of sensory feedback, e.g.,
visual feedback, auditory feedback, or tactile feedback; and input
from the user can be received in any form, including acoustic,
speech, or tactile input.
[0078] The invention has been described in terms of particular
embodiments. Other embodiments are within the scope of the
following claims. For example, the steps of the invention can be
performed in a different order and still achieve desirable
results.
* * * * *