DE69230303T2 - System zur Verwaltung von "Behälter" Datenobjekten - Google Patents
System zur Verwaltung von "Behälter" DatenobjektenInfo
- Publication number
- DE69230303T2 DE69230303T2 DE69230303T DE69230303T DE69230303T2 DE 69230303 T2 DE69230303 T2 DE 69230303T2 DE 69230303 T DE69230303 T DE 69230303T DE 69230303 T DE69230303 T DE 69230303T DE 69230303 T2 DE69230303 T2 DE 69230303T2
- Authority
- DE
- Germany
- Prior art keywords
- container
- contained
- manager
- block
- operating system
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Digital Computer Display Output (AREA)
Description
- System zur Verwaltung von "Container"-Datenobjekten Die vorliegende Erfindung betrifft allgemein eine objektorientierte Entwicklungs-Toolkit-Komponente zur Unterstützung bei der Entwicklung von Anwendungen für eine Betriebssystemumgebung mit graphischer Benutzerschnittstelle, und im einzelnen ein Verfahren für ein Containerobjekt-Verwaltungssystem, das in der Betriebssystemumgebung mit graphischer Benutzerschnittstelle außerhalb der objektorientierten Umgebung verwendet wird. Desweiteren betrifft die vorliegende Erfindung ein Container-Verwaltungssystem für eine Betriebssystemumgebung mit graphischer Benutzerschnittstelle außerhalb der objektorientierten Umgebung, das Nicht-Containerobjekte mit containerähnlichen Eigenschaften ausstattet.
- Vorteile der objektorientierten Programmiersprachen sind die Erweiterungsfähigkeit und die wiederverwendbaren Codes; in einer objektorientierten Umgebung gibt es jedoch Situationen, in denen Operationen außerhalb dieser Umgebung wünschenswert sind, beispielsweise der Zugriff auf Daten außerhalb dieser Umgebung, das Senden von Informationen außerhalb dieser Umgebung oder andere Programmieraufrufe an Anwendungen oder Betriebssysteme. Zum heutigen Zeitpunkt werden Betriebssystemumgebungen mit graphischer Benutzerschnittstelle entwickelt, die sich nicht in einer objektorientierten Umgebung befinden, und bei denen die Entwickler Anwendungen entwickeln möchten, die in diesen Betriebssystemumgebungen eingesetzt werden können.
- Es kann sein, daß ein Anwendungsentwickler in einer objektorientierten Sprache programmiert. In einem solchen Fall ist es notwendig, Vorgänge sowohl innerhalb als auch außerhalb der objektorientierten Umgebung auszuführen. Eine Betriebssystemumgebung ist eine Endanwender-Schnittstelle, also eine Ebene, in der eine Methodik sowie Geräte eingesetzt werden, mit denen ein Endanwender mit dieser Betriebssystemumgebung bzw. einer Anwendung in dieser Umgebung interaktiv arbeiten kann. Eine Betriebssystemumgebung mit graphischer Benutzerschnittstelle ("GUI") ist eine graphische Endanwender-Umgebung. Der Endanwender arbeitet interaktiv, beispielsweise über Fenster, Icons, Menüs, Zeigegeräte etc., mit dieser Umgebung.
- Momentan müssen beim Schreiben von Anwendungen in einer objektorientierten Sprache für GUI-Betriebssystemumgebungen, in diese Anwendungen C-Code- und/oder Programmierschnittstellen- ("API")-Aufrufe eingeschlossen werden. Die Verwendung von C- oder API-Aufrufen und die Umschulung für Programmierer und Entwickler, die in objektorientierten Sprachen geschult sind, sind extrem kostspielig.
- Anwendungen können mit Hilfe von Objekten aufgebaut werden. In einer objektorientierten Umgebung besteht ein Objekt aus Code-Elementen und Daten-Elementen, die miteinander verknüpft sind. Ein Objekt hat eine Bibliothek von Methoden, die im wesentlichen einem Objekt eindeutig zugeordnet sind, und die dem Objekt seine jeweiligen Verhaltensmuster geben. Die Klasse eines Objektes definiert eine Gruppierung, die auf einer oder mehreren Eigenschaften basiert, sowie eine Instanz als einzelnes Element in einer Klasse. Eine Klasse eines Objektes könnte man beispielsweise mit Berufsgruppen vergleichen, zum Beispiel Rechtsanwälte, Ärzte, Ingenieure und Programmierer, und die Instanz eines Objektes wäre dann eine bestimmte Einzelperson in einer Klasse.
- Eine Klasse legt Methoden fest für die Konstruktion neuer Instanzen und auch neuer Instanzenmethoden, die festlegen, wie sich eine Instanz bei eintreffenden Meldungen verhält und reagiert. Die Instanzenvariablen legen die jeweiligen Merkmale eines Instanzenobjektes fest, beispielsweise das Gehalt einer Person. Die Instanzenvariablen können bereits definiert sein oder sie können leer sein und später definiert werden. Die Datenstruktur einer Instanz wird beschrieben durch ihre Auswahl von Instanzenvariablen. Die Anwendungen in objektorientierten Umgebungen können in drei Grundkomponenten eingeteilt werden: Modellobjekte, Ansichtobjekte und Steuerungsobjekte. Modellobjekte sind diejenigen Komponenten der Anwendung, die die eigentliche Arbeit ausführen, das heißt, die die Daten beeinflussen. Die Ansichtobjekte wickeln alle graphischen Aspekte ab, zum Beispiel die Bildschirmdarstellung. Die Steuerungsobjekte bilden die Schnittstelle zwischen den Modellobjekten, den Ansichtobjekten und den Eingabegeräten (zum Beispiel Tastatur oder Zeigegerät). Mit anderen Worten, die Steuerungsobjekte befassen sich mit den Interaktionen zwischen dem Eingabegerät und dem Anwender.
- Einige GUI-Betriebssystemumgebungen, beispielsweise OfficeVision/2, ein Produkt der International Business Machines Corporation, werden nicht mit Hilfe einer objektorientierten Sprache erstellt. Wenn Anwendungen in einer solchen Betriebssystemumgebung eingesetzt werden sollten, hatten die Entwickler bisher in einem solchen Fall als einzige Option bei der Entwicklung die Möglichkeit, Anwendungen mit APIs der Sprache C, mit Präsentationsmanager und mit OfficeVision/2 zu erstellen.
- Momentan enthalten GUI-Betriebssystemumgebungen, beispielsweise OfficeVision/2 Objektklassen: Containerobjekte, Geräteobjekte und Datenobjekte. Zu den Containerobjekten gehören beispielsweise Ordner, Schubladen und Aktenschränke in einer GUI-Betriebssystemumgebung, während zu den Geräten beispielsweise Drucker, Faxgeräte und Aktenvernichter gehören. Zu den Datenobjekten zählen all diejenigen Objekte, die weder Containerobjekt noch Geräteobjekt sind. Datenobjekte sind zum Beispiel Briefe oder Memos oder auch eine Kalkulationstabelle, beispielsweise ein Monatsbudget. Die Datenobjekte enthalten die Anwendung, die das Objekt ausführt. Ein Memo würde zum Beispiel die Textverarbeitung einschließen, die zum Ändern oder zum Erstellen des Memos benötigt wird. Das Ziel beim Datenobjekt besteht im Gegensatz zur Anwendung darin, die Aufmerksamkeit des Anwenders auf das Memo und nicht auf die Textverarbeitung zu richten.
- Momentan haben Geräte- und Datenobjekte keine manipulativen Eigenschaften, wie beispielsweise das Ziehen eines Icons von einem Container auf einen anderen und das Ablegen des Icons in dem neuen Container. Das heißt, innerhalb eines Datenobjektes sind die Icons mit ihren Dateien für eine Manipulation nicht verknüpft.
- Ein Anwender eines Memos für eine geschäftliche Planung könnte zum Beispiel mit Kalkulationstabellen oder anderen Memos arbeiten, die sich auf das Planungsmemo beziehen. Der Anwender wäre nicht in der Lage, symbolische Darstellungen des zugehörigen Memos oder des Kalkulationsblattes zu sehen und sie zu manipulieren, wie bei einem Containerobjekt. Es wäre daher wünschenswert, über ein System zu verfügen, das Nicht- Containerobjekten containerähnliche Eigenschaften verleiht.
- In einem Artikel mit dem Titel "An Object-Based User Interface for the HP NewWave Environment" im HEWLETT PACKARD JOURNAL - Band 40, Nr. 4, August 1989, PALO ALTO, Kalifornien, U. S. A, wird auf den Seiten 9-17 von P. S. SHOWMAN die HP NewWave-Umgebung beschrieben, welche die Kombination eines Systemgedankenmodells ist, in dem die Wahrnehmung des Anwenders über die Funktion des Systems festgelegt wird, und eines Objektmodells, das die Systemarchitektur festlegt. Im einzelnen beschreibt dieser Artikel ein gedankliches Modell, das auf einer Büro-Metapher basiert, die auf einer objektbasierten Architektur aufbaut.
- Der Artikel mit dem Titel "The NewWave Office" im HEWLETT PACKARD JOURNAL - Band 40, Nr. 4, August 1989, PALO ALTO, Kalifornien, U. S. A, Seite 23-31, von B. LAM ET AL. beschreibt eine Benutzerschnittstelle für die NewWave-Umgebung, welche die Werkzeuge und Verfahren zur Ausführung von Aufgaben bereitstellt, die in einer normalen Büro-Umgebung anzutreffen sind.
- Es ist daher eine Aufgabe der vorliegenden Erfindung, eine objektorientierte Entwicklungs-Toolkit-Komponente bereitzustellen, zur Unterstützung bei der Entwicklung von Anwendungen, die in einer GUI-Betriebssystemumgebung eingesetzt werden, welche in einer nicht objektorientierten Umgebung arbeitet.
- Eine andere Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines Containerobjekt-Verwaltungssystems für eine GUI-Betriebssystemumgebung außerhalb der objektorientierten Umgebung.
- Eine weitere Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines Containerobjekt-Verwaltungssystems für eine GUI-Betriebssystemumgebung außerhalb der objektorientierten Umgebung, das Nicht-Containerobjekte mit containerähnlichen Eigenschaften ausstattet.
- Das Verfahren und die Vorrichtung der vorliegenden Erfindung umfaßt eine Methode zur Ausstattung eines Nicht-Containerobjektes mit dem Aussehen von Containerobjektattributen in einer GUI-Betriebssystemumgebung. Das Verfahren und die Vorrichtung umfassen die Erzeugung eines Container-Managers und die Verknüpfung des Container-Managers mit dem Nicht-Containerobjekt. Es wird ein Containerbereich erzeugt, der mit dem Container-Manager verknüpft wird. Dieser Containerbereich steht in Verbindung mit dem Container-Manager und einer Listensteuerung in der Betriebssystemumgehung mit graphischer Benutzerschnittstelle. Der Containerbereich und der Container-Manager arbeiten zusammen, um das Nicht-Containerobjekt mit dem Aussehen der Containerobjektattribute auszustatten.
- Wenn in dem Nicht-Containerobjekt beim Starten des Nicht- Containerobjekts ein Element vorhanden ist, wird für dieses Element ein enthaltenes Objekt erzeugt, das in dem Nicht- Containerobjekt angezeigt werden soll. Wenn zu dem Nicht- Containerobjekt ein Element hinzugefügt wird, wird dann im nächsten Schritt für das in dem Nicht-Containerobjekt anzuzeigende Element ein enthaltenes Objekt erzeugt. Wenn ein Element aus dem Nicht-Containerobjekt entfernt wird, wird das enthaltene Objekt für dieses Element gelöscht.
- Wenn ein enthaltenes Objekt vorhanden ist, erhält der Container-Manager die Kontrolle über die Anzeige und die Manipulation des enthaltenen Objektes, während sich dieses enthaltene Objekt in dem Nicht-Containerobjekt befindet. Außerdem wird im Containerbereich ein graphisches Symbol angezeigt, welches das enthaltene Objekt in einem Fenster darstellt.
- Der Containerbereich meldet außerdem eine Anwendereingabe an den Container-Manager weiter.
- Die obigen sowie weitere Objekte, Merkmale und Vorteile der Erfindung werden anhand der folgenden ausführlichen Beschreibung deutlich:
- Fig. 1 ist eine bildliche Darstellung eines verteilten Datenverarbeitungssystems, das zur Implementierung des Verfahrens der vorliegenden Erfindung eingesetzt werden kann;
- Fig. 2 ist ein Diagramm, das eine Methode darstellt, die ein Nicht-Containerobjekt mit dem Aussehen der Attribute eines Containerobjektes ausstattet, gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 3 zeigt ein High-Level-Flußbild eines Verfahrens zur Bestückung von Containern in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 4 ist ein High-Level-Flußbild, das ein Verfahren für die Auswahl eines enthaltenen Objektes zeigt, das entsprechend einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung geöffnet werden soll;
- Fig. 5 zeigt ein High-Level-Flußbild eines Verfahrens für die Auswahl und die Aufnahme eines Objektes, um dieses Objekt von seiner Position wegzuziehen, gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 6 ist ein High-Level-Flußbild, das ein Verfahren zum Ziehen eines Objektes auf einen Container zeigt, der nicht der Ursprungscontainer dieses Objektes ist, gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 7 zeigt ein High-Level-Flußbild eines Verfahrens für das Ablegen in einem Container, gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 8 ist ein High-Level-Flußbild, das ein Verfahren zum Ablegen eines enthaltenen Objektes in einen Container zeigt, der nicht der Ursprungscontainer dieses Objektes ist, gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung; und
- Fig. 9 zeigt ein High-Level-Flußbild eines Verfahrens zum Schließen einer Anwendung, die das Aussehen von containerähnlichen Attributen hat, gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
- Bezugnehmend auf die Figuren und insbesondere mit Bezugnahme auf Fig. 1; hier wird eine bildliche Darstellung eines Datenverarbeitungssystems 8 gezeigt, das zur Implementierung des Verfahrens der vorliegenden Erfindung eingesetzt werden kann. Wie man sieht, kann das Datenverarbeitungssystem 8 eine Vielzahl von Netzwerken umfassen, beispielsweise die Local Area Networks (LAN) 10 und 32, von denen jedes vorzugsweise eine Vielzahl einzelner Rechner 12 beziehungsweise 30 umfaßt. Der Fachmann wird natürlich erkennen, daß eine Vielzahl intelligenter Workstations (IWS), die mit einem Host-Rechner verbunden sind, für ein jedes dieser Netze eingesetzt werden kann.
- Wie es bei solchen Datenverarbeitungssystemen üblich ist, kann jeder einzelne Rechner mit einem Speichergerät 14 und/oder einem Drucker/Ausgabegerät 16 gekoppelt werden. Ein oder mehrere solcher Speichergeräte 14 können eingesetzt werden, gemäß dem Verfahren der vorliegenden Erfindung, um Dokumente oder Ressourcen-Objekte zu speichern, auf die von Zeit zu Zeit von einem Anwender innerhalb des Datenverarbeitungssystems 8 zugegriffen werden kann. In einer nach dem Stand der Technik bekannten Weise kann ein jedes dieser Dokumente oder Ressourcen-Objekte, die in einem Speichergerät 14 gespeichert sind, innerhalb des Datenverarbeitungssystems 8 frei ausgetauscht werden, zum Beispiel durch Übertragung eines Dokuments an einen Anwender an einem der einzelnen Rechner 12 oder 30.
- Noch bezugnehmend auf Fig. 1; wie man sieht kann das Datenverarbeitungsnetz 8 auch mehrere Mainframe-Rechner umfassen, beispielsweise den Mainframe-Rechner 18, die vorzugsweise über den Datenübermittlungsabschnitt 22 mit dem Local Area Network (LAN) 10 gekoppelt sind. Der Mainframe-Rechner 18 kann auch mit einem Speichergerät 20 gekoppelt sein, das als Fernspeicher für das Local Area Network (LAN) 10 dienen kann. In ähnlicher Weise kann das Local Area Network (LAN) 10 über den Datenübermittlungsabschnitt 24 und mittels einer Subsystem-Steuerungseinheit/eines Kommunikations-Controllers 26 und eines Datenübermittlungsabschnitts 34 mit einem Gateway- Server 28 verbunden sein. Der Gateway-Server 28 ist vorzugsweise ein einzelner Rechner oder eine interaktive Workstation (IWS), über den das Local Area Network (LAN) 32 mit dem Local Area Network (LAN) 10 verknüpft ist.
- Wie bereits weiter oben mit Bezug auf das Local Area Network (LAN) 32 und das Local Area Network (LAN) 10 besprochen wurde, kann eine Vielzahl von Dokumenten oder Ressourcen- Objekten in dem Speichergerät 20 gespeichert und von dem Mainframe-Rechner 18 gesteuert werden, als Ressourcen-Manager oder Bibliotheksdienst für die so gespeicherten Ressourcen- Objekte. Der Fachmann wird erkennen, daß der Mainframe-Rechner 18 in großer geographischer Entfernung von dem Local Area Network (LAN) 10 aufgestellt sein kann und daß das Local Area Network (LAN) 10 sich ebenfalls in einer großen Entfernung zum Local Area Network (LAN) 32 befinden kann. Beispielsweise kann das Local Area Network (LAN) 32 sich in Kalifornien befinden, während sich das Local Area Network (LAN) 10 in Texas und der Mainframe-Rechner 18 in New York befinden.
- Eine GUI-Betriebssystemumgebung kann auf den einzelnen Rechnern 12 und 30, auf dem Gateway-Server 28, auf einigen Rechnern im LAN 10 oder 32 oder auf dem Mainframe-Rechner 18 anzutreffen sein. Einzelne Personen können eine GUI-Betriebssystemumgebung als Stand-Alone auf ihrem jeweiligen Rechner einsetzen oder sie können eine GUI-Betriebssystemumgebung als Anwender in einem LAN verwenden.
- Es können verschiedene GUI-Betriebssysteme und objektorientierte Umgebungen verwendet werden. Eine solche GUI-Betriebssystemumgebung, die für den Einsatz mit einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung geeignet wäre, ist OfficeVision/2, ein Produkt von International Business Machines Corporation. Smalltalk/V PM, ein Produkt von Digitalk, Inc., ist eine objektorientierte Umgebung, die in einem bevorzugten Ausführungsbeispiel der Erfindung eingesetzt wird.
- Ein Containerobjekt in OfficeVision/2 wird dem Anwender in Form eines Icons (eines Bildsymbols, welches das Objekt darstellt) auf dem OfficeVision/2-Desktop angezeigt.
- Container zeigen gewöhnlich eine Liste von Objekten mit einer Kombination aus Text und Bildsymbolen an. Das Bildsymbol für ein Containerobjekt kann einen Eingangskorb darstellen (der Dokumente enthält) oder einen Ordner oder einen Aktenschrank (mit Schubladen). Die Containerobjekte von OfficeVision/2 haben bestimmte Merkmale und können nur bestimmte Arten von Vorgängen ausführen. Die folgenden Merkmale und Vorgänge sind möglich:
- 1. Kopieren des ausgewählten Objektes aus einem oder in einen OfficeVision/2-Container, abhängig von den gewählten Optionen.
- 2. Verwerfen des ausgewählten Objektes aus einem OfficeVision/2-Container, abhängig von den gewählten Optionen.
- 3. Bewegen des ausgewählten Objektes aus einem oder in einen OfficeVision/2-Container, abhängig von den gewählten Optionen.
- 4. Öffnen des ausgewählten Objektes für einen oder aus einem OfficeVision/2-Container, abhängig von den gewählten Optionen.
- 5. Drucken des ausgewählten Objektes in einen oder aus einem OfficeVision/2-Container, abhängig von den gewählten Optionen.
- 6. Senden des ausgewählten Objektes an einen oder von einem OfficeVision/2-Container, abhängig von den gewählten Optionen.
- 7. Umbenennen des ausgewählten Objektes in einem Officevision/2-Container, abhängig von den gewählten Optionen.
- 10. Das Containerobjekt kann auch in einem bestimmten OS/2- Unterverzeichnis geöffnet werden.
- 11. Die Ansicht des Inhalts kann auf Mini-Icons mit zugehörigem Text wechseln, wenn der Inhalt eines OfficeVision/2- Containers betrachtet wird.
- 12. Die Ansicht des Inhalts kann auch auf eine Detailansicht wechseln, die aus Mini-Icons und/oder Text besteht; das Format wird vom Anwender ausgewählt.
- Ein Containerobjekt in einer objektorientierten Umgebung wird mit OfficeVision/2-Funktionen ausgestattet, die nicht von einem objektorientierten Entwickler programmiert werden müssen, der ein Containerobjekt erzeugen möchte, das interaktiv mit einem OfficeVision/2-Desktop arbeiten kann. Ein Containerobjekt in einer objektorientierten Umgebung ist eine Klasse, die Verfahren zum Aufbauen eines Containers, beispielsweise einer Schublade oder eines Ordners, enthält. Ein Containerobjekt umfaßt einen Container-Manager, der die Containerfunktionen des Fensters übernimmt und bei der Darstellung der Liste der enthaltenen Objekte in einem graphischen Format hilft. Ein Containerobjekt stellt außerdem einen Rahmen für Anwendungen bereit, die Container sind.
- In diesem Containerobjekt-Verwaltungssystem ist außerdem ein Containerbereich enthalten, der eine objektorientierte Schnittstelle zu einer graphischen Listensteuerung bildet. Die Listensteuerung stellt die in ihr enthaltenen Elemente als Bildsymbol dar, das dann in einer graphischen Benutzerschnittstelle verwendet werden kann. Der Containerbereich ermöglicht objektorientierten Anwendungen die Nutzung der Listensteuerung aus der objektorientierten Umgebung, ohne daß sie die in der GUI-Betriebssystemumgebung implementierten prozeduralen Verfahren verstehen. Die graphische Listensteuerung kann sich selbst in unterschiedlichen Ansichtsformaten präsentieren. Container-Manager und Containerbereich bilden zusammen das Containerobjekt.
- Ein enthaltenes Objekt stellt ein Objekt in einem Container dar. Das enthaltene Objekt wird in dem Containerbereich graphisch durch ein Bildsymbol und Text dargestellt.
- Jedes enthaltene Objekt hat einen Datenspeicher für die in jedem Ansichtsformat benötigten Daten sowie für die Sortierinformationen. Jeder mit dem im Container befindlichen Objekt durchgeführte Vorgang wird zur Verarbeitung an das enthaltene Objekt weitergeleitet. Wenn zum Beispiel ein Anwender ein Objekt öffnet, indem er es mit einem Zeigegerät auswählt, erhält das enthaltene Objekt die Öffnen-Meldung und startet die zum Öffnen des Objekts benötigte Anwendung. Ein weiteres Beispiel: Wenn der Anwender ein Objekt in das Containerobjekt zieht und dieses dann über ein enthaltenes Objekt zieht, erhält das enthaltene Objekt eine Ziehen-auf-Benachrichtigung und stellt fest, ob das gezogene Objekt auf dem enthaltenen Objekt abgelegt werden kann.
- Der Container-Manager ist ein Objekt, mit dem ein Entwickler, der das objektorientierte Toolkit verwendet, dem Endanwender Containerfunktionen in jeder Art von Anwendung bereitstellen kann, die diese Funktionen benötigt. Der Container-Manager führt Containerfunktionen aus, beispielsweise die Bestückung des Containerbereichs, das Kopieren und Bewegen von enthaltenen Objekten in andere Container und die Abwicklung der Vorgänge beim Ziehen und Ablegen.
- Ein Merkmal der vorliegenden Erfindung ist die Ausstattung von Nicht-Containerobjekten mit dem Aussehen von Containerobjektattributen. Die Kombination aus Container-Manager und Containerbereich mit einem Nicht-Containerobjekt, beispielsweise einem Datenobjekt oder einem Geräteobjekt, verleiht dem Nicht-Containerobjekt das Aussehen von containerobjektähnlichen Attributen.
- Bezugnehmend auf Fig. 2; hier wird in einem Diagramm ein Verfahren dargestellt, mit dem ein Nicht-Containerobjekt das Aussehen von Attributen eines Containerobjektes gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung erhält. Wie zu sehen ist, enthält ein verteiltes Datenverarbeitungssystem 8 eine objektorientierte Umgebung 40 und eine GUI-Betriebssystemumgebung 42.
- Das Containerobjekt-Verwaltungssystem umfaßt eine Anwendung, die ein Datenobjekt oder ein Geräteobjekt sein kann. In diesem speziellen Beispiel ist die Anwendung ein Datenobjekt 44 mit dem Titel "Anspruch wegen toxischen Abfalls mit Informationen über einen Versicherungsanspruch".
- Das Datenobjekt 44 wird in Form eines Fensters 46 auf einem Bildanzeigegerät dargestellt. Im unteren Teil des Fensters 46 befindet sich eine graphische Darstellung der enthaltenen Objekte 48a, 48b in Form der Icons 52 und 54. Der Container- Manager 50 ermöglicht das Ziehen und Ablegen der enthaltenen Objekte 48a und 48b in Verbindung mit anderen Objekten außerhalb des Datenobjekts 44.
- Das Containerobjekt 48 kann Objekte aufweisen, die aus ihm und auf es gezogen werden können; der Container-Manager 50 muß also in der Lage sein, alle Interaktionen abzuwickeln.
- Momentan verwenden andere Standard-Datenobjekte Icon-Listen, aber diese eindeutige Möglichkeit, einen Container in einem Datenobjekt 44 einzuschließen, wie graphisch im Fenster 46 dargestellt ist, erlaubt eine bessere Interaktion mit der objektorientierten Umgebung. Die gesamte graphische Präsentation für den Anwender wird über den Containerbereich 56 durchgeführt.
- Der Containerbereich 56 ist visuell als ein Fenster in OfficeVision/2 dargestellt. Der Containerbereich kann OfficeVision/2-Objekte sowie auch andere Container enthalten. Der Containerbereich 56 enthält die Merkmale und Funktionen, die in einem Fenster verwendet werden, das einen Container in OfficeVision/2 darstellt. Durch die Verfahren, die speziell für ein Containerbereichsobjekt in einer objektorientierten Umgebung geschrieben wurden, erhalten die Anwendungen die Fähigkeit, folgende Funktionen auszuführen:
- 1. Hinzufügen - fügt zu den Containerbereichsparametern ein OfficeVision/2-Objekt hinzu.
- 2. Finden - Fähigkeit, ein Objekt im Containerbereich anhand der eingegebenen Parameter zu finden.
- 3. Summieren - Fähigkeit, einen Teil der enthaltenen Objekte, welche dem angegebenen Namen oder der angegebenen Klasse entsprechen, anzuzeigen.
- 4. Sortieren - Fähigkeit, enthaltene Objekte im aufsteigenden oder absteigenden Format anzuzeigen.
- 5. Mini-Icons - zeigt Objekte mit kleinen Bildsymbolen im Listenformat an.
- 6. Details - zeigt Objekte mit Detailinformationen an.
- 7. Icons - zeigt Objekt mit einem Bildsymbolformat an.
- 8. Alle - zeigt alle Objekte im Container an.
- Der Containerbereich in Verbindung mit einem Container-Manager in der objektorientierten Umgebung erlaubt es objektorientierten Entwicklern, ein Fenster in einem Nicht-Containerobjekt zu erzeugen, welches enthaltene Objekte enthält, die außerhalb eines Nicht-Containerobjekts in OfficeVision/2 bewegt und manipuliert werden können, ohne daß die Funktionen, die zur Integration einer Anwendung in OfficeVision/2 erforderlich sind, programmiert werden müssen.
- Mit dem Container-Manager in einer objektorientierten Umgebung haben die Container-Anwendungen die Fähigkeit, folgende in OfficeVision/2 anzutreffende Funktionen auszuführen:
- 1. AddObject - fügt dem Containerbereich ein Objekt hinzu.
- 2. ContainerCopy - Fähigkeit, ein enthaltenes Objekt in einen anderen Container zu kopieren.
- 3. ContainerMove - Fähigkeit, ein enthaltenes Objekt in einen anderen Container zu bewegen.
- 4. DefaultDetailsInfo - Standard-Code zur Anzeige enthaltener Objekte im Detailformat.
- 5. Drag - wickelt ein Objekt ab, das innerhalb des Bereichs oder über den Bereich gezogen wird.
- 6. Drop - wickelt ein Objekt ab, das auf einem Objekt innerhalb des Bereichs abgelegt wird, oder ein neues Objekt, das auf dem Bereich abgelegt wird.
- 7. ObjectDoubleClicked - wickelt ein enthaltenes Objekt ab, auf das doppelgeklickt wird.
- 8. Refresh - aktualisiert die Anzeige der enthaltenen Objekte.
- 9. Remove - entfernt ein enthaltenes Objekt aus dem Containerbereich.
- 10. Rename - benennt ein enthaltenes Objekt um und gibt ihm einen neuen Namen.
- Beim Ziehen werden die Objekte direkt manipuliert.
- In OfficeVision/2 kann ein Objekt mit der Maustaste 2 "aufgenommen" und durch Halten der Maustaste 2 über den Bildschirm bewegt werden. Wenn bei einem Ziehvorgang die Maustaste 2 losgelassen wird, gilt das gezogene Objekt als abgelegt. Das jenige Objekt, das sich unter dem gezogenen Objekt befindet, erhält dann für die weitere Verarbeitung die Meldung, daß ein Objekt abgelegt wurde.
- Erneut bezugnehmend auf Fig. 2; das Datenobjekt 44 erzeugt den Container-Manager 50, der mit dem Datenobjekt 44 verknüpft ist und in Verbindung steht. Das Datenobjekt 44 erzeugt ebenfalls einen Containerbereich 56, der mit dem Container-Manager 56 verknüpft ist und mit diesem in Verbindung steht. Der Containerbereich 56 hat außerdem Verbindung zu einem Listenkontakt, der sich in OfficeVision/2 befindet, und empfängt eine Eingabe von einem Anwender, der hierzu verschiedene Zeigegeräte verwenden kann, beispielsweise eine Maus oder einen Lichtgriffel.
- Der Begriff Container dient zur Bezeichnung von Containerobjekten und Nicht-Containerobjekten, welche das Aussehen von Containerobjektattributen haben.
- Fig. 3 zeigt ein High-Level-Flußbild eines Verfahrens zur Bestückung von Containern in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung. Wie dargestellt, beginnt der Vorgang an Block 100 und geht anschließend weiter mit Block 102, der eine Anwendung darstellt, die einen Container- Manager und einen Containerbereich erzeugt. Block 104 zeigt als nächstes die Anwendung, die eine Liste von Elementen erhält, die sich in dem Container befinden sollen. Block 106 zeigt, wie die Anwendung für jedes Element ein enthaltenes Objekt erzeugt. Block 108 zeigt im Anschluß daran, wie die Anwendung dem Container-Manager jedes enthaltene Objekt übersendet. Der Vorgang wird fortgesetzt mit Block 110, der zeigt, wie der Container-Manager jedes enthaltene Objekt speichert und anschließend jedes enthaltene Objekt an den Containerbereich sendet. Block 112 zeigt, wie der Containerbereich die Containerobjektinformation formatiert und diese Information an die Listensteuerung in der GUI-Betriebssystemumgebung sendet. Im einzelnen wird die Information über ein in dem enthaltenen Objekt gefundenes Element in eine C-Struktur eingeordnet und unter Anwendung von API-Aufrufen an die GUI-Betriebssystemumgebung gesendet.
- Fig. 4 ist ein High-Level-Flußbild, das ein Verfahren für die Auswahl eines enthaltenen Objektes darstellt, das nach einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung geöffnet werden soll. Der Prozeß beginnt, wie dargestellt, bei Block 120 und wird anschließend bei Block 122 weitergeführt, der einen Anwender darstellt, der ein zu öffnendes enthaltenes Objekt öffnet. Die Auswahl eines enthaltenen Objektes kann mit Hilfe eines Zeigers erfolgen, beispielsweise mit einem Cursor, einer Maus oder einem Lichtgriffel. Block 124 zeigt den Containerbereich, der eine Meldung "Enthaltenes Objekt öffnen" an den Container-Manager sendet. Block 126 zeigt den Container-Manager, der feststellt, auf welches enthaltene Objekt durch die Auswahl des Anwenders Einfluß genommen wurde. Der Vorgang geht dann weiter mit Block 128, der einen Container-Manager zeigt, der an das enthaltene Objekt eine Meldung "Starten" schickt. Ein Start bedeutet, daß das Objekt geöffnet wird; die für dieses Öffnen verantwortliche Anwendung wird gestartet oder ausgeführt.
- Im nächsten Schritt führt das enthaltene Objekt eine Abfrage durch: "Bin ich bereits geöffnet?", wie in Block 130 dargestellt. Wenn das Objekt bereits geöffnet wurde, geht der Vorgang dann an Block 132 weiter, der ein Containerobjekt zeigt, das an eine geöffnete Anwendung eine Meldung "Mache sichtbar" sendet. Anschließend endet der Vorgang an Block 134. Wenn das enthaltene Objekt bereits geöffnet ist, dient die Meldung "Mache sichtbar" dazu, das Fenster, in dem sich das enthaltene Objekt befindet, über ein Fenster zu blenden, das bereits geöffnet sein kann.
- Erneut bezugnehmend auf Block 130; ergibt sich aus der Abfrage, daß das Objekt nicht geöffnet ist, wird der Vorgang mit Block 136 fortgesetzt, der das Starten der Anwendung zeigt. Im Anschluß daran endet der Vorgang an Block 134.
- Fig. 5 zeigt ein High-Level-Flußbild eines Verfahrens zur Auswahl eines Objektes und das Aufnehmen eines Objektes, um dieses Objekt, gemäß einem bevorzugten Ausführungsbeispiel der Erfindung, aus seiner Position zu ziehen. Der Vorgang beginnt in Block 140 und wird fortgesetzt bis zum Block 142, der zeigt, wie ein Anwender ein enthaltenes Objekt auswählt oder aufnimmt, um dieses Objekt zu ziehen oder zu bewegen. Als nächstes zeigt der Block 144 den Containerbereich, der an den Container-Manager eine Benachrichtigung "Ziehen" sendet. Der Vorgang geht dann weiter zu Block 146 und zeigt den Container-Manager, der feststellt, welches enthaltene Objekt gezogen werden soll. Im nächsten Schritt fragt der Container- Manager das enthaltene Objekt nach einem während des Ziehens zu verwendenden Bildsymbol, wie in Block 148 dargestellt ist. Block 150 zeigt dann, wie der Container-Manager eine Datenstruktur aufbaut, um die GUI-Betriebssystemumgebung in die Lage zu versetzen, den Zieh-Vorgang abzuwickeln. Die Datenstruktur ist eine C-Struktur, die an die GUI-Betriebssystemumgebung gesendet werden kann. Der Vorgang geht dann weiter zu Block 152, der einen Zieh-API-Aufruf an die GUI-Betriebssystemumgebung darstellt. Danach endet der Vorgang in Block 154.
- Fig. 6 ist ein High-Level-Flußbild eines Verfahrens, das eine Methode zum Ziehen eines Objektes über einen Container darstellt, welcher nicht der Ursprungscontainer des Objektes ist. Der Prozeß beginnt an Block 160 und geht anschließend weiter zu Block 162, wo der Anwender ein Objekt über einen Container zieht. Der Container kann ein traditionelles Containerobjekt oder ein Nicht-Containerobjekt sein, welches das Aussehen der Containerattribute aufweist. Als nächstes zeigt der Block 164 den Containerbereich, der den Container-Manager von einem Zieh-Vorgang benachrichtigt. Ein Ziehvorgang findet statt, wenn ein Objekt gezogen wird; es kann dabei über andere Objekte gezogen werden. Wenn ein Objekt über andere Objekte gezogen wird, erhält er hierüber eine Meldung und stellt fest, ob das Objekt ablegbar ist.
- Im nächsten Schritt trifft der Container-Manager eine Feststellung über den Container, über den das Objekt gezogen wird, nämlich, ob es sich bei dem Platz um ein anderes enthaltenes Objekt handelt, oder um einen "leeren Raum", wie in Block 166 dargestellt ist. Ein leerer Raum ist ein Bereich eines Containers, der momentan nicht von einem enthaltenen Objekt besetzt wird.
- Ist der Platz ein "leerer Raum", wird festgestellt, ob das gezogene Objekt ein Objekttyp ist, der auf dem leeren Raum abgelegt werden kann, wie in Block 168 dargestellt. Um festzustellen, ob ein Objekt abgelegt werden kann, muß zunächst sein Typ (oder seine Klasse) geprüft werden. Ein Telefonapparat würde zum Beispiel nur das Ablegen eines Objektes vom Typ "Adreßbucheintrag" akzeptieren. Wenn das gezogene Objekt ein Objekttyp ist, der in einem leeren Raum abgelegt werden kann, wird eine Meldung "Ablegen O. K." zurückgegeben, wie in Block 170 dargestellt ist. Danach endet der Vorgang in Block 172.
- Erneut bezugnehmend auf Block 168; handelt es sich bei dem Objekt nicht um ein Objekt, das in einem leeren Raum abgelegt werden kann, wird eine Meldung "Ablegen nicht O. K." zurückgegeben und der Vorgang endet im Anschluß daran in Block 172.
- Erneut bezugnehmend auf Block 166; wenn der Platz ein anderes enthaltenes Objekt ist, geht der Vorgang mit Block 176 weiter, der die Benachrichtigung des enthaltenen Objektes über einen Zieh-Vorgang darstellt. Im nächsten Schritt geht der Vorgang weiter mit Block 178, der eine von dem enthaltenen Objekt durchgeführte Bestimmung zeigt, in der festgestellt wird, ob das enthaltene Objekt, welches gerade gezogen wird, ablegbar ist. Ist das gerade gezogenes Objekt ein ablegbares Objekt, wird eine Meldung "Ablegen O. K." zurückgegeben, wie in Block 170 dargestellt, und der Prozeß endet in Block 172. Handelt es sich jedoch bei dem gezogenen Objekt nicht um ein ablegbares Objekt, wie in Block 178 dargestellt wird, geht der Vorgang weiter mit Block 174, der das Zurückmelden einer Meldung "Ablegen nicht O. K." zeigt. Im Anschluß daran endet der Vorgang an Block 172.
- Fig. 7 zeigt ein High-Level-Flußbild eines Verfahrens zur Abwicklung einer Ablage in einen Container gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung. Der Vorgang beginnt an Block 180 und wird anschließend mit Block 182 fortgesetzt, der einen Containerbereich zeigt, welcher eine Ablagebenachrichtigung erhält. Block 184 zeigt, wie der Containerbereich die Ablagenachricht an den Container- Manager weitermeldet. Der Vorgang wird dann mit Block 186 fortgesetzt, wo eine Abfrage eines Container-Managers darge stellt ist, die abfragt, ob die Ablage auf ein enthaltenes Objekt erfolgt. Ist dies der Fall, wird der Vorgang mit Block 188 fortgesetzt, der das Senden einer Meldung "Abgelegt auf" an das enthaltene Objekt darstellt, mit der Ablageinformation als Parameter.
- Der Vorgang geht dann weiter an Block 190; das enthaltene Objekt verarbeitet hier die Ablage, der Vorgang endet danach an Block 192. Erneut bezugnehmend auf Block 186; findet die Ablage nicht auf ein enthaltenes Objekt statt, geht der Vorgang weiter zu Block 194; hier führt der Container-Manager eine Abfrage durch, ob der Zieh-Vorgang seinen Ursprung bei ihm selbst hatte. Ist dies der Fall, geht der Vorgang weiter zu Block 196, wo der Container-Manager an den Containerbereich eine Meldung "neu positioniert" sendet. Block 198 zeigt, wie der Containerbereich das Objekt neu positioniert und es dabei in die letzte Position bewegt. Im Anschluß daran endet der Vorgang in Block 192.
- Erneut bezugnehmend auf Block 194; wenn der Container-Manager bestimmt, daß der Zieh-Vorgang nicht von ihm selbst stammt, geht der Prozeß weiter zu Block 200, der zeigt, wie der Container-Manager ein neues enthaltenes Objekt erzeugt, welches das abgelegte Element darstellt. Der Container-Manager sendet dann eine Meldung "Element einfügen" an den Containerbereich, wie in. Block 202 dargestellt ist. Der Vorgang endet anschließend in Block 192.
- Fig. 8 ist ein High-Level-Flußbild, das ein Verfahren zum Ablegen eines enthaltenen Objektes in einem Container zeigt, der nicht der ursprüngliche Container des enthaltenen Objektes ist. Das heißt, das enthaltene Objekt wird aus seinem ursprünglichen Container entfernt. Diese Figur zeigt den Vor gang aus der Sicht des ursprünglichen Containers. Der Vorgang beginnt an Block 210 und geht anschließend weiter zu Block 212, wo dargestellt wird, daß das enthaltene Objekt gezogen wird und eine Meldung "Rendern" erhält. Diese Meldung ist ein Befehl für das enthaltene Objekt, sich an einen anderen Platz zu bewegen oder zu kopieren. Dieses Bewegen oder Kopieren kann das Bewegen oder Kopieren von Daten in den Speicher umfassen oder das Bewegen und Kopieren einer Datei an einen anderen Platz im Massespeicher.
- Block 214 zeigt, wie das enthaltene Objekt das Rendering- Format und den Rendering-Ort prüft. Das Rendern findet nach einem Ablegen statt. Wenn zwischen dem gezogenen Objekt und dem Objekt, auf das abgelegt wird, ein Datenaustausch stattfinden soll, muß ein Format vereinbart werden. Bei diesem Format kann es sich um Text, um ein Bitmap-Format, eine OS/2- Datei oder um ein anderes Format handeln. Der Vorgang geht dann weiter mit Block 216, wo das enthaltene Objekt feststellt, ob das Format gültig ist. Wenn das Format gültig ist, rendert das enthaltene Objekt; das heißt, es bewegt sich oder kopiert sich, wie in Block 218 dargestellt ist. In Block 220 ist dargestellt, wie das enthaltene Objekt an die GUI-Betriebssystemumgebung eine Meldung "Rendern abgeschlossen" übergibt. Der Vorgang endet dann in Block 222.
- Bezugnehmend auf Block 216; wenn festgestellt wurde, daß das Format nicht gültig ist, wird eine Meldung, daß ein Fehler aufgetreten ist, zurückgegeben, wie in Block 224 gezeigt wird. Im Anschluß daran endet der Vorgang in Block 222.
- Fig. 9 zeigt ein High-Level-Flußbild eines Verfahrens zum Schließen einer Anwendung mit dem Aussehen containerähnlicher Attribute gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung. Der Vorgang beginnt an Block 230 und geht anschließend weiter zu Block 232, wo der Anwender eine Option "Schließen" wählt, um eine Anwendung zu beenden. Block 234 zeigt ein Fenster, das diese "Schließen"-Auswahl empfängt und die Meldung an die Anwendung sendet. Block 236 zeigt, daß die Anwendung alle Fenster und Bereiche schließt. Danach wird der Vorgang mit Block 238 fortgesetzt, wo entschieden wird, ob die Anwendung ein Containerobjekt ist.
- Ist die Anwendung kein Containerobjekt, wird der Vorgang mit Block 240 fortgesetzt, wo der Container-Manager um eine aktuelle Liste der enthaltenen Objekte gebeten wird. Block 242 zeigt das Speichern einer Liste von enthaltenen Objekten in der Anwendungsdatenstruktur. Der Vorgang endet dann in Block 244. Erneut bezugnehmend auf Block 238; ist die Anwendung ein Containerobjekt, wird der Vorgang mit Block 244 fortgesetzt und beendet.
- Die Beschreibung der einzelnen Schritte in der vorliegenden Erfindung kann betrachtet werden als eine Toolkit-Komponente für die Unterstützung und Entwicklung von Anwendungen, die mit GUI-Betriebssystemumgebungen eingesetzt werden. In einem anderen Ausführungsbeispiel können die Methoden der vorliegenden Erfindung in einem Rechnerprogramm implementiert werden, um objektorientierte Programme in die GUI- Betriebssystemumgebung zu integrieren, indem man Nicht-Containerobjekten das Aussehen von Containerattributen verleiht.
- Nachstehend wird ein Beispiel eines Pseudo-Codes gegeben, der für die Bestückung einer Anwendung (App A) verwendet würde, die das Aussehen von Containerattributen mit enthaltenen Objekten hat.
- App A: Erzeuge Instanz des Container-Managers. Erzeuge Instanz des Containerbereichs. Erstelle Liste von Elementen, die im Containerbereich sein sollen. Erzeuge ein enthaltenes Objekt, um jedes Element in der Liste darzustellen. Sende jedes enthaltene Objekt an den Container-Manager. Container-Manager:
- Speichere jedes enthaltene Objekt. Sende jedes enthaltene Objekt an den Containerbereich. Containerbereich:
- Formatiere Information für jedes enthaltene Objekt. Sende formatierte Information an die Listensteuerung. Listensteuerung : Zeige
- jedes Element im Fenster an.
- Nachstehend ein Beispiel des Pseudo-Codes, der zum Schließen der App A des obigen Pseudo-Code-Beispiels für die Bestückung einer Anwendung eingesetzt wird.
- App A-Fenster: Erhält Schließen-Meldung vom System. Sende Schließen-Meldung an Anwendung. App A:
- Sendet Meldung Fenster schließen an Anwendungsfenster. Sende Meldung Fenster schließen an alle Bereiche. Ist App A ein Containerobjekt?
- Wenn wahr: App A beendet die Verarbeitung
- Wenn falsch: App A erbittet vom Container-Manager die aktuelle Liste der enthaltenen Objekte. Speichere Liste der enthaltenen Objekte im Anwendungsdatenspeicher. Ende Verarbeitung.
Claims (9)
1. Ein Verfahren in einer objektorientierten Umgebung, mit
dem ein Nicht-Containerobjekt das Aussehen von
Containerobjektattributen in einer Betriebssystemumgebung mit
graphischer Benutzerschnittstelle (42) erhält, folgende
Schritte umfassend:
- Erzeugen eines Container-Managers (50) und Verknüpfen
des genannten Container-Managers mit dem genannten
Nicht-Containerobjekt in der objektorientierten
Umgebung;
- Erzeugen eines Containerbereichs (56) und Verknüpfen
des genannten Containerbereichs mit dem genannten
Container-Manager, wobei der genannte Containerbereich in
Verbindung steht mit dem genannten Container-Manager
und einer Listensteuerung in der genannten
GUI-Betriebssystemumgebung (42), und der genannte
Containerbereich sowie der genannte Container-Manager dem
genannten Nicht-Containerobjekt das Aussehen von
Containerobjektattributen verleiht;
wenn in dem genannten Nicht-Containerobjekt ein Element
vorhanden ist, Erzeugen eines enthaltenen Objektes für
das genannte Element, das innerhalb des genannten Nicht-
Containerobjektes dargestellt werden soll;
wenn zu dem genannten Nicht-Containerobjekt ein Element
hinzugefügt wird, Erzeugen eines enthaltenen Objektes
für das genannte Element, das in dem genannten Nicht-
Containerobjekt dargestellt werden soll;
wenn ein Element aus dem genannten Nicht-Containerobjekt
entfernt wird, Streichen des genannten enthaltenen
Objektes für das genannte Element;
wenn ein enthaltenes Objekt vorhanden ist, Bereitstellen
der genannten Container-Managersteuerung über die
Anzeige und Manipulation des genannten enthaltenen
Objektes, während das genannte enthaltene Objekt sich
innerhalb des genannten Nicht-Containerobjekts befindet; und
wenn ein enthaltenes Objekt in dem genannten
Nicht-Containerobjekt vorhanden ist, innerhalb des genannten
Nicht-Containerobjektes Anzeigen eines Bildsymboles,
welches das genannte enthaltene Objekt darstellt, wobei
der genannte Containerbereich das genannte Bildsymbol
innerhalb des genannten Nicht-Containerobjektes in einem
Fenster darstellt und eine von einem Anwender
eingegebene Eingabe an den genannten Container-Manager
weitermeldet, wobei das genannte Nicht-Containerobjekt mit
Containerobjektattributen versehen sein kann.
2. Das Verfahren nach Anspruch 1, bei dem das Vorhandensein
eines Elementes zum ersten Mal bestimmt wird, wenn eine
Anwendung gestartet wird, durch Abfragen einer Liste von
Elementen, die mit der genannten Anwendung verknüpft
sind.
3. Das Verfahren nach Anspruch 1, das weiter, wenn eine
Anwendung geschlossen wird, den genannten
Container-Manager um eine Liste der enthaltenen Objekte bittet und um
das Speichern der genannten Liste, damit diese beim
nächsten Starten der Anwendung verwendet werden kann.
4. Das Verfahren nach Anspruch 1, bei dem die genannte
Eingabe die Auswahl des genannten enthaltenen Objektes für
eine Repositionierung in einem Container umfaßt.
5. Das Verfahren nach Anspruch 1, bei dem die genannte
Eingabe die Auswahl und das Öffnen des genannten
enthaltenen Objektes umfaßt.
6. Ein Datenverarbeitungssystem, in dem eine
Betriebssystemumgebung mit graphischer
Benutzerschnittstelle verwendet wird, zum Ausführen des Verfahrens nach
einem jeden der Ansprüche 1 bis 5.
7. Das System nach Anspruch 6, bei dem der genannte
Containerbereich eine Anzeige über eine Schnittstelle mit
einer Listensteuerung steuert.
8. Das System nach Anspruch 7, bei dem die genannte
Schnittstelle Programmierschnittstellen-Aufrufe umfaßt,
die speziell für die genannte Betriebssystemumgebung mit
graphischer Benutzerschnittstelle gelten.
9. Das System nach Anspruch 8, wobei das genannte System
als eine Toolkit-Komponente implementiert ist, die in
der Entwicklung von objektorientierten Anwendungen
eingesetzt werden kann, welche mit der genannten
Betriebssystemumgebung mit graphischer Benutzerschnittstelle
verwendet werden können.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/723,086 US5287447A (en) | 1991-06-28 | 1991-06-28 | Method and system for providing container object attributes to a non-container object |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69230303D1 DE69230303D1 (de) | 1999-12-23 |
| DE69230303T2 true DE69230303T2 (de) | 2000-05-18 |
Family
ID=24904778
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69230303T Expired - Fee Related DE69230303T2 (de) | 1991-06-28 | 1992-06-03 | System zur Verwaltung von "Behälter" Datenobjekten |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5287447A (de) |
| EP (1) | EP0520924B1 (de) |
| JP (1) | JP2837311B2 (de) |
| DE (1) | DE69230303T2 (de) |
Families Citing this family (105)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5461710A (en) * | 1992-03-20 | 1995-10-24 | International Business Machines Corporation | Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface |
| US5905494A (en) * | 1992-08-12 | 1999-05-18 | International Business Machines Corporation | Method and system within an object oriented programming environment for enhanced efficiency of entry of operator inputs utilizing a complex object |
| CA2101864A1 (en) * | 1992-08-27 | 1994-02-28 | Claudia Carpenter | Customizable program control interface for a computer system |
| US5754174A (en) * | 1992-08-27 | 1998-05-19 | Starfish Software, Inc. | User interface with individually configurable panel interfaces for use in a computer system |
| US5396630A (en) * | 1992-10-06 | 1995-03-07 | International Business Machines Corporation | Method and system for object management across process boundries in a data processing system |
| AU5827894A (en) | 1992-12-23 | 1994-07-19 | Taligent, Inc. | Object oriented framework system |
| US5497484A (en) * | 1993-02-24 | 1996-03-05 | Hewlett-Packard Company | File menu support for encapsulated applications |
| US6212577B1 (en) * | 1993-03-03 | 2001-04-03 | Apple Computer, Inc. | Method and apparatus for improved interaction with an application program according to data types and actions performed by the application program |
| CA2159467C (en) * | 1993-03-31 | 2002-07-30 | Erik R. Neumann | Costume objects |
| US5479599A (en) * | 1993-04-26 | 1995-12-26 | International Business Machines Corporation | Computer console with group ICON control |
| US5870764A (en) * | 1993-05-12 | 1999-02-09 | Apple Computer, Inc. | Method of managing a data structure for concurrent serial and parallel revision of a work |
| US5873097A (en) * | 1993-05-12 | 1999-02-16 | Apple Computer, Inc. | Update mechanism for computer storage container manager |
| US5652879A (en) * | 1993-05-12 | 1997-07-29 | Apple Computer, Inc. | Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs |
| US5950169A (en) * | 1993-05-19 | 1999-09-07 | Ccc Information Services, Inc. | System and method for managing insurance claim processing |
| US5544302A (en) * | 1993-06-03 | 1996-08-06 | Taligent, Inc. | Object-oriented framework for creating and using container objects with built-in properties |
| US5813015A (en) * | 1993-06-07 | 1998-09-22 | International Business Machine Corp. | Method and apparatus for increasing available storage space on a computer system by disposing of data with user defined characteristics |
| US5542086A (en) * | 1993-07-06 | 1996-07-30 | Novell, Inc. | Document type metamorphosis in an object-oriented operating system having a graphical user interface |
| US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
| CN100545828C (zh) | 1993-07-30 | 2009-09-30 | 佳能株式会社 | 控制连接到网络的网络设备的控制设备及其控制方法 |
| EP0640915A1 (de) * | 1993-08-27 | 1995-03-01 | International Business Machines Corporation | Verfahren und System zur Anzeige des Inhalts eines Behälterdatenobjektes in einer graphischen Benutzerschnittstelle in einem Datenverarbeitungssystem |
| US5619637A (en) * | 1993-12-02 | 1997-04-08 | International Business Machines Corporation | Method and system for automatic storage of an object within a container object within a graphical user interface within a data processing system |
| US6151610A (en) * | 1993-12-27 | 2000-11-21 | Digital Equipment Corporation | Document display system using a scripting language having container variables setting document attributes |
| AU1560195A (en) * | 1994-01-05 | 1995-08-01 | Apple Computer, Inc. | Update mechanism for computer storage container manager |
| US5600838A (en) * | 1994-01-18 | 1997-02-04 | Sybase, Inc. | Object oriented dispatch and supercall process and arrangement |
| US5423043A (en) * | 1994-01-21 | 1995-06-06 | International Business Machines Corporation | Method and apparatus for creating and monitoring logical associations among desktop objects |
| US5619636A (en) * | 1994-02-17 | 1997-04-08 | Autodesk, Inc. | Multimedia publishing system |
| US5611031A (en) * | 1994-04-29 | 1997-03-11 | General Magic, Inc. | Graphical user interface for modifying object characteristics using coupon objects |
| US5930514A (en) * | 1994-08-01 | 1999-07-27 | International Business Machines Corporation | Self-deletion facility for application programs |
| US5684984A (en) * | 1994-09-29 | 1997-11-04 | Apple Computer, Inc. | Synchronization and replication of object databases |
| US5530796A (en) * | 1994-09-30 | 1996-06-25 | International Business Machines Corporation | Menu bar editor |
| WO1996010785A1 (en) * | 1994-09-30 | 1996-04-11 | Apple Computer, Inc. | Method and apparatus for displaying and accessing control and status information in a computer system |
| US5625818A (en) * | 1994-09-30 | 1997-04-29 | Apple Computer, Inc. | System for managing local database updates published to different online information services in different formats from a central platform |
| US5619639A (en) * | 1994-10-04 | 1997-04-08 | Mast; Michael B. | Method and apparatus for associating an image display area with an application display area |
| US5689705A (en) * | 1995-02-13 | 1997-11-18 | Pulte Home Corporation | System for facilitating home construction and sales |
| WO1996025754A1 (en) * | 1995-02-17 | 1996-08-22 | Bell Communications Research, Inc. | Methods and apparatus for implementing data networking system having object-oriented architecture |
| US5680619A (en) * | 1995-04-03 | 1997-10-21 | Mfactory, Inc. | Hierarchical encapsulation of instantiated objects in a multimedia authoring system |
| US6449660B1 (en) | 1995-07-31 | 2002-09-10 | International Business Machines Corporation | Object-oriented I/O device interface framework mechanism |
| US5778227A (en) * | 1995-08-01 | 1998-07-07 | Intergraph Corporation | System for adding attributes to an object at run time in an object oriented computer environment |
| US5671225A (en) * | 1995-09-01 | 1997-09-23 | Digital Equipment Corporation | Distributed interactive multimedia service system |
| US6003037A (en) * | 1995-11-14 | 1999-12-14 | Progress Software Corporation | Smart objects for development of object oriented software |
| US5831617A (en) * | 1995-11-27 | 1998-11-03 | Bhukhanwala; Saumil A. | Browsing and manipulating objects using movie like icons |
| US6298476B1 (en) | 1995-12-04 | 2001-10-02 | International Business Machines Corporation | Object oriented software build framework mechanism |
| US5768505A (en) * | 1995-12-19 | 1998-06-16 | International Business Machines Corporation | Object oriented mail server framework mechanism |
| US6816914B1 (en) * | 1995-12-29 | 2004-11-09 | Agilent Technologies, Inc. | Callable graphical programming language |
| US5745115A (en) * | 1996-01-16 | 1998-04-28 | International Business Machines Corporation | Graphical user interface having a shared menu bar for opened applications |
| US6144967A (en) * | 1996-01-25 | 2000-11-07 | International Business Machines Corporation | Object oriented processing log analysis tool framework mechanism |
| US6434739B1 (en) | 1996-04-22 | 2002-08-13 | International Business Machines Corporation | Object oriented framework mechanism for multi-target source code processing |
| US6081798A (en) * | 1996-04-24 | 2000-06-27 | International Business Machines Corp. | Object oriented case-based reasoning framework mechanism |
| US5778378A (en) | 1996-04-30 | 1998-07-07 | International Business Machines Corporation | Object oriented information retrieval framework mechanism |
| US5715413A (en) * | 1996-06-25 | 1998-02-03 | International Business Machines Corporation | Dragging and dropping with an instantiation object |
| US5815703A (en) * | 1996-06-28 | 1998-09-29 | Microsoft Corporation | Computer-based uniform data interface (UDI) method and system using an application programming interface (API) |
| US5784057A (en) * | 1996-08-14 | 1998-07-21 | International Business Machines Corporation | Dynamically modifying a graphical user interface window title |
| US5818444A (en) * | 1996-08-14 | 1998-10-06 | International Business Machines Corporation | Method, apparatus and application for object selective but global attribute modification |
| 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 |
| 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 |
| 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 |
| US5774120A (en) * | 1996-08-14 | 1998-06-30 | International Business Machines Corporation | Refresh and select-all actions in graphical user interface |
| 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 |
| US5774119A (en) * | 1996-08-14 | 1998-06-30 | International Business Machines Corporation | Graphical interface method, apparatus and application for selection of target object |
| 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 |
| US5915252A (en) * | 1996-09-30 | 1999-06-22 | International Business Machines Corporation | Object oriented framework mechanism for data transfer between a data source and a data target |
| US6104874A (en) * | 1996-10-15 | 2000-08-15 | International Business Machines Corporation | Object oriented framework mechanism for order processing including pre-defined extensible classes for defining an order processing environment |
| US6157380A (en) * | 1996-11-05 | 2000-12-05 | International Business Machines Corporation | Generic mechanism to create opendoc parts from workplace shell objects |
| US5937189A (en) * | 1996-11-12 | 1999-08-10 | International Business Machines Corporation | Object oriented framework mechanism for determining configuration relations |
| US5970498A (en) * | 1996-12-06 | 1999-10-19 | International Business Machines Corporation | Object oriented framework mechanism for metering objects |
| US5987423A (en) * | 1997-03-28 | 1999-11-16 | International Business Machines Corporation | Object oriented technology framework for order processing |
| US5936860A (en) * | 1997-03-28 | 1999-08-10 | International Business Machines Corporation | Object oriented technology framework for warehouse control |
| US6041312A (en) * | 1997-03-28 | 2000-03-21 | International Business Machines Corporation | Object oriented technology framework for accounts receivable and accounts payable |
| GB2324450A (en) * | 1997-04-19 | 1998-10-21 | Ibm | Graphical user interface |
| US6014637A (en) * | 1997-04-30 | 2000-01-11 | International Business Machines Corporation | Object oriented framework mechanism for fulfillment requirements management |
| US5893106A (en) * | 1997-07-11 | 1999-04-06 | International Business Machines Corporation | Object oriented server process framework with interdependent-object creation |
| US6513152B1 (en) | 1997-07-23 | 2003-01-28 | International Business Machines Corporation | Object oriented framework mechanism for customization of object oriented frameworks |
| US6378002B1 (en) | 1997-08-05 | 2002-04-23 | International Business Machines Corporation, | Object oriented server process framework with implicit data handling registry for remote method invocations |
| US6052670A (en) * | 1997-08-29 | 2000-04-18 | International Business Machines Corporation | Object oriented framework mechanism for an electronic catalog |
| US6016495A (en) * | 1997-09-19 | 2000-01-18 | International Business Machines Corporation | Object-oriented framework mechanism for providing persistent storage |
| US6448981B1 (en) * | 1997-12-09 | 2002-09-10 | International Business Machines Corporation | Intermediate user-interface definition method and system |
| US6018346A (en) * | 1998-01-12 | 2000-01-25 | Xerox Corporation | Freeform graphics system having meeting objects for supporting meeting objectives |
| US6509912B1 (en) * | 1998-01-12 | 2003-01-21 | Xerox Corporation | Domain objects for use in a freeform graphics system |
| US6377288B1 (en) * | 1998-01-12 | 2002-04-23 | Xerox Corporation | Domain objects having computed attribute values for use in a freeform graphics system |
| JP2000076150A (ja) * | 1998-08-31 | 2000-03-14 | Fujitsu Ltd | システム管理方法及びシステム管理装置 |
| US6198480B1 (en) | 1998-10-07 | 2001-03-06 | Wonderware Corporation | Object-oriented tag browser |
| EP1039378A3 (de) * | 1999-03-01 | 2004-04-21 | Canon Kabushiki Kaisha | Verbesserungen in objektorientierten Rechnerbetrieben |
| US8037193B2 (en) * | 1999-12-24 | 2011-10-11 | Telstra Corporation Limited | Virtual token |
| US6820268B2 (en) * | 2000-10-30 | 2004-11-16 | Next Computer, Inc. | Method for associating data bearing objects with user interface objects |
| US20030009411A1 (en) * | 2001-07-03 | 2003-01-09 | Pranil Ram | Interactive grid-based graphical trading system for real time security trading |
| US7055132B2 (en) * | 2002-06-28 | 2006-05-30 | Microsoft Corporation | System and method for associating properties with objects |
| US7542979B2 (en) * | 2004-05-25 | 2009-06-02 | Schlumberger Technology Corporation | System, method and apparatus for loading text data in a database |
| US7716654B2 (en) * | 2004-06-18 | 2010-05-11 | Oracle America, Inc. | Simulation of multi top-level graphical containers in computing environments |
| US10216372B1 (en) * | 2004-12-06 | 2019-02-26 | The Mathworks, Inc. | Automatic import to a graphical model |
| US7340478B2 (en) | 2005-01-07 | 2008-03-04 | International Business Machines Corporation | Method and apparatus for implementing container managed uses, ownerships, and references in an enterprise JavaBean environment |
| US20060156313A1 (en) * | 2005-01-07 | 2006-07-13 | Hambrick Geoffrey M | Method and apparatus for implementing container managed batch jobs in an enterprise java bean environment |
| US20060155745A1 (en) * | 2005-01-07 | 2006-07-13 | Hambrick Geoffrey M | System and method to implement container managed streams in J2EE environments |
| US7903654B2 (en) * | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
| US8326871B2 (en) * | 2007-02-27 | 2012-12-04 | Red Hat, Inc. | Method and system for dynamically generating category-based views |
| US9264659B2 (en) | 2010-04-07 | 2016-02-16 | Apple Inc. | Video conference network management for a mobile device |
| CN103092583B (zh) * | 2011-11-01 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 一种动态生成设置项列表视图的方法及装置 |
| USD802608S1 (en) | 2013-04-25 | 2017-11-14 | Life Technologies Corporation | Display screen with graphical user interface |
| EP3149554B1 (de) | 2014-05-30 | 2024-05-01 | Apple Inc. | Kontinuität |
| US10637986B2 (en) | 2016-06-10 | 2020-04-28 | Apple Inc. | Displaying and updating a set of application views |
| US12242707B2 (en) | 2017-05-15 | 2025-03-04 | Apple Inc. | Displaying and moving application views on a display of an electronic device |
| CN107885995A (zh) * | 2017-10-09 | 2018-04-06 | 阿里巴巴集团控股有限公司 | 小程序的安全扫描方法、装置以及电子设备 |
| US11907605B2 (en) | 2021-05-15 | 2024-02-20 | Apple Inc. | Shared-content session user interfaces |
| US11928303B2 (en) | 2021-05-15 | 2024-03-12 | Apple Inc. | Shared-content session user interfaces |
| US12449961B2 (en) | 2021-05-18 | 2025-10-21 | Apple Inc. | Adaptive video conference user interfaces |
| US12405631B2 (en) | 2022-06-05 | 2025-09-02 | Apple Inc. | Displaying application views |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4739477A (en) * | 1984-08-30 | 1988-04-19 | International Business Machines Corp. | Implicit creation of a superblock data structure |
| US4723209A (en) * | 1984-08-30 | 1988-02-02 | International Business Machines Corp. | Flow attribute for text objects |
| US4815029A (en) * | 1985-09-23 | 1989-03-21 | International Business Machines Corp. | In-line dynamic editor for mixed object documents |
| US4899136A (en) * | 1986-04-28 | 1990-02-06 | Xerox Corporation | Data processor having a user interface display with metaphoric objects |
| US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
| US4982344A (en) * | 1988-05-18 | 1991-01-01 | Xerox Corporation | Accelerating link creation |
-
1991
- 1991-06-28 US US07/723,086 patent/US5287447A/en not_active Expired - Fee Related
-
1992
- 1992-05-26 JP JP4133968A patent/JP2837311B2/ja not_active Expired - Fee Related
- 1992-06-03 DE DE69230303T patent/DE69230303T2/de not_active Expired - Fee Related
- 1992-06-03 EP EP92480078A patent/EP0520924B1/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5287447A (en) | 1994-02-15 |
| JPH05158700A (ja) | 1993-06-25 |
| EP0520924B1 (de) | 1999-11-17 |
| EP0520924A2 (de) | 1992-12-30 |
| EP0520924A3 (en) | 1993-09-08 |
| JP2837311B2 (ja) | 1998-12-16 |
| DE69230303D1 (de) | 1999-12-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69230303T2 (de) | System zur Verwaltung von "Behälter" Datenobjekten | |
| DE69402417T2 (de) | Objektorientiertes interprozesskommunikationssystem | |
| DE69817158T2 (de) | Benutzerschnittstellen-Mechanismus zur Manipulierung von Kontexten in Computerverwaltungsapplikationen | |
| DE69310934T2 (de) | Ballonhilfssystem. | |
| DE69605274T2 (de) | System und Verfahren zur Aufmerksammachen von anderen, die ähnliche Aufgaben in einer Rechnerumgebung ausführen | |
| DE68927216T2 (de) | System zur verwaltung von hierarchischen informationen in einem digitalen datenverarbeitungssystem | |
| DE3854994T2 (de) | Mehrnutzerdatenübermittlungssystem | |
| DE3883733T2 (de) | Bedienungsverfahren eines elektronischen Datenverarbeitungssystems zum Dokumententransfer zwischen Endbenutzern. | |
| DE69310214T2 (de) | Dialogsystem | |
| DE69729926T2 (de) | Netzwerkbrowser | |
| DE69303289T2 (de) | Steuersystem für anzeigemenüzustand | |
| DE69525243T2 (de) | System zum binden von dokumentteilen und editoren in einer mensch-maschinen-schnittstelle | |
| DE69311359T2 (de) | Befehlssystem | |
| DE69326865T2 (de) | Objektorientiertes Rechnersystem und Verfahren | |
| DE60201024T2 (de) | Multifunktioneller applikations-launcher mit integriertem status | |
| DE69130028T2 (de) | Hierarchische Prozessablaufsteuerung zwischen Fenstern | |
| DE69310201T2 (de) | Objektorientierte applikationsschnittstelle. | |
| DE69330741T2 (de) | Temporäre Änderung eines Quell-Objekts beim Bewegen über andere Objekte | |
| DE69310188T2 (de) | Objektorientiertes bestaetigungssystem | |
| DE69304928T2 (de) | Atomares befehlsystem | |
| DE69500885T2 (de) | Verfahren und vorrichtung zur verarbeitung eines dokuments | |
| DE69400436T2 (de) | Run-time lader | |
| DE69127703T2 (de) | Vorrichtung und verfahren zum erzeugen eines benutzerdefinierbaren, videodargestellten dokuments, das änderungen von echtzeitdaten anzeigt | |
| DE69425017T2 (de) | Verkapselung in Objekten von extrahierten Teilen von Dokumenten | |
| DE69805986T2 (de) | Verfahren und vorrichtung zur konfigurierung von schiebefenstern |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |