-
Die
vorliegende Erfindung bezieht sich allgemein auf Fensterverwaltungssoftware
für Computersysteme
und insbesondere auf ein System und ein Verfahren, die Kontext-Identifizierer
verwenden, zur individuellen Menüanpassung
in Fenstern, um eine Integration von Anwendungsprogrammen hinter Fenstern
zu erleichtern, und um eine Zuordnung von Menüpunkten zu Fenstern zu optimieren.
-
Eine
graphische Benutzerschnittstelle (GUI; GUI = Graphical User Interface),
die Fenster auf einer Anzeige erzeugt und treibt, umfaßt einen
Fensterverwalter. Der Fensterverwalter ist ein Softwareprogramm
oder Modul, das die Parameter von Fenstern definiert und die Fenster
erzeugt. Zusätzlich wirkt
der Fensterverwalter als ein Vermittler für eine Benutzerinteraktion
mit Anwendungsprogrammfenstern, einschließlich einer Menüpunktauswahl.
Darüberhinaus
hält der
Fensterverwalter eine Liste von Menüpunkten, die in jedem Fenster
erscheinen sollen. Die Liste von Menüpunkten kann in einer Betriebsmitteldatei
gehalten sein, die von dem Fensterverwalter verwaltet wird. Die
Menüpunkte
machen bestimmte Funktionen oder Aktivitäten für den Benutzer verfügbar. Die
Auswahl eines Menüpunkts,
der innerhalb eines Fensters sitzt, durch den Benutzer bewirkt,
daß der
Fensterverwalter eine spezielle Funktion oder Aktivität, die den
Betrieb eines speziellen Anwendungsprogramms umfaßt, anfordert.
-
Im
allgemeinen ist es wünschenswert,
Fenster-basierte Anwendungsprogramme miteinander zu integrieren.
Wenn die Anwendungsprogramme integriert sind und zusammenarbeiten,
dann ist der Benutzer produktiver, wobei die Anwendungsprogramme
selbst ein Teil eines größeren, flexibleren
und leistungsfähigeren
Systems werden.
-
Historisch
gesehen wurden Menüpunkte Fenstern
zugeordnet, indem entweder eine Punkt-zu-Punkt-Technik oder eine
Rundschreibentechnik ("Broadcast-Technik") verwendet wurde.
Bei der Punkt-zu-Punkt-Technik, welche beispielsweise von Microsoft
WindowsR verwendet wird, das von der Microsoft
Corporation, U.S.A., kommerziell erhältlich ist, sind Menüpunkte in
Betriebsmitteldateien definiert, wobei jedes Fenster programmiert
ist, um in einer spezifischen Betriebsmitteldatei zu lesen. Ein Nachteil
dieser Technik besteht darin, daß Menüpunkte nicht auf eine verallgemeinerte
Art und Weise auf Fenster bezogen sind, derart, daß Menüpunkte selektiv
auf Gruppen von Fenstern, wie z. B. auf ein Fenster, das noch nicht
durch ein Anwendungsprogramm erzeugt worden ist, gerichtet werden
können. Ebenfalls
ist der umgekehrte Fall, daß ein
Fenster eines Anwendungsprogrammes in der Lage ist, Menüpunkte von
einer neuen unbekannten Quelle hinzuzufügen, sehr schwer. Somit wird
eine Integration von Fenster-basierten Anwendungsprogrammen gehemmt.
-
Insbesondere
sei ein Anwendungsprogramm betrachtet, das Menüpunkte erzeugt, welche eine Konfigurationsverwaltungs(CM;
CM = Configuration Management)Funktionalität schaffen. Diese Menüpunkte sollten
in Editierfenstern erscheinen. Der CM-Entwickler würde es wollen,
daß diese
Menüpunkte
in allen Fenstern, die für
Editieraufgaben verwendet werden, erscheinen. Später wird ein anderes Programm,
und zwar ein Graphikeditor, zum Zeichnen von Diagrammen entwickelt.
Die CM-Menüpunkte
würden
innerhalb dieses graphischen Editors ebenfalls sehr nützlich sein,
wobei jedoch das CM-Anwendungsprogramm nichts über Graphikeditoren weiß, weswegen
die Punkte nicht hinzugefügt sind.
Wenn die beiden Programme nichts voneinander wissen, um eine Punkt-zu-Punkt-Verbindung
zu schaffen, können
sie auf diese Art und Weise nicht zusammenarbeiten. Idealerweise
sollten die CM-Werkzeuge in der Lage sein, sich auf das gleiche Attribut
des Fensters zu beziehen, das für
sowohl Texteditoren als auch Graphikeditoren gültig sein würde.
-
Die
Rundschreibentechnik verwendet neue Menüpunkte für alle residenten Fenster.
Die Rundschreibentechnik wird beispielsweise von SoftBenchR verwendet,
das eine Sammlung von Computerprogrammen ist, die zur Softwareentwicklung
verwendet werden, und die von der Hewlett-Packard Company, U.S.A.,
kommerziell erhältlich
ist. Diese Technik ist jedoch darin unerwünscht, daß sie die Funktionalität eines
einzelnen Fensters verwässert, die
Benutzer-Produktivität
und das Verhalten verschlechtert und Speicheranforderungen unnötigerweise
erhöht.
Wieder einmal wird die Integration ebenfalls gehemmt.
-
Aus
der
US-A-5,297,250 ist
ein Verfahren zum Erzeugen von Schnittstellen für Benutzeranwendungen, die
auf dem Bildschirm eines Datenverarbeitungssystems anzeigbar sind,
bekannt. Ein Überblicksmodul
ist den Gegenständen,
die in der Schnittstelle enthalten sind, zugeordnet, wobei in dem
zumindest einem Überblicksfenster
eine momentane synoptische Tabelle angezeigt wird, die den Aufbau der
gesamten oder eines Teils der Schnittstelle darstellt. Die Tabelle
wird auf der Grundlage eines beschreibenden Status der Gegenstände aufgebaut.
In einem interaktiven Modus wird die Erzeugung und/oder Modifikation
und/oder Aufnahme der Gegenstände
mit der Hilfe von zumindest einem Arbeitsfenster, vorzugsweise vom
Dialogfenstertyp, durchgeführt,
unter der momentanen Steuerung des Überblicksmoduls.
-
Die
US-A-4,586,035 bezieht
sich auf ein interaktives Anzeigenterminal, das mehrere überlappende
Fenster aufweist. Jedes der Fenster ist kleiner als der Gesamtbildschirm,
wobei eines oder mehrere der Fenster ein zugeordnetes Menü besitzt,
das aus einer Mehrzahl von Menüpunkten
gebildet ist, die jeweils um den Umfang des zugeordneten Fensters verteilt
sind, jedoch während
normaler Operationen nicht angezeigt werden. Ansprechend auf die
Bewegung eines Cursors über
eine ausgewählte
Region in einem Fensterumfang wird die Anzeige eines ausgewählten Menüpunkts,
der der speziellen ausgewählten
Region zugeordnet ist, bewirkt.
-
Die
US-A-5,321,841 befaßt sich
mit einem System zum Bestimmen der Rechte eines Objektzugriffs für einen
Serverprozeß durch
das Kombinieren desselben mit den Rechten eines Client-Prozeßes. Ein
Serverprozeß personifiziert
temporär
die Charakteristika eines Client-Prozeßes, wenn der Client-Prozeß einen
Fernprozeduraufruf auf dem Serverprozeß durchführt. Insbesondere befaßt sich
diese Schrift allgemein mit digitalen Multitask-Computersystemen und
mit Verfahren und System zum Verwalten von Datenstrukturen, die
durch solche Systeme verwendet werden.
-
Aus
Chapter 4 "THE MACINTOSH TOOLBOSX2, "On Macintosh Programming:
Advanced Techniques",
Addison-Wesley 1990, Chapter 10 "Menus
and Accelerators",
PROGRAMMING WINDOWS Chapter 4, "THE
MACINTOSH TOOLBOX2, "On
Macintosh Programming: Advanced Techniques, ADdison-Wesley Chapter
10 "Menus and Accelerators", "PROGRAMMING WINDOWS2,
MICROSOFT PRESS. 1988, sind von "Macintosh" und "Microsoft" bekannte Fensterumgebungen
beschrieben.
-
Aus
der
EP-A2-0 274 087 ist
eine Computer-Mensch-Schnittstelle
bekannt, die ein einstellbares Fenster aufweist, das es einem Benutzer
ermöglicht,
einen Abschnitt einer abstrakten, geräteunabhängigen Bildbeschreibung von
Informationen zu betrachten. Es können gleichzeitig mehrere Fenster
geöffnet
werden, wobei jedes Fenster unabhängig von einander größenmäßig eingestellt
werden kann, unabhängig
von den laufenden Anwendungen. Die Schnittstelle erzeugt ein getrenntes "Objekt" für jedes aktive
Bild und für
jedes aktive Fenster. Mehrere Bilder können gleichzeitig aktualisiert
werden und Fenster können
auf dem Bildschirm herumbewegt werden, wobei deren Größen verändert werden
können, ohne
andere Fenster und/oder Bilder zu beeinflußen.
-
In
der Industrie besteht ein bisher nicht erfüllter Bedarf nach einem System
und einem Verfahren zum Beziehen von Menüpunkten auf Fenster auf eine optimalere
verallgemeinerte Art und Weise, derart, daß Menüpunkte selektiv auf Gruppen
von Fenstern gerichtet werden können,
selbst wenn ein Anwendungsprogramm, das ein derartiges Zielfenster
erzeugt, noch nicht existiert, und derart, daß ein Fenster eines Anwendungsprogrammes
in der Lage ist, Menüpunkte
von einer neuen, unbekannten Quelle hinzuzufügen.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein Kontextidentifikationssystem,
einen Computer-lesbaren Speicher und ein Kontextidentifikationsverfahren
für einen
Fensterverwalter zu schaffen, um auf flexible Art und Weise Fenstern
von Anwendungsprogrammen Menüpunkte
zuzuordnen.
-
Diese
Aufgabe wird durch ein Kontextidentifikationssystem gemäß Anspruch
1 und ein Kontextidentifikationsverfahren gemäß Anspruch 13 gelöst.
-
Die
vorliegende Erfindung überwindet
die Unzulänglichkeiten
und Mängel
des Stands der Technik, wie er vorher diskutiert wurde. Die vorliegende Erfindung
schafft ein Kontextidenti fikationssystem und -Verfahren, die innerhalb
eines Fensterverwalters eines Softwareprogramms verwendet werden können. Das
Kontextidentifikationssystem und -Verfahren erleichtern eine Integration
von Anwendungsprogrammen hinter Fenstern und schafft eine optimale
Zuordnung von Menüpunkten
zu Fenstern, um eine höhere
Leistung und größere Flexibilität im Vergleich
zu bekannten Techniken zu erreichen.
-
Das
Kontextidentifikationssystem und -Verfahren verwenden Kontextidentifizierer.
Im wesentlichen beschreibt ein Kontextidentifizierer einen Aspekt,
wie ein Fenster verwendet wird. Eine Liste von Kontextidentifizierern
ist jedem Fenster zugeordnet. Die Kontextidentifizierer, die jedem
Fenster entsprechen, definieren zusammen die Attribute, die bestimmen,
welche Menüpunkte
innerhalb dieses Fensters vorhanden sein sollten. Während ein
Fenster gültige Kontextidentifizierer
für dieses
Fenster definiert, ist ein Menüpunkt
mit einem Kontextidentifiziererausdruck etikettiert, welcher vorzugsweise
eine Bool'sche Gleichung
ist (d. h. Ausdrücke,
die durch logische Operatoren, wie z. B. UND, ODER, usw., verbunden
sind), deren Ausdrücke
auf Kontextidentifizierer verweisen. Dieser Ausdruck definiert,
welchen Fenstern die Menüpunkte
zugeordnet werden sollten, und in welchen dieselben plaziert werden sollten.
Wichtig ist, daß dieser
Kontextidentifiziererausdruck verwendet werden kann, um auf getrennte Sätze von
Fenstern abzuzielen.
-
Bei
der Architektur umfaßt
das Kontextidentifikationssystem eine Anwendungsregistrationseinrichtung,
die konfiguriert ist, um einen Menüpunkt zu erzeugen, der zur
Anzeige in einem Fenster plaziert werden soll. Der Menüpunkt weist
zumindest folgende Merkmale auf: einen Kontextausdruck, eine vordefinierte
Funktionsspezifikation, die eine Handlung definiert, die von dem
Fensterverwalter durchgeführt werden
muß, wenn
der Menüpunkt
ausgewählt
wird, und eine Menüzeichenkette,
die ein Anzeigebild definiert, das dem Menüpunkt entspricht. Eine Fenstererzeugungseinrichtung,
die dem Kontextidentifikationssystem zugeordnet ist, definiert Fenster
zur Anzeige und hält
eine Kontextliste von Kontextidentifizierern für jedes Fenster. Das Kontextidentifikationssystem umfaßt eine
Menüpunktplaziereinrichtung,
die konfiguriert ist, um basierend auf einer Bewertung des Kontextausdrucks,
der jedem Menüpunkt
zugeordnet ist, und auf der Kontextliste, die jedem Fenster zugeordnet
ist, Menüpunkte
an spezielle Fenster anzupassen. Schließlich ist eine Menüpunktabwicklungseinrichtung,
die dem System zugeordnet ist, konfiguriert, um eine Menüpunktauswahl
von einem Benutzer auf eine vordefinierte Funktionsspezifikation
zu beziehen.
-
Das
Kontextidentifikationsverfahren kann verallgemeinert folgendermaßen dargestellt
werden: Zuordnen eines Kontextausdrucks einem Menüpunkt zum
Anfordern einer Handlung; Zuordnen eines oder mehrerer Kontextidentifizierer,
vorzugsweise einer Liste, einem Fenster zur Anzeige; und Bestimmen, ob
der Menüpunkt
in dem Fenster plaziert werden soll, basierend auf einer Bewertung
des Kontextausdrucks und des einen oder der mehreren Kontextidentifizierer.
-
Gemäß einem
weiteren Merkmal der vorliegenden Erfindung kann der Kontextausdruck
einen Ausdruck aufweisen (in dieser Anmeldung "Alle-Kontexte" oder "AllContexts"), der anzeigt, daß der Menüpunkt in allen Fenstern plaziert
werden sollte, wodurch dieser Menüpunkt ein allgemeiner Menüpunkt wird.
Dieses Merkmal vereinfacht und optimiert das neuartige Kontextidentifikationssystem
und -Verfahren der vorliegenden Erfindung weiter.
-
Ein
weiteres Merkmal der vorliegenden Erfindung besteht darin, daß die Kontextliste,
die einem Fenster zugeordnet ist, einen Kontextidentifizierer (in dieser
Anmeldung "nicht-allgemein" oder "NoGeneric" genannt) aufweisen
kann, der anzeigt, daß keine allgemeinen
Menüpunkte
in dem Fenster plaziert werden sollen, während andere Menüpunkte weiter skizziert
werden. Dieses Merkmal vereinfacht und verbessert das neuartige
Kontextidentifikationssystem und -Verfahren der vorliegenden Erfindung
weiter und verhindert eine Verwässe rung
der Funktionalität
in einem Fenster.
-
Das
Kontextidentifikationssystem und -Verfahren der vorliegenden Erfindung
kann viele Vorteile aufweisen, von denen nachfolgend einige beispielhaft
skizziert sind.
-
Ein
Vorteil des Kontextidentifikationssystems und -Verfahrens der vorliegenden
Erfindung besteht darin, daß sie
ein allgemeines Schema zum Beziehen von Menüpunkten auf Fenster schaffen,
derart, daß Menüpunkte selektiv
auf Gruppen von Fenstern abgezielt werden können. Das verallgemeinerte Schema
baut nicht auf einer Punkt-zu-Punkt-Beziehung auf und das verallgemeinerte
Schema ist in der Tat bei seiner Unterstützung zum Definieren dieser Beziehung
ausbaufähiger.
Dieser verallgemeinerte Lösungsansatz
erlaubt es, daß ein
Menüpunkt
in einem Fenster plaziert werden kann, das noch nicht existierte,
als der Menüpunkt
definiert wurde, solange der Kontext des neuen Fensters den Kontextausdruck
des Menüpunktes
erfüllt.
-
Ein
weiterer Vorteil des Kontextidentifikationssystems und -Verfahrens
der vorliegenden Erfindung besteht darin, daß sie ein flexibleres und benutzerfreundliches
Schema zum Zuordnen von Menüpunkten
zu Fenstern schaffen, wie es im Vergleich zu der Punkt-zu-Punkt-Technik
oder der Rundschreibentechnik der Fall ist.
-
Ein
weiterer Vorteil des Kontextidentifikationssystems und -Verfahrens
der vorliegenden Erfindung besteht darin, daß sie eine größere Flexibilität, eine
höhere
Leistung und einen reduzierten benötigten Speicher im Vergleich
zu der Rundschreibentechnik schaffen.
-
Ein
weiterer Vorteil des Kontextidentifikationssystems und -Verfahrens
der vorliegenden Erfindung besteht darin, daß sie ein Schema zum Zuordnen
von Menüpunkten
zu Fenstern schaffen, das im Entwurf einfach, zuverlässig und
effizient ist.
-
Ein
weiterer Vorteil des Kontextidentifikationssystems und -Verfahrens
der vorliegenden Erfindung besteht darin, daß sie in praktisch jeder Fenster-basierten
GUI verwendet werden können.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die
beiliegenden Zeichnungen detaillierter erläutert, wobei gleiche Bezugszeichen
entsprechende Teile in mehreren Figuren bezeichnen. Es zeigen:
-
1 ein
Blockdiagramm, das das Kontextidentifikationssystem und -Verfahren
der vorliegenden Erfindung darstellt, die innerhalb eines Computer-lesbaren
Mediums, beispielsweise in einem Computersystem, untergebracht sind;
-
2 ein
Blockdiagramm, das die Architektur und Funktionalität des Kontextidentifikationssystems
von 1 darstellt;
-
3 ein
Blockdiagramm, das ein Beispiel einer hierarchischen Menüliste von
Menüpunkten (beispielsweise
Datei, Konfiguration, Schneiden, usw.) mit zugeordneten Kontextausdrücken (z.
B. A; A||B; B&&C; usw.) darstellt,
die von dem Fensterverwalter der 1 und 2 gehalten
und bearbeitet werden, um Fenster mit Menüpunkten zu füllen; und
-
4 ein
Graphikdiagramm, das ein Beispiel einer Fensterhierarchie darstellt,
wobei jedes Fenster in der Hierarchie eine entsprechende Kontextliste
gemäß dem Kontextidentifikationssystem und
-Verfahren der vorliegenden Erfindung aufweist.
-
Das
Kontextidentifikationssystem 10 kann auf jedem Computer-lesbaren
Medium zur Verwendung durch oder in Verbindung mit einem Computer-bezogenen
System oder Verfahren gespeichert werden. Im Kontext dieses Dokuments
ist ein Computerlesbares Medium ein elektronisches, magnetisches,
optisches oder ein anderes physisches Gerät oder eine Einrichtung, die
ein Computerprogramm zur Verwendung durch oder in Verbindung mit
einem Computer-bezogenen System oder Verfahren enthalten oder speichern
kann.
-
Wie
es mittels des Beispiels in 1 dargestellt
ist, kann das Kontextidentifikationssystem 10 der vorliegenden
Erfindung zusammen mit seinem zugeordneten Verfahren in Verbindung
mit einem Fensterverwalter 12 verwendet werden, der innerhalb
eines Computersystems 14 zwecks des Verbesserns der Zuordnung
von Menüpunkten 46 (3) zu
Fenstern 72 (4) läuft. Das Computersystem 14 umfaßt einen
herkömmlichen
Prozessor 16, der mit anderen Elementen innerhalb des Computersystems 14 über ein
Busnetz 18 kommuniziert. Ein Eingabegerät 22, beispielsweise
eine Tastatur oder Maus, wird verwendet, um Daten von einem Benutzer
des Systems 14 einzugeben, während eine Bildschirmanzeige 24 verwendet
wird, um Daten dem Benutzer auszugeben. Ein Speicher 26 innerhalb
des Computersystems 14 speichert das Kontextidentifikationssystem 10.
Das Kontextidentifikationssystem 10 ist vorzugsweise als
Teil des Fensterverwalters 12 implementiert, welcher mit
einem herkömmlichen
Betriebssystem 28 kommuniziert, um Fenster 72 auf
der Anzeige 24 basierend auf Anwendungsprogrammen 32 zu
erzeugen, die über
den Fensterverwalter 12 konzeptionell betreibbar sind,
und die auf Eingaben von dem Benutzer über das Eingabegerät 22 basieren.
Wie es in der Technik bekannt ist, konfigurieren und treiben die
Computerprogramme 32, 10, 12, 28 (in
absteigender hierarchischer Anordnung), die in dem Speicher 26 gespeichert
sind, den Prozessor 16 sowie das Computersystem 14,
derart, daß eine
gewünschte
Fenster-basierte Schnittstelle mit dem Benutzer über das Eingabegerät 22 und
die Anzeige 24 erreicht wird.
-
Das
Kontextidentifikationssystem 10 der vorliegenden Erfindung
verwendet eine neuartige, individuelle Menüanpassungs technik. Wenn ein
Fenster 72 erzeugt wird, stellt ein Entwickler des Fensters des
Anwendungsprogramms seinen Kontext ein. Der Fensterkontext besteht
aus einer Kontextliste von Kontextidentifizierern. Wenn ein Menü oder ein Menüpunkt 46 erzeugt
wird, definiert der Entwickler des Anwendungsprogramms des Menüpunkts ferner einen
Kontextausdruck 48 (3). Der
Kontextausdruck 48 ist eine Art und Weise, um Fenster 72 zu spezifizieren,
innerhalb denen die Menüpunkte 46 plaziert
werden sollen. Wenn ein Fenster 72 geöffnet wird, wird die gesamte
Liste von möglichen
Menüpunkten 46 überprüft. Wenn
ein Kontextausdruck 48 des Menüpunkts für einen gegebenen Kontext des Fensters
als wahr bewertet wird, dann wird der Menüpunkt 46 den Fenstermenüs hinzugefügt. Der Kontextausdruck 48 kann
auf Kontextidentifizierer in einem begrenzten Bool'schen Ausdruck verweisen oder
kann spezifizieren, daß der
Menüpunkt 46 allgemein
ist und in allen Fenstermenüs
plaziert werden sollte. Ferner können
Fenster 72 in dem Kontextidentifikationssystem 10 erzeugt
werden, welche keine allgemeinen Menüpunkte 46 hinzufügen.
-
Die
Architektur des Kontextidentifikationssystems 10 ist detaillierter
in 2 dargestellt. Wie in 2 gezeigt
ist, weist das Kontextidentifikationssystem 10 allgemein
eine Anwendungsregistrationseinrichtung 34, eine Menüpunktplazierungseinrichtung 36,
eine Fensterzeugungseinrichtung 38 und eine Menüpunktabwicklungseinrichtung 42 auf. Die
Anwendungsregistrationseinrichtung 34 spezifiziert und
erzeugt Menüpunkte 46 (3),
die in einem Fenster 72 (4) zur Anzeige
plaziert werden sollen. Eine Menüpunktspezifikation,
die von der Anwendungsregistrationseinrichtung 34 erzeugt
worden ist, umfaßt
mindestens die folgenden Daten: (a) einen Kontextausdruck 48,
der verwendet wird, um den Menüpunkt 46 auf
eine Gruppe von Fenstertypen zu beziehen; (b) eine Funktionsspezifikation,
die anzeigt, was der Menüpunkt 46 erreichen
sollte, wenn er ausgewählt
wird; und (c) eine Menübezeichnungszeichenkette,
die ein Anzeigebild zur Anzeige definiert.
-
Die
Anwendungsregistrationseinrichtung 34 empfängt Menüpunkte 46 von
Anwendungsprogrammen 42, wie es durch einen Verweisungspfeil 43 angezeigt
ist. Die Anwendungsregistrationseinrichtung 34 hält eine
Menüpunktliste 44 der
Menüpunkte 46, die
hierarchisch angeordnet sind, wie es mittels des Beispiels in 3 dargestellt
ist. Insbesondere weist bei diesem Beispiel eine Hauptmenüpunktliste,
die Menüpunkte 46 definiert,
die in einem Hauptmenü erscheinen,
die folgenden Menüpunkte 46 auf:
Datei, Editieren und Konfiguration. Der Dateimenüpunkt zeigt auf ein Dateimenü, das die
folgenden Menüpunkte 46 enthält: Neu, Öffnen, Speichern,
usw. Der Editiermenüpunkt
zeigt auf ein Editiermenü,
das die folgenden Menüpunkte 46 enthält: Schneiden,
Kopieren, Einfügen,
usw. Der Kopiermenüpunkt
zeigt auf ein Kopiermenü,
das die folgenden Menüpunkte 46 aufweist:
primär,
usw.
-
Ferner
weist jeder Menüpunkt 46 einen
Kontextausdruck 48 auf. Bei dem bevorzugten Ausführungsbeispiel
ist der Kontextausdruck 48 durch Ausdrücke, eine Klammer, logische
UND-Operatoren (&&) und logische
ODER-Operatoren (||) definiert. Wie es beispielsweise in 3 gezeigt
ist, weist der Menüpunkt 46,
der mit "Konfiguration" bezeichnet ist, in
der Hauptmenüpunktliste
einen Kontextausdruck "A||B" (d. h. A oder B)
auf, wobei A und B Kontextidentifizierer sind.
-
Gemäß einem
weiteren wichtigen Merkmal der vorliegenden Erfindung kann der Kontextausdruck 48 einen
Ausdruck "Alle-Kontexte" umfassen, der anzeigt,
daß die
Menüpunkte
in allen Fenstern plaziert werden sollten. Dieses Merkmal vereinfacht und
optimiert das neuartige Kontextidentifikationssystem 10 der
vorliegenden Erfindung weiter.
-
Ein
Kontextausdruck 48 wird wie folgt bewertet. Wenn ein Kontextausdruck 48 als
wahr bezüglich eines
Fensterkontexts bewertet wird, dann wird der Menüpunkt 46 zu diesem
Fenster 72 hinzugefügt. Ausdrücke in dem
Kontextausdruck 48 werden bezüglich des Fensterkontexts bewertet.
Ein Ausdruck ist wahr, wenn der Kontextidentifizierername in dem Fensterkon text
enthalten ist, während
der Ausdruck sonst falsch ist. Der Bool'sche Ausdruck wird basierend auf dem
vorhergehenden bewertet, wonach das Ergebnis zurückgegeben wird. Wenn der Ausdruck "Alle-Kontexte" ist, ist der Ausdruck
wahr, wenn "nicht-allgemein" in dem Fensterkontext
nicht vorhanden ist.
-
"Nicht-allgemein" ist grundsätzlich ein
Kontextidentifizierer, der der Kontextliste eines Fenster 72 zugeordnet
werden soll, um anzuzeigen, daß keine
allgemeinen Menüpunkte
in das Fenster 72 plaziert werden sollen. Das Merkmal vereinfacht
und verbessert das neuartige Kontextidentifikationssystem 10 der
vorliegenden Erfindung weiter und verhindert eine Verwässerung
der Funktionalität
in einem Fenster.
-
Jeder
der Menüpunkte 46 und
der Kontextausdrücke 48 wird
durch ein Anwendungsprogramm 32 zu der Anwendungsregistrationseinrichtung 34 geliefert.
Die Anwendungsregistrationseinrichtung 34 führt den
neuen Menüpunkt 46 in
die hierarchische Struktur ein, wie es in 3 gezeigt
ist, und hält
die Liste als eine Verweistabelle.
-
Wieder
bezugnehmend auf 2 empfängt die Menüpunktplazierungseinrichtung 36 globale
Registrationsdaten 52 von der Anwendungsregistrationseinrichtung 34 und
bestimmt, ob ein Menüpunkt 46 für ein spezielles
Fenster 72 geeignet ist. Eine Menüpunktplaziereinrichtung 36 ordnet
einen Menüpunkt 46 einem
Fenster 72 basierend auf einer Bewertung des Kontextausdrucks 48,
der dem Menüpunkt 46 zugeordnet
ist, und auf einer Kontextliste von Kontextidentifizierern, die
dem Fenster 72 zugeordnet ist, zu.
-
Eine
Fenstererzeugungseinrichtung 38 definiert Fenster 72 zum
Treiben auf der Anzeige 24, wie es durch einen Verweispfeil 54 angezeigt
ist, wobei dieselbe die Kontextliste von Kontextidentifizierern für jedes
Fenster 72 hält.
Fenster sind in der Technik bekannt, wobei Beispiele von Fenstern 72 in 4 dargestellt
sind. Insbesondere zeigt 4 ein Datenbankzugriffsfenster 72a,
ein Graphikeditorfenster 72b und ein Tabellenkalkulationsfenster 72c.
Ferner sind die Kontextidentifizierer für jedes Fenster 72 von einem
Anwendungsprogramm 32 zu der Fenstererzeugungseinrichtung 38 geliefert
worden, wie es in 2 durch ein Anwendungsprogramm 32b und
einen Verweispfeil 55 gezeigt ist.
-
Wenn
ein Fenster 72 durch die Fenstererzeugungseinrichtung 38 erzeugt
wird, liefert die Fenstererzeugungseinrichtung 38 eine
Abfrage 56 an die Menüpunktplazierungseinrichtung 36.
Die Abfrage 56 fordert die Menüpunktplazierungseinrichtung 36 auf,
um zu bestimmen, welche Menüpunkte 46 in
dem einzelnen Fenster 72 basierend auf der Kontextliste
des einzelnen Fensters 72 und dem Kontextausdruck 48,
der jedem Menüpunkt 46 zugeordnet
ist, plaziert werden sollen. Wie es durch einen Verweispfeil 58 gezeigt
ist, schafft die Menüpunktplazierungseinrichtung 36 die
geeigneten Menüpunkte 46 zu
der Fenstererzeugungseinrichtung 34, derart, daß die geeigneten
Menüpunkte 46 innerhalb
des einzelnen Fensters 72 plaziert werden können.
-
Die
Menüpunktabwicklungseinrichtung 42 wird
von dem Eingabegerät 22,
wie es durch einen Verweispfeil 62 gezeigt ist, aufgefordert,
wenn es der Benutzer wünscht,
um eine Handlung oder eine Aktivität, die durch einen Menüpunkt 46 definiert
ist, einzuleiten. Die Menüpunktabwicklungseinrichtung 42 empfängt die
Menüpunktspezifikation
von der Anwendungsregistrationseinrichtung 34, wie es durch
einen Verweispfeil 64 bezeichnet ist. Die Menüpunktspezifikation
definiert, welches Anwendungsprogramm 32 kontaktiert werden
soll, wenn der Menüpunkt 46 durch
den Benutzer ausgewählt
wird. Demgemäß kontaktiert
die Menüpunktabwicklungseinrichtung 42 nach
einer Benutzeraufforderung das geeignete Anwendungsprogramm 32 und
fordert eine Ausführung
des Programms oder der Routine, die dem Menüpunkt 46 entspricht,
an, wie es durch einen Verweispfeil 66 gezeigt ist.
-
Der
bevorzugte Betrieb und eine Sequenz von Ereignissen, die dem Kontextidentifikationssystem 10 und
dem zugeordneten Verfahren entsprechen, werden nachfolgend beschrieben.
-
Wenn
ein Anwendungsprogramm 32 zu dem Computersystem 14 (1)
hinzugefügt
wird, registriert das Anwendungsprogramm 32 seine Menüpunkte 46 (3)
mit der Anwendungsregistrationseinrichtung 34 des Kontextidentifikationssystems 10.
Das vorhergehende ist in 2 bezüglich des Anwendungsprogramms 32a und
des Verweispfeils 43 gezeigt. Insbesondere schafft das
Anwendungsprogramm 32 die Menüpunktspezifikation zu der Anwendungsregistrationseinrichtung 34.
Die Anwendungsregistrationseinrichtung 34 führt wiederum
die Menüpunktspezifikation
in die hierarchische Menüpunktliste 44 (3)
ein. Das Anwendungsprogramm 32 schafft ferner eine Kontextliste
von Kontextidentifizierern entsprechend jedem Fenster 72 des
Anwendungsprogramms 32 zu der Fenstererzeugungseinrichtung 38,
wie es durch den Verweispfeil 55 in 2 angedeutet
ist.
-
Wenn
ein Anwendungsprogramm 32 die Fenstererzeugungseinrichtung 38 auffordert,
um ein spezielles Fenster 72 auf der Anzeige 24 zu
erzeugen, liefert das Anwendungsprogramm 32 eine Kontextliste
zu der Fenstererzeugungseinrichtung 38, welche wiederum
die Kontextliste zu der Menüpunktplazierungseinrichtung 36 liefert,
wie es durch das Bezugszeichen 56 in 2 gezeigt
ist. Ferner vergleicht die Menüpunktplazierungseinrichtung 36 die Kontextliste
mit den Kontextausdrücken 48 der Menüpunktliste 44 (3)
und dieselbe bestimmt, welche Menüpunkte 46 innerhalb
des einzelnen Fensters 72 plaziert werden sollten. Die
ausgewählten
Menüpunkte 46 werden
zu der Fenstererzeugungseinrichtung 38 durch die Menüpunktplazierungseinrichtung 36 geliefert,
wie es durch den Verweispfeil 58 gezeigt ist. Nachdem die
Fenstererzeugungseinrichtung 38 die Menüpunkte 46 erhält, erzeugt
dieselbe das Fenster 72, das die Menüpunkte 46 umfaßt, und
treibt das Fenster 72 auf die Anzeige 24, wie
es durch den Verweispfeil 54 angezeigt ist.
-
Ein
Beispiel, das zeigt, wie die Fenstererzeugungseinrich tung 38 Menüpunkte 46 an
Fenster 72 anpaßt,
ist in 4 dargestellt und nachfolgend detaillierter beschrieben.
-
Beispiel
-
I. Fenster
-
Folgende
Fenster werden angenommen:
-
Fenster A
-
- Kontext = {} (leere Kontextliste)
Das Anwendungsprogramm,
das das Fenster A erzeugt, möchte
lediglich allgemeine Menüpunkte
hinzugefügt
haben.
-
Fenster B
-
- Kontext = {Editor, Erlaube-CM ("allowCM"), Hat-Graphiken ("hasGraphics")}
Dieses Fenster dürfte durch
ein Graphikeditor-Anwendungsprogramm erzeugt werden.
-
Fenster C
-
- Kontext = {Arbeitsblatt ("Spreadsheet"), Erlaube-CM, Erlaube-Graphikdarstellung
("allowPlots"), Kein-Allgemeines
("NoGeneric")}
Dieses Fenster
könnte
durch ein Tabellenkalkulations-Anwendungsprogramm erzeugt werden.
-
II. Menüpunkte
-
Es
werden die folgenden Menüpunkte
angenommen:
-
"Editieren
-> Schneiden in die
Zwischenablage"
-
- Kontextausdruck = (Alle-Kontexte)
Der Erzeuger dieses
Anwendungsprogramms möchte,
daß dieser
Menüpunkt überall erscheint.
Dieses An wendungsprogramm liefert einen Zugriff auf die Zwischenablage.
-
"Konfiguration
-> Überprüfen in Datei"
-
- Kontextausdruck = (Erlaube-CM)
Dieses Anwendungsprogramm
schafft eine Konfigurationsverwaltung (CM; CM = Configuration Management)
und möchte
in jedem Fenster plaziert werden, das Konfigurationsverwaltungsfunktionen
erlauben will.
-
"Anzeige
-> Analysiere Daten"
-
- Kontextausdruck = (Erlaube-Stat.-Anal.||Arbeitsblatt)
Dieses
Anwendungsprogramm schafft eine Funktionalität für eine statistische Analyse.
Es möchte,
daß das
Menü in
jedem Fenster plaziert wird, das eine Funktionalität für eine statistische
Analyse erlaubt, oder in jedem Tabellenkalkulationsfenster.
-
"Anzeige
-> Daten-Graphikdarstellung"
-
- Kontextausdruck = (Editor&&Hat-Graphiken||Erlaube-Graphikdarstellungen)
Dieses
Anwendungsprogramm schafft die Fähigkeit, graphische
Darstellungen zu erzeugen. Es möchte, daß das Menü in jedem
Fenster plaziert wird, das eine Graphikdarstellung erlaubt, oder
in jedem Graphikeditor-Fenster.
-
III. Ergebnisse
-
Wenn
die Fenster geöffnet
werden, werden die Menüpunkte
in Fenstern folgendermaßen
zugeordnet:
-
Fenster A:
-
- "Editieren
-> Schneiden in Zwischenablage", da allgemeine Punkte
erlaubt sind.
-
Fenster B:
-
- "Editieren
-> Schneiden in Zwischenablage", da allgemeine Punkte
erlaubt sind.
- "Konfiguration
-> Überprüfen in Datei", da CM-Funktionen
angefordert sind.
- "Anzeigen -> Daten-Graphikdarstellung", da dies ein Graphikeditor
ist.
-
Fenster C:
-
- "Konfiguration
-> Überprüfen in Datei", da CM-Funktionen
angefordert sind.
- "Anzeigen -> Analysieren von Daten", da dies ein Arbeitsblatt
ist.
- "Anzeigen -> Daten-Graphikdarstellung", da Graphikdarstellungsfunktionen
angefordert sind.
-
Wenn
der Benutzer schließlich
entsprechend der Operation eine Menüpunktanzeige in dem Fenster 72 über das
Eingabegerät 22 auswählt, wird
der Menüpunktabwicklungseinrichtung 42 eine
Aufforderung weitergegeben, wie es durch den Verweispfeil 62 gezeigt
ist. Die Menüpunktabwicklungseinrichtung 42 gewinnt
wiederum die Menüpunktspezifikation, die
dem ausgewählten
Menüpunkt 46 entspricht,
von der Anwendungsregistrationseinrichtung 34 zurück, wie
es durch den Verweispfeil 64 gezeigt ist. Ferner kontaktiert
die Menüpunktabwicklungseinrichtung 42 das
geeignete Anwendungsprogramm 32, und zwar basierend auf
der Funktionsspezifikation innerhalb der Menüpunktspezifikation, wie es
durch den Verweispfeil 66 angezeigt ist, wonach dieselbe
die Ausführung
anfordert. Demgemäß läßt das Anwendungsprogramm 62 anschließend das
Programm oder die Routine laufen, die dem speziellen Menüpunkt 46 entspricht,
der von dem Benutzer ausgewählt
worden ist.