Verwendung der Visage Java-API



Ähnliche Dokumente
Verwendung der Visage Java-API

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Datensicherung. Beschreibung der Datensicherung

Herzlich Willkommen bei der nfon GmbH

Dateien mit Hilfe des Dateimanagers vom USB-Stick kopieren und auf der Festplatte speichern

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Computeria Rorschach Mit Excel Diagramme erstellen

Konvertieren von Settingsdateien

Anleitung Thunderbird Verschlu sselung

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Lernwerkstatt 9 privat- Freischaltung

Internet online Update (Internet Explorer)

INSTALLATION VON INSTANTRAILS 1.7

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Wie halte ich Ordnung auf meiner Festplatte?

Urlaubsregel in David

MetaQuotes Empfehlungen zum Gebrauch von

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Bedienungsanleitung für die Online Kinderbetreuungsbörse des Landkreises Osnabrück

Anleitung zum Upgrade auf SFirm Datenübernahme

Überprüfung der digital signierten E-Rechnung

Computeria Solothurn

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

! " # $ " % & Nicki Wruck worldwidewruck

2.1 Lightning herunterladen Lightning können Sie herunterladen über:

DOKUMENTATION VOGELZUCHT 2015 PLUS

Anleitung zum Einspielen der Demodaten

Die Dateiablage Der Weg zur Dateiablage

Whitepaper. Produkt: combit address manager STAMPIT der Deutschen Post nutzen. combit GmbH Untere Laube Konstanz

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Tutorial Speichern. Jacqueline Roos - Riedstrasse 14, 8908 Hedingen, jroos@hispeed.ch -

YouTube: Video-Untertitel übersetzen

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Handbuch B4000+ Preset Manager

Einbauanleitung für Premium-Layouts für Jimdo

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Erstellen einer PostScript-Datei unter Windows XP

Fotos in Tobii Communicator verwenden

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Anleitung über den Umgang mit Schildern

AutoCAD Dienstprogramm zur Lizenzübertragung

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Live Update (Auto Update)

Erstellen eines Screenshot

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Anleitung zum Upgrade auf SFirm Datenübernahme

SICHERN DER FAVORITEN

OS Anwendungsbeschreibung

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Bilder zum Upload verkleinern

Import des persönlichen Zertifikats in Outlook 2003

Bayerische Versorgungskammer

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Eine kleine Anleitung zum Kurs Homepage selbst erstellen

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Task: Nmap Skripte ausführen

Adminer: Installationsanleitung

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Import des persönlichen Zertifikats in Outlook2007

Erstellen der Barcode-Etiketten:

Neue Schriftarten installieren

Arbeiten mit MozBackup

Starten der Software unter Windows XP

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Beheben von verlorenen Verknüpfungen

Tevalo Handbuch v 1.1 vom

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Neue Steuererklärung 2013 erstellen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Anleitung zum Upgrade auf SFirm 3.x + Datenübernahme. I. Vorbereitungen

Was muss gesichert werden? -Ihre angelegten Listen und Ihre angelegten Schläge.

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Import des persönlichen Zertifikats in Outlook Express

Installation Hardlockserver-Dongle

Installation und Nutzung des Audio-Chatsystems teamspeak3

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

GeoPilot (Android) die App

Der Kalender im ipad

OUTLOOK-DATEN SICHERN

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Wir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team

BSV Software Support Mobile Portal (SMP) Stand

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

Artikel Schnittstelle über CSV

Transkript:

Verwendung der Visage Java-API Whitepaper Andraes Fest Stand: 2. Mai 2008 bezieht sich auf Cinderella 2.1 Build 961 1 Vorbemerkungen Die interaktive Geometrie-Software Cinderella bietet verschiedene Programmierschnittstellen. Neben der Programmierung in der Software-eigenen Skriptsprache CindyScript und in Python ist es auch möglich, animierte Algorithmen in Java über das in Cinderella eingebaute API zu implementieren. Dieses Interface ist besonders für die Programmierung von Graphenalgorithmen mit der Visage-Erweiterung geeignet. Allerdings unterscheiden sich die Möglichkeiten, die die Visage Java-API bietet in einigen Details von denen der CindySkript-Schnittstelle. Programme, die in CindyScript geschrieben werden, sind in das Cinderella User- Interface vollständig integriert und ermöglichen wesentlich bessere Interaktion mit der Zeichenoberfläche von Cinderella, z.b. durch Zusammenarbeit mit dem Cinderella-Event-Modell. So können Algorithmen sehr einfach bei jeder Veränderung der Inputinstanz just-in-time ausgeführt und ihr Ergebnis angezeigt werden. Die Visage Java-API bietet dafür geeignete Methoden, um Algorithmen schrittweise ausführen zu können und bei Bedarf einen entsprechenden Pseudocode anzuzeigen. Die volle Flexibilität der Cinderella Visage-Programmierung entfaltet sich vollends durch das geschickte Zusammenspiel der verschiedenen Programmierschnittstellen. Eine ausführliche Dokumentation beider Schnittstellen sowie eine Reihe von Beispielen werden nach und nach auf der Projetseite http://cinderella.de/visage/ zu finden sein. 1

2 Vorbereitungen Zur Verwendung der Cinderella Java-API wird Cinderella 2.1 Build 942 oder höher benötigt. Eine aktuelle Version des Cinderella-Installationsprogramms kann von http://beta.cinderella.de/public/ heruntergeladen werden. Dort findet sich jeweils die aktuellste Beta-Version von Cinderella. Diese Cinderella-Version ist zunächst zu installieren. Für den Einsatz in der ADM benötigen wir die Visage-Schnittstelle von Cinderella. Diese wird zur Zeit parallel zu dem offiziellen Cinderella-Entwicklungszweig hier an der TU weiterentwickelt. Wir versuchen zwar, beide Entwicklungszweige so oft, wie es stabil geht, zusammenzufügen, dennoch wird es immer wieder Diskrepanzen geben. Für den Einsatz in der ADM empfiehlt es sich deshalb, stets die aktuellste Version der Visage-Entwicklungslinie zu installieren. Dazu muss im lib/-verzeichnis innerhalb des Cinderella- Installationspfades die Datei cindy2.jar gegen die Version ausgetauscht werden, die jeweils aktuell von http://www.math.tu-berlin.de/didaktik/ visage/software/cindy2.jar heruntergeladen werden kann. Für Mac OS X-User findet sich unter http://www.math.tu-berlin.de/didaktik/visage/ software/cinderella2.zip stets die aktuelleste Visage-taugliche Cinderella- Version. Einen Versions-Log mit den für Visage relevanten Änderungen werden wir auf der Visage-Projekthomepage aufbauen. Außerdem wird momentan noch eine Lizenz für Cinderella.2 benötigt. Eine entsprechende Lizenzdatei für die Arbeitsgruppe bzw. den Kurs ADM wird zur Verfügung gestellt. Diese Datei muss in Cinderella geöffnet werden. Anschließend sollte Cinderella neu gestartet werden. 2.1 Visage-Toolbar freischalten Um nun Visage in Cinderella freizuschalten, befolgen Sie bitte die folgenden Schritte. Zunächst suchen Sie eine Datei mit dem Namen cinderella2-user.properties. Diese sollte unter Linux im home-directory, unter Mac OS X im Verzeichnis /Library/Preferences/ und unter Windows XP z.b im Verzeichnis C:/Dokumente und Einstellungen/Benutzername liegen. Diese Datei öffnen Sie mit mit dem Editor, fügen am Ende eine Zeile mit dem Inhalt cinderella.available.toolbars.builtin=default;school;full;lab;none;port;visage an und speichern die Datei danach. Falls Sie diese Datei nicht mit einem einfachen Texteditor sondern mit 2

einem anderen Programm wie z.b. Word bearbeiten, dann achten Sie bitte unbedingt darauf, dass sie wieder im einfachen Text-Format gespeichert wird!!!!!!! Nun starten Sie Cinderella. Gehen Sie mit der Maus auf einen freien Bereich der Toolbar, drücken die rechte Maustaste und wählen in dem erscheinenden Popup-Menü den Punkt Toolbars auswählen. Sie können dies auch im Datei-Menü finden. Nun erscheint ein kleines Fenster mit einer Auswahl, bei der Sie Visage wählen. Damit ändert sich die Toolbar, die meisten Buttons verschwinden, dafür erscheint ein neuer. Das Auswahlfenster kann nun geschlossen werden. Wenn Sie auf den neuen Visage-Button drücken, erscheint ein neues Auswahlfenster. Hier kann man verschiedene vorprogrammierte Graphen-Algorithmen wählen, z.b. Breitensuche, Tiefensuche oder Dijkstra, oder später auch selbst implementierte Algorithmen. Je nach Algorithmus erscheinen oder verschwinden wieder einige Buttons zum Graphen konstruieren. Spielen Sie ruhig ein wenig damit rum! (Aber erschrecken Sie nicht, wenn ab und an Cinderella dabei abstürzt oder nicht mehr reagiert. Wie bereits erwähnt, Visage ist noch in der Entwicklung es ist noch nicht alles fehlerfrei. Starten Sie dann Cinderella neu und probieren etwas anderes. Wenn Ihnen solche Fehler auffallen, wäre es schön, wenn Sie uns benachrichtigen, was Sie vorher genau gemacht haben und was für eine Fehlermeldung dabei erschien. Schicken Sie Ihren Fehlerbericht bitte an bugs@cinderella.de)!!!!! Wenn Sie selbst entwickelte Algorithmen verwenden wollen, wählen Sie use external Algorithmus und geben den vollständigen Klassennamen ein. Es steht auch ein graphisches Auswahlfenster für eigene Algorithmen zur Verfügung. 2.2 Ausgaben auf die Konsole Cinderella schaltet ausgaben auf die Konsole standardmäßig aus. Beim eigenen entwickeln von Algorithmen möchte man jedoch gerne oftmals eigene Ausgaben mittels System.out.println(...) erzeugen oder die Fehlermeldungen der Exceptions auf System.err einsehen. Um also die Konsolen-Ausgaben zu sehen gehe man wie folgt vor: Mac OS X Die Kosolenausgaben erfolgen in der Konsole des gleichnamigen Programs,,Konsole im Verzeichnis Dienstprogramme. Vor dem Start von cinderella 3

also einfach das Konsolen-Programm starten! Linux Im Installationspfad von Cinderella existiert eine Datei mit dem Namen Cinderella.lax. Diese Datei mit einem Texteditor öffnen! dort sucht man die Abschnitte,,LAX.STDERR.REDIRECT und,,lax.stdout.redirect und ändert die jeweiligen Einträge in lax.stderr.redirect=console bzw. lax.stdout.redirect=console Bitte speichern. Wird nun Cinderella aus einem xterm heraus gestarten, so erscheinen alle Ausgaben in dem xterm. Windows Wie unter Linux ist die Datei Cinderella.lax zu ändern. Während des Cinderella-Starts bitte auf der Tastatur die CTRL/STRG-Taste drücken, damit das Konsolenfenster erscheint. (Das habe ich noch nicht getestet, wurde mir aber so von den Cinderella-Entwicklern so gesagt!) 2.3 Verwendung der API Bei Programmierung mit der Visage API muss die Library cindy2.jar aus lib-verzeichnis des Cinderella Installationspfades eingebunden werden. Diese Library kann auch direkt von http://www.math.tu-berlin.de/didaktik/ visage/software/cindy2.jar heruntergeladen werden. Wir empfehlen die Verwendung einer Java IDE, z.b. Eclipse. Dort kann die Library direkt in ein eigenes Projekt gelinkt werden. Zu beachten ist, dass die meisten Namen der Klassen und Methoden von Cinderella verschlüsselt sind. Diese sind jedoch für die Verwendung der API irrelevant. Von Interesse sind nur die Klassen (und dort nur die Methoden), deren Namen in Klartext vorliegen. Man orientiere sich dazu an der Javadoc Dokumentation der API, die auf der Projekt-Homepage eingesehen werden kann. Ein eigener Graphen-Algorithmus muss von der abstrakten Klasse de.cinderella.api.visage.graphalgorithm abgeleitet werden. Zu implementieren sind folgende Mathoden: 4

public void init() In dieser Methode erfolgt die Initialisierung des Algorithmus. Sie wird aufgerufen, sobald der Algorithmus in Cinderella geladen, der Rewind- Button gedrückt oder ein neues Element gezeichnet wird. public void runalgorithm() Hier wird der eigentliche Algorithmus implementiert. Der Ablauf des Algorithmus kann durch Einfügen des stepdone()-befehls an beliebiger Stelle angehalten werden. public boolean modeundirectededges() public boolean modedirectededges() public int modespecialvertices() Diese Methoden legen fest, ob der Algorithmus gerichtete oder ungerichtete Kanten verarbeiten kann und ob spezielle Knoten wie Startund Zielknoten verwendet werden. public Color getdefaultvertexcolor() public Color getdefaultedgecolor() Diese Methoden legen Standardfarben für Knoten und Kanten fest. public String intlkey() Dies ist ein Eindeutig zu vergebener Name, der als Schlüssel dient, um dem Algorithmus eine sprachenspeziefische Beschreibung zuzuordnen. Wir empfehlen (z.b. bei Verwendung von Eclipse), denn Quellcode in einem src-verzeichnis und die compilierten class-dateien in einem bin-verzeichnis getrennt voneinander zu verwalten. Bei der Auswahl des eigenen Algorithmus in Cinderella kann dann das bin-verzeichniss als Basis-Pfad für die eignen Algorithmen ausgewählt werden. Es ist natürlich sehr empfehlenswert, alle eigenen Dateien einen eigenen Package zuzuordnen. In der ADM verlangen wir ein Package mit dem Namen der Benutzer-Gruppe im Unix-Pool also in etwa gunaxxx, wobei XXX die Gruppennummer ist! Falls das Eclipse-Projekt unter /eclipse-workspace/guna gespeichert ist, und dort die class-dateien in dem Verzeichnis bin im Package gunaxxx stehen, so sollte als Basis-Pfad für die Algorithmen /eclipse-workspace/guna/bin und als Klassenname gunaxxx.myalgo angegeben werden. Zeichnen Sie nun einen Graphen in Cinderella. Um Ihren Algorithmus schrittweise oder vollständig ausführen zu lassen, wählen Sie Ihren Algorithmus über den Visage-Button aus. In der Toolbar erscheint ein Play-Button, 5

um den Algorithmus zu starten, sowie ein Rewind-Button, um ihn neu zu initialisieren. Es gibt zusätzlich einen Informations-Button, über den eingestellt werden kann, ob der Algorithmus schrittweise oder in einem Zug ausgeführt werden soll. Wird der Algorithmus schrittweise ausgeführt, so wird jeder Schritt über den Play-Button gestartet. 3 Ein Beispiel-Algorithmus Einen ersten Eindruck von der Implementation soll das folgende Beispiel liefern. Hierbei sollen nach einander zunächst alle Knoten eines Graphen und anschließend alle Kanten des Graphen einmal aufblinken. Nach dem Blinken aller Knoten sowie nach dem Blinken jeder einzelnen Kante wird der Algorithmus unterbrochen, bis der Benutzer den nächsten Schritt ausführen läßt. package guna002; import de.cinderella.api.visage.edge; import de.cinderella.api.visage.graph; import de.cinderella.api.visage.graphalgorithm; import de.cinderella.api.visage.vertex; import java.awt.*; import java.util.iterator; public class MyTestAlgorithm extends GraphAlgorithm { Graph G; private Color DEFAULT = Color.blue; public void init() { G = getgraph(); for (Edge e : G.edges()) { 6

e.setsize(1); e.setcolor(default); for (Vertex v : G.vertices()) { v.setsize(3); v.setcolor(color.green); public void runalgorithm() { Iterator<Vertex> V = G.vertices().iterator(); Vertex v; while (V.hasNext()) { v = V.next(); flash(v, Color.blue, 200, 1); v.setattribute("mark","unvisited"); stepdone(); for (Edge e: G.edges()) { e.flash(color.red, 200); e.setsize(1); e.setsize(5); stepdone(); public boolean modeundirectededges() { return true; public boolean modedirectededges() { return false; public int modespecialvertices() { 7

return 0; public Color getdefaultvertexcolor() { return Color.green; public Color getdefaultedgecolor() { return Color.blue; public String intlkey() { return "mytestalgorithm"; 8