A SYSTEM AND METHOD FOR VISUALLY REPRESENTING OVERLAPPING TIME-BASED ACTIVITIES IN A SMALL FOOTPRINT DEVICE

Abstract: A system and method for visually representing overlapping time-based activities, the method being implemented in a small footprint device. A user of a small footprint device may initiate a query to display time based activities for a selected day. The application program may create a list of time based activities which meet selection criteria specified. Non-overlapping groups may be created from the list of time based activities such that all overlapping time based activities may be included in one group. Overlapping time based activities within one group may be visually represented in different columns created on a display screen of a small footprint device. Non-overlapping time based activities within one group may be visually represented in the same column created on a display screen of a small footprint device.

Description: TITLE : A SYSTEM AND METHOD FOR VISUALLY REPRESENTING OVERLAPPING TIME- BASED ACTIVITIES IN A SMALL FOOTPRINT DEVICE BACKGROUND OF THE INVENTION 1 Field of the Invention The present mvention generally relates to computer software programs and small footprmt devices More particularly, the present mvention relates to a system and method for visually representing overlappmg time-based activities in a small footprint device 2 Descπption of the Related Art The field of "smart" small footprint devices is growing and changing rapidly Small footprmt devices include handheld computers, personal data assistants (PDAs), cellular phones, global positioning system (GPS) receivers, game consoles, set top boxes, and many more such devices Small footprmt devices are becoming mcreasmgly powerful and may be capable of running software applications or services historically associated with general computing devices, such as desktop computers For example, many small footprmt devices are now capable of running web browser applications However, smce memory, processmg power, and other resources are typically very limited m small footprmt devices, specialized, optimized versions of the services and/or application software are often necessary to execute m a small footprint device A further goal of the optimization process may be to maintain a high degree of compatibility and 'look and feel' consistency between applications running on computer systems m general and on small footprmt devices As small footprmt devices have become more powerful and the software applications running on small footprmt devices have become more complex, it has become mcreasmgly feasible and desirable to enable users to easily mteract with the applications through graphical user interfaces (GUIs) However, expenence has shown that many techniques commonly used when implementing a GUI intended to run m a resource-πch environment such as a desktop computer have vanous drawbacks if applied to a GUI intended to run m a small footprmt device Small footprint devices may have various computing resource constraints, such as the limited availability of memory, processmg power, display properties and other resources For example, the resolution of a small footprmt device display may be limited to a 400x400 pixel screen m companson to a 1600x1280 pixel screen which is typical for desktop computers This may limit the clarity and the amount of information that can be displayed For commonly used desktop computer platforms, users may use commercially available calendar manager programs to plan for and manage their schedule A schedule may mclude one or more time based activities with start and end times, which are visually represented on a display, over a specified period The calendar manager programs may be offered, in many cases, as a free web based service that may be personalized to manage and coordinate personal schedules In other systems, the calendar manager program may be offered as a component of an integrated suite of software programs for office productivity Other similar systems for setting, managmg and visually representing time based activities on desktop computing environments, such as workflow management systems, are also available Unfortunately, many such systems, may require relatively large memory capacities and/or relatively large displays and thus may have very limited use m small footprmt devices Various calendar manager programs, specifically designed for small footprmt devices, are available However, smce most small footprmt devices may not support large display screens or advanced graphics, the visual representation of concurrent or overlapping time based activities mcluded m a schedule is often unclear, confusing and is non-intuitive. For example, Figure 1 shows the hourly schedule for a given day as depicted m one known small footprint device. The time of day and the corresponding scheduled activity is depicted on one line A vertical line adjacent to the time values indicates the duration of the activity Figure 2 shows a similar display in which overlappmg time based activities are being displayed in one column. For example, overlappmg activities such as Meeting 1, Meetmg 2 and Meetmg 3 are shown in the same column below each other. Two activities, such as Meeting 1 and Meetmg 2 which may have the same start time, may be placed directly under the other. The overlap in time based activities may be displayed by additional vertical lines placed adjacent to the time values. The display of overlappmg time based activities, as illustrated in Figure 2, is relatively poor. While m other systems, overlappmg time based activities may be displayed in different columns, typically a separate column is created for each activity. This requires that each column m the display be reduced m width, thus degrading the readability of the display Furthermore, memory may be required to maintain information for creatmg the numerous columns. It would be desirable to provide a method and a system for an improved visual representation of overlappmg time-based activities for small footprmt devices It is also desirable for the application program, to include an intuitive, easy to understand graphical user interface to display complex, overlappmg time based activities. It would be further desirable for the application program to utilize less computing resources such as memory, processor, etc SUMMARY OF THE INVENTION The problems outlined above may m large part be solved by a method and system for visually representing overlappmg time-based activities in a small footprint device. A user of a small footprmt device may initiate, m one embodiment, a calendar manager application program to query and display, time based activities for a selected day Tune based activities may include meetmgs, appointments, travel, etc. Each time based activity may be, in one embodiment, defined by a start time and an end time. The application program, when executed in the small footprint device, stores a plurality of time based activities m a list. The time based activities stored m the list are grouped such that none of the time based activities withm a given group overlap with the activities of another group. In one embodiment, a start time for a given group is defined as the earliest of the start times for the activities included m that group. An end time for the group is defined as the latest of the end times for the activities included m that group Two groups are referred to as bemg overlappmg if the start time or the end time for the group falls within the start time and end time range of another group. The absence of an overlapping condition is referred to as non-overlappmg The number of columns to be used to display activities for a given group is then determined. In one embodiment, the number of columns used to depict a given group is allocated by determining whether a selected activity within the group overlaps with another activity withm the same Overlapping tune based activities within a given group are visually represented m separate columns of the display screen of the small footprmt device Non- overlappmg tune based activities withm a given group may be visually represented in the same column of the display. In one particular implementation, the application program may, for a given group, initially select a time based activity with the earliest start time and the latest end time i.e with the longest duration for display m the first column of the display. It may create a new column and assign the new column to the time based activity The application program then selects other non-overlappmg time based activities, if any, m the group and assigns one or more of the tune based activities (which are non-overlapping with respect to one another) to the same column. The application program then assigns any remaining time based activities withm the group to additional columns, m a similar manner. The selection of these remainmg time based activities may be based on the earliest start time and the latest end tm e i.e. with the longest duration. The application program may arrange the time based activities assigned to the various columns m a chronological order for display BRIEF DESCRIPTION OF THE DRAWINGS Other objects and advantages of the mvention ill become apparent upon readmg the following detailed description and upon reference to the accompanying draw mgs in which Figure 1 is an illustration of the display of a small footprint device to represent time based activities for a selected day; Figure 2 is an illustration of the display of a small footprint device to represent overlapping time based activities for a selected day, Figure 3 illustrates a block diagram of small footprmt device, Figure 4 illustrates one embodiment of a method for visually representing overlappmg time-based activities in a small footprmt device, Figure 5 is a flow diagram illustrating details of one embodiment of a method for groupmg time based activities; Figures 6 and 7 are flow diagrams illustratmg details of one embodiment of a method for creatmg columns to visually represent time based activities included in a group; Figures 8, 9 and 10 are illustrations of various representations of overlappmg time based activities While the mvention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the in ention to the particular form disclosed, but on the contrary, the mtention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims DETAILED DESCRIPTION OF THE INVENTION Figure 3 illustrates a block diagram of an Exemplary System In various embodiments, the system and method for providmg a visual representation of overlappmg time- based activities m accordance with the present mvention may be utilized withm the environment of a small footprmt device. Figure 3 is a block diagram illustratmg aspects of one embodiment of a system 720 embodied withm a small footprmt device. The system 720 may include a processor 710 Processor 710 may be any of various types, including an x86 processor, e.g , a Pentium class, a PowerPC processor, as well as other less powerful processors or processors developed specifically for small footprint devices, such as DSP's (digital signal processors) The processor 710 may have vanous clock speeds, including clock speeds similar to those found in desktop computer-class processors, as well as lower speeds such as 16 MHz It is noted that the small footprint device may have various different architectures, as desired. The system 720 also mcludes a memory 712 coupled to the processor 710 The memory 712 may mclude any of various types of memory, including DRAM, SRAM, EDO RAM, etc , or a non- volatile memory such as a magnetic media, e g , a hard drive, or optical storage The memory 712 may mclude other types of memory as well, or combmations thereof As shown in Figure 3, the memory 712 may store an application program 718, which mcludes code for implementing a method to visually represent overlappmg time based activities as descnbed below The application program 718 may mclude, e g class definitions or modules, for implementing various objects and methods used to visually represent overlappmg time based activities, such as descnbed m conjunction with Figures 3-10 As shown in Figure 3, the system 720 also includes a display 716 The display 716 may be any of vanous types, such as an LCD (liquid crystal display), a CRT (cathode ray tube) display, etc The processor 710 is configured to execute code and data from memory 712 to display the visual representation of overlappmg time based acti ities as descnbed below The input mechanism 714 mav be any of various types, as appropriate to a particular device For example, the input mechanism may be a keypad, mouse, trackball, touch pen, microphone, modem, infrared receiver, etc As used herein, a small footprmt device is a hardware device compnsmg computmg resources such as a processor and a system memory, but havmg significantly greater constraints on one or more of these resources than a typical desktop computer has For example, a typical small footprmt device may have two megabytes of memory or less, whereas a typical desktop system may have 64 megabytes or more Also a typical small footprmt device may have significantly less processing power than a typical desktop computmg system, either in terms of processor type, or processor speed, or both For example, a personal data assistant device may have a 16 MHz processor, whereas a typical desktop system may have a processor speed of 100 MHz or higher Also, a typical small footprmt device may have a display size significantly smaller than the display screen of a desktop computing system For example, the display screen of a handheld computer is typically small compared to the display screen of a desktop monitor It is noted that the specific numbers gtven are exemplary only and are used for comparison purposes Small footprmt devices may also have constraints on other resource types compared to typical desktop computmg systems, besides the memory, processor, and display size resources described above For example, a typical small footpnnt device may not have a hard disk, may not have a network connection, or may have an intermittent network connection, or may have a wireless network connection, etc Many small footprint devices are portable and/or are small compared to desktop computers, but are not necessarily so Also, many small footprmt devices are primanly or exclusively battery-operated Also, small footprmt devices may typically have a more limited or narrow range of usage possibilities than a typical desktop computmg system Thus, in vanous embodiments, the small footpnnt device illustrated m Figure 3 is illustrative of, but is not limited to, any one of the following handheld computers, wearable devices (e g , wnstwatch computers), personal data assistants (PDAs), "smart" cellular telephones, set-top boxes, game consoles, global positioning system (GPS) units, electronic textbook devices, etc Smce new classes of consumer devices are rapidly emerging, it is not possible to provide an exhaustive list of small footpnnt devices However, the term "small footprmt device" is mtended to mclude such devices as may reasonably be mcluded withm the spirit and scope of the term as described above Figure 4 illustrates one embodiment of a method for visually representing overlappmg time-based activities in a small footprmt device Figure 4 illustrates one embodiment of a method for visually representmg overlappmg tune -based activities m the small footprmt device of Figure 3 The method for visually representmg overlappmg time-based activities, as illustrated m Figure 4, may be utilized in several ways For example, m one embodiment, the application program 718 of Figure 3 may be a calendar manager application program which implements the method to visually represent scheduled meetmgs for a selected time penod, such as a day or a week In another embodiment, the application program may be a project management application program which implements the method to visually represent vanous tasks associated with a project In yet another embodiment, the application program may be a workflow management program which implements the method to visually represent vanous workflow items, work orders or tasks associated with a workflow application It is noted that the portion of code embodying the method of Figure 4 may be an mtegral portion of code segments supporting other functions associated with application program 718 Figure 3. or may be a separately callable subroutme or utility In step 500. the application software may store a list of time based activities to be displayed The user may create the list of time based activities by providing data (e g \ ιa the mput mechanism 714 of Figure 3) which specifies time based activities Time based activities may be specified using a start time and an end time for each activity In another embodiment, each time based activirv may be specified m terms of a start time and the duration for the activity In step 502, the application program creates groupmgs for the time based activities based upon certain selection rules Generally speaking, the time based activities are grouped such that none of the time based activities withm a given group overlap in time with a time based activity of another group In one particular embodiment, the start time for a given group is the earliest of the start times for the activities included m that group The end tune for the group is the latest of the end times for the activities mcluded in that group Groups are referred to as bemg overlappmg if the start time or the end time for the group falls withm the start time and end time range of another group The absence of an overlappmg condition may be descnbed as non-overlappmg The formation of the one or more groups may use selection rules such as. but not limited to 1 ) A group mav mclude one or more time based activities 2) A time based activity may be mcluded in no more than one group 3) Every time based activity must be included in at least one group l e there may not be any time based activity without a group assignment 4) Groups must be non-overlappmg Figure 5 is a flow diagram w hich illustrates additional details of one embodiment of a method for grouping tune based activities As an example of the manner in which time based activities may be grouped, display 1100 of Figure 10 illustrates a situation m which a total of six meetings have been specified Meetmgs 1-3 form a first groupmg, and meetings 4-6 form a second groupmg It should be noted that none of the activities in the first groupmg overlap with any of the activities in the second groupmg After groupmg the time based activities, the application software determines in step 504 the number of columns needed to visually represent the activities for each group Withm each group, overlappmg time based activities may be represented m separate columns and non-overlappmg activities may be represented m the same column to conserve column space Figures 6 and 7 are flow diagrams which illustrate further details of one embodiment of a method for creatmg columns to visually represent time based activities included m a group For example, referring again to display 1100 of Figure 10, smce none of the activities of the first groupmgs (meetings 1-3) are non-overlappmg, each is assigned to a different column m the display On the other hand, smce meetmgs 5 and 6 of the second groupmg are non-overlappmg with respect to one another, they are displayed m the same column. In step 508. the application visually represents the selected tune based activities on a small footprint device. Withm each group, overlappmg tune based activities are represented m separate columns and selected non- overlappmg activities are mcluded m the same column to conserve column space. Figures 8-10 provide additional examples of the manner in which tune based activities may be displayed in accordance with the method of Figure 4 It is noted that the application program may be programmed in various languages to implement steps 500 through 508. In one embodiment, the application program may use object oriented languages e.g. C— ' -, Java and several others. In other embodiments, conventional programming languages e.g. C. 4GL. and others may be used to implement steps 500 through 508. Figure 5 is a flow diagram lllustranng details of one embodiment of a method for groupmg time based activities Figure 5 is a flow diagram illustratmg details of one embodiment of a method for groupmg time based activities. In step 602. the application program may begin creation of a first group by assigning the first time based activity of the list ( stored in step 500 of Figure 4) to the first group The start and end time for the first group is initially set as the start and end tune of the first activity In step 604. the application program may read the next time based activity requiring a group assignment. In step 606. a determination is made to determine if the start time or end time of the time based activity read in step 604 overlaps the start time and end time range for any groups already created. In step 608, if the time based activity (read in step 604) overlaps with any created group then the current time based activity is added to that group. In addition, the group ' s range 1 e. the staπ time and the end time for the group may be updated, if required, based on the start and end tune of the added activity. In one embodiment, the group's start time is set to the earliest staπ time associated with the time based activities mcluded withm the group. and the group ' s end time is set to latest end time associated w ith the time based activities mcluded withm the group The application program may also venfy if the group ' s staπ time or end time is overlappmg the staπ time and end time range of any other groups If there are anv overlapping groups, the groups are combined to form a single group, with the staπ tune and end tune of the combined group bemg updated, if required. In step 610. if the time based activity read m step 604 does not overlap with a group already created, the application program creates a new group and adds the current time based activity to the new group. In addition, the new group s range i.e. the staπ time and the end time for the group is set. accordmg to the staπ and end time of the activity In step 612. a determination is made to determine if there are more time based activities in the list which require groupmg. If the answer to this question is in the affirmative, then program control is transferred to step 604. in which the next activity m the list is read and the process is repeated. If the answer to this question is in the negative, then program control is transferred to step 700 in Figure 6 Figures 6 and 7 are flow diagrams illustrating details of one embodiment of a method for creating columns to visually represent time based activities mcluded in a group Figures 6 and 7 are flow diagrams illustratmg details of one embodiment of a method for creating columns to visually represent time based activities mcluded in a group, as generally depicted by step 504 of Figure 4 In step 700. the application program receives information regarding the created groups and the tune based activities included in each of the groups. The first group and all tune based activities mcluded in the first group may be selected for processmg. In step 702. the application program may select a tune based activity, mcluded m the selected group, with the earliest start tune and the latest end tune i.e. with the longest duration, and creates a new column for that time based activity. The application program then, m step 704. selects other time based activities m the group, if any, for inclusion withm that column, provided those additional tune based acnvities do not overlap with the activity already assigned to the column and do not overlap with one another. If the additional tune based activities do overlap with one another, only selected ones of the additional activities which do not overlap with one another are selected for assignment withm the column. For example, if one of the additional activities has an earlier staπ time, it may be selected for inclusion withm the column mstead of an overlappmg time based activity with a later staπtng tune. The selection of the tune based activity for inclusion m a column may also be based on which has the longest duration. The application program may anange the one or more time based activities assigned to the same column in a chronological order for display. It is noted that various other ways of selectmg which non-overlappmg activities of a given group are to be displayed in a column are also possible and contemplated In step 708. it is determined whether any additional time based activities in the selected group have not yet been assigned to a column. If the answer to this question is in the affirmative then program control may be passed to step 702 and the process repeats. If the answer to this question is in the negative, then program control is passed to step 800 m Figure 7. In step 800, the application program determines the number of columns required to visually represent the time based activities mcluded m a group from the column assignments created m steps 700-708 m Figure 6. Each group may have a different number of columns based on the number of overlapping tune based activities. In step 810. the application program may divide the available display device screen size by the required number of columns for the group to thereby determine the column w idth to be displayed for the paπicular group. In step 820. a determination is made if there are more groups for which column assignments have not yet been made. If the answer to this question is in the affirmative the application program selects the next group m step 860 and passes the program control to step 702 in Figure 6 If the answer to this question is in the negativ e then program control may be passed to step 508 of Figure 4 Refemng to the exemplary screen 1 100 of Figure 10. in the first groupmg formed by meetmgs 1-3. smce each of the meetmgs overlap with one another, they are each displayed in a separate column. On the other hand. smce meetmgs 4-6 of the other groupmg mclude meetings 5 and 6 which do not overlap with respect to one another, meetings 5 and 6 are displayed in the same column In this example, meeting 6 is displayed m the first column smce it has the earliest staπ time Meeting 4 is displayed in a separate column smce it overlaps meetings 6 and 5 Figures 8. 9 and 10 are illustrations of various representations of overlappmg time based activities Screen 900 m Figure 8 illustrates an exemplary display generated in accordance with the foregoing description of Figures 4-8 in which a smgle time based activity is depicted. Screen 910 in Figure 8 illustrates an exemplary display m which two time based activities are depicted It is noted that in both mstances. the depicted tune based activities form a smgle group Screen 1000 in Figure 9 illustrates an exemplary display generated in accordance with the foregoing descπption m which three time based activities are depicted. Screen 1010 m Figure 9 illustrates an exemplary display in which three overlappmg time based actπ uies and one non-overlapping activity are depicted. It is noted that a first groupmg including meetmgs 1-3 is formed m accordance with the foregomg descnption, and a second groupmg is formed by meetmg 4. Screens 1100 and 1110 in Figure 10 illustrate exemplary displays generated m accordance with the foregomg description m which six tune based activities are depicted. It is noted that m screen 1100, a first groupmg mcludmg meetmgs 1-3 is formed m accordance with the foregomg descnption, and a second groupmg is formed by meetmgs 4-6 On the other hand, in screen 1110, only a smgle groupmg consistmg of meetmgs 1-7 is formed m accordance with the foregomg descnption smce they collectively occupy a smgle, contiguous tune span. It is noted that aspects of the displays depicted in Figures 8-10 may be vaned without departing from the scope of the present invention In accordance with the foregomg descnption, time based activities may advantageously be displayed in a clear, intuitive manner Furthermore, since non-overlappmg activities withm a given group may be displayed m the same column, the overall number of columns used to depict the activities of the group may be reduced. By reducmg the number of columns needed to depict a given group, memory requirements may also be reduced It is noted that, various embodiments further include receivmg or storing instructions and/or data implemented m accordance with the foregoing descnption upon a earner medium Suitable earner media mclude memory media or storage media such as magnetic or opncal media, e g , disk or CD-ROM, as well as signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as networks and/or a wireless link It is also noted that m one particular implementation, upon creating the list of time based activities (e.g., durmg step 500), the user may specify a tune period for which it is desired that activities be displayed. The application program selects any tune based activities which lie withm the specified time period, and performs the methodology descnbed previously for only those items. In this manner, while the list may mclude activities occurnng over, for example, a month, the user may specify that the display only depict those activities that which e withm a particular day. Although the system and method of the present mvention have been descnbed m connection with several embodiments, the mvention is not intended to be limited to the specific forms set forth herem, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents as can be reasonably included withm the spirit and scope of the mvention as defined by the appended claims

Claims: WHAT IS CLAIMED IS: 1 A method for visually representmg overlapping tune-based activities m a small footpnnt device, the method compπsmg creatmg a list of said time based activities, groupmg the time based activities into a plurality of non-overlappmg groups, determining for a given group whether a first time based activity is non-overlapping with respect to a second time based activity withm said given group, visually representmg said first and second time based activities withm the same column of a display if the first and second time based activities are non-overlappmg and visually representmg said first and second tune based activities withm separate columns of a display if the first and second time based activities are overlappmg 2 The method of claim 1. wherein each of said time based activities is specified with a start time and a duration 3 The method of claim 1 , wherein each of said time based activities is specified with a start tune and an end time 4 The method of claim 1 , wherein said given group has a group start time and a group end time, wherem the said group start time is the earliest start time associated with said time based activities mcluded withm said given group and the group end time is the latest end time associated with the time based activities mcluded withm said given group 5 The method of claim 1 , wherein creatmg said list of said tune based activities further comprises specifymg a tune period to visually depict said tune based activities, selecting one or more of said time based activities which lie withm said time period 6 A small footpnnt device comprising a processor a memory operatively coupled to said processor, a computer program application stored in said memory, wherem said computer program application is executable to create a list of said time based activities, group the time based activities into non-overlappmg groups, determine for a given group whether a first time based activity is non-overlappmg with respect to a second time based activity withm said given group, visually represent said first and second time based activities withm the same column of a display if the first and second time based activities are non-overlappmg and visually represent said first and second time based activities withm separate columns of a display if the first and second tune based activities are overlappmg 7 The small footpnnt device of claim 6, wherem each of said tune based activities is specified with a start tune and a duration 8 The small footpnnt device of claim 6, wherem each of said time based activities is specified with a start 9 The small footpnnt device of claim 6, wherem said given group has a group start tune and a group end time, wherem the said group start time is the earliest start tune associated with said time based activities mcluded withm said given group and the group end tune is the latest end time associated with the time based activities mcluded withm said given group 10 The small footpnnt device of claim 6, wherem creatmg said list of said time based activities further comprises specifymg a time period to visually depict said time based activities, selectmg one or more of said tune based activities which e withm said time penod 11 A earner medium for a computer program compnsing program instructions wherem the program instructions are executable by a computer system to implement a method of creatmg a list of said tune based activities, grouping the tune based activities into non-overlappmg groups, determining for a given group whether a first tune based activity is non-overlappmg with respect to a second time based activ lty withm said given group, visually representmg said first and second time based activities withm the same column of a display if the first and second tune based activities are non-overlappmg and visually representmg said first and second time based activities withm separate columns of a display if the first and second tune based activities are overlapping 12 The earner medium of claim 11 w herem each of said time based activities is specified with a start time and a duration 13 The earner medium of claim 11 , wherem each of said time based activities is specified with a start time and an end tune 14 The earner medium of claim 1 1, wherem said given group has a group start tune and a group end time, wherein the said group start tune is the earliest start tune associated with said time based activities mcluded withm said given group and the group end time is the latest end time associated with the time based actι\ ities mcluded withm said given group 15 The carrier medium of claim 11 w herem creatmg said list of said time based activities further compnses specifying a tune period to visualh depict said tune based activities, selecting one or more of said time based activities which e within said time period

Inventors: OSTROWALKER JOSHUA, OSTROWALKER, JOSHUA
Applicants: SUN MICROSYSTEMS INC, SUN MICROSYSTEMS, INC.
Application year: 2000
Main classification: G06F15
IPC codes: G06F3, G06F15, G06Q10