Astrologische Berechnungen

AstroUI
Klasse HoroApplet

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Panel
                    |
                    +--java.applet.Applet
                          |
                          +--AstroUI.HoroApplet
Alle implementierten Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Bekannte direkte Unterklassen:
HoroCompare

public class HoroApplet
extends java.applet.Applet

Dieses Applet dient der Repräsentation eines Horoskops. Das Applet ist über das Javascript/Java-Interface des Browsers sowie über einen umfangreichen Satz von Parametern weitgehend extern steuerbar. So kann es sowohl für interaktive Anwendungen als auch in statischen HTML-Seiten als Graphik zur Präsentation bestimmter Horoskope verwendet werden. Der Vorteil, ein Applet statt eines "ausgehärteten" GIF zu benutzen, besteht darin, dass die Graphik zum Zeitpunkt des Aufrufs der Webseite im Browser aus den als Applet-Parameter mitgegebenen Horoskopdaten erstellt wird. Die Horoskopdaten selbst, aber auch spezielle Präsentierungsdaten (sollen die Positionen mit angezeigt werden? Welche Hintergrundfarbe soll verwendet werden? u.a.) sind in der HTML-Quelle mit wenig Aufwand änderbar

Das Applet nimmt entweder einen String mit Datum, Uhrzeit und Ort entgegen, berechnet die resultierenden Planeten- und Hauspositionen mittels einer ICalculator-Instanz und zeichnet sich dann — ebensogut ist es aber möglich, die Planeten- und Hauspositionen extern mitzugeben.

Die Kommunikation mehrerer Applets auf einer HTML-Seite wird durch das Interface ILoadListener bestimmt. Das HoroApplet implementiert dieses Interface zwar nicht, informiert aber andere Applets, die dieses Interface implementiert haben, über die erfolgreiche Beendigung des Ladevorgangs. Dies löst das Problem, dass es beim Laden einer Seite nicht definiert ist, welches Applet als erstes aufgebaut ist und damit in der Lage ist, auf Java- Anweisungen von anderen Applets zu reagieren.

Siehe auch:
Serialisierte Form

Überblick Felder
 java.lang.String caption
          Extern mitgegebene Caption, anstelle der automatisch generierten
 double[] h
          Ekliptikale Längen der zwölf Häuserspitzen, gezählt ab Index 1
 double lat
          Geographische Breite
 double lon
          Geographische Länge
 boolean noHouses
          noHouses = true: Keine Häuser darstellen.
 double[] pl
          Ekliptikale Längen der zehn astrologischen Planeten
static java.awt.Image[] planetImage
          Bilder der zehn astrologischen Planeten (im GIF-Format)
static java.awt.Image[] signImage
          Bilder der zwölf Tierkreiszeichen (im GIF-Format)
 double xjd
          Julianisches Datum (in Weltzeit, nicht Ephemeridenzeit).
 
Von Klasse java.awt.Component geerbte Felder
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Von Interface java.awt.image.ImageObserver geerbte Felder
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Überblick Konstruktoren
HoroApplet()
           
 
Methoden-Überblick
 void doShow()
          Aktualisierungsmethode.
 java.lang.String getAppletInfo()
          Applet-Information holen
 java.lang.String getJd()
          Aktuelles Julianisches Datum zurückgeben. Die Funktion ist für den Einsatz des Applets im Zusammenspiel mit JavaScript gedacht.
 java.lang.String getTimePlace()
          Zeit/Ort-String zurückgeben.
 java.lang.String getTriple()
          Aktuelles Julianisches Datum, Länge und Breite als String (durch Zeilenumbruch getrennt) zurückgeben.
 void init()
          Das Applet initialisieren.
 void notify(java.lang.String iCaller)
          Das rufende Applet über den Abschluß des Ladevorgangs informieren.
 void paint(java.awt.Graphics pg)
           
 void setCaption(java.lang.String iCaption)
          Eine Unterschrift des Horoskops von aussen setzen
 void setPlanetsAndHouses(java.lang.String response)
          Haus- und Planetenpositionen direkt angeben.
In manchen Fällen ist es gewünscht, die Planetenstände dem Applet direkt mitzugeben, zum Beispiel weil es sich um hypothetische Stände handelt (beispielsweise das berühmte Thema Mundi, mit fiktiven, rein symbolischen Planetenständen, oder die vorgeschobenen oder primären Stände zu einem Horoskop, die keine reale Entsprechung mit dem Sternenhimmel haben), oder weil man die Stände mit einem eigenen Berechnungsprogramm ermittelt hat.
In diesen Fällen sind die Stände dem Applet mit der Methode setPlanetsAndHouses() mitzuteilen.
 void setTimePlace(double xjd, double lon, double lat)
          Übergabe neuer Horoskopdaten - Julianisches Datum, Länge und Breite.
 void setTimePlace(java.lang.String s)
          Mit dieser Methode kann dem Applet ein neuer Datum/Zeit/Ort-String übergeben werden.
 void start()
          Startmethode
Die Horoskopgrafik, einmal erzeugt, wird aus Effizienzgründen nicht wieder neu berechnet, wenn die Start-Methode später noch einmal gerufen wird.
 void update(java.awt.Graphics pg)
          Horoskopgraphik aktualisieren.
 
Von Klasse java.applet.Applet geerbte Methoden
destroy, getAccessibleContext, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, stop
 
Von Klasse java.awt.Panel geerbte Methoden
addNotify
 
Von Klasse java.awt.Container geerbte Methoden
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, remove, remove, removeAll, removeContainerListener, removeNotify, setFont, setLayout, validate
 
Von Klasse java.awt.Component geerbte Methoden
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, disable, dispatchEvent, enable, enable, enableInputMethods, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus
 
Von Klasse java.lang.Object geerbte Methoden
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Feld-Details

caption

public java.lang.String caption
Extern mitgegebene Caption, anstelle der automatisch generierten

h

public double[] h
Ekliptikale Längen der zwölf Häuserspitzen, gezählt ab Index 1

lat

public double lat
Geographische Breite

lon

public double lon
Geographische Länge

noHouses

public boolean noHouses
noHouses = true: Keine Häuser darstellen. Wenn der Array houses ein Element house[1] enthält, so wird dieses zur Orientierung des Horoskops verwendet, als wäre dies der Aszendent. Der entsprechende Längenwert wird also links dargestellt. Wenn houses[] leer ist, kommt der Widderpunkt links zur Darstellung, entsprechend der Haus-Zeichen-Analogie.

pl

public double[] pl
Ekliptikale Längen der zehn astrologischen Planeten

planetImage

public static java.awt.Image[] planetImage
Bilder der zehn astrologischen Planeten (im GIF-Format)

signImage

public static java.awt.Image[] signImage
Bilder der zwölf Tierkreiszeichen (im GIF-Format)

xjd

public double xjd
Julianisches Datum (in Weltzeit, nicht Ephemeridenzeit).
Konstruktor-Details

HoroApplet

public HoroApplet()
Methoden-Details

doShow

public void doShow()
Aktualisierungsmethode. Planetenpositionen neu beschaffen oder berechnen, danach das Applet neu zeichnen. Der Aufruf dieser Methode kann nötig sein, wenn die Zeichenfläche des Applets durch andere Objekte der HTML-Seite benutzt oder verändert wird.

getAppletInfo

public java.lang.String getAppletInfo()
Applet-Information holen
Überschreibt:
getAppletInfo in Klasse java.applet.Applet

getJd

public java.lang.String getJd()
Aktuelles Julianisches Datum zurückgeben.

Die Funktion ist für den Einsatz des Applets im Zusammenspiel mit JavaScript gedacht.


getTimePlace

public java.lang.String getTimePlace()
Zeit/Ort-String zurückgeben. Es wird die Information über Zeit und Ort, wie sie auch unterhalb des Horoskopkreises angezeigt wird, zurückgegeben.

Die Funktion ist für den Einsatz des Applets im Zusammenspiel mit JavaScript gedacht.


getTriple

public java.lang.String getTriple()
Aktuelles Julianisches Datum, Länge und Breite als String (durch Zeilenumbruch getrennt) zurückgeben. Die Funktion ist für den Einsatz des Applets im Zusammenspiel mit JavaScript gedacht.

init

public void init()
Das Applet initialisieren. In der init()-Methode werden die Tierkreis- und Planetensymbole geladen, falls dies noch nicht erfolgt ist. Das Laden erfolgt synchron — vor der Programmfortsetzung wird abgewartet, bis der Ladevorgang abgeschlossen ist. Die Graphiken müssen, von der Codebase ausgehend, im Unterverzeichnis ./rsc/mime zu finden sein (oder im .jar-File unter diesem relativen Pfad abgelegt sein).

Darüberhinaus wird die korrekte ICalculator-Implementierung anhand des Applet-Parameters calculator identifiziert und eine ICalculator-Instanz erzeugt. Die Hintergrundfarbe (Parmeter bgcolor und das Platzverhätnis der Horoskopgraphik zum Datenteil (Parameter tile) wird errechnet. Intern benötigte Attribute werden initialisiert.

Überschreibt:
init in Klasse java.applet.Applet

notify

public void notify(java.lang.String iCaller)
Das rufende Applet über den Abschluß des Ladevorgangs informieren. Näheres hierzu in der Dokumentation des ILoadListener Interface.

paint

public void paint(java.awt.Graphics pg)
Überschreibt:
paint in Klasse java.awt.Container

setCaption

public void setCaption(java.lang.String iCaption)
Eine Unterschrift des Horoskops von aussen setzen

setPlanetsAndHouses

public void setPlanetsAndHouses(java.lang.String response)
Haus- und Planetenpositionen direkt angeben.
In manchen Fällen ist es gewünscht, die Planetenstände dem Applet direkt mitzugeben, zum Beispiel weil es sich um hypothetische Stände handelt (beispielsweise das berühmte Thema Mundi, mit fiktiven, rein symbolischen Planetenständen, oder die vorgeschobenen oder primären Stände zu einem Horoskop, die keine reale Entsprechung mit dem Sternenhimmel haben), oder weil man die Stände mit einem eigenen Berechnungsprogramm ermittelt hat.
In diesen Fällen sind die Stände dem Applet mit der Methode setPlanetsAndHouses() mitzuteilen. Die Methode nimmt einen String entgegen, der die Planeten- und Hauslängen enthält.
Parameter:
response - Enthält, von den Schlüsselwörtern "planets:" und "houses:" gefolgt, die 10 bzw. 12 Positionen als komma-getrennte Liste von Doubles.
Beispiel: "planets:15.1,30,45,60,75,90,105,120,135,150
houses:0,30,60,90,120,150,180,210,240,270,300,330,360"

setTimePlace

public void setTimePlace(double xjd,
                         double lon,
                         double lat)
Übergabe neuer Horoskopdaten - Julianisches Datum, Länge und Breite. Das Applet zeichnet sich dann neu. Zur Berechnung der Planetenstände wird die aktuelle calc-Instanz verwendet.

setTimePlace

public void setTimePlace(java.lang.String s)
Mit dieser Methode kann dem Applet ein neuer Datum/Zeit/Ort-String übergeben werden. Das Applet zeichnet sich dann neu. Zur Berechnung der Planetenstände wird die aktuelle calc-Instanz verwendet.

start

public void start()
Startmethode
Die Horoskopgrafik, einmal erzeugt, wird aus Effizienzgründen nicht wieder neu berechnet, wenn die Start-Methode später noch einmal gerufen wird.
In der Startmethode wird der Parameter timePlace ausgewertet - aus ihm werden Datum, Zeit und Ort abgeleitet.
Für die Planetenstände und Häuser gibt es folgende Optionen:
Überschreibt:
start in Klasse java.applet.Applet

update

public void update(java.awt.Graphics pg)
Horoskopgraphik aktualisieren.
Überschreibt:
update in Klasse java.awt.Container

Astrologische Berechnungen