-
Die vorliegende Erfindung betrifft das dynamische Layout und insbesondere die Verwendung von Einstellungs-Handles.
-
Gegenwärtige visuelle Designsysteme verwenden eine WYSIWYG(What You See Is What You Get)-Metapher, um eine zweckmäßige, hochproduktive und einfach zu verwendende Umgebung für die Erzeugung und das Editieren graphischer Anwendungen und Erzeugungen bereitzustellen. Diese Erzeugungen oder Anwendungen können Webseiten, Kataloge, Präsentationen, e-Shops, Flussdiagramme sowie andere Anwendungskategorien einschließen. Diese Erzeugungen werden auf Systeme, die sie auf einem Anzeigebildschirm darstellen, oder auf Systeme, die sie drucken, übertragen. Diese visuellen Designsysteme ermöglichen es dem Designer (und manchmal den Benutzern), die Größe von Komponenten, die sich in Anwendungsseiten befinden, zu ändern und die Komponenten zu verschieben.
-
Ein visuelles Designsystem kann sowohl statischen als auch dynamischen Inhalt in die darin erzeugten Anwendungen integrieren. Statischer Inhalt kann lokal gespeichert werden, und dynamischer Inhalt kann von einer Anzahl von Quellen, wie von der Anwendung selbst, einer Datenbank, externen dynamischen Datenquellen (oder Streams), in der Art eines RSS-Feeds, oder von anderen Benutzern desselben Systems erzeugtem Inhalt ausgehen.
-
Visuelle Designsysteme können alleinstehende Systeme (wie der Microsoft-Visio-Diagrammeditor oder das Microsoft-PowerPoint-Präsentationsprogramm) sein, oder sie können in ein größeres Editiersystem (in der Art des Microsoft-Word-AutoShape-Editors) eingebettet sein.
-
Ein Designer, der ein solches System verwendet, kann eine neue Anwendung von Beginn an (ausgehend von einem leeren Bildschirm) entwickeln, oder er kann sich auf vordefinierte Templates verlassen, die vom Anwendungsdesigner, vom Systemerzeuger oder von der Gemeinschaft der Designer erzeugt worden sind. Wenn ein Template bereitgestellt wird, kann es der Designer nach Wunsch spezifisch einrichten und alle Elemente des Templates hinzufügen, entfernen oder modifizieren, um seine Version des Templates zu erzeugen.
-
Solche Anwendungen bestehen im Allgemeinen aus mehreren Seiten. Eine Anwendung kann eine beliebige Anzahl von Seiten aufweisen, und Seiten können typischerweise vom Systemdesigner und/oder vom Endbenutzer nach Bedarf hinzugefügt oder entfernt werden. Seiten enthalten Komponenten, die weiter entweder als atomar (jene, die nicht in Unterkomponenten zerlegt werden können) oder Container (welche einen gegebenen Bildschirmbereich belegen und eine oder mehrere weitere Unterkomponenten enthalten können) klassifiziert werden können. Komponenten können in der Form und im Inhalt fest sein, auf einem Inhaltsverwaltungssystem beruhen oder auf Benutzerspezifiziertem Inhalt, wie einem Textbereich, in den der Designer Text eingibt, beruhen. Dynamische Komponenten können auf externen Informationen (statisch oder dynamisch) beruhen, wie einem RSS-Feed, der Informationen von einer externen Datenquelle oder den Inhalt einer gegebenen Internetseite darstellt.
-
Containerkomponenten können in einer Anzahl von Ebenen verschachtelt sein und Komponenten mehrerer Typen enthalten. Einige Container sind auch darauf beschränkt, spezifische Klassen von enthaltenen Komponenten zu enthalten, wie ein Fotoalbum-Container, der nur Bildkomponenten enthalten kann. Das Aussehen und Bildschirmbereiche von Komponenten können durch Bewegen, Größenändern, Drehen und ähnliche Operationen modifiziert werden. Ihr Aussehen und ihr Verhalten kann durch verschiedene Modifizierer, wie ein Unscharfmachen und eine Animation, modifiziert werden (wobei die Komponente beispielsweise unscharfe Ränder hat oder durch Ausdehnen von einem einzigen Pixel auf dem Bildschirm erscheint usw.). Während des Anwendungserzeugungs- und Editierprozesses kann der Inhalt einer Komponente auf eine Anzahl von Arten eingegeben und modifiziert werden.
-
Bei visuellen Designsystemen sind typischerweise die Seiten (welche die Komponenten enthalten) sowie die Komponenten selbst (Container und atomare Komponenten) Rechtecke, deren Seiten parallel zueinander und zu den Seiten des Anzeigebildschirms sind. Sie sind auch parallel zur X- und Y-Achse des Systems, auf dem die Seiten dargestellt oder gedruckt werden. In manchen Fällen sind die Komponenten selbst keine achsenparallelen Rechtecke. Sie können ein gedrehtes Rechteck sein, aus einer Kombination angehängter Rechtecke bestehen oder eine ganz andere Form aufweisen. In diesen Fällen behandeln visuelle Designsysteme (und ihr Layout-Verwaltungselement) die Komponenten typischerweise unter Verwendung eines minimal einschließenden achsenparallelen Rechtecks pro Komponente, das die unregelmäßig geformte Komponente enthält.
-
Komponenten brauchen keine zueinander exklusive Bildschirmbereiche belegen, und sie können einander tatsächlich geometrisch schneiden. Eine Komponente kann sich auch vollständig innerhalb der Grenzen einer anderen Komponente befinden. Die Bildschirmbereichsüberlappung kann mit einer logischen Einschließung gekoppelt sein (d. h. die Komponente ”gehört” zu einem gegebenen Container und bewegt sich mit dem Container, wohin immer er geht), oder sie kann eine lediglich geometrische Überlappung sein, die auf keiner Einschließungsbeziehung beruht. Immer dann, wenn sich Komponenten schneiden, steuert eine Anzeigepriorität, welche jeder Komponente zugeordnet ist, welche Komponente über welcher Komponente dargestellt wird. Ein visuelles Designsystem verwendet typischerweise einen Layout-Manager, der Komponentenorte, -größen, die Darstellungsreihenfolge und verwandte Punkte verwaltet.
-
Visuelle Designsysteme können häufig als Absolutpositionssysteme oder Relativpositionssysteme (nachstehend in weiteren Einzelheiten beschrieben) klassifiziert werden. Bei absoluten Positionierungssystemen liegt der Brennpunkt auf der genauen Komponentenpositionierung. Der Ort der Komponente wird als ein absoluter Positionswert (x, y) in Bezug auf die enthaltende Einheit definiert, ob in Bezug auf die Seite selbst oder auf einen Container, der die Komponente enthält. Die Position wird typischerweise als ein Versatz zwischen der oberen linken Ecke der enthaltenden Einheit und der oberen linken Ecke der Komponente ausgedrückt.
-
Bei relativen Positionierungssystemen liegt der Brennpunkt auf dem Konzept des Flusses oder der natürlichen Reihenfolge. Das System ordnet Komponenten entlang einem logischen Inhaltsfluss an, der typischerweise der Lesereihenfolge der Komponenten entspricht, wann immer eine solche Reihenfolge anwendbar ist. Beispielsweise ist ein Textverarbeitungsprogramm für die Sprache Englisch im Wesentlichen ein Layout-System für Zeichen (und Wörter), das die natürliche Lesereihenfolge der englischen Sprache (von oben nach unten und dann von links nach rechts) verwendet, um die dargestellten Zeichen und Wörter anzuordnen. Ein anderes Beispiel ist ein Blogeditiersystem (in der Art der von wordpress.org kommerziell erhältlichen Wordpress-Blogging-Plattform), das Seitenelemente (Blogeinträge, Rückantworten usw.) entsprechend einem natürlichen Lesefluss auf einer Seite anordnet.
-
Demgemäß werden die Komponenten in einem relativen Positionierungssystem in Bezug zueinander positioniert, so dass eine Komponente (in Bezug auf die Position) nach Ende der Darstellung einer vorhergehenden Komponente dargestellt wird. Existierende absolute und relative Positionierungssysteme definieren sowohl eine Standardbildschirmgröße als auch eine Seitengröße, die für alle dargestellten Seiten verwendet wird. Alle relativen Positionierungssysteme (und einige absolute Positionierungssysteme) können diese Größe nach Bedarf erhöhen, um dem Hinzufügen von Inhalt zu der Seite Rechnung zu tragen.
-
Visuelle Designsysteme, die eine absolute Positionierung verwenden, sind am besten für das exakte Layout und das exakte Design der dargestellten Seite geeignet. Eine solche exakte Anordnung ermöglicht es, dass Komponenten geeignet in der Größe festgelegt, positioniert und auf dem angezeigten Bildschirm ausgerichtet werden. Beispielsweise werden, wie in 1 dargestellt ist, die Komponenten [a], [b], [c] und [d] auf der Seite P angeordnet. Die Komponenten [e] und [f] werden dann in dem verfügbaren Platz (der Seite Q) hinzugefügt, so dass alle geeignet ausgerichtet werden – [a], [e] und [c] in der ersten Reihe und [b], [f] und [d] in der zweiten Reihe – ohne dass es erforderlich wäre, Komponenten beiseite zu drücken oder den korrekten Lesefluss zu berechnen.
-
Es gibt auch zwei Haupttypen von absoluten Positionierungssystemen, nämlich Randbedingungs-basierte Systeme und Anker-basierte Systeme. Die Typen schließen einander nicht aus, und Systeme können Elemente beider Systeme enthalten. Bei visuellen Designsystemen können Randbedingungen und Anker explizit durch den Designer (durch die Systembenutzer-Schnittstelle) spezifiziert werden oder auf der Grundlage des existierenden Komponenten-Layouts und existierender Informationen automatisch durch das System abgeleitet werden. Bei einem Randbedingungs-basierten System definiert der Designer dynamische mathematische Randbedingungen zu den Beziehungen zwischen den auf dem Bildschirm vorhandenen Komponenten. Bei Anker-basierten Systemen wird das dynamische Layout in Bezug auf zwischen Komponenten und Rahmenelementen sowie zwischen den Komponenten selbst festgelegte Anker definiert.
-
Das dynamische Layout, die automatische Einstellung von Komponenten entsprechend ihrem Inhalt, um auf eine Seite zu passen, ist auf dem Fachgebiet bekannt. Bei existierenden System ist das dynamische Layout typischerweise in relativen (an Stelle von absoluten) Positionierungssystemen vorhanden. Aktuelle verfügbare Verfahren stellen sowohl manuelle als auch automatische Lösungen unter Verwendung von Standardverfahren in der Art des Verankerns bereit. Das dynamische Layout umfasst das Bewegen und Größenverändern von Komponenten auf dem Bildschirm auf der Grundlage dynamischer Layout-Trigger. Diese Trigger können Inhaltsänderungen, mehrere Zielplattformen (Darstellung der Anwendung unter Verwendung verschiedener Technologien auf verschiedenen Betrachtungsplattformen), mehrere Bildschirmgrößen (Darstellung der Anwendung unter Verwendung einer Anzahl von Anzeigen mit unterschiedlichen Größen und Auflösungen), dynamische Daten (die Verwendung von Komponenten, die dynamische Daten enthalten, welche sich im Laufe der Zeit ändern), Endbenutzeränderungen und Anwendungsinitiierte Layout-Änderungen enthalten.
-
Es wird nun auf 2 Bezug genommen, worin die Implementation des dynamischen Layouts an Komponenten [a] und [b], die sich auf einer Seite W befinden, dargestellt ist. Wie ersichtlich ist, befindet sich die Komponente [a] etwas über der Komponente [b] mit einer kleinen Trennung zwischen ihnen. Während des Editierens beginnt sie, wenn die Komponente A nach unten bewegt wird, die Komponente [b] zu überlappen und zu verbergen, wie auf Seite X dargestellt ist. In einem solchen Szenario wäre es wünschenswert, auch die Komponente [b] entsprechend nach unten zu bewegen, um den Inhalt der Komponente [b] zu betrachten, wie auf Seite Y dargestellt ist, oder sogar ihre Größe entsprechend zu ändern (d. h. sie zu verkleinern), wie auf Seite Z dargestellt ist, ohne den Inhalt der Komponente [b] aus dem Sichtfeld zu verlieren. Solche Änderungen umfassen nicht nur Modifikationen am Inhalt der dargestellten Komponenten ([a], [b]), sondern auch Modifikationen an ihrem Stil und anderen Darstellungsparametern in der Art der Textgröße und des Textfonts.
-
Die am 20. Februar 2013 eingereichte US-Patentanmeldung 13/771 119, die auf den Erwerber der vorliegenden Erfindung übertragen wurde, beschreibt das dynamische Layout und dynamische Layout-Regeln in weiteren Einzelheiten und wird hier durch Verweis aufgenommen.
-
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist ein Webseiteneditor vorgesehen, der auf einer Rechenvorrichtung implementierbar ist. Der Editor weist eine Editierkomponente zum Editieren einer Webseite zumindest gemäß dynamischen Layout-Regeln und intelligente Handles zum Aktivieren oder Ignorieren der dynamischen Layout-Regeln auf der Webseite auf.
-
Ferner weist der Webseiteneditor gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung auch auf: ein Handle-Modul zum Empfangen durch an den Webseitenelementen entsprechend mindestens einer der intelligenten Handles vorgenommene Änderungen ausgelöster Ereignisse und einen Koordinator zum Koordinieren dynamischer Layout-Aktualisierungen entsprechend den Ereignissen und zugeordneten dynamischen Layout-Regeln.
-
Ferner weist der Webseiteneditor gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung auch eine Datenbank zum Speichern von Elementen der Webseite und der zugeordneten Regeln auf.
-
Ferner weisen die Ereignisse gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung Attribut- und Parameterwerte auf.
-
Zusätzlich sind die intelligenten Handles gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung mindestens eine von einer dynamischen Layout-Handle und einer Handle zum Überschreiben des dynamischen Layouts.
-
Weiter weist der Webseiteneditor gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung auch eine Schnittstellenvorrichtung zur Darstellung der intelligenten Handles auf.
-
Ferner ist die Darstellung der intelligenten Handles gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zumindest eines von folgenden: entsprechend der Funktionalität der intelligenten Handles vom Designer definiert und entsprechend der Funktionalität der intelligenten Handles vom Webseiteneditor definiert.
-
Ferner ist die Darstellung der intelligenten Handles gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zumindest eines der folgenden: unsichtbar, transparent und ein Darstellungskonstrukt des Webseiteneditors.
-
Zusätzlich weist das Handle-Modul gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung einen Modifizierer zum manuellen Modifizieren der Darstellung und der Funktionalität der intelligenten Handles unter Verwendung zumindest einer der folgenden auf: einer Tastatur, einer Maus und einem Touchscreen.
-
Ferner umfassen die Aktualisierungen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung die Manipulation der Webseitenelemente gemäß den Ereignissen und den zugeordneten Regeln.
-
Überdies definieren die Regeln gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung die Beziehungen zwischen den Webseitenelementen und mindestens einem anderen sekundären Webseitenelement.
-
Ferner sind die Beziehungen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zumindest einer von expliziten Ankern, automatischen Ankern und semi-automatischen Ankern.
-
Ferner sind Webseitenelemente gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zumindest eine von einer Komponente und einem Framework.
-
Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist ein Verfahren zum Editieren einer Webseite vorgesehen, wobei das Verfahren folgende Schritte aufweist: Editieren einer Webseite zumindest entsprechend dynamischen Layout-Regeln und Aktivieren oder Ignorieren der dynamischen Layout-Regeln auf der Webseite unter Verwendung intelligenter Handles.
-
Überdies weist das Verfahren gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung auch folgende Schritte auf: Empfangen durch an den Webseitenelementen entsprechend mindestens einer der intelligenten Handles vorgenommene Änderungen ausgelöster Ereignisse und Koordinieren dynamischer Layout-Aktualisierungen entsprechend den Ereignissen und zugeordneten dynamischen Layout-Regeln.
-
Überdies weist das Verfahren gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung das Speichern der Webseitenelemente und der zugeordneten Regeln in einer Datenbank auf.
-
Ferner weisen die Ereignisse gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung Attribut- und Parameterwerte auf.
-
Überdies weist das Verfahren gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung auch das Darstellen der intelligenten Handles auf.
-
Zusätzlich ist die Darstellung der intelligenten Handles gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zumindest eines von folgenden: entsprechend der Funktionalität der intelligenten Handles vom Designer definiert und entsprechend der Funktionalität der intelligenten Handles vom Webseiteneditor definiert.
-
Überdies ist die Darstellung der intelligenten Handles gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zumindest eines von folgenden: unsichtbar, transparent und ein Darstellungskonstrukt des Webseiteneditors.
-
Ferner weist das Empfangen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung das Modifizieren der Darstellung und der Funktionalität der intelligenten Handles unter Verwendung zumindest einer von einer Tastatur, einer Maus und einem Touchscreen auf.
-
Ferner weist das Koordinieren gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung die Manipulation der Webseitenelemente entsprechend den Ereignissen und den zugeordneten Regeln auf.
-
Der als die Erfindung angesehene Gegenstand wird im abschließenden Teil der Beschreibung eingehend dargelegt und gesondert beansprucht. Die Erfindung kann jedoch in Hinblick auf die Organisation und das Betriebsverfahren zusammen mit ihren Aufgaben, Merkmalen und Vorteilen am besten anhand der folgenden detaillierten Beschreibung beim Lesen in Zusammenhang mit der anliegenden Zeichnung verstanden werden.
-
Es zeigen:
-
1 eine schematische Darstellung der Verwendung der absoluten Positionierung beim Webseitendesign,
-
2 eine schematische Darstellung der Verwendung des dynamischen Layouts während der Online-Editierung,
-
3 eine schematische Darstellung der Verwendung einer spezifischen Handle für das Modifizieren des für einen existierenden Anker spezifizierten Abstands,
-
4 eine schematische Darstellung einer spezifischen Handle für das Modifizieren eines komplexen Mehrkomponentenankers,
-
5 eine schematische Darstellung der Verwendung von Einstellungs-Handles für das visuelle Editieren,
-
6 eine schematische Darstellung der Verwendung des inneren Bereichs einer Komponente für eine Positionsänderung,
-
7 eine schematische Darstellung eines Systems zur Verwendung intelligenter Handles für das Auslösen oder Ignorieren dynamischer Layout-Regeln für eine bestimmte Komponente gemäß der vorliegenden Erfindung,
-
8 eine schematische Darstellung der Verwendung mehrerer Handles für das Ermöglichen oder Deaktivieren des dynamischen Layouts für das automatische Verankern gemäß der vorliegenden Erfindung,
-
9 eine schematische Darstellung der Verwendung mehrerer Handles für das Ermöglichen oder Deaktivieren des dynamischen Layouts für das explizite Verankern gemäß der vorliegenden Erfindung,
-
10 eine schematische Darstellung einer nähebasierten automatischen Ankererzeugung gemäß der vorliegenden Erfindung,
-
11 eine schematische Darstellung der Verwendung mehrerer Handles für das Spezifizieren verschiedener Näheschwellen für die nähebasierte automatische Ankererzeugung gemäß der vorliegenden Erfindung,
-
12 eine schematische Darstellung der Verwendung mehrerer Handles für das Steuern einer expliziten Ankerbrechregel gemäß der vorliegenden Erfindung und
-
13 eine alternative Ausführungsform für die Installation des Systems aus 7 gemäß der vorliegenden Erfindung.
-
Es sei bemerkt, dass die in den Figuren dargestellten Elemente aus Gründen der Einfachheit und Klarheit der Erläuterung nicht notwendigerweise maßstabsgerecht gezeichnet sind. Beispielsweise können die Abmessungen einiger der Elemente aus Gründen der Klarheit in Bezug auf andere Elemente übertrieben sein. Ferner können Bezugszahlen, wo dies als angemessen angesehen wird, zwischen den Figuren wiederholt werden, um entsprechende oder analoge Elemente anzugeben.
-
In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, um ein gründliches Verständnis der Erfindung zu ermöglichen. Fachleute werden jedoch verstehen, dass die vorliegende Erfindung auch ohne diese spezifischen Einzelheiten verwirklicht werden kann. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren und Komponenten nicht detailliert beschrieben, um die vorliegende Erfindung nicht unklar zu machen.
-
Es sei bemerkt, dass es bei existierenden auf dem Fachgebiet bekannten Systemen häufig mehrere komplexe Regeln gibt, welche die Anwendung des dynamischen Layouts bestimmen. Diese können vom Designer spezifizierte Anker oder Randbedingungen sowie vom System automatisch oder semi-automatisch erzeugte Anker oder Randbedingungen einschließen. Ein dynamisches Layout-System ist sehr gut im Behandeln von Änderungen an einer im Wesentlichen abgeschlossenen Anwendungsseite, d. h. wenn lokale Änderungen auf spezifische Komponenten angewendet werden und der Designer das allgemeine Aussehen und Erscheinungsbild der entwickelten Seite behalten möchte, insbesondere wenn das Design im Wesentlichen abgeschlossen ist.
-
Allerdings kann es ein Designer während des Entwickelns einer Seite manchmal wünschen, einige schnelle Änderungen an bestimmten Komponenten vorzunehmen, wobei es sich um Änderungen handeln kann, die das bestehende Aussehen und Erscheinungsbild des Seitendesigns umbrechen könnten, um ein neues und besseres Design zu erzeugen. Die Situation kann auch komplexer sein, weil es mehrere vordefinierte dynamische Layout-Regeln geben kann, und der Designer kann es wünschen, eine gegebene Komponente oder einen gegebenen Satz von Komponenten zu modifizieren, wobei er einige der festgelegten dynamischen Layout-Regeln aktiviert und andere umgeht.
-
Es wird nun auf 3 Bezug genommen, worin zwei Komponenten [a] und [b] dargestellt sind, die durch einen Anker E miteinander verankert sind, so dass sich bei einer Bewegung der Komponente [a] nach unten auch die Komponente [b] nach unten bewegt. Der Designer möchte den unteren Rand a1 der Komponente [a] mit den unteren Rändern der Komponenten [c] und [d] ausgerichtet bewegen, ohne die Komponente [b] zu beeinflussen.
-
Es wird nun auf 4 Bezug genommen, worin ein anderes Beispiel einer Situation dargestellt ist, in der das Überschreiben eines dynamischen Layouts erforderlich sein kann. Wie dargestellt, ist die Komponente [a] durch den Anker A mit den Komponenten [b1], [b2] und [b3] verankert. Der Designer möchte die Komponente [a] zu einer neuen Position (wie durch die Komponente [a2] dargestellt ist), deren Position sowohl horizontal als auch vertikal abweicht, repositionieren. Der Designer kann es auch wünschen, den Anker A intakt zu halten, ohne die Komponenten [b1], [b2] und [b3] zu beeinflussen oder zu bewegen, er kann jedoch die Komponenten [c] und [d] nach rechts bewegen möchten.
-
Es sei bemerkt, dass häufig eine einfache Lösung, wie das Abschalten des dynamischen Layouts während einer Editiersitzung, keine vollständige Lösung für den Bereich von Regelausnahmeszenarien bietet und dass viele existierende Systeme diese Ausschaltoption nicht bereitstellen. Eine andere einfache Lösung, nämlich das Entfernen der an der gegebenen Komponente angebrachten Anker, das Editieren der Komponente und das Neuerzeugen der Anker, kann sehr schwer zu implementieren oder verwenden sein. Ferner können einige der Anker automatisch oder semi-automatisch sein und sind möglicherweise nicht durch den Designer selbst erzeugt worden, wodurch es für den Designer schwieriger wird, sie zu entfernen und wiederherzustellen. Zusätzlich kann diese Lösung sehr arbeitsintensiv werden, sobald Komponenten zahlreiche daran angebrachte Anker zu haben beginnen.
-
Es sei auch bemerkt, dass die meisten visuellen Designsysteme (und viele andere Systeme) Handles (auch als Einstellungs-Handles bekannt) als die Hauptbenutzerschnittstellenvorrichtung verwenden, durch die Komponenten visuell manipuliert werden. Handles werden typischerweise in Ecken und/oder Randzentren der Komponenten bereitgestellt und ermöglichen das Verschieben der Komponenten, das Ändern ihrer Größe und möglicherweise das Drehen von ihnen, wie in 5 dargestellt ist, worauf nun Bezug genommen wird. Es können auch zusätzliche Editiermechanismen bereitgestellt werden, wie (beispielsweise) ein Dialogkästchen, welches das direkte Festlegen der geometrischen Eigenschaften (wie Höhe und Breite) einer Komponente ermöglicht. Diese Aktionen (Verschieben, Größe Ändern und Drehen) können manchmal unter Verwendung der Nicht-Handle-Bereiche der Komponente erreicht werden. Insbesondere können viele auf dem Fachgebiet bekannte Systeme das Ändern der Größe von Komponenten durch Ziehen eines Teils eines Komponentenrands ermöglichen (beispielsweise die Größenänderung von Tabellenzeilen und spalten in Microsoft Word). Ferner können es viele Systeme ermöglichen, dass eine Komponente durch Ziehen eines beliebigen Bereichs innerhalb der Komponente verschoben wird, wie in 6 dargestellt ist, worauf nun Bezug genommen wird.
-
Anwender haben erkannt, dass die Verwendung mehrerer anpassbarer Einstellungs-Handles mit dynamischen Layout-Regeln integriert werden kann, um Aktionen mit verschiedenen zugeordneten Parametern zu aktivieren. Anwender haben ferner erkannt, dass dies in Situationen besonders nützlich sein kann, in denen eine einzige Operation (wie ”Verschieben einer Komponente”) mehrere stark abweichende Semantiken infolge der Verwendung mehrerer parametrisierter dynamischer Layout-Regeln und der Kombination expliziter und automatischer Anker haben kann.
-
Es wird nun auf 7 Bezug genommen, worin ein System 100 für die Verwendung intelligenter Handles für das Auslösen oder Ignorieren dynamischer Layout-Regeln für eine bestimmte Komponente dargestellt ist. Im Interesse der Klarheit wird ein Web-basiertes Seiteneditiersystem als ein Beispiel eines visuellen Designsystems verwendet. Das System 100 kann einen dynamischen Layout-Editor 105 und eine Webseite 110 aufweisen. Der dynamische Layout-Editor 105 kann einen dynamischen Layout-Koordinator 120 und eine Datenbank 130 aufweisen. Die Datenbank 130 kann die dynamischen Layout-Regeln in Zusammenhang mit der Webseite 110 sowie Informationen zu den Komponenten, ihrem Inhalt und ihrer Anordnung enthalten. Die Webseite 110 kann ein Handle-Modul 140 und einen internen Komponentenaktualisierer 150 aufweisen. Das Handle-Modul 140 kann einen manuellen Modifizierer 145 aufweisen. Es sei bemerkt, dass die Webseite 110 Handles H1, H2 und H3 als Teil ihrer Benutzerschnittstelle bieten kann, um Komponenten zu verschieben und/oder ihre Größe zu ändern. Das Handle-Modul 140 kann die Anzeige der Handles H1, H2 und H3 steuern und jegliche von einem Designer und/oder einem Benutzer an Komponenten über Handles H1, H2 und H3 vorgenommene Änderungen interpretieren. Der manuelle Modifizierer 145 kann es dem Designer 5 ermöglichen, die vordefinierte Anzeige und/oder Funktionalität der Handles H1, H2 und H3 zu überschreiben, wie nachstehend in weiteren Einzelheiten beschrieben wird. Es sei bemerkt, dass das System 100 lokal oder auf einem Remote-Server, auf den durch ein Kommunikationsmedium zugegriffen wird (wie nachstehend in weiteren Einzelheiten beschrieben wird), installiert sein kann. Aus Gründen der Klarheit wird ein lokal installiertes System 100 erörtert.
-
Der Benutzer 5 kann sich entscheiden, die Größe, Form oder Position einer bestimmten Komponente X unter Verwendung der von der Webseite 110 für die Komponente X bereitgestellten verfügbaren Handles (H1, H2 und H3) manuell einzustellen. Das Handle-Modul 140 kann jegliche vom Benutzer 5 unter Verwendung der Handles H1 und H2 vorgenommene Änderungen empfangen und diese Informationen zum dynamischen Layout-Koordinator 120 weiterleiten. Es sei bemerkt, dass ein durch eine Handle ausgelöstes Ereignis Aktionen in Zusammenhang mit einer einzigen oder mit mehreren Handles aufweisen kann. Der dynamische Layout-Koordinator 120 kann dann innerhalb der Datenbank 130 prüfen, ob es zur Komponente X gehörende dynamische Layout-Regeln gibt, wie das Verankern an einer nahe gelegenen Komponente. Der dynamische Layout-Koordinator 120 kann dann den internen Komponentenaktualisierer 150 über an der Komponente X und/oder anderen Komponenten vorzunehmende betreffende Änderungen informieren. Der interne Komponentenaktualisierer 150 kann dann die erforderlichen Einstellungen vornehmen. Es sei bemerkt, dass die Handle H3 eine Handle zum Überschreiben des dynamischen Layouts sein kann und daher keine sichtbare dynamische Layout-Aktivität auslösen kann, aber dennoch eine interne dynamische Layout-Aktivität, wie das Ändern der Länge eines Ankers usw., hervorrufen kann. Die Handle H3 kann es daher ermöglichen, dass eine Komponente verschoben wird oder dass ihre Größe geändert wird, ohne dass benachbarte Komponenten beeinflusst werden.
-
Es sei bemerkt, dass es zwei mögliche Konventionen für das Verwenden intelligenter Handles in Zusammenhang mit dynamischen Layout-Regeln geben kann. Die erste ist das standardmäßige dynamische Layout, wobei die für die Komponenten vorgesehenen gewöhnlichen Einstellungs-Handles als Auslöser für die dynamische Layout-Aktivität wirken. Es können auch getrennte Handles bereitgestellt werden, die die dynamische Layout-Auslösung entweder vollständig oder für spezifische Anker und/oder Regeln absichtlich umgehen. Die zweite Konvention ist standardmäßig kein dynamisches Layout. In diesem Szenario lösen gewöhnliche Handles keine dynamischen Layout-Ereignisse aus, und es sind spezifische Handles vorgesehen, die dynamische Layout-Ereignisse auslösen. Es kann auch eine Kombination beider Konventionen verwendet werden.
-
Es sei ferner bemerkt, dass ein Designer unter Verwendung eines Typs eines visuellen Attributs (wie Form, Farbe oder Animation), ihrer Position an der betreffenden Randkomponente oder über eine Pop-up-Meldung oder ein Graphiksymbol, das auftauchen kann, wenn sich die Maus dem Handle-Bereich nähert, zwischen den verschiedenen vorstehend erörterten Handle-Typen unterscheiden kann. Es sei auch bemerkt, dass Handles unsichtbar oder virtuell sein können, wobei sie verschiedene Darstellungsverfahren haben können, wie die Verwendung eines spezifischen Bereichs (innerhalb oder außerhalb des eigentlichen Komponentenbereichs) als eine Handle, die Verwendung eines Teils einer anderen Steuerstruktur (in der Art der Komponentenbegrenzung) zur Bereitstellung einer zusätzlichen Handle-Funktion und die Verwendung eines anderen Bereichs oder Komponentenelements als oben, wobei sich bei einer Annäherung der Maus, einem Überstreichen mit der Maus oder bei einem Mausklick eine visuelle Eigenschaft des Bereichs ändert.
-
Es sei bemerkt, dass visuelle Editiersysteme typischerweise spezifische Handles für die Hauptdesignfunktionen, wie das Verschieben und Größenändern, bereitstellen. Daher kann zum Steuern eines automatischen Ankers für jede gewünschte Funktion, die jegliche dynamische Layout-Regeln überschreiben kann und außerhalb der Regeln liegen kann, eine andere Handle bereitgestellt werden. Es wird nun auf 8 Bezug genommen, worin ein Beispiel eines dynamischen Layouts nach der Standardkonvention für automatische Anker dargestellt ist. Die Komponente [a] hat vier Handles b1 (nach unten), b2 (nach oben), b3 (nach rechts) und b4 (nach links) gewöhnlicher Größe. Die Komponente [a] kann auch zusätzliche das dynamische Layout überschreibende Abwärts/Aufwärts-Größenänderungs-Handles c1 (nach unten) und c2 (nach oben) aufweisen, die nur in den spezifischen Richtungen auftreten, in denen das dynamische Layout verfügbar ist, d. h. wo die Komponente [a] einen automatischen Anker haben kann. In Szenario I kann das System 100, wenn die Komponente [a] unter Verwendung der gewöhnlichen Handle b1 nach unten ausgedehnt wird, ausgelöst werden, wobei es einen automatischen Anker zwischen a1, dem unteren Rand der Komponente [a], und d1, dem oberen Rand der Komponente [d], erzeugt, sobald der Abstand zwischen a1 und d1 kleiner als ein Schwellenwert x wird. Wenn dies geschieht, kann die Komponente [a] die Komponente [d] nach unten drücken, um Platz für die Ausdehnung der Komponente [a] zu schaffen. In den Szenarien II und III wird die Größenänderungs-Handle c1 an Stelle der gewöhnlichen Handle b1 verwendet, so dass jegliche vorgegebenen dynamischen Layout-Regeln überschrieben werden und ermöglicht wird, dass die Komponente [d] an derselben Position bleibt, wenn die Größe der Komponente [a] nach unten zur Komponente [d] geändert wird (Szenario II) oder die Komponente [a] die Komponente [d] vollkommen überlappt (Szenario III).
-
Explizite Anker können in ähnlicher Weise behandelt werden. Es sei bemerkt, dass explizite Anker permanent sind, bis sie vom Designer entfernt werden. Die zusätzlichen Einstellungs-Handles können nur an den Rändern auftreten, die explizite Anker haben, und nicht an den Rändern, bei denen dies nicht der Fall ist. Es wird nun auf 9 Bezug genommen, worin ein Beispiel eines dynamischen Layouts nach der Standardkonvention für explizite Anker dargestellt ist. Die Komponente [a] hat an allen vier Rändern gewöhnliche Größenänderungs-Handles (b1, b2, b3, b4), jedoch nur am oberen und am rechten Rand, womit die expliziten Anker verbunden sind, das dynamische Layout überschreibende Größenänderungs-Handles c1 und c2. In Szenario I kann eine Größenänderung der Komponente [a] nach oben oder nach rechts unter Verwendung der Handles b1 oder b2 die expliziten Anker D1 und D2 (respektive) aktivieren und die Komponenten [e] und [f] entsprechend verschieben. In Szenario II kann eine Größenänderung unter Verwendung der Handles c1 und c2 die Größe der Komponente [a] ändern, ohne die Komponenten [e] und [f] zu beeinflussen.
-
Es sei bemerkt, dass die Webseite 110 mehrere Handles darstellen kann, die das System 100 veranlassen können, verschiedene Parameterwerte für die gleichen Layout-Regeln zu verwenden. Es wird nun auf 10 Bezug genommen, worin eine dynamische Layout-Regel dargestellt ist, bei der die Komponente [a] verschoben wird und einen Abstand von weniger als X Pixel von der Komponente [b] erreicht, wodurch ein automatischer Anker zwischen den Komponenten [a] und [b] erzeugt wird und die Komponente [b] dementsprechend nach unten gedrückt wird. Allerdings kann die Webseite 110 zwei verschiedene Handle-Typen (c und d) bereitstellen, um die in 11 dargestellte Komponente [a] zu behandeln, worauf nun Bezug genommen wird. Wenn die Handle c verwendet wird, um den unteren Rand a1 der Komponente [a] nach unten zu verschieben, wie in Szenario I dargestellt ist, wird der Wert von X als Abstandsschwelle verwendet. Ebenso wird, wenn die Handle d verwendet wird, der Wert von Y als Abstandsschwelle verwendet. Auf diese Weise kann der Designer Komponenten umher bewegen und sich der Vorteile des dynamischen Layouts während des Editierens erfreuen und leicht Bereiche erzeugen, in denen Komponenten dicht beieinander angeordnet oder weit voneinander beabstandet sind. Dies kann erreicht werden, ohne zwischen Systemmodi umschalten zu müssen oder mehrere Änderungen pro Komponente oder pro Ankereinstellung während des Editierens vorzunehmen.
-
Es sei bemerkt, dass von der Webseite 110 verschiedene Handles verwendet werden können, um zu steuern, ob dynamische Layout-Regeln zu aktivieren sind oder nicht, und dass die Regeln selbst von Handle zu Handle variieren können. Es sei ferner bemerkt, dass Handles für spezifische Regeln oder Regelgruppen zugewiesen werden können. Es können auch Handles zugewiesen werden, welche existierende Regeln oder Regelgruppen deaktivieren oder überschreiben. Es sei ferner bemerkt, dass ein Benutzer oder Designer auf verschiedenen Ebenen Handles auf Regeln abbilden kann, wie auf der Ebene des gesamten Systems, auf einer spezifischen Anwendungsebene (beispielsweise als Teil der Anwendungserzeugungsinformationen) oder sogar auf der Ebene einer Seite, eines Containers, einer Komponente oder einer Komponentenklasse. Handles können durch das System 100 auch mittels des Handle-Moduls 140 automatisch konfiguriert werden, auf dessen Grundlage Regeln auf eine bestimmte Komponente auf der Grundlage des Typs und der Position der Komponente innerhalb einer Seite sowie entsprechend existierender Anker, nahe gelegener Komponenten oder anderer Kriterien, angewendet werden können. Handles können auch auf der Grundlage der Geschichte der Verwendung von Regeln und/oder Handle-Typen durch einen spezifischen Benutzer automatisch konfiguriert werden. Beispielsweise kann das System 100 Regeln für das dynamische Layout horizontaler Ränder und das dynamische Layout vertikaler Ränder bereitstellen. Es können zwei Handle-Typen bereitgestellt werden. Der erste Typ kann das Verschieben einer Komponente ermöglichen, während alle Regeln berücksichtigt werden, einschließlich Anker für horizontale Ränder und vertikale Ränder. Der zweite Typ kann das Verschieben einer Komponente ermöglichen, während nur Regeln für den horizontalen Rand berücksichtigt werden und die Regeln für den vertikalen Rand ignoriert werden. Auf diese Weise kann ein Designer eine Komponente umher bewegen, wobei er alle relevanten Regeln aktiviert, die horizontale Ränder betreffen, und individuell festlegt, welche Regeln für vertikale Ränder zu verwenden sind. Die Funktionalität von Handles kann vom Designer 5 auch unter Verwendung einer Tastatur, einer Maus oder eines Touchscreens von Hand umkonfiguriert werden. In diesem Szenario kann der manuelle Modifizierer 145 die vordefinierte Funktionalität für die im Handle-Modul 140 enthaltene betreffende Handle überschreiben.
-
Es wird nun auf 12 Bezug genommen, worin eine Komponente [a] dargestellt ist, die zwischen den Komponenten [b] und [c] verschoben worden ist. Die Komponenten [b] und [c] sind durch einen Anker D miteinander verankert. In Szenario I wird die Komponente [a] unter Verwendung der Handle a1 verschoben, wodurch der Anker D gebrochen wird. In Szenario II wird die Komponente [a] unter Verwendung der Handle a2 verschoben, und der Anker D wird nicht gebrochen.
-
Es sei bemerkt, dass es visuelle Editiersysteme manchmal einem Endbenutzer (statt dem Designer) erlauben, begrenzte Layout-Editieroperationen durch direktes Manipulieren der Größe und/oder der Position einiger der Komponenten auszuführen, wodurch eine dynamische Layout-Einstellung während der Laufzeit erforderlich ist, um Benutzeränderungen zu kompensieren. Es sei ferner bemerkt, dass die Webseite 110 Designern und Endbenutzern verschiedene Sätze von Handles zeigen kann. Beispielsweise kann das System 100 für die Verwendung durch den Designer Handles bereitstellen, die das dynamische Layout (vollständig oder nur spezifische Regeln) umgehen, und Endbenutzern nur gewöhnliche dynamische Layout-Handles bereitstellen. Das System 100 kann Designern Handles für alle Komponenten bereitstellen und Endbenutzern nur Handles für spezifische Komponenten bereitstellen. Das System 100 kann Designern auch einen Satz von Handles mit spezifischen Parametern und Endbenutzern einen Satz von Handles mit verschiedenen stärker einschränkenden Parametern bereitstellen.
-
Es sei auch bemerkt, dass, wenn mehrere Einstellungs-Handles für eine bestimmte Komponente bereitgestellt werden, die visuelle Überlastung zu groß werden kann, insbesondere für kleine Komponenten oder kleine Komponentenränder, die nicht genügend Platz für das Anbringen mehrerer Handles haben können. Ein Weg zum Verringern der Anzahl der erforderlichen Handles kann in der Verwendung einer Auswahl mehrerer Handles bestehen. Bei diesem Verwendungsmodus kann jede Handle eine andere spezifische Funktion haben. Der Designer kann wünschen, die auf mehrere Handles abgebildeten Funktionen zu verwenden und sie auf eine einzige an der Komponente ausgeführte Operation, wie das Verschieben von ihr oder das Ändern, ihrer Größe, anwenden. Dies kann durch Ausführen einer Mehrfachauswahloperation erreicht werden, um mehrere Auswahlen unter den an einer gegebenen spezifischen Komponente oder einem gegebenen spezifischen Komponentenrand verfügbaren Handles vorzunehmen. Die Verwendung einer Auswahl mehrerer Handles kann es (beispielsweise) ermöglichen, dass drei Handles sieben verschiedene Funktionskombinationen (7 = 23 – 1) repräsentieren.
-
Es sei auch bemerkt, dass die Anzahl der verwendeten Handles durch dynamisches Darstellen nur der relevantesten Handles verringert werden kann. Ein Beispiel hiervon ist (wie vorstehend beschrieben wurde) eine Größenänderungs-Handle, die dargestellte explizite Anker nur für Ränder beeinflusst, die diese expliziten Anker aufweisen. Es können auch andere Kriterien verwendet werden, um die Darstellung von Handles zu verringern, wie Handles, die auf der Grundlage auf eine gegebene Komponente auf der Grundlage des Komponententyps, der Position, benachbarter Komponenten usw., anwendbarer Regeln dargestellt werden. Handles können auch entsprechend ihrer Verwendungsgeschichte dargestellt werden, wobei beispielsweise Handle-Typen, die von einem Designer in jüngerer Zeit verwendet wurden, eine höhere Priorität hätten als jene, die nur selten verwendet wurden. Für alle vorstehend erwähnten Fälle kann eine Darstellungspriorität zugewiesen werden, und es werden nur Handles mit den höheren Prioritäten dargestellt.
-
Ein alternatives Verfahren zum Verringern der Anzahl der dargestellten Handles besteht in der Verwendung von Maus-, Tastatur- oder Bildschirmgesten in Zusammenhang mit der Verwendung spezifischer Handles, um sie zu verschieben bzw. zu entfernen. Beispiele können unter anderem darin bestehen, dass eine Handle gezogen wird, während eine gegebene Tastaturtaste gedrückt gehalten wird, um die Funktion der Handle zu ändern, und dass eine Handle gezogen wird, während bei einer Maus, die mit zusätzlichen Steuertasten versehen ist, eine Maustaste gedrückt gehalten wird. Andere Beispiele können ohne Einschränkung darin bestehen, dass eine Komponente oder ein Rand unter Verwendung eines Touchscreens gezogen wird und vorübergehend auf einen Bildschirmmodifizierbereich geklickt wird oder eine Taste mit der gleichen Wirkung gedrückt wird, wobei die Wirkung entweder kontinuierlich ist (bis erneut gedrückt wird) oder auf die vordefinierte dynamische Layout-Operation beschränkt ist, die gleich nach dem vorübergehenden Klick ausgeführt wird. Es sei bemerkt, dass der manuelle Modifizierer 145 dieses manuelle Überschreiben der Handle-Darstellungsparameter, die im Handle-Modul 140 enthalten sind, ausführen kann.
-
Es sei bemerkt, dass die Implementation mehrerer Handles unter Verwendung des Handle-Moduls 140 in Zusammenhang mit der Webseite 110 vorgenommen werden kann. Es sei bemerkt, dass die Handles unter Verwendung der verschiedenen vorstehend beschriebenen Definitionen erzeugt werden können, wie Handles, die auf spezifische dynamische Layout-Regeln abgebildet sind, Handles, die von der Existenz spezifischer Ankertypen abhängen, Handles, die vom Benutzer definiert wurden und auf gegebene dynamische Layout-Regeln abgebildet wurden, und Handles, die auf der Geschichte der Verwendung der Handles durch den Benutzer beruhen. Das Handle-Modul 140 kann die Webseite 110 anweisen, alle anwendbaren Handles darzustellen. Das Handle-Modul 140 kann die Webseite 110 auch anweisen, einen kleineren Handle-Satz entsprechend verschiedenen vorstehend beschriebenen Prioritäten darzustellen. Es sei bemerkt, dass die Darstellung von Handles auch ganz unterdrückt werden kann (für Handles, die vollkommen unsichtbar oder virtuell sind) oder auf der Grundlage der Mausposition usw. bedingt sein kann.
-
Gemäß einer alternativen Ausführungsform der vorliegenden Erfindung kann das System 100 auf einem Remote-Server installiert sein, der es ermöglichen kann, dass die Webseite 110 mehr als einem Benutzer gleichzeitig zugänglich ist. Es sei bemerkt, dass der an einem Client 200A arbeitende Benutzer 5A die Handle H1 verwenden kann, um ein dynamisches Layout-Ereignis auszulösen, das nicht nur eine Aktualisierung für eine bestimmte Komponente auf seinem Bildschirm erfordern kann, sondern auch an dem Bildschirm des Clients 200B, den der Benutzer 5B betrachten kann. Es wird nun auf 13 Bezug genommen, worin ein System 100A dargestellt ist, das eine alternative Ausführungsform des Systems 100 für die Verwendung intelligenter Handles ist, um dynamische Layout-Regeln für eine bestimmte Komponente auszulösen oder zu ignorieren. In diesem Szenario ist zu verstehen, dass der dynamische Layout-Koordinator 120 den internen Komponentenaktualisierer 150 anweisen kann, die Komponente X lokal auf dem Client 200A zu aktualisieren, und auch den externen Aktualisierer 180 anweisen kann, die auf dem Client 200B dargestellte Komponente X zu aktualisieren. Es sei auch bemerkt, dass das System 100 mit einem größeren Softwaresystem (wie Facebook) integriert werden kann, um eine Rich-Media-Anwendung für Editier-, Layout- und Darstellungsdienste innerhalb dieses größeren Softwaresystems bereitzustellen.
-
Sofern nichts anderes spezifisch ausgesagt wird, wird anhand der vorstehenden Erörterungen verständlich geworden sein, dass in der gesamten Beschreibung Erörterungen, die Begriffe wie ”Verarbeiten”, ”Berechnen”, ”Rechnen”, ”Bestimmen” oder dergleichen verwenden, die Aktion und/oder Prozesse eines Computers, Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung betreffen, die Daten, die als physikalische Größen, beispielsweise elektronische Größen, innerhalb der Register und/oder Speicher des Computersystems dargestellt sind, in andere Daten manipuliert und/oder transformiert, die in ähnlicher Weise als physikalische Größen innerhalb der Speicher, Register oder einem anderen derartigen Informationsspeicher, Übertragungsvorrichtung oder Anzeigevorrichtung des Computersystems dargestellt sind.
-
Ausführungsformen der vorliegenden Erfindung können eine Vorrichtung zum Ausführen der hier vorgestellten Operationen aufweisen. Diese Vorrichtung kann für die gewünschten Zwecke speziell konstruiert sein, oder sie kann einen Computer für allgemeine Zwecke aufweisen, der durch ein in dem Computer gespeichertes Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert werden, wie beispielsweise, ohne Einschränkung, irgendeinem Typ einer Platte, einschließlich Disketten, optischen Scheiben, magnetooptischen Platten, Nurlesespeichern (ROMs), Compact-Disc-Nurlesespeichern (CD-ROMs), Direktzugriffsspeichern (RAMs), elektrisch programmierbaren Nurlesespeichern (EPROMs), elektrisch löschbaren und programmierbaren Nurlesespeichern (EEPROMs), magnetischen oder optischen Karten, einem Flash-Speicher oder einem anderen Typ eines Mediums, das für das Speichern elektronischer Befehle geeignet ist und mit einem Computersystembus gekoppelt werden kann.
-
Die hier vorgestellten Prozesse und Anzeigen beziehen sich nicht inhärent auf irgendeinen bestimmten Computer oder eine andere Vorrichtung. Verschiedene Systeme für allgemeine Zwecke können mit Programmen gemäß den hier dargelegten Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, eine spezialisiertere Vorrichtung zum Ausführen des gewünschten Verfahrens zu konstruieren. Die gewünschte Struktur für eine Vielzahl dieser Systeme wird anhand der nachstehenden Beschreibung verständlich sein. Zusätzlich werden Ausführungsformen der vorliegenden Erfindung nicht mit Bezug auf eine bestimmte Programmiersprache beschrieben. Es sei bemerkt, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die hier beschriebenen Lehren der Erfindung zu implementieren.