[go: up one dir, main page]

DE69230303T2 - System zur Verwaltung von "Behälter" Datenobjekten - Google Patents

System zur Verwaltung von "Behälter" Datenobjekten

Info

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
Application number
DE69230303T
Other languages
English (en)
Other versions
DE69230303D1 (de
Inventor
Patrice R. Miller
Wade A. Miller
John K. Rayborn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69230303D1 publication Critical patent/DE69230303D1/de
Publication of DE69230303T2 publication Critical patent/DE69230303T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution 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.
DE69230303T 1991-06-28 1992-06-03 System zur Verwaltung von "Behälter" Datenobjekten Expired - Fee Related DE69230303T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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