WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
User interface with multiple workspaces for sharing display system objects    
United States Patent5233687   
Link to this pagehttp://www.wikipatents.com/5233687.html
Inventor(s)Henderson, Jr.; D. Austin (Palo Alto, CA); Card; Stuart K. (Los Altos Hills, CA); Maxwell, III; John T. (Sunnyvale, CA)
AbstractWorkspaces provided by an object-based user interface appear to share windows and other display objects. Each workspace's data structure includes, for each window in that workspace, a linking data structure called a placement which links to the display system object which provides that window, which may be a display system object in a preexisting window system. The placement also contains display characteristics of the window when displayed in that workspace, such as position and size. Therefore, a display system object can be linked to several workspaces by a placement in each of the workspaces' data structures, and the window it provides to each of those workspaces can have unique display characteristics. The display system object can operate continuously despite switching between one workspace and another, and the windows it provides in successive workspaces can share features so that they appear to the user to be the same window or versions of the same window. As a result, the workspaces appear to be sharing a window. Workspaces can also appear to share a window if each workspace's data structure includes data linking to another workspace with a placement to the shared window. A special workspace is automatically included in each of the other workspaces, so that windows in that workspace go with the user into any other workspace. The user can invoke a switch between workspaces by selecting a display object called a door, and a back door to the previous workspace is created automatically so that the user is not trapped in a workspace.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5233687
User interface with multiple workspaces for sharing display system

     objects - US Patent 5233687 Drawing
User interface with multiple workspaces for sharing display system objects
Inventor     Henderson, Jr.; D. Austin (Palo Alto, CA); Card; Stuart K. (Los Altos Hills, CA); Maxwell, III; John T. (Sunnyvale, CA)
Owner/Assignee     Xerox Corporation (Stamford, CT)
Patent assignment
All assignments
Publication Date     August 3, 1993
Application Number     07/805,343
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 9, 1991
US Classification    
Int'l Classification    
Examiner     Herndon; Heather R.
Assistant Examiner    
Attorney/Law Firm    
Address
Parent Case     This is a division of application Ser. No. 07/030,766 filed Mar. 25, 1987 now U.S. Pat. No. 5,072,412.
Priority Data    
USPTO Field of Search    
Patent Tags     user interface multiple workspaces sharing display system objects
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed:

1. A system comprising:

a display;

a plurality of workspace data structures, each workspace data structure relating to a respective workspace that can be presented on the display; each of the respective workspaces including a respective set of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display; the workspace data structures including a first workspace data structure relating to a first one of the respective workspaces, the respective set of display objects of the first workspace including a first display object;

display object means for generating the display objects, each workspace data structure being linked to the display object means so that each display object in the respective set of display objects is included in the respective workspace when the respective workspace is presented; and

control means for accessing the first workspace data structure and the display object means linked thereto for presenting the first workspace on the display, the first display object being presented within the first workspace at full size; the control means further being for accessing all of the workspace data structures for presenting representations of all of the respective workspaces simultaneously on the display, each workspace representation comprising a small-size representation of each display object in the workspace's respective set of display objects, the representation of the first workspace including a respective small-size representation of the first display object.

2. The system of claim 1, further comprising means for receiving signals from a user, the signals including a selection signal selecting one of the workspace representations for editing, the control means further responding to the selection signal by presenting on the display a description of the respective workspace data structure to be edited.

3. The system of claim 1, further comprising input means for receiving signals from a user, the signals from the user including a request to present the representations of all of the respective workspaces, the request being received while the first workspace is being presented, the control means further being for responding to the request by switching the display from presenting the first workspace to presenting the representations of all of the respective workspaces.

4. The system of claim 1, further comprising input means for receiving signals from a user, the signals from the user including a request to present the first workspace, the request being received while the representations of all of the workspaces are being presented, the control means further being for responding to the request by switching the display from presenting the representations of all of the respective workspaces to presenting the first workspace.

5. The system of claim 1 in which the small-size representation of the first display object includes a label identifying an application called by the display object means in generating the first display object, the control means further being for accessing the display object means to obtain the label identifying the application.

6. A method of operating a system that includes:

a display;

a plurality of workspace data structures, each workspace data structure relating to a respective workspace that can be presented on the display; each workspaces including a respective set of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display; the workspace data structures including a first workspace data structure with a respective first workspace, the respective set of display objects of the first workspace including a first display object; and

display object means for generating the display objects, each workspace data structure being linked to the display object means so that each display object in the respective set of display objects is included in the workspace when the workspace is presented;

the method comprising the steps of:

accessing the first workspace data structure and the display object means linked thereto for presenting the first workspace on the display, the first display object being presented within the first workspace at full size; and

accessing all of the workspace data structures for presenting representations of all of the respective workspaces simultaneously on the display, each workspace representation comprising a small-size representation of each display object in the workspace's respective set of display objects, the representation of the first workspace including a respective small-size representation of the first display object.

7. The method of claim 6 in which the system further includes input means for receiving signals from a user; the method further comprising the steps of:

while the first workspace is being presented, from the input means a request to present the representations of all of the respective workspaces; and

responding to the request by ceasing to present the first workspace and beginning to present the representation of all of the respective workspaces, the step of responding to the request comprising the step of accessing all of the workspace data structures.

8. The method of claim 6 in which the system further includes input means for receiving signals from a user; the method further comprising the steps of:

while the representations of all of the respective workspaces are being presented, receiving from the input means a request to present the first workspace; and

responding to the request by ceasing to present the representations of all of the respective workspaces and beginning to present the first workspace, the step of responding to the request comprising the step of accessing the first workspace data structure.

9. The method of claim 6 in which the plurality of workspace data structures includes a second workspace data structure with a respective second workspace, the system further including input means for receiving signals from a user; the method further comprising the steps of:

while the representations of all of the workspaces are being presented, receiving from the input means a request to transfer the first display object to the second workspace; and

responding to the request by linking the second workspace data structure to the display object means so that a second display object that is perceptible as the same tool as the first display object is in the respective set of display objects of the second workspace and by presenting updated representations of all of the respective workspaces, the updated representation of the second workspace including a small-size representation of the second display object.

10. The method of claim 9 in which the request to transfer the first display object to the second workspace is a request for a move operation.

11. The method of claim 9 in which the request to transfer the first display object to the second workspace is a request for a copy operation.

12. The method of claim 9 in which the plurality of workspace data structures includes a third workspace data structure with a respective third workspace, the third workspace data structure being linked to the second workspace data structure so that the respective set of display objects of the third workspace includes, for each of the display objects in the respective set of display objects of the second workspace, a respective display object that is percepitble as the same tool, the respective set of display objects of the third workspace therefore including, after the step of responding to the request, a third display object that is perceptible as the same tool as the first and second display objects; the updated representation of the third workspace including a small-size representation of the third display object.

13. The method of claim 6 in which the system further includes input means for receiving signals from a user; the method further comprising the steps of:

while the representations of all the workspaces are being presented, receiving from the input means a request to present the first display object at full size; and

responding to the request by presenting on the display the first display object at full size.

14. A method of storing data in a file, the data relating to a system that includes:

a display;

a first workspace data structure relating to a first workspace that can be presented on the display and a second workspace data structure relating to a second workspace that can be presented on the display; each of the first and second workspaces including a respective set of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display; and

display object means for generating first and second display objects, the display object means being linked with each of the first and second workspace data structures so that the first display object is in the respective set of display objects of the first workspace and the second display object is in the respective set of display objects of the second workspace;

the method comprising the steps of:

obtaining a descriptor of the display object means from which the display object means can be recreated and obtaining a file handle for the descriptor of the display object means, the file handle being for accessing the descriptor within the file; and

storing the descriptor in the file so that it can be accessed using the file handle and storing the descriptor's file handle in each of first and second saved data structures, the first and second saved data structures being for recreating the first and second workspace data structures respectively.

15. The method of claim 14 in which the display object means calls an application in generating the first and second display objects, the step of obtaining the descriptor comprising the substep of obtaining data about the application.

16. The method of claim 14 in which the display object means operates on a data structure in generating the first and second display objects, the step of obtaining the descriptor comprising the substep of obtaining data about the data structure.

17. The method of claim 14 in which the step of storing the descriptor in the file comprises the substep of storing the descriptor in a pair with the file handle.

18. The method of claim 14, further comprising the step of storing the file on a file server.

19. A method of operating a system that includes:

a display;

a processor for controlling the display; and

memory that can be accessed by the processor;

the memory storing a file that includes stored data relating to a first workspace that can be presented on the display and to a second workspace that can be presented on the display, each of the first and second workspaces including a respective set of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display; the file further including stored data relating to a display object generator for generating first and second display objects; the stored data comprising:

a descriptor from which the processor can recreate the display object generator, the descriptor being stored in the file so as to be accessible by the processor using a file handle for the descriptor; and

a first saved data structure from which the processor can create a first workspace data structure relating to the first workspace and a second saved data structure from which the processor can create a second workspace data structure relating to the second workspace, the first and second saved data structures each including the file handle so that the processor can access the descriptor and link the recreated display object generator with each of the first and second workspace data structures to include the first display object in the respective set of display objects of the first workspace and to include the second display object in the respective set of display objects of the second workspace;

the method comprising acts of:

accessing the first and second saved data structures and the descriptor in the file;

recreating the display object generator based on the descriptor;

obtaining a system handle for accessing the recreated display object generator in the system; and

creating the first and second workspace data structures based on the first and second saved data structures, respectively, the step of creating the first and second workspace data structures comprising the substep of replacing the file handle in the first and second saved data structures with the system handle of the display object generator.

20. The method of claim 19, in which the system further includes a preexisting workspace data structure; the method further comprising an act of deleting the preexisting workspace data structure from the system before the act of creating the first and second workspace data structures.

21. An article of manufacture for use in a system that includes a display and a processor for controlling the display; the article comprising:

memory that can be accessed by the processor;

workspace data stored by the memory; the workspace data relating to a first workspace that can be presented on the display and to a second workspace that can be presented on the display, each of the first and second workspaces including a respective set of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display;

a descriptor which the processor can use to create a display object generator for generating first and second display objects, the descriptor being stored in the file so as to be accessible by the processor using a file handle for the descriptor;

the workspace data comprising a first saved data structure that the processor can use to create a first workspace data structure relating to the first workspace and a second saved data structure from which the processor can create a second workspace data structure relating to the second workspace, the first and second saved data structures each including the file handle so that the processor can access the descriptor and link the display object generator with each of the first and second workspace data structures to include the first display object in the respective set of display objects of the first workspace and to include the second display object in the respective set of display objects of the second workspace.

22. The article of manufacture of claim 21 in which the descriptor is stored in a pair with the file handle.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention relates to the user interface of a data processing system. More specifically, the invention relates to the organization of display objects such as windows into groups which are displayed together on a display-based user interface, each group being appropriate to a particular user task.

Current user interfaces typically include various types of input/output (I/O) devices--display outputs such as a cathode ray tube (CRT) and manually operated inputs such as a keyboard and a mouse. For example, a user provides alphanumeric and other inputs using the keyboard and provides inputs indicating position on the display using the mouse. The data processing system provides a display that helps the user to provide a sequence of manual inputs which will lead to the results the user desires.

One conventional technique for helping the user of a display-based user interface is to provide visually distinct display objects on the screen, each object fulfilling a corresponding function. For example, a pointer such as an arrow can be displayed on the screen, moving in response to a mouse or other pointer control device. The pointer appears to move over a number of other display objects which the user may select. The user typically selects a selectable display object or a distinct internal part of such a display object by a pointer signal, as by pressing an appropriate button on the mouse, when the pointer is on that display object or that distinct internal part. A user selection initiates operations of the data processing system which bear some logical relation to that display object.

The selectable display objects take many forms. The term "window" is applied to selectable display objects of various types, and one typical characteristic of windows is that the effect of a pointer signal within a window depends on the pointer location. The term "menu" is usually applied to another type of display object which also has this characteristic of distinct internal locations, because a menu typically has several areas within it, each of which represents an option which the user may select with a pointer signal in that area. The term "icon", on the other hand, is usually applied to a display object which does not have this characteristic of distinct internal locations, but which is a relatively small and visually suggestive of its function. A pointer signal within an icon typically produces the same effect regardless of the pointer's location within the icon.

Conventional display-based user interfaces thus may include at least three categories of display objects: a position indicating display object, such as a pointer; selectable display objects without internal location distinctions, such as icons; and selectable display objects with internal location distinctions, such as windows and menus. In addition, the user interface includes a set of procedures according to which the data processing system responds to selections and other inputs from the user.

A central constraint on user interface design in the relatively small size of the display screen, because it limits the number of perceptible objects which can be displayed to the user at any given time. On the other hand, the user tends to switch back and forth between tasks, each relating to a different group of display objects. Bannon, L., Cypher A., Greenspan, S. and Monty, M. L., in Proceedings of the ACM Human Factors in Software Conference, CHI '83, (1983), pp. 54-57 and in a talk delivered at CHI '83, San Francisco, December 1983, describe a number of reasons for task switching. As a result of task switching, the relatively small display typically becomes cluttered with a large number of objects, many of which are not relevant to the current task.

One set of techniques permits the user to reduce cluttering by distorting display objects within the workspace which appears on the screen. Smith, D., "Pygmalion", PhD Thesis, Dept. of Computer Science, Stanford University, 1975, described the shrinking of windows to icons or small pictures reminding the user of the contents of the window. Goldberg, A., Smalltalk-80--The Interactive Programming Environment, Addison-Wesley, Reading, Mass., 1984, describes the user interface of the Smalltalk-80 system, in which a rectangular area on the display in which information may be accessed is called a "view" rather than a window, and in which views may overlap, allowing windows to cover each other, leaving only a portion to remind the user of what lies behind. Smalltalk permits two independent views of a single application, so that modifications of the data engaged by that application in one view are visible in the other view, even though the two views are produced by different objects in the system. Furnas, G., "Generalized Fisheye Views", in Mantei, M. and Orbeton, P. (eds.), Human Factors in Computing Systems-III, Proceedings of the CHI ' 86 Conference, Boston, April 1986, pp. 16-23, describes a fish-eye distortion technique in which all the objects are forced to fit by selectively showing objects based on their intrinsic importance and the user's current focus of attention. Spence, R. and Apperly, M., "Data Base Navigation: An Office Environment for the Professional", Behavior and Information Technology, Vol. 1, No. 1 (1982), pp. 43-54 describes a similar technique. DiSessa, A., "A Principled Design for an Integrated Computational Environment", Human-Computer Interaction, Vol. 1, No. 1 (1985), pp. 1-47, described a spatial box metaphor in which boxes are nested in a hierarchy, and individual boxes can either appear expanded or shrunk to a symbol, depending on the user's position in the hierarchy.

Several other techniques permit the user to reduce cluttering by allocating screen usage between a number of tasks based on a desktop metaphor. Smith, D. C., Irby, C., Kimball, R., Verplank, B., and Harslem, E., "Designing the Star User Interface", BYTE, Vol. 7, No. 4 (April 1982), pp. 242-282, described the Xerox Star user interface which employs a desktop metaphor, with icons representing familiar items which would appear on one's desk or in one's office, such as a document, a file folder, or a file drawer. In this type of user interface, the allocation of screen space can be switched from one display system object to another by, for example, shrinking the windows of one task to icons and expanding the icons of another task to windows. G. Willians, "The Lisa Computer System", BYTE, February 1983, pp. 33-50, describes the Lisa user interface which, like the Xerox Star, employs a desktop metaphor; at pages 36-38, Williams describes icons and windows which appear on the desktop, and also describes a window capable of containing icons. The further development of these features in the Macintosh user interface is described in the MacWrite Manual and the MacPaint Manual published by Apple Computer, Inc.

Other techniques are based on a large virtual workspace metaphor in which the screen is thought of as a movable viewport onto the workspace. Sutherland, I. E., "Sketchpad: A Man-machine Graphical Communication System", AFIPS Spring Joint Computer Conference, Vol. 23, (1963), pp. 329-346, describes Sketchpad, an early graphical program using this technique. Bolt, R. A., The Human Interface, Lifetime Learning Publications, Belmont, Calif. (1984), describes Dataland, in which color pictorial and textual data are arranged in three screens, one for an overview of the whole space, one for a detailed view of some portion of the space, and one touch-screen for control. The user can translate the detailed view to a different area or zoom to obtain more detail. Donahue, J. and Widom, J., "Whiteboards: A Graphical Database Tool", ACM Transactions on Office Information Systems, January 1986, Vol. 4, No. 1, pp. 24-41, describe operations for examining the contents of a Whiteboard display within which objects have spatial locations. Fisher, S. S., McGreevy, M., Humphries, J. and Robinett, W., "Virtual Environment Display System", presented at ACM Workshop on Interactive 3D Graphics, Chapel Hill, N.C., October 1986, which is not prior art in relation to the present invention, describe head-mounted displays used by NASA to monitor user head and body movements and provide a complete simulated three-dimensional visual space.

Another set of techniques provide multiple virtual workspaces, allowing more convenient access to non-displayed display objects by switching quickly from one virtual workspace to another. At pages 42, 49 and 67-73, Goldberg, cited above, describes a Smalltalk display object called a "project", which is a collection of views which takes up the entire display. The projects are organized hierachically, so that one path to each project is through a window, referred to as a "door", which appears in the display of the project in which it is created, called its parent. The user can return to the current project's parent by selecting a menu command "exit project". At pages 322-339, Goldberg describes a project browser which can also be used to access a project. The project browser has two subviews, one containing a list menu with the titles of all existing projects and the other containing editable text which describes a project being created or accessed.

Bolt, cited above, and Herot, C. F., "Spatial Management of Data", ACM Trans. on Database Systems, Vol. 5, No. 4 (December 1980), pp. 493-514, describe the CCA system, a further development of Dataland, in which the user is swept into a subworkspace upon zooming close enough to a port, the subworkspaces being arranged hierarchically.

Chan, P. P., Learning Considerations in User Interface Design: The Room Model, (Report CS-84-16), University of Waterloo Computer Science Department, Waterloo, Ontario, Canada, 1984, in Chapter 3, proposes another type of multiple virtual workspaces, the Room user interface. In this interface, a group of icons is displayed in a container called a room, with some of the icons being door icons which, when selected, result in the display of a different room. At page 26, Chan compares this with the Xerox Star user interface, noting that the Room user interface provides "multiple desktops" in the form of multiple rooms, made possible by the door icons. In Chapter 5, Chan describes the hierarchical data structure within which each room contains the data structure of each of its icons. Chan notes in Chapter 6 that the desktop model of Xerox Star provides a single workspace, requiring the user to waste time rearranging the displayed objects, while the room model reduces this form of waste. Chan also suggests a number of additional features, including a higher level display system object for manipulating rooms and, when the attributes of an icon are being examined, growing the icon as much as necessary and leaving other icons partially visible behind the opened icon.

Feiner, S., Nagy, S., and Van Dam, A., "An Experimental System for Creating and Presenting Interactive Graphical Documents", ACM Trans. on Graphics, Vol. 1, No. 1 (January 1982), pp. 59-77, describe documents which are directed graphs whose nodes are referred to as pages. The pages are organized into subchapters and chapters. A page may contain a button which can provide access to another page.

Hypertext systems typically include small, often textual, networks of displayed data units connected with arbitrary patterns of typed links providing paths between locations within the data units. PROMIS, described by Hurst, J. and Walker, K. (eds.), The Problem-Oriented System, MEDCOM Press, New York (1972), and ZOG, described by Robertson, G., McCracken, D. and Newell, A., "The ZOG Approach to Man-Machine Communication", Int'l Journal of Man-Machine Studies, Vol. 14, No. 4, May 1981, pp. 461-488, each display a single data unit at a time. NLS, described by Engelbart, D. E. and English, W. K., "A Research Center for Augmenting Human Intellect", Proceedings of the AFIPS Fall Joint Computer Conference, Vol. 33 (1968). pp. 395-410, provides access to a subtree of data units if screen space permits. Notecards, a product of Xerox Corporation, provides access to any arbitrary set of data units.

A problem shared by the large virtual workspace techniques and the multiple virtual workspace techniques is that the user needs help navigating. In the large virtual workspaces such as Dataland, the user may navigate much as in space, by translating and zooming, and may be assisted by having both global and local views. In multiple virtual workspaces such as Smalltalk projects, the project browser similarly can relate a limited number of projects for user navigation. In the hypertext systems such as the electronic book and NoteCards, browsers may be used as well as presentations of local connections between workspaces.

Some related features have been described in the patent literature. Ikegami et al., European Patent Application Publication No. 0,108,520, describe a method of controlling windows to display card images lengthwise on a display; a group of card images may be processed as a box, as explained at pages 4-5. Cason et al., U.S. Pat. No. 4,484,302, describe multiple virtual displays at columns 2 and 5. Shaw et al., U.S. Pat. No. 4,598,384, describe at column 2 a graphics display with independent windows, several of which may be simultaneously operated from one or more application programs. Pike, U.S. Pat. No. 4,555,775, describes graphics software under which each of several bitmap layers or windows is always active regardless of its visibility, beginning at column 1. Tabata et al., U.S. Pat. No. 4,574,364, describe a display technique in which a window management table is used to manage the information about plural windows.

It would be advantageous to have a more useful multiple workspace user interface.

SUMMARY OF THE INVENTION

The present invention provides a multiple workspace user interface which has a number of useful features.

One aspect of the invention is to provide techniques for switching from one workspace display to another. The user can organize a collection of tools such as windows or other display objects into groups, with the tools of each group being linked to a respective workspace so that they are displayed when it is. A display system object can be linked to more than one workspace, to provide a respective tool in each of those workspaces. If the user provides signals causing a switch from one of those workspaces to another, the respective tools share features so that the user perceives them as the same tool, and the state of the display system object maintains continuity.

Another aspect of the invention is to provide linking data structures which can be used to link workspace data structures to the display system objects of a preexisting object-based display system. Each display system object in such a system provides a respective independent display object set, by providing each display object in that set for display and by receiving signals relating to each such display object and responding to those signals. A workspace system can be added to the display system by providing workspace data structures and procedures and by linking the workspace data structures to the display system objects using placements. More than one placement can link to the same display system object. Each placement may contain a handle for the linked object and display characteristics, such as position and size, according to which that display system object provides a display object in the linked workspace.

Another aspect of the invention is to provide techniques for leaving and entering workspaces so that the user, upon reentering a workspace, can recognize it based on its organization. In leaving a workspace, the display characteristics of the display objects are stored in the placements which link their display system objects to the workspace's data structure. When that workspace is reentered, the placements are accessed to retrieve the display characteristics, which are then provided to the display system object.

Another aspect of the invention is to provide aids to navigation between workspaces. A special navigational display called the overview can be entered from a workspace. The overview includes a pictogram representing each of the existing workspaces, within which are window pictograms representing each window within that workspace. The user may select a window pictogram to obtain more information about the corresponding display object. The user may select a workspace pictogram to enter that workspace, leaving the overview.

Another aspect of the invention is to provide techniques for the apparent transfer of display objects from one workspace to another. Although a display object cannot be transferred between workspaces, the user may select a display object and cause its apparent transfer to another workspace. The user may, for example, transfer the pictogram representing that display object between workspaces in the overview, in which case a new placement is created linking to the new workspace. The user can also move the pictogram into an included workspace, in which case it will appear to be transferred into each of the other workspaces which include that workspace. The user could put the display object into a special workspace which is effectively included in all the other workspaces. Or the user could pick up the display object in leaving one workspace so that it will be transferred into the next workspace to be entered, in which case a placement will be created linking the display object to the next workspace.

Another aspect of the invention provides techniques for manipulating workspaces, including file operations on groups of workspaces. By a save operation, descriptors of the display system objects to which the selected workspaces are linked are stored in a file and the linking placements are changed so that they contain file handles, so that the workspace data structures can be stored in the file in a form which permits recreation of the workspaces. By a restore or augment operation, the display system objects are recreated from their descriptors and their new display system handles are used to modify the linking placements so that the workspace data structures are again linked to the display system objects and the workspaces can be displayed. These file operations can be used to deliver applications.

These and other objects, features and advantages of the present invention will be more fully understood from the following description together with the claims and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a schematic diagram of the display of a first workspace.

FIG. 1B is a schematic diagram of the display of a second workspace displayed.

FIG. 2 is a schematic diagram of workspace data structures with associated placements.

FIG. 3 is a flowchart showing steps for leaving a workspace.

FIG. 4 is a flowchart showing steps for entering a workspace.

FIG. 5 is an example of an overview display showing representations of workspaces.

FIG. 6 is a flowchart showing steps for entering the overview.

FIG. 7 is a flowchart showing steps for exiting the overview.

FIG. 8 is a schematic diagram showing an inclusion linking two workspace data structures.

FIG. 9 is a flowchart showing steps for file operations on workspace data structures.

FIG. 10 is a schematic diagram showing an overall workspace data structure.

FIG. 11 is a state and transition diagram showing procedures and modes of a workspace system.

FIG. 12 is a flowchart showing steps for the system setuo procedure of FIG. 11.

FIG. 13 is a flowchart showing steps for the exit workspace procedure of FIG. 11.

FIG. 14 is a flowchart showing a number of user signal sequences by which a user may signal a workspace exit in FIG. 13.

FIG. 15A is a flowchart showing steps for a routine for creating a list of workspaces in FIG. 13.

FIG. 15B is a flowchart showing steps of a recursive procedure called in FIG. 15A.

FIG. 16 is a flowchart showing steps for creating a list of controlling placements in FIG. 13.

FIG. 17 is a flowchart showing steps for testing the order of placements and for reordering placements in a workspace in FIG. 13.

FIG. 18A is a flowchart showing steps for a routine for walking through a workspace data structure to enter a workspace.

FIG. 18B is a flowchart showing steps of a recursive procedure called in FIG. 18A.

FIG. 19 is a flowchart showing steps for entering the overview.

FIG. 20 is a schematic block diagram showing the window registration system.

FIGS. 21 A-B are flowcharts showing steps for a save operation on workspaces.

FIG. 22 is a flowchart showing steps for a restore operation and an augment operation on a saved file.

FIG. 23 shows a display object for delivering applications which may be used with the augment operation of FIG. 22. FIG. 24 shows another display object for delivering applications which is available from the display object of FIG. 23.

DETAILED DESCRIPTION

A. Conceptual Framework

The following terms provide a conceptual framework for describing the present invention.

A "display object" is defined herein as a visually distinguishable display feature or set of features which is coherent, in the sense of sticking together in a display. An alphanumeric character is a common display object, and early user interfaces typically were only capable of displaying such objects. Windows and icons, described above, are more advanced display objects. Some display objects, such as characters within an icon's label, may not be separately user selectable, while others, such as the icon itself, may be selected for the performance of a specified operation. The types of display objects available, the manner in which they are selected and the available operations are all characteristics of the particular system providing the display, and the system includes hardware and software components.

The term "container" is defined herein to mean a display object which may contain other display objects within its boundaries. A window is an example of a container because it may be occupied by a number of characters or other display objects. A window is itself a display object. however, so that the display characteristics of the window, including its dimensions, place a constraint on the display objects it contains. A container such as a window may, however, remain invisible when displayed, even though display objects it contains are visible. Also, a container may be location sensitive, meaning that a user selectable display feature within it may be selected by user signals indicating the location of that feature. In general, a container may be analyzed into display characteristics, such as position, size and other features which depend on the particular presentation, and its contents, including the display objects and other features which do not depend on the particular presentation.

The term "display system" is defined herein to mean a system for managing or controlling a display. A display system is therefore an example of the more general term "user interface", meaning a system for receiving signals from a user or for providing signals to a user, or both. The user interface will typically be one of a number of subsystems within an overall system.

An "object-based display system" is a display system that presents a number of display objects as if each was an independent object, meaning that each of those display object appears to the user as if it were receiving signals from the user and responding to those signals independently from the other display objects, according to its own receiving and response procedures. The display objects that are managed in this manner may include containers such as windows and also non-containers such as icons. An object-based display system may also present several display objects as if they were not independent, such as two windows that differ in position and size but have the same contents or a window and its icon or shrunken form. Each group of display objects that are not independent of each other but that are independent of all other display objects is referred to herein as an "independent display object set". An object-based display system can be implemented in a multitude of ways. An object-based display system for managing windows, for example, is referred to herein as a "window system", and each independent display object set in a window system can be interactively manipulated independently of other windows not in that set.

The term "display system object" is defined herein to mean the means within an object-based display system for providing a corresponding independent display object set, meaning that the display system object provides the visible features of each of the display objects in that display object set and receives and responds to user signals relating to those display objects. A display system object may include one or more data structures and a number of procedures, and a data structure or procedure such as an editor or other application could be called by more than one display system object, each of which also includes a respective set of changeable display characteristics for presenting the corresponding display objects. Each window in a window system, for example, is provided by a display system object, which determines not only the contents of the window but also the display characteristics of the window. A single display system object may provide more than one window if those two windows are not independent of each other and may also provide an icon or shrunken form of a window it provides. A display system object is one instance of the more general term "signal source" , meaning any means for generating data that a user can perceive.

The term "display workspace", or simply "workspace", is defined herein to mean the display system entity that includes a collection of display objects together with spatial display relations between them. A workspace is referred to as being displayed when the display objects in it are available for display in accordance with the spatial display relations they have within that workspace. The workspace itself need not be visible as a distinct display object when it is displayed and could occupy the entire display area. The display objects within it may be user selectable, and if a display object is selectable by user signals indicating its location within the display, the workspace is location sensitive. A display system or part of a display system that manages or controls workspaces is termed a "workspace system". A workspace system may be implemented in many ways, some of which are described below.

A workspace system may provide only one workspace that is always displayed, or it may provide more than one workspace, in which case one or more of the workspaces may not be displayed at times. Workspaces may thus be referred to as "virtual workspaces", with the display objects in each workspace being available for display when that workspace is displayed. In other words, the workspace itself is virtual, yet a part of it may be made real by being displayed.

The more general term "perceptual space", or simply "space", is used herein to refer to any range of perception that may be occupied by signals which are distinguishable by a user. A display workspace is but one example of a space, the type of space that display objects like windows and icons may occupy. Another example of space would be the perceptual space that different tones or voices may occupy.

In general, the distinguishable signals generated by a user interface, whether windows or voices, may be referred to as "user interface objects". An "object-based user interface system" is one that can provide a number independent user interface objects, meaning that each of these objects seems to the user to be receiving signals from the user and responding to those signals independently from the other objects, according to its own receiving and response procedures. An object-based user interface system may also present several user interface objects as if they were not independent, and each group of objects that are not independent of each other but that are independent of all other objects is referred to herein as an "independent interface object set". An "interface system object" is the means within an object-based user interface system for providing each of the user interface objects in a given independent interface object set and for receiving and responding to user signals relating to those user interface objects.

The above terms have the meanings indicated above both in the following description and in the attached claims.

B. General Features

FIGS. 1-9 illustrate a number of general features of the present invention, including switching from the display of one workspace to another; placements linking display objects to workspaces: methods of leaving and entering workspaces; aids to navigating between workspaces; techniques for transferring display objects from one workspace to another; the inclusion of a workspace in another workspace; techniques for manipulating workspaces; and techniques for transferring a group of workspaces.

1. Workspace Display Switching. FIGS. 1A and IB each show a respective display screen presenting a plurality of display objects. These display screen are examples of workspace displays, each displaying part or all of a workspace occupied by a number of distinguishable display objects, such as windows and icons.

Workspace display 10 in FIG. 1A is a display of a first workspace, which includes windows 12 and 14 and icon 16, positioned within display 10 in accordance with their spatial relations within the first workspace. Window 12 presents several alphabetic characters from a text editing application and window 14 presents a triangular solid from a graphics application. Each of these windows may be location sensitive, so that the user, by selecting a location within a window and invoking an operation, can send a signal corresponding to that location to the display system object providing that window. For example, in an editing window, the user may modify a display feature by selecting the location at which that feature is displayed and invoking an editing operation. Door icon 16, on the other hand, is not location sensitive. Pointer 18 is currently pointing at door icon 16, and if the user provides a select signal at this time, door icon 16 will be selected as a unit, without regard to the position of pointer 18 within the icon. The user may then invoke a door opening operation, causing workspace display 10 to disappear and workspace display 20 to appear, as shown in FIG. 1B.

Workspace display 20 is a display of a second workspace, which includes windows 22 and 24 and icon 26, positioned in accordance with their spatial relations within the second workspace. Window 22, which is provided by the same display system object as window 12 in workspace display 10, is presented in a different location on the screen and with different dimensions than window 12, as can be seen from the cutting off of the character "d". Window 24 presents a cylindrical solid from another graphics application and a different door icon 26, a "back door" that can be used to return to workspace display 10.

Workspace displays 10 and 20 each include a group of display objects as described above. As noted, two of those display objects, windows 12 and 22, are provided by the same display system object, which calls a text editing application as one of its procedures. If the user edits the contents of window 12 and then uses door icon 16 to enter workspace display 20, the changes made will be reflected in the contents of window 22 and the state of the underlying display system object will be continuous. It is also possible for the user to remove window 12 from workspace display 10 without removing window 22 from workspace display 20.

Windows 12 and 22 illustrate the phenomenon of object constancy, under which two successively displayed objects are perceived as the same object. Object constancy can result from many cues, including position, size, context, contents, labels, history and so forth. Here, windows 12 and 22 appear to be the same object despite having different display characteristics, including different positions, sizes and contexts. But because they each contain a fragment of shared text, the user typically perceives them as the same object. That perception is reinforced if they also share response procedures so that user invoked operations, such as scrolling or selecting and operating on contents, have the same effect in each window. Other shared features which can result in object constancy include sharing of an application, such as an editor; sharing of data; sharing of the state of the application as applied to the data; sharing of a history of continuous operation without interruption, i.e. without disengaging the application from the data.

The above described features of the present invention are based on the recognition of a problem which previous user interface techniques have not completely solved, the problem of tool faulting, which precludes fast task switching. Tool faulting is not limited to a display-based user interface, but occurs in any object-based user interface. Each user interface object in effect serves as a tool, and the user treats each tool as an external memory or processor that augments the user's own capabilities. These tools could be display objects, audible objects or entities, mechanical gesturing objects, tactile objects or objects providing any other signal perceptible by the user.

The invention is based in part on the recognition that a user's activities are organized around tasks, during each of which the user employs a collection of tools appropriate to that task. This phenomenon is called locality of reference, meaning that within any given short period of time the number of different tools employed will be small while the number of instances of use of each tool employed is relatively high. Therefore, references to tools occur in clusters. These clusters are separated, however, by distinct task s