CA2147850A1 - Object-oriented navigation system - Google Patents
Object-oriented navigation systemInfo
- Publication number
- CA2147850A1 CA2147850A1 CA002147850A CA2147850A CA2147850A1 CA 2147850 A1 CA2147850 A1 CA 2147850A1 CA 002147850 A CA002147850 A CA 002147850A CA 2147850 A CA2147850 A CA 2147850A CA 2147850 A1 CA2147850 A1 CA 2147850A1
- Authority
- CA
- Canada
- Prior art keywords
- document
- recited
- selection
- iconic
- action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Abstract
A technique for navigating in an object-oriented computer system, including a prcocessor with an attached storage and a display. A
first document is loaded into the storage and presented on the display. Then, a selection object is created and associated with the first document on the display. A reference is associated with the first selection in the storage. Then, a second document is loaded into the storage and presented on the display and a reference is associated with the first selection in the second document. Finally, navigation is enabled via the reference in the second document to the first selection in the first document. Commands can also be performed via a reference on a remote object as if the object resided locally.
first document is loaded into the storage and presented on the display. Then, a selection object is created and associated with the first document on the display. A reference is associated with the first selection in the storage. Then, a second document is loaded into the storage and presented on the display and a reference is associated with the first selection in the second document. Finally, navigation is enabled via the reference in the second document to the first selection in the first document. Commands can also be performed via a reference on a remote object as if the object resided locally.
Description
wo 95/06282 21 ~ 7 8 5 0 PCTIUSg4/000l2 OBJECT-ORIENTED NAVIGATION SYSTEM
COPYRIGHT NOTIFICATION
Portions of this patent application contain materials that are subject to copyright 5 protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
CROSS-REFERENCE TO RELATED PATE~TAPPLICATIONS
This patent application is related to the patent application entitled Object Oriented Framework System, by Debra L. Orton, David B. Goldsmith, Christopher P.Moeller, and Andrew G. Heninger, filed 12/23/92, and assigned to Taligent, the disclosure of which is hereby incorporated by re~lence;
This patent application is related to the patent application entitled Dynamic Linking System, by Arn Schaeffer, David Anderson, Jack Palevich and Larry Rosenstein, filed 07/19/93, and assigned to Taligent, the disclosure of which is hereby incorporated by reference; and This patent application is related to the patent application entitled Container Object System, by Frank Nguyen, filed 06/03/93, and assigned to Taligent, the disclosure of which is hereby incorporated by re~rence.
Field of Invention This invention generally relates to improvements in computer systems and more particularly to a system and method for navigating between areas of information and the system as a whole and also to use of remote objects as if they were located locally.
Background of the Invention Computer systems often require linkages between applications such as those found in process control systems used to control oil refineries. So, for example, an operator at a graphical workstation could select a graphic symbol indicative of a valve, and change its status from closed to open to affect a change to its image on the display and a corresponding change to the process environment where the valve is closed.However, most process control systems were "hard-coded" to perform specific tasks.
The linkages were not easily redefined via an operator's console. Further, the linkages were not flexible or multi-purpose. Rather each linkage had a predefined task that could not be readily changed.
21~7850
COPYRIGHT NOTIFICATION
Portions of this patent application contain materials that are subject to copyright 5 protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
CROSS-REFERENCE TO RELATED PATE~TAPPLICATIONS
This patent application is related to the patent application entitled Object Oriented Framework System, by Debra L. Orton, David B. Goldsmith, Christopher P.Moeller, and Andrew G. Heninger, filed 12/23/92, and assigned to Taligent, the disclosure of which is hereby incorporated by re~lence;
This patent application is related to the patent application entitled Dynamic Linking System, by Arn Schaeffer, David Anderson, Jack Palevich and Larry Rosenstein, filed 07/19/93, and assigned to Taligent, the disclosure of which is hereby incorporated by reference; and This patent application is related to the patent application entitled Container Object System, by Frank Nguyen, filed 06/03/93, and assigned to Taligent, the disclosure of which is hereby incorporated by re~rence.
Field of Invention This invention generally relates to improvements in computer systems and more particularly to a system and method for navigating between areas of information and the system as a whole and also to use of remote objects as if they were located locally.
Background of the Invention Computer systems often require linkages between applications such as those found in process control systems used to control oil refineries. So, for example, an operator at a graphical workstation could select a graphic symbol indicative of a valve, and change its status from closed to open to affect a change to its image on the display and a corresponding change to the process environment where the valve is closed.However, most process control systems were "hard-coded" to perform specific tasks.
The linkages were not easily redefined via an operator's console. Further, the linkages were not flexible or multi-purpose. Rather each linkage had a predefined task that could not be readily changed.
21~7850
2-More recently, Apple and other interactive computer systems have provided linkages between closed documents and containers or folders. So, for example, a user of an interactive computer system could select a graphical symbol indicative of a document and open the document via the graphical symbol. A folder could have a 5 selected document dropped into it via the graphical symbol indicative of the folder.
Summary of the Invention The subject invention overcomes the deficiencies of the prior art by providing asystem and method for navigating between objects in a compùter system and using 10 remote objects in a computer system as if they resided locallyA technique is disclosed for navigating in an object-oriented computer system, including a processor with an attached storage and a display. A first document is loaded into the storage and presented on the display. Then, a selection object is created and associated with the first document on the display. A reference is associated with the first selection in the storage. Then, a second document is loaded into the storage and presented on thedisplay and a refe~ ce is associated with the first selection in the second document.
Finally, navigation is enabled via the reference in the second document to the first selection in the first document.
Brief Description of the Drawings Figure 1 is a block diagram of a personal computer system in accordance with a preferred embodiment;
Figure 2 is an illustration of a document display with a selected area and a reference object in accordance with a preferred embodiment;
Figure 3 is a flowchart presenting the processing that transpires in accordance with a preferred embodiment of the creation of a reference object;
Figure 4 is a flowchart setting forth the detailed logic in accordance with a preferred embodiment of the usage of a refel~llce object;
Figure 5 illustrates a display with a reference to a remote printer in accordance with a preferred embodiment;
Figure 6 illustrates a user dragging a copy of an object to a reference in accordance with a prefelled embodiment; and
Summary of the Invention The subject invention overcomes the deficiencies of the prior art by providing asystem and method for navigating between objects in a compùter system and using 10 remote objects in a computer system as if they resided locallyA technique is disclosed for navigating in an object-oriented computer system, including a processor with an attached storage and a display. A first document is loaded into the storage and presented on the display. Then, a selection object is created and associated with the first document on the display. A reference is associated with the first selection in the storage. Then, a second document is loaded into the storage and presented on thedisplay and a refe~ ce is associated with the first selection in the second document.
Finally, navigation is enabled via the reference in the second document to the first selection in the first document.
Brief Description of the Drawings Figure 1 is a block diagram of a personal computer system in accordance with a preferred embodiment;
Figure 2 is an illustration of a document display with a selected area and a reference object in accordance with a preferred embodiment;
Figure 3 is a flowchart presenting the processing that transpires in accordance with a preferred embodiment of the creation of a reference object;
Figure 4 is a flowchart setting forth the detailed logic in accordance with a preferred embodiment of the usage of a refel~llce object;
Figure 5 illustrates a display with a reference to a remote printer in accordance with a preferred embodiment;
Figure 6 illustrates a user dragging a copy of an object to a reference in accordance with a prefelled embodiment; and
-3 -Figure 7 illustrates an object in proximity to a reference object in partial completion of an action in accordance with a preferred embodiment.
Detailed Descr~ption of the Preferred Embodiment of the Invention Overview of Navigation Links A reference object has inherent characteristics that distinguish it from other objects on a graphic display. First, a reference can be placed anywhere that user data can be placed (e.g., in a document, container, place, or just on the desktop). Second, a rerer~llce refers to a real object, not another reference. A reference refers to one and only one selection which can contain a plurality of objects. A reference continues to 10 refer to an object independent of changes to the number of referel-ces or the object's attributes (e.g., name, icon) and/or its position in the containment hierarchy. Opening a rererellce will open and present the referred-to object. Copying, or deleting a rereL~nce does not copy, or delete the referred-to object. Since a reference does not guarantee the existence of the referred-to object, a refer~llce is unidirectional by default.
Inherited characteristics of a referel-ce Because a reference is a model anchor as described in the patent application entitled, DYNAMIC LINKING SYSTEM which is incorporated in its entirety in this patent application. A refer~llce inherits the following characteristics:
20 A rerel~l~ce can follow its link to the referred-to object.
A rerer~llce can cache attributes, e.g., name, icon, etc.
A refer~llce can be presented as an icon view.
Example Usage Scenarios 25 The first set of scenarios show how rereLences are used in a system.
Technical Papers An author makes a refer~-ce to a section of a paper by another author. The rerere,lce specifies exactly which page and paragraph is relevant to the topic. A reader 30 can then use the reference to navigate from the first author's paper to the relevant information in the second author's paper.
Spreadsheets Often, it is desirable to reference the value of one cell in a spreadsheet in the formula that calculates the value in another cell. A user can also use the rerer~nce to navigate to the cell whether it be in the same or a different spreadsheet.
wo 9s/06282 21 ~ 7 8 5 PCT/US94/00012 Folders A user can place a reference to a folder inside another folder so that the reference appears to be in a different folder hierarchy. Opening the reference folder, brings the 5 user to the original folder location.
Appliances If the user needs access to an appliance (printer fax machine, telephone, etc.) from a different location on their system, they can create a reference to the appliance 10 and place it in the desired location. The reference can then be used either as a navigational aid, or the appliance can be used directly through the reference without navigating to its actual location.
Business Cards A re~~ ce to a person's printer can be placed on their electronic business card so that a recipient of the business card can use the rere~ ce to navigate to the first party's printer.
The following scenarios will use references of folders and documents to describe20 the user interaction with references. Other types of refer~,.ces will behave similarly.
Making a reference of a document inside afolderfrom the samefolder: A user command-drags (press the Command key while dragging) Document A from Folder X and drops it into the same folder. It appears as Document A (a refel~l-ce to Document A) in 25 Folder X.
Making a reference of a text selection inside a documentfrom anotherfolder: A user command-drags a text selection inside Document B and drops it into Folder X. It appears as Document B (a re~l~llce to Document A) in Folder X.
Making a reference of a document inside afolderfrom another document; A user command-drags Document A inside Folder X and drops it into Document B. It appears as Document A (a reference to Document A) in Document B.
35 Deleting a reference: A user drags Document A from Document B into a Waste Basket (a Lerer~l-ce to the Trash Can) or into the Trash Can itself.
Copying (moving) a referencefrom onefolder to anotherfolder: A user option-drags (drags) Document A from Folder X to Folder Y. It appears as Document A' in Folder Y.
Copying (moving) a reference from a folder to a document: A user option-drags (drags) Document A from Folder X to Document B. It appears as Document A' in Document B.
5 Copying (moving) a reference from a document to a folder: A user option-drags (drags) - Document A' from Document B to Folder X. It appears as Document A" in Document B.
Detailed Class Architecture Hyperlinks are bi-directional links from a source anchor to a destination anchor.
Containables are potentially bi-directional links from an empty anchor to a destination anchor. References are potentially bi-directional links from a possibly empty anchor to a destination anchor. Each one has a unique protocol for presentation, caching of attributes, and following the links to the destination anchor. The design for dealing with the similarities exhibited by hyperlinks, containables, and references is as follows:
The support for hyperlinks, containables, and rere~ ces is provided by TContainPolicy, whose default implementation is TStandardContainPolicy.
These classes are part of the Container Framework, which also provides two abstract model classes for subclassing to create new data types. See the "Model classes" section below for details. On the selection side, the support is provided by MSelectionCanContainPolicy, whose default implementation is TSelectionCanContainPolicy. These classes are also part of the Container Framework which also provides two abstract selection classes for subclassing to create new selection types. See the "Selection classes" section below for details.
25 The list of hyperlinks, containables, and references is a single list of TModelAnchor pointers. Hyperlink is a TModelAnchor. Containables and references descend from a common class, TContainable which is a subclass of TModelAnchor. See the "Hyperlink/containable/refer~llce classes" section below for details.
A user can create references by selecting an object or collection of objects andcommand-dragging and dropping the selection. This action sends a MakeReference command with the source model selection (i.e., the dragged object) as a parameter to the source model, and a Paste command with the target model selection (i.e., the whole target model) as a parameter to the target model. The source and target can be the same or a different model. See the "Command classes" section below for details.
Any model and model selection (with a TContainPolicy implementation) supports the display and manipulation of references from another model and modelselection (with a TContainPolicy implementation). For example, a folder can contain a refelellce to a specific piece of text in a compound document (a compound document 5 selection); and a compound document can contain a reference to a specific document in a folder (a folder selection). Such interoperability is possible because a reference is always wrapped in a TContainableWrapperModel which any model and model selection (with a TContainPolicy implementation) knows how to absorb. See the "Wrapper model classes" section below for details.
Model classes The Container Framework provides a TEmbedderContainerModel which can be subclassed from to create new data types which can embed and contain. For example, TCompoundDocumentModel is a document which can support embedded models as 15 well as hyperlinks, containables, and references. Likewise, the Container Framework provides a TContainerModel which can be subclassed to create new data types which can only contain. For example, TFolderModel is a folder which can support hyperlinks, containables, and references.
Selection classes The Container Framework provides a TEmbedderContainerModelSelection which can be subclassed to create new selection types which can embed and contain.
For example, TCompoundDocumentModelSelection is a document selection which supports embedded models as well as hyperlinks, containables, and referellces.
Likewise, the Container Framework provides a TContainerModelSelection which can be subclassed to create new selection types which can only contain. For example, TFolderModelSelection is a folder selection which can support hyperlinks, containables, and references.
Hyperlinklcontainablelreference classes The following protocols are provided by TModelAnchor for managing hyperlinks, containables, and references:
Attribute management protocol, i.e., adding, deleting, listing, and looking up their attributes;
Data management protocol, i.e., adding, copying, and deleting their data;
Link management protocol, i.e., adding, deleting, following, listing, and looking up their links (there is only one link in the case of a containable or a reference);
and view creation protocol, i.e., creating icon views of hyperlinks, containables, and references.
The view creation protocol is used by a compound document presentation to create a link map of hyperlinks; it can also be used by a folder presentation to create an outline view of containables and references.
;~
TContainable is an abstract subclass of TModelAnchor. It redefines new protocols specific to containables (TOwnedContainable) and re~r~l.ces (TReferencedContainable):
Attribute management protocol, i.e., accelerator methods for retrieving special attributes. These attributes may include system-defined attributes (size, author, creation date, type, various iconic representations and adornments for creating views of the containable or lefelence) and user-defined attributes (name, user-defined labels). If TContainable does not find the attributes in its local cache, it accesses the model store to retrieve the attributes. In some cases, it may find the attributes in the user interface archive; for example, if a model does not have a custom icon, it retrieves a generic "document" icon.
Data management protocol, i.e., redefined methods for copying and deleting.
TOwnedContainable TReferencedContainable Copy Copies containable and Copies reference only model Delete Deletes containable and Deletes reference only model 25 Method to wrap the containable or re~Lellce in a model so that it can participate in data exchange (e.g., cut, copy, and paste) using model selection.
Method for the Preferences Framework to open a property-sheet on the containable.
30 Other subclasses of TContainable can be written if different semantics and/or behavior is required. For example, "opening" stationery causes a new document to be created.
W O 95/06282 21 4 ~ 8 5 0 PCTAUS94/00012 Thus TStationeryContainable, a subclass of TContainable, has to override its link-follow method to provide the right behavior.
Command classes 5 The MakeReference command is a new standard command which works on any model selection and its associated model. MakeReference works as follows:
1. Get the data from the source model selection. T-~e data will be of type TModelAnchor pointer and represents a hyperl~hk, a containable, or a re~lellce.
10 2. Create a reference on the data.
3. Make this reference the new source model selection.
Detailed Descr~ption of the Preferred Embodiment of the Invention Overview of Navigation Links A reference object has inherent characteristics that distinguish it from other objects on a graphic display. First, a reference can be placed anywhere that user data can be placed (e.g., in a document, container, place, or just on the desktop). Second, a rerer~llce refers to a real object, not another reference. A reference refers to one and only one selection which can contain a plurality of objects. A reference continues to 10 refer to an object independent of changes to the number of referel-ces or the object's attributes (e.g., name, icon) and/or its position in the containment hierarchy. Opening a rererellce will open and present the referred-to object. Copying, or deleting a rereL~nce does not copy, or delete the referred-to object. Since a reference does not guarantee the existence of the referred-to object, a refer~llce is unidirectional by default.
Inherited characteristics of a referel-ce Because a reference is a model anchor as described in the patent application entitled, DYNAMIC LINKING SYSTEM which is incorporated in its entirety in this patent application. A refer~llce inherits the following characteristics:
20 A rerel~l~ce can follow its link to the referred-to object.
A rerer~llce can cache attributes, e.g., name, icon, etc.
A refer~llce can be presented as an icon view.
Example Usage Scenarios 25 The first set of scenarios show how rereLences are used in a system.
Technical Papers An author makes a refer~-ce to a section of a paper by another author. The rerere,lce specifies exactly which page and paragraph is relevant to the topic. A reader 30 can then use the reference to navigate from the first author's paper to the relevant information in the second author's paper.
Spreadsheets Often, it is desirable to reference the value of one cell in a spreadsheet in the formula that calculates the value in another cell. A user can also use the rerer~nce to navigate to the cell whether it be in the same or a different spreadsheet.
wo 9s/06282 21 ~ 7 8 5 PCT/US94/00012 Folders A user can place a reference to a folder inside another folder so that the reference appears to be in a different folder hierarchy. Opening the reference folder, brings the 5 user to the original folder location.
Appliances If the user needs access to an appliance (printer fax machine, telephone, etc.) from a different location on their system, they can create a reference to the appliance 10 and place it in the desired location. The reference can then be used either as a navigational aid, or the appliance can be used directly through the reference without navigating to its actual location.
Business Cards A re~~ ce to a person's printer can be placed on their electronic business card so that a recipient of the business card can use the rere~ ce to navigate to the first party's printer.
The following scenarios will use references of folders and documents to describe20 the user interaction with references. Other types of refer~,.ces will behave similarly.
Making a reference of a document inside afolderfrom the samefolder: A user command-drags (press the Command key while dragging) Document A from Folder X and drops it into the same folder. It appears as Document A (a refel~l-ce to Document A) in 25 Folder X.
Making a reference of a text selection inside a documentfrom anotherfolder: A user command-drags a text selection inside Document B and drops it into Folder X. It appears as Document B (a re~l~llce to Document A) in Folder X.
Making a reference of a document inside afolderfrom another document; A user command-drags Document A inside Folder X and drops it into Document B. It appears as Document A (a reference to Document A) in Document B.
35 Deleting a reference: A user drags Document A from Document B into a Waste Basket (a Lerer~l-ce to the Trash Can) or into the Trash Can itself.
Copying (moving) a referencefrom onefolder to anotherfolder: A user option-drags (drags) Document A from Folder X to Folder Y. It appears as Document A' in Folder Y.
Copying (moving) a reference from a folder to a document: A user option-drags (drags) Document A from Folder X to Document B. It appears as Document A' in Document B.
5 Copying (moving) a reference from a document to a folder: A user option-drags (drags) - Document A' from Document B to Folder X. It appears as Document A" in Document B.
Detailed Class Architecture Hyperlinks are bi-directional links from a source anchor to a destination anchor.
Containables are potentially bi-directional links from an empty anchor to a destination anchor. References are potentially bi-directional links from a possibly empty anchor to a destination anchor. Each one has a unique protocol for presentation, caching of attributes, and following the links to the destination anchor. The design for dealing with the similarities exhibited by hyperlinks, containables, and references is as follows:
The support for hyperlinks, containables, and rere~ ces is provided by TContainPolicy, whose default implementation is TStandardContainPolicy.
These classes are part of the Container Framework, which also provides two abstract model classes for subclassing to create new data types. See the "Model classes" section below for details. On the selection side, the support is provided by MSelectionCanContainPolicy, whose default implementation is TSelectionCanContainPolicy. These classes are also part of the Container Framework which also provides two abstract selection classes for subclassing to create new selection types. See the "Selection classes" section below for details.
25 The list of hyperlinks, containables, and references is a single list of TModelAnchor pointers. Hyperlink is a TModelAnchor. Containables and references descend from a common class, TContainable which is a subclass of TModelAnchor. See the "Hyperlink/containable/refer~llce classes" section below for details.
A user can create references by selecting an object or collection of objects andcommand-dragging and dropping the selection. This action sends a MakeReference command with the source model selection (i.e., the dragged object) as a parameter to the source model, and a Paste command with the target model selection (i.e., the whole target model) as a parameter to the target model. The source and target can be the same or a different model. See the "Command classes" section below for details.
Any model and model selection (with a TContainPolicy implementation) supports the display and manipulation of references from another model and modelselection (with a TContainPolicy implementation). For example, a folder can contain a refelellce to a specific piece of text in a compound document (a compound document 5 selection); and a compound document can contain a reference to a specific document in a folder (a folder selection). Such interoperability is possible because a reference is always wrapped in a TContainableWrapperModel which any model and model selection (with a TContainPolicy implementation) knows how to absorb. See the "Wrapper model classes" section below for details.
Model classes The Container Framework provides a TEmbedderContainerModel which can be subclassed from to create new data types which can embed and contain. For example, TCompoundDocumentModel is a document which can support embedded models as 15 well as hyperlinks, containables, and references. Likewise, the Container Framework provides a TContainerModel which can be subclassed to create new data types which can only contain. For example, TFolderModel is a folder which can support hyperlinks, containables, and references.
Selection classes The Container Framework provides a TEmbedderContainerModelSelection which can be subclassed to create new selection types which can embed and contain.
For example, TCompoundDocumentModelSelection is a document selection which supports embedded models as well as hyperlinks, containables, and referellces.
Likewise, the Container Framework provides a TContainerModelSelection which can be subclassed to create new selection types which can only contain. For example, TFolderModelSelection is a folder selection which can support hyperlinks, containables, and references.
Hyperlinklcontainablelreference classes The following protocols are provided by TModelAnchor for managing hyperlinks, containables, and references:
Attribute management protocol, i.e., adding, deleting, listing, and looking up their attributes;
Data management protocol, i.e., adding, copying, and deleting their data;
Link management protocol, i.e., adding, deleting, following, listing, and looking up their links (there is only one link in the case of a containable or a reference);
and view creation protocol, i.e., creating icon views of hyperlinks, containables, and references.
The view creation protocol is used by a compound document presentation to create a link map of hyperlinks; it can also be used by a folder presentation to create an outline view of containables and references.
;~
TContainable is an abstract subclass of TModelAnchor. It redefines new protocols specific to containables (TOwnedContainable) and re~r~l.ces (TReferencedContainable):
Attribute management protocol, i.e., accelerator methods for retrieving special attributes. These attributes may include system-defined attributes (size, author, creation date, type, various iconic representations and adornments for creating views of the containable or lefelence) and user-defined attributes (name, user-defined labels). If TContainable does not find the attributes in its local cache, it accesses the model store to retrieve the attributes. In some cases, it may find the attributes in the user interface archive; for example, if a model does not have a custom icon, it retrieves a generic "document" icon.
Data management protocol, i.e., redefined methods for copying and deleting.
TOwnedContainable TReferencedContainable Copy Copies containable and Copies reference only model Delete Deletes containable and Deletes reference only model 25 Method to wrap the containable or re~Lellce in a model so that it can participate in data exchange (e.g., cut, copy, and paste) using model selection.
Method for the Preferences Framework to open a property-sheet on the containable.
30 Other subclasses of TContainable can be written if different semantics and/or behavior is required. For example, "opening" stationery causes a new document to be created.
W O 95/06282 21 4 ~ 8 5 0 PCTAUS94/00012 Thus TStationeryContainable, a subclass of TContainable, has to override its link-follow method to provide the right behavior.
Command classes 5 The MakeReference command is a new standard command which works on any model selection and its associated model. MakeReference works as follows:
1. Get the data from the source model selection. T-~e data will be of type TModelAnchor pointer and represents a hyperl~hk, a containable, or a re~lellce.
10 2. Create a reference on the data.
3. Make this reference the new source model selection.
4. Copy the new source model selection to the clipboard.
The Paste command is an existing standard command which works on any model selection and its associated model. Paste works as follows:
1. Ask the clipboard for a list of types which the foreign model can be converted to.
2. Ask the target model selection to choose from this list the type it wants the foreign model to be converted to and the way it wants to accept the converted foreign model (embed or absorb).
3. Ask the clipboard for a copy of the converted foreign model.
4. Ask the target model selection to accept the converted foreign model.
The Paste command is an existing standard command which works on any model selection and its associated model. Paste works as follows:
1. Ask the clipboard for a list of types which the foreign model can be converted to.
2. Ask the target model selection to choose from this list the type it wants the foreign model to be converted to and the way it wants to accept the converted foreign model (embed or absorb).
3. Ask the clipboard for a copy of the converted foreign model.
4. Ask the target model selection to accept the converted foreign model.
5. Make this model the new target model selection.
Wrapper model classes Models are required to wrap containables and references for data exchange (e.g.,cut, copy, and paste) using model selections: the exchange currency is a model. Since a wrapper model need neither TContainPolicy nor TEmbedPolicy implementation, it can 30 be created as a concrete subclass of TModel abstract class.
Figure 3 is a flowchart presenting the processing that transpires in accordance with a preferred embodiment of the creation of a reference object. Processing commences at terminal 300 and immediately passes to function block 310 where the35 first and second objects are opened. The objects could be text documents, graphic images, spreadsheets, folders or any other computer applications. Then, at function block 320, a selection is created in the first object by selecting a first corner of an area on WO 95/06282 _ 21 9 78 5 o PCT/US94/00012 the display and dragging an expanding, rectangular outline to enclose the selected area.
At function block 330, an anchor is created from the selection by instantiating an anchor object. The anchor manages a selection area which is persistent as long as the selection area remains linked to the anchor object. Function block 340 illustrates the creation of a 5 refefence object. A reference object is a wrapper around an anchor object that allows the anchor object to reside inside any other object or container as discussed in the cross referenced patent applications. Then, at function block 350, the surrogate anchor is adopted into the reference object and the reference object is adopted into the second object as shown in function block 360. By surrogate anchor we mean a pointer to an 10 actual anchor. Adoption refers to the processing necessary to transfer ownership from one object to another object. Finally, processing is completed at terminal 370. While this example has the ref~ ce object created in one document and adopted into a second document, one of ordinary skill in the art will recognize that the rere~ ce object could reside in a different location in the first document.
Figure 4 is a flowchart presenting the processing that transpires in accordance with a preferred embodiment of the usage of a re~l~llce object. Processing commences at terminal 400 and immediately passes to function block 410 where the first object is opened. The object could be a text document, graphic image, spreadsheet, folder or 20 other computer application. Then, at function block 420, a reference object is selected.
The refer~llce object abstractly specifies a target for an action because it contains an anchor specifying the selection. The action is resolved at follow or lookup time.
Function block 430 illustrates the creation processing for the command on the start_side. The creation processing responds to a user taking a specific action such as 25 double-clicking to open an object. When an action is taken, an appropriate command is initiated to service the action. So, for example, the command could be a follow, or open command, a print command, a delete command, or any command relevant to the selection in the dest_side document. This processing creates the indicated command at the start_side of the document. Then, at function block 440, the command is sent to the 30 dest_side of the other document's anchor. The send operation queries the linkage as shown in function block 450, opening the dest_side document, if necessary, setting the selection equal to the anchor on the dest_side, and scrolling the position of the anchor into view as set forth in function block 460. Then, the command applied at the start_side is applied at the dest_side as shown in function block 470. Finally, 35 processing is completed at terminal 480. While this example has the reference object located in one document and the referenced anchor in a second document, one of ordinary skill in the art will recognize that the reference object and the referenced object could reside in the same document.
Figure 5 illustrates a display with a reference to a remote printer in accordance with a preferred embodiment. A document icon 500 is currently resident in document New Request 510. A reference to a remote printer MyPrinter 520 is enabled in icon form. An example of a reference object being used to manipulate a remote resource is presented in Figures 5, 6 and 7 and their accompanying d,,'éscription.
Figure 6 illustrates a user dragging a copy of,a~ object to a reference in accordance with a preferred embodiment. Figure 6~11ustrates a document icon 600 and 10 an outline 610 of the document. The outline is created by pressing the option key while dragging the icon 600. The outline represents a copy of the document.
Figure 7 illustrates an object in proximity to a reference object in partial completion of an action in accordance with a preferred embodiment. The document 15 outline 710 is dropped on the printer reference 720 to perform a print command on the document 700.
REFERENCE Program Listing C++ Language / / Interface: TReferencedContainable class TReferencedContainable: public TContainable public:
static const TContainableKind& kKind;
/ / Special methods.
TReferencedContainable(const TAbstractModel&, const TAbstractModel&);
TReferencedContainable();
TReferencedContainable(const TReferencedContainable&);
~TReferencedContainable();
TReferencedContainable& operator=(const TReferencedContainable&);
virtual TStream& operator>>=(TStream& towhere) const;
virtual TStream& operator<<=(TStream& towhere);
wo 95/06282 214 7 8 5 0 PCT/US94/00012 MCollectibleDeclarationsMacro(TReferencedContainable);
/ / Presentation methods.
virtual TPresentableView* CreateIconView() const;
/ / Semantic methods.
virtual TContainableKind GetContainableKind() const;
virtual void DeleteSelf();
virtual TContainable~ DuplicateSelf() const;
~;
// Interface: TMakeReferenceUserCommand class TMakeReferenceUserCommand: public TNewAnchorCommand public:
TMakeReferenceUserCommand(const TText&);
TMakeReferenceUserCommand();
TMakeReferenceUserCommand(const TMakeReferenceUserCommand&);
virtual ~TMakeReferenceUserCommand();
TMakeReferenceUserCommand& operator=(const TMakeReferenceUserCommand&);
virtual TStream& operator>>=(TStream&) const;
virtual TStream& operator<c=(TStream&);
MCollectibleDeclarationsMacro(TMakeReferenceUserCommand);
public:
virtual Boolean HandleLocalDo();
protected:
virtual Boolean Accepts(constTModelSelection&) const;
~;
//
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l 35 / / Class Name: TReferencedContainable / / Description: A refe~ ced containable is an alias to a document.
/ / - CreateIconView returns an icon view for a referenced containable presentation.
WO 95/06282 ~i 7 8 5 0 PCT/US94/00012 / / - DeleteSelf is overridden so that removing a referenced containable / / from a container only removes itself.
/ / - DuplicateSelf is overriden so that copying a reférenced containable / / in a container only copies itself.
/ / - GetContainableKind returns TReferencedC~ntainable::kKind as the type.
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII~IIIIIIIIIIIIIIIIIIIIII
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l MCollectibleDefinitionsMacro(TReferencedContainable, 0);
const TContainableKind TReferencedContainable_kKind("TReferencedContainable");
10 const TContainableKind& TReferencedContainable::kKind =
TReferencedContainable_kKind;
TReferencedContainable::TReferencedContainable(const TAbstractModel&
containerModel, const TAbstractModel& containableModel) : TContainable(containerModel, containableModel) {
}
TReferencedContainable::TReferencedContainable() : TContainable() 20 ~
}
TReferencedContainable::TReferencedContainable(const TReferencedContainable&
copy) : TContainable(copy) 25 ~
}
TReferencedContainable::~TReferencedContainable() }
30 TReferencedContainable& TReferencedContainable::operator=(const TReferencedContainable& copy) if (this != ©) TRY
TContainable::operator=(copy);
CATCH(TStandardException) RETHROW *this;
ENDTRY
return (*this);
}
5 TStream&
TReferencedContainable::operator>>=(TStream& towhere) const {
TRY
MAbstractModelAnchor::WriteVersion(towhere);
TContainable::operator>>=(towhere);
CATCH(TStandardException) RETHROW towhere;
ENDTRY
return towhere;
15 ) TStream&
TReferencedContainable::operator<<=(TStream& fromwhere) TRY
VersionInfo theVersion =
MAbstractModelAnchor::ReadVersion(fromwhere);
TContainable::operator<<=(fromwhere);
CATCH(TStandardException) RETHROW fromwhere;
ENDTRY
return fromwhere;
}
TPresentableView*
TReferencedContainable::CreateIconView() const 30 {
/ / create the icon view for the ref~ ced containable.
TPresentableView* theView = new TContainableIconView((TContainable*)this, /*isReference=*/ TRUE);
return (theView);
35 ~
TContainableKind TReferencedContainable::GetContainableKind() const 21~785 0 WO 95/06282 _ PCT/US94/00012 return (TReferencedContainable::kKind);
}
void TReferencedContainable::DeleteSelf() 5 ~
}
TContainable*
TReferencedContainable::DuplicateSelf() const return ((TContainable*)this);
//
IIIIIIIIIIIIIIIIIIIIIiIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l 15 / / Class Name: TMakeReferenceUserCommand / / Description: TMakeReferenceUserCommand is activated by a user selecting a menu item.
/ / It constructs a lefer~nce to the document represented by a containable // and adds the refer~llce to the container model. Currently, / / this command is a subclass of TNewAnchorCommand and depends on the / / current implementation of a containable (referenced or owned) being / / a model anchor. It reuses HandleReDo, HandleUndo, HandleNewAnchor 25 / / of TNewAnchorCommand to add the refel~llce to the container model.
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l MCollectibleDefinitionsMacro(TMakeReferenceUserCommand, 0);
const TStandardText kMakeReferenceMenuName("Make Reference");
30 TMakeReferenceUserCommand::TMakeReferenceUserCommand(const TText&
theCommandName) : TNewAnchorCommand() SetName(theCommandName);
35 }
TMakeReferenceUserCommand::TMakeReferenceUserCommand() : TNewAnchorCommand() wo gs/06282 2 1~ 7 8 5 0 PCT/US94/00012 SetName(kMakeReferenceMenuName);
TMakeReferenceUserCommand::TMakeReferenceUserCommand(const TMakeReferenceUserCommand& theCommand) : TNewAnchorCommand(theCommand) SetName(kMakeReferenceMenuName);
TMakeReferenceUserCommand::~TMakeReferenceUserCommand() 10 ~
TMakeReferenceUserCommand&
TMakeReferenceUserCommand::operator=(const TMakeReferenceUserCommand&
15 theCommand) {
if (this != &theCommand) TRY
TNewAnchorCommand::operator=(theCommand);
CATCH(TStandardException) RETHROW ~this;
ENDTRY
return ~this;
TStream&
TMakeReferenceUserCommand::operator>>=(TStream& towhere) const TRY
WriteVersion(towhere);
TNewAnchorCommand::operator>>=(towhere);
CATCH(TStandardException) RETHROW towhere;
ENDTRY
return towhere;
TStream&
21~85~
TMakeReferenceUserCommand::operator<<=(TStream& fromwhere) TRY
VersionInfo theVersion = ReadVersion(fromwhere);
TNewAnchorCommand::operator<<=(fromwhere);
CATCH(TStandardException) RETHROW fromwhere;
ENDTRY
return fromwhere;
10 ~
Boolean TMakeReferenceUserCommand::Accepts(const TModelSelection& theSelection) const {
Boolean accept = TModelCommand::Accepts(theSelection);5 if (accept) accept = !theSelection.IsEmpty(); // command is enabled if selection is non-empty0 return (accept);
Boolean 25 TMakeReferenceUserCommand::HandleLocalDo() {
const TWorkspaceContainerSelection~ theSelection = (const TWorkspaceContainerSelection~)GetBoundSelection();
TContainableSurrogateIterator anIterator(theSelection);
TModelAnchorSurrogate~ theSurrogate = anIterator.First();
if (theSurrogate != NIL) TDocumentEntry entry;
TModel* theModel = theSelection->GetModel();
TContainable~ theContainable = (TContainable*)theModel->LookupAnchor(~theSurrogate);
const TModelLink~ theLink = theContainable->GetLink();
wo 95/06282 21 4 7 8 5 0 PCT/US94/00012 TModelSurrogate* containerSurrogate = theLink->GetHere()->CopyModelSurrogate();
TModelSurrogate* containableSurrogate = theLink->GetThere()->CopyModelSurrogate();
/ / construct a reference whose containerSurrogate and containableSurrogate / / equals those of the containable it refers to.
TContainable* aReference = new TReferencedContainable(*containerSurrogate, *containableSurrogate);
/ / construct a default selection with the reference as a member.
TModelSelection* referenceSelection = theModel->CreateDefaultSelection();
referenceSelection->AddAnchor(*aReference);
/ / have the reference adopt the selection.
aReference->AdoptSelection(referenceSelection);
/ / if the referenced containable is a stationery, then make the refer~nce a stationery if (theContainable->IsStationery()) aReference->ToggleStationery();
/ / have the container model adopt the reference.
AdoptAnchor(aReference);
}
retum (TRUE);
While the invention has been described in terms of a preferred embodiment in a specific system environment, those skilled in the art recognize that the invention can be practiced, with modification, in other and different hardware and software 30 environments within the spirit and scope of the appended claims.
Wrapper model classes Models are required to wrap containables and references for data exchange (e.g.,cut, copy, and paste) using model selections: the exchange currency is a model. Since a wrapper model need neither TContainPolicy nor TEmbedPolicy implementation, it can 30 be created as a concrete subclass of TModel abstract class.
Figure 3 is a flowchart presenting the processing that transpires in accordance with a preferred embodiment of the creation of a reference object. Processing commences at terminal 300 and immediately passes to function block 310 where the35 first and second objects are opened. The objects could be text documents, graphic images, spreadsheets, folders or any other computer applications. Then, at function block 320, a selection is created in the first object by selecting a first corner of an area on WO 95/06282 _ 21 9 78 5 o PCT/US94/00012 the display and dragging an expanding, rectangular outline to enclose the selected area.
At function block 330, an anchor is created from the selection by instantiating an anchor object. The anchor manages a selection area which is persistent as long as the selection area remains linked to the anchor object. Function block 340 illustrates the creation of a 5 refefence object. A reference object is a wrapper around an anchor object that allows the anchor object to reside inside any other object or container as discussed in the cross referenced patent applications. Then, at function block 350, the surrogate anchor is adopted into the reference object and the reference object is adopted into the second object as shown in function block 360. By surrogate anchor we mean a pointer to an 10 actual anchor. Adoption refers to the processing necessary to transfer ownership from one object to another object. Finally, processing is completed at terminal 370. While this example has the ref~ ce object created in one document and adopted into a second document, one of ordinary skill in the art will recognize that the rere~ ce object could reside in a different location in the first document.
Figure 4 is a flowchart presenting the processing that transpires in accordance with a preferred embodiment of the usage of a re~l~llce object. Processing commences at terminal 400 and immediately passes to function block 410 where the first object is opened. The object could be a text document, graphic image, spreadsheet, folder or 20 other computer application. Then, at function block 420, a reference object is selected.
The refer~llce object abstractly specifies a target for an action because it contains an anchor specifying the selection. The action is resolved at follow or lookup time.
Function block 430 illustrates the creation processing for the command on the start_side. The creation processing responds to a user taking a specific action such as 25 double-clicking to open an object. When an action is taken, an appropriate command is initiated to service the action. So, for example, the command could be a follow, or open command, a print command, a delete command, or any command relevant to the selection in the dest_side document. This processing creates the indicated command at the start_side of the document. Then, at function block 440, the command is sent to the 30 dest_side of the other document's anchor. The send operation queries the linkage as shown in function block 450, opening the dest_side document, if necessary, setting the selection equal to the anchor on the dest_side, and scrolling the position of the anchor into view as set forth in function block 460. Then, the command applied at the start_side is applied at the dest_side as shown in function block 470. Finally, 35 processing is completed at terminal 480. While this example has the reference object located in one document and the referenced anchor in a second document, one of ordinary skill in the art will recognize that the reference object and the referenced object could reside in the same document.
Figure 5 illustrates a display with a reference to a remote printer in accordance with a preferred embodiment. A document icon 500 is currently resident in document New Request 510. A reference to a remote printer MyPrinter 520 is enabled in icon form. An example of a reference object being used to manipulate a remote resource is presented in Figures 5, 6 and 7 and their accompanying d,,'éscription.
Figure 6 illustrates a user dragging a copy of,a~ object to a reference in accordance with a preferred embodiment. Figure 6~11ustrates a document icon 600 and 10 an outline 610 of the document. The outline is created by pressing the option key while dragging the icon 600. The outline represents a copy of the document.
Figure 7 illustrates an object in proximity to a reference object in partial completion of an action in accordance with a preferred embodiment. The document 15 outline 710 is dropped on the printer reference 720 to perform a print command on the document 700.
REFERENCE Program Listing C++ Language / / Interface: TReferencedContainable class TReferencedContainable: public TContainable public:
static const TContainableKind& kKind;
/ / Special methods.
TReferencedContainable(const TAbstractModel&, const TAbstractModel&);
TReferencedContainable();
TReferencedContainable(const TReferencedContainable&);
~TReferencedContainable();
TReferencedContainable& operator=(const TReferencedContainable&);
virtual TStream& operator>>=(TStream& towhere) const;
virtual TStream& operator<<=(TStream& towhere);
wo 95/06282 214 7 8 5 0 PCT/US94/00012 MCollectibleDeclarationsMacro(TReferencedContainable);
/ / Presentation methods.
virtual TPresentableView* CreateIconView() const;
/ / Semantic methods.
virtual TContainableKind GetContainableKind() const;
virtual void DeleteSelf();
virtual TContainable~ DuplicateSelf() const;
~;
// Interface: TMakeReferenceUserCommand class TMakeReferenceUserCommand: public TNewAnchorCommand public:
TMakeReferenceUserCommand(const TText&);
TMakeReferenceUserCommand();
TMakeReferenceUserCommand(const TMakeReferenceUserCommand&);
virtual ~TMakeReferenceUserCommand();
TMakeReferenceUserCommand& operator=(const TMakeReferenceUserCommand&);
virtual TStream& operator>>=(TStream&) const;
virtual TStream& operator<c=(TStream&);
MCollectibleDeclarationsMacro(TMakeReferenceUserCommand);
public:
virtual Boolean HandleLocalDo();
protected:
virtual Boolean Accepts(constTModelSelection&) const;
~;
//
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l 35 / / Class Name: TReferencedContainable / / Description: A refe~ ced containable is an alias to a document.
/ / - CreateIconView returns an icon view for a referenced containable presentation.
WO 95/06282 ~i 7 8 5 0 PCT/US94/00012 / / - DeleteSelf is overridden so that removing a referenced containable / / from a container only removes itself.
/ / - DuplicateSelf is overriden so that copying a reférenced containable / / in a container only copies itself.
/ / - GetContainableKind returns TReferencedC~ntainable::kKind as the type.
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII~IIIIIIIIIIIIIIIIIIIIII
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l MCollectibleDefinitionsMacro(TReferencedContainable, 0);
const TContainableKind TReferencedContainable_kKind("TReferencedContainable");
10 const TContainableKind& TReferencedContainable::kKind =
TReferencedContainable_kKind;
TReferencedContainable::TReferencedContainable(const TAbstractModel&
containerModel, const TAbstractModel& containableModel) : TContainable(containerModel, containableModel) {
}
TReferencedContainable::TReferencedContainable() : TContainable() 20 ~
}
TReferencedContainable::TReferencedContainable(const TReferencedContainable&
copy) : TContainable(copy) 25 ~
}
TReferencedContainable::~TReferencedContainable() }
30 TReferencedContainable& TReferencedContainable::operator=(const TReferencedContainable& copy) if (this != ©) TRY
TContainable::operator=(copy);
CATCH(TStandardException) RETHROW *this;
ENDTRY
return (*this);
}
5 TStream&
TReferencedContainable::operator>>=(TStream& towhere) const {
TRY
MAbstractModelAnchor::WriteVersion(towhere);
TContainable::operator>>=(towhere);
CATCH(TStandardException) RETHROW towhere;
ENDTRY
return towhere;
15 ) TStream&
TReferencedContainable::operator<<=(TStream& fromwhere) TRY
VersionInfo theVersion =
MAbstractModelAnchor::ReadVersion(fromwhere);
TContainable::operator<<=(fromwhere);
CATCH(TStandardException) RETHROW fromwhere;
ENDTRY
return fromwhere;
}
TPresentableView*
TReferencedContainable::CreateIconView() const 30 {
/ / create the icon view for the ref~ ced containable.
TPresentableView* theView = new TContainableIconView((TContainable*)this, /*isReference=*/ TRUE);
return (theView);
35 ~
TContainableKind TReferencedContainable::GetContainableKind() const 21~785 0 WO 95/06282 _ PCT/US94/00012 return (TReferencedContainable::kKind);
}
void TReferencedContainable::DeleteSelf() 5 ~
}
TContainable*
TReferencedContainable::DuplicateSelf() const return ((TContainable*)this);
//
IIIIIIIIIIIIIIIIIIIIIiIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l 15 / / Class Name: TMakeReferenceUserCommand / / Description: TMakeReferenceUserCommand is activated by a user selecting a menu item.
/ / It constructs a lefer~nce to the document represented by a containable // and adds the refer~llce to the container model. Currently, / / this command is a subclass of TNewAnchorCommand and depends on the / / current implementation of a containable (referenced or owned) being / / a model anchor. It reuses HandleReDo, HandleUndo, HandleNewAnchor 25 / / of TNewAnchorCommand to add the refel~llce to the container model.
l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l MCollectibleDefinitionsMacro(TMakeReferenceUserCommand, 0);
const TStandardText kMakeReferenceMenuName("Make Reference");
30 TMakeReferenceUserCommand::TMakeReferenceUserCommand(const TText&
theCommandName) : TNewAnchorCommand() SetName(theCommandName);
35 }
TMakeReferenceUserCommand::TMakeReferenceUserCommand() : TNewAnchorCommand() wo gs/06282 2 1~ 7 8 5 0 PCT/US94/00012 SetName(kMakeReferenceMenuName);
TMakeReferenceUserCommand::TMakeReferenceUserCommand(const TMakeReferenceUserCommand& theCommand) : TNewAnchorCommand(theCommand) SetName(kMakeReferenceMenuName);
TMakeReferenceUserCommand::~TMakeReferenceUserCommand() 10 ~
TMakeReferenceUserCommand&
TMakeReferenceUserCommand::operator=(const TMakeReferenceUserCommand&
15 theCommand) {
if (this != &theCommand) TRY
TNewAnchorCommand::operator=(theCommand);
CATCH(TStandardException) RETHROW ~this;
ENDTRY
return ~this;
TStream&
TMakeReferenceUserCommand::operator>>=(TStream& towhere) const TRY
WriteVersion(towhere);
TNewAnchorCommand::operator>>=(towhere);
CATCH(TStandardException) RETHROW towhere;
ENDTRY
return towhere;
TStream&
21~85~
TMakeReferenceUserCommand::operator<<=(TStream& fromwhere) TRY
VersionInfo theVersion = ReadVersion(fromwhere);
TNewAnchorCommand::operator<<=(fromwhere);
CATCH(TStandardException) RETHROW fromwhere;
ENDTRY
return fromwhere;
10 ~
Boolean TMakeReferenceUserCommand::Accepts(const TModelSelection& theSelection) const {
Boolean accept = TModelCommand::Accepts(theSelection);5 if (accept) accept = !theSelection.IsEmpty(); // command is enabled if selection is non-empty0 return (accept);
Boolean 25 TMakeReferenceUserCommand::HandleLocalDo() {
const TWorkspaceContainerSelection~ theSelection = (const TWorkspaceContainerSelection~)GetBoundSelection();
TContainableSurrogateIterator anIterator(theSelection);
TModelAnchorSurrogate~ theSurrogate = anIterator.First();
if (theSurrogate != NIL) TDocumentEntry entry;
TModel* theModel = theSelection->GetModel();
TContainable~ theContainable = (TContainable*)theModel->LookupAnchor(~theSurrogate);
const TModelLink~ theLink = theContainable->GetLink();
wo 95/06282 21 4 7 8 5 0 PCT/US94/00012 TModelSurrogate* containerSurrogate = theLink->GetHere()->CopyModelSurrogate();
TModelSurrogate* containableSurrogate = theLink->GetThere()->CopyModelSurrogate();
/ / construct a reference whose containerSurrogate and containableSurrogate / / equals those of the containable it refers to.
TContainable* aReference = new TReferencedContainable(*containerSurrogate, *containableSurrogate);
/ / construct a default selection with the reference as a member.
TModelSelection* referenceSelection = theModel->CreateDefaultSelection();
referenceSelection->AddAnchor(*aReference);
/ / have the reference adopt the selection.
aReference->AdoptSelection(referenceSelection);
/ / if the referenced containable is a stationery, then make the refer~nce a stationery if (theContainable->IsStationery()) aReference->ToggleStationery();
/ / have the container model adopt the reference.
AdoptAnchor(aReference);
}
retum (TRUE);
While the invention has been described in terms of a preferred embodiment in a specific system environment, those skilled in the art recognize that the invention can be practiced, with modification, in other and different hardware and software 30 environments within the spirit and scope of the appended claims.
Claims (32)
1. A method for navigating in a computer system; including a processor, a storage attached to and under the control of the processor, a display attached to and under the control of the processor; from a first object to a second object, comprising the steps of:
(a) loading a first document into the storage and presenting the first document on the display;
(b) creating a selection object associated with a first selection in the storage;
(c) creating a reference associated with the first selection in the storage;
(d) loading a second document into the storage and presenting the second document on the display;
(e) placing the reference associated with the first selection in the second document;
and navigating via the reference in the second document to the first selection in the first document.
(a) loading a first document into the storage and presenting the first document on the display;
(b) creating a selection object associated with a first selection in the storage;
(c) creating a reference associated with the first selection in the storage;
(d) loading a second document into the storage and presenting the second document on the display;
(e) placing the reference associated with the first selection in the second document;
and navigating via the reference in the second document to the first selection in the first document.
2. A method as recited in claim 1, including the step of presenting current updates on the display by navigating via the reference in the second document to the first selection in the first document.
3. A method as recited in claim1, including the step of accessing information across a network by navigating via the reference in the second document to the first selection in the first document.
4. A method as recited in claim 1, including the step of performing commands on a remote object as if the object were on a local system.
5. A method as recited in claim 1, including the step of displaying relevant portions of a first document by navigating via the reference in the second document to the relevant portions in the first document.
6. A method as recited in claim 1, wherein the first and second documents are spreadsheets.
7. A method as recited in claim 6, including the step of applying a formula to information in a first spreadsheet on the display by navigating via the reference in the second spreadsheet to the first selection in the first spreadsheet and applying the formula to the information in the first spreadsheet.
8. A method as recited in claim 1, including the step of placing a reference to a second folder inside of a first folder to enable navigation from the first to the second folder when the first folder is opened.
9. A method as recited in claim 1, including the steps of:
(a) creating a reference to a computer resource;
(b) storing the reference in storage;
(c) displaying the reference on the display; and (d) performing iconic actions on any icon proximal to the reference in response to a cursor signal.
(a) creating a reference to a computer resource;
(b) storing the reference in storage;
(c) displaying the reference on the display; and (d) performing iconic actions on any icon proximal to the reference in response to a cursor signal.
10. A method as recited in claim 9, including the step of dragging a document to the reference and dropping the document on the reference to invoke the iconic action.
11. A method as recited in claim 9, including the step of deleting a document as the iconic action.
12. A method as recited in claim 9, including the step of copying a document as the iconic action.
13. A method as recited in claim 9, including the step of printing a document as the iconic action.
14. A method as recited in claim 9, including the step of faxing a document as the iconic action.
15. A method as recited in claim 9, including the step of initiating a telephone call as the iconic action.
16. A method as recited in claim 9, including the step of storing a document as the iconic action.
17. An apparatus for navigating in a computer system; including a processor, a storage attached to and under the control of the processor, a display attached to and under the control of the processor; from a first object to a second object, comprising:
(a) loading a first document into the storage and presenting the first document on the display;
(b) creating a selection object associated with a first selection in the storage;
(c) creating a reference associated with the first selection in the storage;
(d) loading a second document into the storage and presenting the second document on the display;
(e) placing the reference associated with the first selection in the second document;
and (f) navigating via the reference in the second document to the first selection in the first document.
(a) loading a first document into the storage and presenting the first document on the display;
(b) creating a selection object associated with a first selection in the storage;
(c) creating a reference associated with the first selection in the storage;
(d) loading a second document into the storage and presenting the second document on the display;
(e) placing the reference associated with the first selection in the second document;
and (f) navigating via the reference in the second document to the first selection in the first document.
18. An apparatus as recited in claim 17, including means for presenting current updates on the display by navigating via the reference in the second document to the first selection in the first document.
19. An apparatus as recited in claim 17, including means for accessing information across a network by navigating via the reference in the second document to the first selection in the first document.
20. An apparatus as recited in claim 17, including means for performing commands on a remote object as if the object were on a local system.
21. An apparatus as recited in claim 17, including means for displaying relevantportions of a first document by navigating via the reference in the second document to the relevant portions in the first document.
22. An apparatus as recited in claim 17, wherein the first and second documents are spreadsheets.
23. An apparatus as recited in claim 22, including means for applying a formula to information in a first spreadsheet on the display by navigating via the reference in the second spreadsheet to the first selection in the first spreadsheet and applying the formula to the information in the first spreadsheet.
24. An apparatus as recited in claim 17, including means for placing a reference to a second folder inside of a first folder to enable navigation from the first to the second folder when the first folder is opened.
25. An apparatus as recited in claim 17, comprising:
(a) creating a reference to a computer resource;
(b) storing the reference in storage;
(c) displaying the reference on the display; and (d) performing iconic actions on any icon proximal to the reference in response to a cursor signal.
(a) creating a reference to a computer resource;
(b) storing the reference in storage;
(c) displaying the reference on the display; and (d) performing iconic actions on any icon proximal to the reference in response to a cursor signal.
26. An apparatus as recited in claim 25, including means for dragging a document to the reference and dropping the document on the reference to invoke the iconic action.
27. An apparatus as recited in claim 25, including means for deleting a document as the iconic action.
28. An apparatus as recited in claim 25, including means for copying a document as the iconic action.
29. An apparatus as recited in claim 25, including means for printing a document as the iconic action.
30. An apparatus as recited in claim 25, including means for faxing a document as the iconic action.
31. An apparatus as recited in claim 25, including means for initiating a telephone call as the iconic action.
32. An apparatus as recited in claim 25, including means for storing a document as the iconic action.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US112,821 | 1993-08-25 | ||
US08/112,821 US5481666A (en) | 1993-08-25 | 1993-08-25 | Object-oriented navigation system |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2147850A1 true CA2147850A1 (en) | 1995-03-02 |
Family
ID=22346008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002147850A Abandoned CA2147850A1 (en) | 1993-08-25 | 1994-01-03 | Object-oriented navigation system |
Country Status (8)
Country | Link |
---|---|
US (1) | US5481666A (en) |
EP (1) | EP0699319B1 (en) |
JP (2) | JP3856819B2 (en) |
CN (1) | CN1116007A (en) |
AU (1) | AU6081694A (en) |
CA (1) | CA2147850A1 (en) |
DE (1) | DE69402417T2 (en) |
WO (1) | WO1995006282A1 (en) |
Families Citing this family (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2155357C (en) * | 1993-07-19 | 2001-12-18 | David R. Anderson | Dynamic linking system |
US5745782A (en) * | 1993-09-28 | 1998-04-28 | Regents Of The University Of Michigan | Method and system for organizing and presenting audio/visual information |
US6877137B1 (en) | 1998-04-09 | 2005-04-05 | Rose Blush Software Llc | System, method and computer program product for mediating notes and note sub-notes linked or otherwise associated with stored or networked web pages |
US5623679A (en) * | 1993-11-19 | 1997-04-22 | Waverley Holdings, Inc. | System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects |
US5623681A (en) * | 1993-11-19 | 1997-04-22 | Waverley Holdings, Inc. | Method and apparatus for synchronizing, displaying and manipulating text and image documents |
US5799325A (en) * | 1993-11-19 | 1998-08-25 | Smartpatents, Inc. | System, method, and computer program product for generating equivalent text files |
US6963920B1 (en) | 1993-11-19 | 2005-11-08 | Rose Blush Software Llc | Intellectual asset protocol for defining data exchange rules and formats for universal intellectual asset documents, and systems, methods, and computer program products related to same |
US6339767B1 (en) | 1997-06-02 | 2002-01-15 | Aurigin Systems, Inc. | Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing |
US5806079A (en) * | 1993-11-19 | 1998-09-08 | Smartpatents, Inc. | System, method, and computer program product for using intelligent notes to organize, link, and manipulate disparate data objects |
US5696963A (en) * | 1993-11-19 | 1997-12-09 | Waverley Holdings, Inc. | System, method and computer program product for searching through an individual document and a group of documents |
US5991751A (en) * | 1997-06-02 | 1999-11-23 | Smartpatents, Inc. | System, method, and computer program product for patent-centric and group-oriented data processing |
US6212575B1 (en) * | 1995-05-05 | 2001-04-03 | Apple Computer, Inc. | Extensible, replaceable network component system |
US5929852A (en) * | 1995-05-05 | 1999-07-27 | Apple Computer, Inc. | Encapsulated network entity reference of a network component system |
US5959623A (en) * | 1995-12-08 | 1999-09-28 | Sun Microsystems, Inc. | System and method for displaying user selected set of advertisements |
US6246410B1 (en) | 1996-01-19 | 2001-06-12 | International Business Machines Corp. | Method and system for database access |
US5890170A (en) * | 1996-02-28 | 1999-03-30 | Silicon Graphics, Inc. | Method and apparatus for publishing documents in a hypertextural network environment |
US5724595A (en) * | 1996-06-19 | 1998-03-03 | Sun Microsystems, Inc. | Simple method for creating hypertext links |
US5787442A (en) * | 1996-07-11 | 1998-07-28 | Microsoft Corporation | Creating interobject reference links in the directory service of a store and forward replication computer network |
US5890171A (en) * | 1996-08-06 | 1999-03-30 | Microsoft Corporation | Computer system and computer-implemented method for interpreting hypertext links in a document when including the document within another document |
US5784057A (en) * | 1996-08-14 | 1998-07-21 | International Business Machines Corporation | Dynamically modifying a graphical user interface window title |
US5774120A (en) * | 1996-08-14 | 1998-06-30 | International Business Machines Corporation | Refresh and select-all actions in graphical user interface |
US5872568A (en) * | 1996-08-14 | 1999-02-16 | International Business Machines Corporation | Application and method for creating a list from pre-defined and user values |
US5867157A (en) * | 1996-08-14 | 1999-02-02 | International Business Machines Corporation | Graphical interface method, apparatus and application for creating and modifying a list of values with multiple components |
US6104395A (en) * | 1996-08-14 | 2000-08-15 | International Business Machines Corporation | Graphical interface method, apparatus and application for opening window of all designated container objects |
US5781193A (en) * | 1996-08-14 | 1998-07-14 | International Business Machines Corporation | Graphical interface method, apparatus and application for creating multiple value list from superset list |
US5818444A (en) * | 1996-08-14 | 1998-10-06 | International Business Machines Corporation | Method, apparatus and application for object selective but global attribute modification |
US6195096B1 (en) | 1996-08-14 | 2001-02-27 | International Business Machines Corporation | Graphical interface method, apparatus and application for creating and modifying a multiple-value text list |
US5774119A (en) * | 1996-08-14 | 1998-06-30 | International Business Machines Corporation | Graphical interface method, apparatus and application for selection of target object |
US5847708A (en) * | 1996-09-25 | 1998-12-08 | Ricoh Corporation | Method and apparatus for sorting information |
US5764916A (en) * | 1996-09-27 | 1998-06-09 | Ichat, Inc. | Method and apparatus for real time communication over a computer network |
US6166734A (en) * | 1996-10-01 | 2000-12-26 | Diamond Multimedia Systems, Inc. | Portable interactive graphics display tablet and communications system |
US6052120A (en) * | 1996-10-01 | 2000-04-18 | Diamond Multimedia Systems, Inc. | Method of operating a portable interactive graphics display tablet and communications systems |
US6785708B1 (en) | 1996-10-30 | 2004-08-31 | Avaya Inc. | Method and apparatus for synchronizing browse and chat functions on a computer network |
US7263526B1 (en) | 1996-10-30 | 2007-08-28 | Avaya Technology Corp. | Method and apparatus for embedding chat functions in a web page |
US5848424A (en) * | 1996-11-18 | 1998-12-08 | Toptier Software, Inc. | Data navigator interface with navigation as a function of draggable elements and drop targets |
WO1998025231A2 (en) * | 1996-12-06 | 1998-06-11 | Koninklijke Philips Electronics N.V. | A method and device for configuring a multimedia message for presentation |
US5874953A (en) * | 1996-12-31 | 1999-02-23 | International Business Machines Corporation | Database graphical user interface with outline view |
US6052121A (en) * | 1996-12-31 | 2000-04-18 | International Business Machines Corporation | Database graphical user interface with user frequency view |
US5949413A (en) * | 1996-12-31 | 1999-09-07 | International Business Machines Corporation | Database graphical user interface with tabbed user view |
US5898431A (en) * | 1996-12-31 | 1999-04-27 | International Business Machines Corporation | Database graphical user interface with calendar view |
US6154213A (en) * | 1997-05-30 | 2000-11-28 | Rennison; Earl F. | Immersive movement-based interaction with large complex information structures |
US6613100B2 (en) * | 1997-11-26 | 2003-09-02 | Intel Corporation | Method and apparatus for displaying miniaturized graphical representations of documents for alternative viewing selection |
US6192362B1 (en) * | 1997-12-15 | 2001-02-20 | International Business Machines Corporation | System and method for creating a search form for accessing directory information |
US6208986B1 (en) | 1997-12-15 | 2001-03-27 | International Business Machines Corporation | Web interface and method for accessing and displaying directory information |
US6260039B1 (en) | 1997-12-15 | 2001-07-10 | International Business Machines Corporation | Web interface and method for accessing directory information |
US6195666B1 (en) | 1997-12-15 | 2001-02-27 | International Business Machines Corporation | Web interface and method for displaying directory information |
US7257589B1 (en) | 1997-12-22 | 2007-08-14 | Ricoh Company, Ltd. | Techniques for targeting information to users |
US7263659B2 (en) | 1998-09-09 | 2007-08-28 | Ricoh Company, Ltd. | Paper-based interface for multimedia information |
US20080028292A1 (en) * | 1997-12-22 | 2008-01-31 | Ricoh Company, Ltd. | Techniques to facilitate reading of a document |
US7596755B2 (en) * | 1997-12-22 | 2009-09-29 | Ricoh Company, Ltd. | Multimedia visualization and integration environment |
US7954056B2 (en) | 1997-12-22 | 2011-05-31 | Ricoh Company, Ltd. | Television-based visualization and navigation interface |
JP4183311B2 (en) * | 1997-12-22 | 2008-11-19 | 株式会社リコー | Document annotation method, annotation device, and recording medium |
US7124093B1 (en) | 1997-12-22 | 2006-10-17 | Ricoh Company, Ltd. | Method, system and computer code for content based web advertising |
US6374273B1 (en) | 1998-06-05 | 2002-04-16 | International Business Machines Corporation | Reformatting a first single-column markup document into a multi-column document, and formatting second markup document in the background, while displaying the first reformatted document |
US6968340B1 (en) * | 1998-06-26 | 2005-11-22 | International Business Machines Corporation | Technique for navigating components of a model having complex relationships |
US6369811B1 (en) | 1998-09-09 | 2002-04-09 | Ricoh Company Limited | Automatic adaptive document help for paper documents |
US7215436B2 (en) * | 1998-09-09 | 2007-05-08 | Ricoh Company, Ltd. | Device for generating a multimedia paper document |
US6582475B2 (en) | 1998-09-09 | 2003-06-24 | Ricoh Company Limited | Automatic adaptive document printing help system |
US7263671B2 (en) * | 1998-09-09 | 2007-08-28 | Ricoh Company, Ltd. | Techniques for annotating multimedia information |
US7266782B2 (en) * | 1998-09-09 | 2007-09-04 | Ricoh Company, Ltd. | Techniques for generating a coversheet for a paper-based interface for multimedia information |
US6337698B1 (en) * | 1998-11-20 | 2002-01-08 | Microsoft Corporation | Pen-based interface for a notepad computer |
US7966328B2 (en) | 1999-03-02 | 2011-06-21 | Rose Blush Software Llc | Patent-related tools and methodology for use in research and development projects |
US7716060B2 (en) | 1999-03-02 | 2010-05-11 | Germeraad Paul B | Patent-related tools and methodology for use in the merger and acquisition process |
US7228492B1 (en) * | 1999-07-06 | 2007-06-05 | Ricoh Company, Ltd. | 2D graph displaying document locations of user-specified concept of interest |
US6647410B1 (en) * | 1999-11-05 | 2003-11-11 | Reuters Limited | Method, apparatus and program for delivery and display of information from dynamic and static data sources |
US7996264B2 (en) | 2000-05-15 | 2011-08-09 | Avatizing, Llc | System and method for consumer-selected advertising and branding in interactive media |
US6954728B1 (en) | 2000-05-15 | 2005-10-11 | Avatizing, Llc | System and method for consumer-selected advertising and branding in interactive media |
US7149957B2 (en) | 2001-11-19 | 2006-12-12 | Ricoh Company, Ltd. | Techniques for retrieving multimedia information using a paper-based interface |
US7747655B2 (en) * | 2001-11-19 | 2010-06-29 | Ricoh Co. Ltd. | Printable representations for time-based media |
US7703044B2 (en) * | 2001-11-19 | 2010-04-20 | Ricoh Company, Ltd. | Techniques for generating a static representation for time-based media information |
US7743347B2 (en) * | 2001-11-19 | 2010-06-22 | Ricoh Company, Ltd. | Paper-based interface for specifying ranges |
US7861169B2 (en) | 2001-11-19 | 2010-12-28 | Ricoh Co. Ltd. | Multimedia print driver dialog interfaces |
US7788080B2 (en) | 2001-11-19 | 2010-08-31 | Ricoh Company, Ltd. | Paper interface for simulation environments |
US8635531B2 (en) * | 2002-02-21 | 2014-01-21 | Ricoh Company, Ltd. | Techniques for displaying information stored in multiple multimedia documents |
US7495795B2 (en) * | 2002-02-21 | 2009-02-24 | Ricoh Company, Ltd. | Interface for printing multimedia information |
US8539344B2 (en) | 2001-11-19 | 2013-09-17 | Ricoh Company, Ltd. | Paper-based interface for multimedia information stored by multiple multimedia documents |
US20030120560A1 (en) * | 2001-12-20 | 2003-06-26 | John Almeida | Method for creating and maintaning worldwide e-commerce |
US20030204522A1 (en) * | 2002-04-23 | 2003-10-30 | International Business Machines Corporation | Autofoldering process in content management |
US7509569B2 (en) | 2003-03-31 | 2009-03-24 | Ricoh Co., Ltd. | Action stickers for nested collections |
US20070050696A1 (en) * | 2003-03-31 | 2007-03-01 | Piersol Kurt W | Physical key for accessing a securely stored digital document |
US7552381B2 (en) * | 2003-03-31 | 2009-06-23 | Ricoh Co., Ltd. | Check boxes for identifying and processing stored documents |
US7757162B2 (en) * | 2003-03-31 | 2010-07-13 | Ricoh Co. Ltd. | Document collection manipulation |
US7703002B2 (en) | 2003-03-31 | 2010-04-20 | Ricoh Company, Ltd. | Method and apparatus for composing multimedia documents |
US7536638B2 (en) * | 2003-03-31 | 2009-05-19 | Ricoh Co., Ltd. | Action stickers for identifying and processing stored documents |
US7739583B2 (en) * | 2003-03-31 | 2010-06-15 | Ricoh Company, Ltd. | Multimedia document sharing method and apparatus |
EP1639510A1 (en) * | 2003-06-24 | 2006-03-29 | BAE Systems PLC | A method, tool and system for increasing the efficiency of a design process |
US7275159B2 (en) * | 2003-08-11 | 2007-09-25 | Ricoh Company, Ltd. | Multimedia output device having embedded encryption functionality |
US7779355B1 (en) | 2004-03-30 | 2010-08-17 | Ricoh Company, Ltd. | Techniques for using paper documents as media templates |
JP2008134866A (en) * | 2006-11-29 | 2008-06-12 | Sony Corp | Content browsing method, content browsing device and content browsing program |
US9483456B2 (en) * | 2011-09-19 | 2016-11-01 | Jeffrey Dean Honsowetz | Grid data management |
US10949605B2 (en) * | 2016-09-13 | 2021-03-16 | Bank Of America Corporation | Interprogram communication with event handling for online enhancements |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4821220A (en) * | 1986-07-25 | 1989-04-11 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships |
US4885717A (en) * | 1986-09-25 | 1989-12-05 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs |
US4891630A (en) * | 1988-04-22 | 1990-01-02 | Friedman Mark B | Computer vision system with improved object orientation technique |
US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
US5051898A (en) * | 1988-06-13 | 1991-09-24 | Eda Systems, Inc. | Method for specifying and controlling the invocation of a computer program |
EP0347162A3 (en) * | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Apparatus and methods for controlling data flow processes by generated instruction sequences |
US5041992A (en) * | 1988-10-24 | 1991-08-20 | University Of Pittsburgh | Interactive method of developing software interfaces |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5050090A (en) * | 1989-03-30 | 1991-09-17 | R. J. Reynolds Tobacco Company | Object placement method and apparatus |
US5060276A (en) * | 1989-05-31 | 1991-10-22 | At&T Bell Laboratories | Technique for object orientation detection using a feed-forward neural network |
US5125091A (en) * | 1989-06-08 | 1992-06-23 | Hazox Corporation | Object oriented control of real-time processing |
US5181162A (en) * | 1989-12-06 | 1993-01-19 | Eastman Kodak Company | Document management and production system |
US5093914A (en) * | 1989-12-15 | 1992-03-03 | At&T Bell Laboratories | Method of controlling the execution of object-oriented programs |
US5075848A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism |
JPH04102167A (en) * | 1990-08-21 | 1992-04-03 | Ricoh Co Ltd | System for data communication between spread sheets |
US5151987A (en) * | 1990-10-23 | 1992-09-29 | International Business Machines Corporation | Recovery objects in an object oriented computing environment |
US5297249A (en) * | 1990-10-31 | 1994-03-22 | International Business Machines Corporation | Hypermedia link marker abstract and search services |
US5119475A (en) * | 1991-03-13 | 1992-06-02 | Schlumberger Technology Corporation | Object-oriented framework for menu definition |
JP2886704B2 (en) * | 1991-04-05 | 1999-04-26 | 富士ゼロックス株式会社 | Iconization device |
US5371844A (en) * | 1992-03-20 | 1994-12-06 | International Business Machines Corporation | Palette manager in a graphical user interface computer system |
-
1993
- 1993-08-25 US US08/112,821 patent/US5481666A/en not_active Expired - Lifetime
-
1994
- 1994-01-03 WO PCT/US1994/000012 patent/WO1995006282A1/en active IP Right Grant
- 1994-01-03 JP JP50753995A patent/JP3856819B2/en not_active Expired - Lifetime
- 1994-01-03 EP EP94907131A patent/EP0699319B1/en not_active Expired - Lifetime
- 1994-01-03 DE DE69402417T patent/DE69402417T2/en not_active Expired - Lifetime
- 1994-01-03 CN CN94190839A patent/CN1116007A/en active Pending
- 1994-01-03 CA CA002147850A patent/CA2147850A1/en not_active Abandoned
- 1994-01-03 AU AU60816/94A patent/AU6081694A/en not_active Abandoned
-
2005
- 2005-09-21 JP JP2005273924A patent/JP3987867B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2006073024A (en) | 2006-03-16 |
CN1116007A (en) | 1996-01-31 |
JP3987867B2 (en) | 2007-10-10 |
DE69402417T2 (en) | 1997-11-06 |
JP3856819B2 (en) | 2006-12-13 |
EP0699319B1 (en) | 1997-04-02 |
US5481666A (en) | 1996-01-02 |
AU6081694A (en) | 1995-03-21 |
DE69402417D1 (en) | 1997-05-07 |
WO1995006282A1 (en) | 1995-03-02 |
JPH09502037A (en) | 1997-02-25 |
EP0699319A1 (en) | 1996-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5481666A (en) | Object-oriented navigation system | |
US5287447A (en) | Method and system for providing container object attributes to a non-container object | |
JP4425348B2 (en) | Compound document framework | |
EP1523718B1 (en) | A method and system for extending the file system api | |
US5781190A (en) | Method and system for transferring a slide presentation between computers | |
US5396626A (en) | Object-oriented locator system | |
US5847707A (en) | Icon menu display devices and methods | |
US6466238B1 (en) | Computer operating system that defines default document folder for application programs | |
JP3798015B2 (en) | Place object system | |
US6470363B1 (en) | System and method for processing ordered sections having different file formats | |
CA2155357C (en) | Dynamic linking system | |
WO1995017720A1 (en) | Service creation in an object oriented system | |
KR20080042871A (en) | Nested views in an electronic file system | |
JPH08511118A (en) | Container object system | |
MX2008000577A (en) | Rich drag drop user interface. | |
US8230357B2 (en) | Visually processing instance data | |
US7757210B1 (en) | Object framework | |
JPH09500744A (en) | Place object system | |
JP4187114B2 (en) | Hypermedia document management device | |
US20090113292A1 (en) | Flexibly editing heterogeneous documents | |
AU684096B2 (en) | Methods and apparatus for creating and managing dynamic property sheets | |
JP2006146905A (en) | Device and method for managing hypermedia type document |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |