annotate client/doc/dokumentation_digilib.txt @ 33:054ebc851059

first update of new client-version
author luginbue
date Thu, 21 Feb 2002 02:27:06 +0100
parents d407cb901df4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
d407cb901df4 Initial revision
robcast
parents:
diff changeset
1 DIGITAL DOCUMENT LIBRARY
d407cb901df4 Initial revision
robcast
parents:
diff changeset
2 ------------------------
d407cb901df4 Initial revision
robcast
parents:
diff changeset
3
d407cb901df4 Initial revision
robcast
parents:
diff changeset
4 Stand : 21. Januar 2001
d407cb901df4 Initial revision
robcast
parents:
diff changeset
5
d407cb901df4 Initial revision
robcast
parents:
diff changeset
6
d407cb901df4 Initial revision
robcast
parents:
diff changeset
7 Leitung : Gerd Grasshoff (gerd.grasshoff@philo.unibe.ch)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
8
d407cb901df4 Initial revision
robcast
parents:
diff changeset
9 Autor : Christian Luginbühl (luginbuehl@student.unibe.ch)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
10
d407cb901df4 Initial revision
robcast
parents:
diff changeset
11
d407cb901df4 Initial revision
robcast
parents:
diff changeset
12
d407cb901df4 Initial revision
robcast
parents:
diff changeset
13 Inhalt
d407cb901df4 Initial revision
robcast
parents:
diff changeset
14 ------
d407cb901df4 Initial revision
robcast
parents:
diff changeset
15
d407cb901df4 Initial revision
robcast
parents:
diff changeset
16 1. Einführung
d407cb901df4 Initial revision
robcast
parents:
diff changeset
17
d407cb901df4 Initial revision
robcast
parents:
diff changeset
18 2. digilib3.jsp
d407cb901df4 Initial revision
robcast
parents:
diff changeset
19
d407cb901df4 Initial revision
robcast
parents:
diff changeset
20 3. navigation3XXX.js
d407cb901df4 Initial revision
robcast
parents:
diff changeset
21
d407cb901df4 Initial revision
robcast
parents:
diff changeset
22 4. ScaleServlet.java
d407cb901df4 Initial revision
robcast
parents:
diff changeset
23
d407cb901df4 Initial revision
robcast
parents:
diff changeset
24
d407cb901df4 Initial revision
robcast
parents:
diff changeset
25
d407cb901df4 Initial revision
robcast
parents:
diff changeset
26 1. Einführung
d407cb901df4 Initial revision
robcast
parents:
diff changeset
27 -------------
d407cb901df4 Initial revision
robcast
parents:
diff changeset
28
d407cb901df4 Initial revision
robcast
parents:
diff changeset
29 Das Projekt Digital Document Library hat zum Ziel, "Dokumente" mit Hilfe eines
d407cb901df4 Initial revision
robcast
parents:
diff changeset
30 Browsers anschauen zu können. Diese Dokumente sind hochaufgelöste Bilddateien,
d407cb901df4 Initial revision
robcast
parents:
diff changeset
31 die auf einem Server gespeichert sind. Um der Benutzerin, dem Benutzer die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
32 Möglichkeit einer raschen Konsultation der Daten liefern zu können, müssen diese
d407cb901df4 Initial revision
robcast
parents:
diff changeset
33 Bilddaten auf eine vernünftige Grösse verkleinert und in dieser Form dann an die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
34 Anfragenden geschickt werden. Weiten sollen den Benutzenden Hilfsmittel zur
d407cb901df4 Initial revision
robcast
parents:
diff changeset
35 Verfügung stehen um in diesen Seiten zu navigieren. Diese Hilfsmittel bestehen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
36 aus Funktionen um zwischen verschieden Seiten hin und her zu wechseln,
d407cb901df4 Initial revision
robcast
parents:
diff changeset
37 Ausschnitte aus einem Bild zu zoomen und der Möglichkeit Markierungen zu setzen.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
38 Ein weiteres wichtiges Feature dieses Programms ist es, Referenzen ganz
d407cb901df4 Initial revision
robcast
parents:
diff changeset
39 bestimmter Seiten (inkl. Ausschnitte und Markierungen) auszugeben, die dann in
d407cb901df4 Initial revision
robcast
parents:
diff changeset
40 beliebigen anderen Dokumenten eingebaut werden können. Sofern die Lesenden
d407cb901df4 Initial revision
robcast
parents:
diff changeset
41 dieser Dokumente dann über einen Anschluss ins Internet verfügen, können diese
d407cb901df4 Initial revision
robcast
parents:
diff changeset
42 Referenzen direkt angeschaut werden und so die Digital Document Library als
d407cb901df4 Initial revision
robcast
parents:
diff changeset
43 grosse Quelltextsammlung gebraucht werden.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
44
d407cb901df4 Initial revision
robcast
parents:
diff changeset
45 Das Programm nun ist ein Client/Server-Modell. Einerseits haben wir das User
d407cb901df4 Initial revision
robcast
parents:
diff changeset
46 -Interface (also den Client), wo die Darstellung und die Navigation aufgebaut
d407cb901df4 Initial revision
robcast
parents:
diff changeset
47 und berechnet werden. Dieser Teil des Programms umfasst im Prinzip zwei Dateien.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
48 Mit der Frage des Layouts beschäftigt sich digilib3.jsp. Es ist die Datei, die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
49 im Browser aufgerufen wird (mit den verschiedenen Parametern, die in Kapitel 2
d407cb901df4 Initial revision
robcast
parents:
diff changeset
50 erläutert werden) und die nötigen Aufrufe macht für die Skalierung der Bilddaten
d407cb901df4 Initial revision
robcast
parents:
diff changeset
51 und der entsprechenden Navigationselemente. Die zweite Datei des Clients ist
d407cb901df4 Initial revision
robcast
parents:
diff changeset
52 eine dynamisch ausgerufene JavaScript-Datei namens navigation3XXX.js, wobei die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
53 XXX für die verschidenen Borwservarianten stehen. Da die Scriptsprache
d407cb901df4 Initial revision
robcast
parents:
diff changeset
54 JavaScript in den verschiedenen Browsern nicht ganz gleich implementiert ist,
d407cb901df4 Initial revision
robcast
parents:
diff changeset
55 ist es nötig diese Datei an die verschidenen Umgebungen anzupassen. Das Laden
d407cb901df4 Initial revision
robcast
parents:
diff changeset
56 dieser Dateien übernimmt digilib3.jsp, indem es erst abfragt, welchen Browser
d407cb901df4 Initial revision
robcast
parents:
diff changeset
57 von Client gebraucht wird und dann die entsprechende navigation-Datei vom Server
d407cb901df4 Initial revision
robcast
parents:
diff changeset
58 verlangt. Auf der Serverseite ist ein Programm namens ScaleServlet sehr wichtig.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
59 Dieses Servlet handelt die Anfragen der Clients und macht die verschiedenen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
60 Skalierungen an dem Bildern und schickt, dann den entsprechenden Ausschnitt an
d407cb901df4 Initial revision
robcast
parents:
diff changeset
61 den Client.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
62
d407cb901df4 Initial revision
robcast
parents:
diff changeset
63 In den nächsten Kapitel sind die einzelnen Files mit ihren verschidenen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
64 Parametern der Aufrufe erläutert.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
65
d407cb901df4 Initial revision
robcast
parents:
diff changeset
66
d407cb901df4 Initial revision
robcast
parents:
diff changeset
67 2. digilib3.jsp
d407cb901df4 Initial revision
robcast
parents:
diff changeset
68 ---------------
d407cb901df4 Initial revision
robcast
parents:
diff changeset
69
d407cb901df4 Initial revision
robcast
parents:
diff changeset
70 Bei einem Request von digilib3.jsp werden auf der Serverseite die verschiedenen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
71 Parameter des Aufrufs in die zurückgesendete Datei eingefüllt und dann vor allem
d407cb901df4 Initial revision
robcast
parents:
diff changeset
72 für den von 'digilib' ausgehenden Aufruf des ScaleServlets verwendet. Die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
73 verschiedenen Parameter beim Request sind durch Pluszeichen voneinander
d407cb901df4 Initial revision
robcast
parents:
diff changeset
74 getrennt. Beispiel:
d407cb901df4 Initial revision
robcast
parents:
diff changeset
75
d407cb901df4 Initial revision
robcast
parents:
diff changeset
76 http://pene ... /digilib3.jsp?histast/eastwood-collection/AF+3+s1.2+r:3852+12/30
d407cb901df4 Initial revision
robcast
parents:
diff changeset
77 ------------------------------ - ---- ------ -----
d407cb901df4 Initial revision
robcast
parents:
diff changeset
78 Parameter 1 2 3 4 5
d407cb901df4 Initial revision
robcast
parents:
diff changeset
79
d407cb901df4 Initial revision
robcast
parents:
diff changeset
80 Die verschiedenen Parameter werden in digilib3.jsp in ein Array mit 11 Elementen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
81 (1 - 11) aufgenommen. Folgend ist nun eine Auflistung aller Parameter und ihrer
d407cb901df4 Initial revision
robcast
parents:
diff changeset
82 Bedeutung. Es ist absolut zwingend, dass diese in der richtigen Reihenfolge
d407cb901df4 Initial revision
robcast
parents:
diff changeset
83 aufgerufen werden.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
84
d407cb901df4 Initial revision
robcast
parents:
diff changeset
85 - att[1] = '<%= docuurl %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
86
d407cb901df4 Initial revision
robcast
parents:
diff changeset
87 Dieser Parameter gibt den Pfad ohne Hostnamen zum Verzeichnis mit dem
d407cb901df4 Initial revision
robcast
parents:
diff changeset
88 gewünschten Werk an. Wichtig zu verstehen ist, dass hier nicht ein bestimmtes
d407cb901df4 Initial revision
robcast
parents:
diff changeset
89 Bild angesprochen wird, sondern nur ein Verzeichnis.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
90
d407cb901df4 Initial revision
robcast
parents:
diff changeset
91 - att[2] = '<%= startPage %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
92
d407cb901df4 Initial revision
robcast
parents:
diff changeset
93 Dies ist die Nummer des Bildes im von Parameter 1 gewählten Verzeichnis. Falls
d407cb901df4 Initial revision
robcast
parents:
diff changeset
94 dieser Parameter leer ist, wird er automatisch auf '1' gesetzt.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
95
d407cb901df4 Initial revision
robcast
parents:
diff changeset
96 - att[3] = '<%= scalefact %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
97
d407cb901df4 Initial revision
robcast
parents:
diff changeset
98 Scalefact gibt den Vergrösserungsfaktor der Bildes an, im Vergleich zur in
d407cb901df4 Initial revision
robcast
parents:
diff changeset
99 ScaleServlet angegebenen Standardgrösse. Die Syntax diese Parameters ist 'sx.x',
d407cb901df4 Initial revision
robcast
parents:
diff changeset
100 wobei x.x für die Werte 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 2.0, 2.5 oder 3.0 stehen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
101 kann. Standardwert ist 's1.0'.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
102
d407cb901df4 Initial revision
robcast
parents:
diff changeset
103 (Anm: Serverseitig wird an diesem Teil noch gearbeitet, damit die Standardgrösse
d407cb901df4 Initial revision
robcast
parents:
diff changeset
104 auf verschidenen Bildschirmen auch verschieden gross ist)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
105
d407cb901df4 Initial revision
robcast
parents:
diff changeset
106 - att[4] = '<%= commandostring %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
107
d407cb901df4 Initial revision
robcast
parents:
diff changeset
108 Gebraucht wird dieser Parameter dafür, dass die Bilder nicht aus dem
d407cb901df4 Initial revision
robcast
parents:
diff changeset
109 Browsercache genommen werden, sondern auf dem Server dann neu berechnet werden.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
110 Bei einem "Zoom Out" wird hier eine Zufallszahl generiert. Die Syntax ist
d407cb901df4 Initial revision
robcast
parents:
diff changeset
111 'r:xxxx', wobei x irgend eine höchstens vierstellige Zahl. Standardwert ist r:1.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
112
d407cb901df4 Initial revision
robcast
parents:
diff changeset
113 - att[5] = '<%= remarkcoord %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
114
d407cb901df4 Initial revision
robcast
parents:
diff changeset
115 In diesem Parameter werden die Koordinaten der Markierungspunkte festgehalten.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
116 Syntax ist 'xxx/yyy;zzz/ttt; ... aaa/bbb'. Die Koordinatenpaare um "/" geben an,
d407cb901df4 Initial revision
robcast
parents:
diff changeset
117 wo eine Markierung gesetzt werden soll, wobei Werte von 0 bis zur aktuellen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
118 Bildgrösse erlaubt sind. Durch ";" werden die einzelnen Markierungen getrennt
d407cb901df4 Initial revision
robcast
parents:
diff changeset
119 (maximal 5 sind möglich). Standardwerte sind hier '' (leer) oder '0/0' (keine
d407cb901df4 Initial revision
robcast
parents:
diff changeset
120 Markierung wird gesetzt).
d407cb901df4 Initial revision
robcast
parents:
diff changeset
121
d407cb901df4 Initial revision
robcast
parents:
diff changeset
122 - att[6] = '<%= windowwidth %>' / att[7] = '<%= windowheight %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
123
d407cb901df4 Initial revision
robcast
parents:
diff changeset
124 Windowwidth gibt an, wie breit/hoch das Bild auf dem Bildschirm ist. Standard
d407cb901df4 Initial revision
robcast
parents:
diff changeset
125 ist '' (leer).
d407cb901df4 Initial revision
robcast
parents:
diff changeset
126
d407cb901df4 Initial revision
robcast
parents:
diff changeset
127 - att[8] = '<%= xoffset %>' / att[9] = '<%= yoffset %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
128
d407cb901df4 Initial revision
robcast
parents:
diff changeset
129 Diese Attribute haben zwei Bedeutungen. Falls att[10] und att[11] leer sind,
d407cb901df4 Initial revision
robcast
parents:
diff changeset
130 gibt xoffset bzw. yoffset an, um welchen Punkt im Bild gezoomt werden soll.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
131 Falls att[10], att[11] nicht leer sind, geben sie die Koordinaten der linke
d407cb901df4 Initial revision
robcast
parents:
diff changeset
132 oberen Ecke des zu vergrössernden Bildausschnitts an. Standard ist hier ''
d407cb901df4 Initial revision
robcast
parents:
diff changeset
133 (leer).
d407cb901df4 Initial revision
robcast
parents:
diff changeset
134
d407cb901df4 Initial revision
robcast
parents:
diff changeset
135 - att[10] = '<%= width %>' / att[11] = '<%= height %>'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
136
d407cb901df4 Initial revision
robcast
parents:
diff changeset
137 Falls diese Attribute verschieden von '' (leer) sind, geben sie die Breite/Höhe
d407cb901df4 Initial revision
robcast
parents:
diff changeset
138 des Bildaussschnittes an, der gezoom werden soll.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
139
d407cb901df4 Initial revision
robcast
parents:
diff changeset
140
d407cb901df4 Initial revision
robcast
parents:
diff changeset
141 Die weiteren Funktionen von digilib3.jsp sind:
d407cb901df4 Initial revision
robcast
parents:
diff changeset
142
d407cb901df4 Initial revision
robcast
parents:
diff changeset
143 - Laden des navigation3XXX.js-Files für den entsprechenden Browser.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
144 - Erstellen eines Framesets (kleiner Frame mit den Navigationsbuttons und
d407cb901df4 Initial revision
robcast
parents:
diff changeset
145 Frame mit dem Bild).
d407cb901df4 Initial revision
robcast
parents:
diff changeset
146 - Erstellen der Navigationsbuttons.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
147 - Zusammenstellen der korrekten Parameterliste für den Aufruf von ScaleServlet.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
148 - Erstellen der verschiedenen Layers mit dem Bild (Aufruf), den Markierungen und
d407cb901df4 Initial revision
robcast
parents:
diff changeset
149 den Zeichen für die Eckpunkte beim Vergrössern.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
150 - Aufruf an navigation3XXX.js für Intialbefehle wie Setzen der Markierungspunkte.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
151
d407cb901df4 Initial revision
robcast
parents:
diff changeset
152
d407cb901df4 Initial revision
robcast
parents:
diff changeset
153 3. navigation3XXX.js
d407cb901df4 Initial revision
robcast
parents:
diff changeset
154 --------------------
d407cb901df4 Initial revision
robcast
parents:
diff changeset
155
d407cb901df4 Initial revision
robcast
parents:
diff changeset
156 Navigation3XXX.js ist eine Sammlung von Funktionen zur Navigation in der Digital
d407cb901df4 Initial revision
robcast
parents:
diff changeset
157 Document Library. Die verschidenen Funktionen werden zum Beispiel durch klicken
d407cb901df4 Initial revision
robcast
parents:
diff changeset
158 auf einen in digilib3.jsp erstellten Navigationsknopf aufgerufen. Um
d407cb901df4 Initial revision
robcast
parents:
diff changeset
159 verschiedene Browser zu unterstützen (die Implementierung von Javascript und das
d407cb901df4 Initial revision
robcast
parents:
diff changeset
160 Document Object Model sind unterschiedlich), gibt es angepasste navigation3
d407cb901df4 Initial revision
robcast
parents:
diff changeset
161 -files, die von digilib3.jsp entsprechend des verwendeten Browsers geladen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
162 werden. Momentan sind Versionen für Netscape Communicator 4.xx (navigation3.js)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
163 und Netscape 6 (navigation3_n6.js) verfügbar. Bei der Programmierung des Clients
d407cb901df4 Initial revision
robcast
parents:
diff changeset
164 wurde darauf geschaut, dass digilib3.jsp für möglichst alle Browser das selbe
d407cb901df4 Initial revision
robcast
parents:
diff changeset
165 ist und somit nur navigation3XXX.js angepasst werden muss. Voraussetzung hierzu
d407cb901df4 Initial revision
robcast
parents:
diff changeset
166 ist, dass ein Brwoser mit Layern (<div>-Tags) umgehen kann. Nachstehend ist ganz
d407cb901df4 Initial revision
robcast
parents:
diff changeset
167 kurz erläutert, welche Funktionen in navigation3XXX.js welche Aufgaben erfüllen:
d407cb901df4 Initial revision
robcast
parents:
diff changeset
168
d407cb901df4 Initial revision
robcast
parents:
diff changeset
169 - genString(detail)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
170
d407cb901df4 Initial revision
robcast
parents:
diff changeset
171 Anhand von 'detail' generiert diese Funktion die Parameterliste für einen Aufruf
d407cb901df4 Initial revision
robcast
parents:
diff changeset
172 eines neuen Bildes, eines Ausschnittes oder des Strings für eine
d407cb901df4 Initial revision
robcast
parents:
diff changeset
173 Referenzabfrage. 'detail' wird gebraucht, um die Anzahl der nötigen Parameter
d407cb901df4 Initial revision
robcast
parents:
diff changeset
174 für das Ausführen der aufrufenden Funktion zu bestimmen. Diese Funktion wird
d407cb901df4 Initial revision
robcast
parents:
diff changeset
175 immer indirekt, d.h. in anderen Funktionen von navigation3XXX.js aufgrufen und
d407cb901df4 Initial revision
robcast
parents:
diff changeset
176 liefert eine Stringrückgabe.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
177
d407cb901df4 Initial revision
robcast
parents:
diff changeset
178 - Backpage(), Nextpage(), Page()
d407cb901df4 Initial revision
robcast
parents:
diff changeset
179
d407cb901df4 Initial revision
robcast
parents:
diff changeset
180 Diese Funktionen handeln die Navigation durch die Seiten eines Verzeichnisses.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
181 Diese Funktionen werden mit einem Klick auf die Navigationsbuttons aufgerufen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
182 und Laden eine neue Seite.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
183
d407cb901df4 Initial revision
robcast
parents:
diff changeset
184 - Ref(refselect)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
185
d407cb901df4 Initial revision
robcast
parents:
diff changeset
186 Hier wird ein PopUp-Fenster erzeugt, das die komplette URL der momentanen Seite
d407cb901df4 Initial revision
robcast
parents:
diff changeset
187 zurückgibt. Mit 'refselect' wird bestimmt, ob die Formatierung der Ausgabe in
d407cb901df4 Initial revision
robcast
parents:
diff changeset
188 HTML- oder LaTeX-Form sein soll. Diese Funktion wird mit dem "Ref"-Button
d407cb901df4 Initial revision
robcast
parents:
diff changeset
189 aufgerufen.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
190
d407cb901df4 Initial revision
robcast
parents:
diff changeset
191 - Mark()
d407cb901df4 Initial revision
robcast
parents:
diff changeset
192
d407cb901df4 Initial revision
robcast
parents:
diff changeset
193 Diese Funktion plaziert eine Markierung auf dem Bild, wobei sie zuerst nur die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
194 Maus-koordinaten bei einem Klick auf das Bild abfängt und dann die Funktion
d407cb901df4 Initial revision
robcast
parents:
diff changeset
195 'setmark()' aufruft. Es können bis zu fünf Markierungen auf ein Bild gesetzt
d407cb901df4 Initial revision
robcast
parents:
diff changeset
196 werden. Auch diese Funktion wird direkt über die Navbuttons aufgerufen.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
197
d407cb901df4 Initial revision
robcast
parents:
diff changeset
198 - Zoomrect(), Zoomin(), Zoomout()
d407cb901df4 Initial revision
robcast
parents:
diff changeset
199
d407cb901df4 Initial revision
robcast
parents:
diff changeset
200 Direkt aufgerufene Funktionen die sich mit dem Zoomen innerhalb eines Bildes
d407cb901df4 Initial revision
robcast
parents:
diff changeset
201 beschäftigen. Die Rückgabe ist bei allen drei Funktionen ein Aufruf eines neuen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
202 Bildes.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
203
d407cb901df4 Initial revision
robcast
parents:
diff changeset
204 - Moveto()
d407cb901df4 Initial revision
robcast
parents:
diff changeset
205
d407cb901df4 Initial revision
robcast
parents:
diff changeset
206 Diese Funktion verändert das Zentrum bei einem schon gezoomten Bild. Die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
207 geklickten Koordinaten entsprechen dann dem Zenrum des neuen Bildes bei gleicher
d407cb901df4 Initial revision
robcast
parents:
diff changeset
208 Vergrösserung. Dieses Feature wird in Zeichnungsprogrammen oft mit 'Pan'
d407cb901df4 Initial revision
robcast
parents:
diff changeset
209 betitelt. Direkter Aufruf und Aufruf des neuen Bildes sind gleich wie bei den
d407cb901df4 Initial revision
robcast
parents:
diff changeset
210 Zoom-Funktionen.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
211
d407cb901df4 Initial revision
robcast
parents:
diff changeset
212 - Scaledef(scaledef)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
213
d407cb901df4 Initial revision
robcast
parents:
diff changeset
214 Mit Scaledef wird die Bildgrösse im Vegleich zur in ScaleServlet.java
d407cb901df4 Initial revision
robcast
parents:
diff changeset
215 angegebenen Standardgrösse verändert. Der Parameter 'scaledef' gibt diesen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
216 Faktor an. Eine Liste der möglichen Werte ist weiter oben angegeben. Auch hier
d407cb901df4 Initial revision
robcast
parents:
diff changeset
217 wird di Funktion direkt über die Auswahlliste im Navigationsframe aufgerufen und
d407cb901df4 Initial revision
robcast
parents:
diff changeset
218 auch hier wird ein neues Bild geladen.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
219
d407cb901df4 Initial revision
robcast
parents:
diff changeset
220 - setmark()
d407cb901df4 Initial revision
robcast
parents:
diff changeset
221
d407cb901df4 Initial revision
robcast
parents:
diff changeset
222 Setmark wird indirekt von Mark() oder initScripts() aufgerufen und zeichnet sich
d407cb901df4 Initial revision
robcast
parents:
diff changeset
223 für die Positionierung der Markierungen verantwortlich. Die Funktion extrahiert
d407cb901df4 Initial revision
robcast
parents:
diff changeset
224 aus att[5] die einzelnen Koordinaten und setzt die Punkte. Wenn eine bestimmte
d407cb901df4 Initial revision
robcast
parents:
diff changeset
225 Reihenfolge bei den Punkten eingehalten werden soll, dann müssen sie auch immer
d407cb901df4 Initial revision
robcast
parents:
diff changeset
226 gleich in der Parameterliste aufgerufen werden. Die Funktion setmark gibt nichts
d407cb901df4 Initial revision
robcast
parents:
diff changeset
227 zurück.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
228
d407cb901df4 Initial revision
robcast
parents:
diff changeset
229 - parseKeypress()
d407cb901df4 Initial revision
robcast
parents:
diff changeset
230
d407cb901df4 Initial revision
robcast
parents:
diff changeset
231 Diese Funktion dient dem Abfangen von Tastatureingaben, wobei die Tasten "n" für
d407cb901df4 Initial revision
robcast
parents:
diff changeset
232 nächste Seite und "b" für vordere Seite abgefragt werden. parseKeypress wird von
d407cb901df4 Initial revision
robcast
parents:
diff changeset
233 initScripts aufgerufen und hat keinen Rückgabewert.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
234
d407cb901df4 Initial revision
robcast
parents:
diff changeset
235 - initScripts()
d407cb901df4 Initial revision
robcast
parents:
diff changeset
236
d407cb901df4 Initial revision
robcast
parents:
diff changeset
237 In dieser Funktion werden Vorkehrungen getroffen, die beim Anzeigen einer neuen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
238 Seite getroffen werden müssen. Deshalb wird diese Funktion automatisch beim
d407cb901df4 Initial revision
robcast
parents:
diff changeset
239 Laden von digilib3.jsp aufgerufen. Insbesondere ruft diese Funktion
d407cb901df4 Initial revision
robcast
parents:
diff changeset
240 parseKeypress und setmark auf, wobei bei verschiedenen Browsertypen auch noch
d407cb901df4 Initial revision
robcast
parents:
diff changeset
241 andere Sachen hinzukommen (bei Netscape 6 wird zum Beispiel auch die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
242 Clientgrösse berechnet und geschaut ob Scrollbalken gemacht werden müssen).
d407cb901df4 Initial revision
robcast
parents:
diff changeset
243
d407cb901df4 Initial revision
robcast
parents:
diff changeset
244
d407cb901df4 Initial revision
robcast
parents:
diff changeset
245 4. ScaleServlet.java
d407cb901df4 Initial revision
robcast
parents:
diff changeset
246 --------------------
d407cb901df4 Initial revision
robcast
parents:
diff changeset
247
d407cb901df4 Initial revision
robcast
parents:
diff changeset
248 Der Aufruf von ScaleServlet.java erfolgt grundsätzlich von digilib3.jsp und die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
249 Parameterliste hat auch die selben Attribute (ausgenommen ist att[5] mit den
d407cb901df4 Initial revision
robcast
parents:
diff changeset
250 Koordinaten der Markierungspunkte. Bei Fragen über die einzelnen Bedeutungen der
d407cb901df4 Initial revision
robcast
parents:
diff changeset
251 Attribute sie hier also auf Kapitel 2 verwiesen. An dieser Stelle sei aber noch
d407cb901df4 Initial revision
robcast
parents:
diff changeset
252 etwas gesagt, über die Zusammensetzung der Parameterliste. ScaleServlet.java
d407cb901df4 Initial revision
robcast
parents:
diff changeset
253 kennt drei verschiden lange Parameterlisten, mit denen es arbeiten kann, wobei
d407cb901df4 Initial revision
robcast
parents:
diff changeset
254 die korrekte Zusammenstellung der Parameterliste in digilib3.jsp erfolgt.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
255
d407cb901df4 Initial revision
robcast
parents:
diff changeset
256 - Kurz (att[1] - att[4])
d407cb901df4 Initial revision
robcast
parents:
diff changeset
257
d407cb901df4 Initial revision
robcast
parents:
diff changeset
258 Diese vier Parameter geben dem ScaleServlet die Aufgabe, ein Bild (bestimmt mit
d407cb901df4 Initial revision
robcast
parents:
diff changeset
259 att[1] und att[2]) auf die Standardgrösse zu skalieren und an den Client zu
d407cb901df4 Initial revision
robcast
parents:
diff changeset
260 senden. Att[3] gibt zusätzlich den Skalierungsfaktor an und att[4] verhindert
d407cb901df4 Initial revision
robcast
parents:
diff changeset
261 mit einer Zufallszahl, dass das Bild aus dem Browsercache geholt wird.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
262
d407cb901df4 Initial revision
robcast
parents:
diff changeset
263 - Mittel (att[1] - att[4] + att[6] - att[9])
d407cb901df4 Initial revision
robcast
parents:
diff changeset
264
d407cb901df4 Initial revision
robcast
parents:
diff changeset
265 Diese Möglichkeit des Aufrufs wird gebraucht, um bezüglich des in att[8] und
d407cb901df4 Initial revision
robcast
parents:
diff changeset
266 att[9] bestimmten Mittelpunktes einen Ausschnitt zu vergrossen. Um den genannten
d407cb901df4 Initial revision
robcast
parents:
diff changeset
267 Punkt einzuordnen, wird die grösse des momentan angezeigten Bildes mit den
d407cb901df4 Initial revision
robcast
parents:
diff changeset
268 Parametern 6 und 7 mitgegeben.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
269
d407cb901df4 Initial revision
robcast
parents:
diff changeset
270 - Lang (att[1] - att[4] + att[6]- att[11])
d407cb901df4 Initial revision
robcast
parents:
diff changeset
271
d407cb901df4 Initial revision
robcast
parents:
diff changeset
272 Ein Aufruf in dieser Form gibt dem Servlet an, einen Ausschnitt aus einem Bild
d407cb901df4 Initial revision
robcast
parents:
diff changeset
273 zu vergrössern und zurückzusenden. Folgt ein Aufruf in dieser Form, bekommen die
d407cb901df4 Initial revision
robcast
parents:
diff changeset
274 Parameter att[8] und att[9] die Werte der linken oberen Ecke und att[10]/[11]
d407cb901df4 Initial revision
robcast
parents:
diff changeset
275 die Breite/Höhe des Ausschnitts.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
276
d407cb901df4 Initial revision
robcast
parents:
diff changeset
277
d407cb901df4 Initial revision
robcast
parents:
diff changeset
278 Aufgrund eines eingebauten Session-Managements im Servlet ist es möglich mit
d407cb901df4 Initial revision
robcast
parents:
diff changeset
279 digilib auch mehrfach in ein Bild hinein zu zoomen.
d407cb901df4 Initial revision
robcast
parents:
diff changeset
280
d407cb901df4 Initial revision
robcast
parents:
diff changeset
281 (Anm: Auch wenn dieses Session-Management seinen Zweck beim Anschauen der Bilder
d407cb901df4 Initial revision
robcast
parents:
diff changeset
282 sehr gut erfüllt, ist es dem ScaleServlet nicht möglich den Referenz-URLs
d407cb901df4 Initial revision
robcast
parents:
diff changeset
283 anzusehen, ob zuerst mehrfach hineingezoomt wurde und gibt unter Umständen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
284 - eben wenn mehrfach hieingezoomt wurde vor der Generierung der Referenz - einen
d407cb901df4 Initial revision
robcast
parents:
diff changeset
285 falschen Ausschnitt zurück.)
d407cb901df4 Initial revision
robcast
parents:
diff changeset
286
d407cb901df4 Initial revision
robcast
parents:
diff changeset
287
d407cb901df4 Initial revision
robcast
parents:
diff changeset
288 ----------------------------------------------