Während der Durcharbeitung dieses Buchs haben Sie in mehreren Situationen bemerkt, dass Sie die Konfigurationsdateien von UltraDev manuell bearbeiten können, um Ihre eigenen Einstellungen vorzunehmen oder existierende Standardwerte in der Applikation zu verändern. UltraDev ist so einzigartig unter den heutigen komplexen Applikationen, dass nahezu alle Dateien, die UltraDev zur Konfiguration seiner Oberfläche und seiner Verhalten verwendet, textbasiert sind. Das bedeutet, mit ein bisschen Denkaufwand können Sie fast alles anpassen.
Am besten fangen Sie mit der Anpassung Ihres UltraDev-Systems an, indem Sie den Abschnitt »Dreamweaver und UltraDev erweitern« im Online-Hilfesystem lesen. Dort finden Sie schlüssige Hinweise darauf, was alles möglich ist. Wenn Sie jedoch ungeduldig sind, öffnen Sie das Konfigurationsverzeichnis in Ihrem UltraDev-Verzeichnis, und sehen Sie sich ein bisschen um.
Legen Sie eine Kopie des Konfigurationsverzeichnisses an, bevor Sie Änderungen daran vornehmen. Falls UltraDev anschließend nicht mehr korrekt funktioniert, ersetzen Sie die geänderten Dateien einfach wieder durch eine Kopie des Originals.
Das Unterverzeichnis für die Menüs stellt einen ausgezeichneten Ausgangspunkt für die
Anpassung Ihres Systems dar. In diesem Verzeichnis finden Sie die Datei menus.xml
, die
die Definitionen aller Menüs im System enthält. Beispielsweise finden Sie dort die XML-
Definition des Fenster-Menüs. Es sollte wie folgt aussehen:
<menu name="_Fenster" id="DWMenu_Window">
<menuitem name="O_bjects" key="Cmd+F2"
domrequired="false" enabled="true"
command="dw.toggleFloater('objects')"
checked="dw.getFloaterVisibility('objects')"
id="DWMenu_Window_Objects" />
<menuitem name="_Eigenschaften" key="Cmd+F3"
domrequired="false" enabled="true"
command="dw.toggleFloater('properties')"
checked="dw.getFloaterVisibility('properties')"
id="DWMenu_Window_Properties" />
<menuitem name="La_uncher" key=""
domrequired="false" enabled="true"
command="dw.toggleFloater('launcher')"
checked="dw.getFloaterVisibility('launcher')"
id="DWMenu_Window_Launcher" />
...
</menu>
Das ist nur ein kleiner Ausschnitt aus der Datei, aber Sie können sich eine erste Vorstellung verschaffen.
Jede Zeile besteht aus einem <menuitem
>, das einen Namen und ein Tastaturkürzel
enthält. Sie können diese Werte nach Bedarf abändern. Die einzige Gefahr dabei ist, dass
Sie den Befehl verändern, der eine Dreamweaver/UltraDev-JavaScript-Funktion ausführt
und bewirkt, dass ein Fenster geöffnet oder geschlossen wird.
Das ist zwar eine praktische Methode, Tastaturkürzel zu bearbeiten, aber noch einfacher ist es, im Bearbeiten-Menü von UltraDev den Eintrag Tastaturkurzbefehle zu verwenden.
Wenn Sie möchten, können Sie Menüeinträge von einem Menü in ein anderes kopieren oder das Menüsystem völlig anders anordnen. Achten Sie dabei nur darauf, die Tags nicht zu beschädigen.
Sehen Sie sich die Ordner Behaviors
(Verhalten) und Actions
(Aktionen) im
Konfigurationsordner an. Hier finden Sie die meisten Fenster- und Befehlsdefinitionen für
viele Fenster und Dialogfelder von UltraDev. Öffnen Sie beispielsweise die Datei Popup
Message.js
im Verzeichnis Behaviors
. Hier finden Sie eine kommentierte Kopie der
Funktionen in der Datei.
Richten Sie die Verhaltensfunktion ein, die im HTML enthalten ist. Hier ist die Funktion
nur eine nachempfundene Version der bereits existierenden alert
-Funktion:
//******************* BEHAVIOR FUNCTION **********************
// Nimmt eine Zeichenkette entgegen und zeigt sie in einer Warnung an
function MM_popupMsg(msg) { //v1.0
alert(msg);
}
Definiert die Ereignisse, die mit der Funktion kombiniert werden können. Standardwert ist
das Ereignis onClick
.
//******************* API **********************
//Kann für jedes Tag und jedes Ereignis verwendet werden
function canAcceptBehavior(){
var retVal = "onClick,onMouseUp,onMouseDown,(onClick)";
return retVal;
}
Definiert die Funktion aus dem Verhaltensdokument (dieses Dokument), die in das
HTML aufgenommen wird. In diesem Fall ist das die Funktion MM_popupMsg
.
//Gibt eine Javascript-Funktion zurück, die mit Script-Tags in den HTML-Head eingefügt werden soll
function behaviorFunction(){
return "MM_popupMsg";
}
Erzeugt die Zeichenkette für den Funktionsaufruf, inklusive der Nachricht, die angezeigt werden soll und die aus dem Benutzeroberflächenformular stammt:
//Gibt den Funktsionsaufruf zurück, um das HTML-Tag <TAG... onEvent='thisFn(arg)'> =>;einzufügen
function applyBehavior() {
var index,frameObj,presBg,msgStr="",retVal;
with (document.theForm) {
msgStr = escExprStr(message.value,false);
}
if (msgStr == null) retVal = MSG_BadBraces;
else if (msgStr) retVal = "MM_popupMsg('"+msgStr+"')";
else retVal = MSG_NoMsg;
return retVal
}
Setzt den Wert des Nachrichtenfelds im Benutzeroberflächenformular, falls das Verhalten bearbeitet wird.
function inspectBehavior(fnStr){
var argArray, msgStr;
argArray = extractExprStr(fnStr);
if (argArray.length == 1) { //erwartet 1 Argument
document.theForm.message.value = unescExprStr(argArray[0],false);
}
}
Die Funktion initializeUT
schließlich legt alle Ausgangsbedingungen auf der
Benutzeroberfläche fest, die berücksichtigt werden müssen.
//***************** LOCAL FUNCTIONS ******************
//Frames laden, Einfügemarke setzen
function initializeUI(){
document.theForm.message.focus(); //Fokus auf Textfeld setzen
document.theForm.message.select(); //Einfügemarke in Textfeld setzen
}
Wie Sie sehen, hat Macromedia mit der Verwendung von JavaScript als Verhaltens/ Befehls-Programmiersprache jeden, der über einen Texteditor und die nötige Geduld verfügt, die Erweiterung von UltraDev und Dreamweaver ermöglicht.
Die Unterstützung des Verhaltenscodes erfolgt auf der Benutzeroberfläche. Öffnen Sie die
Benutzeroberflächen-Datei, die der JavaScript-Verhaltensdatei entspricht - Popup
Message.htm
. Erstaunlicherweise ist auch die eigentliche Oberfläche im Textformat
definiert, mit dem Sie schon vertraut sind - HTML. Sie können die Oberfläche von
UltraDev also innerhalb von UltraDev bearbeiten.
Den Quellcode für diese einfache Benutzeroberfläche sehen Sie hier:
1 <HTML>
2 <HEAD>
3 <SCRIPT LANGUAGE="JavaScript"
4 SRC="Popup Message.js"></SCRIPT>
5 <SCRIPT LANGUAGE="JavaScript"
6 SRC="../../Shared/MM/Scripts/setText.js"></SCRIPT>
7 <SCRIPT LANGUAGE="JavaScript"
8 SRC="../../Shared/MM/Scripts/CMN/string.js"></SCRIPT>
9 <!-Entfernen Sie das folgende SCRIPT-Tag, falls Sie diese Datei
10 für Ihren eigenen Gebrauch anpassen. -->
11 <SCRIPT SRC="../../Shared/MM/Scripts/CMN/displayHelp.js"></SCRIPT>
12 <!-Ende Löschbereich. -->
13 <SCRIPT LANGUAGE="javascript">
14 // Copyright 1999 Macromedia, Inc. All rights reserved.
15
16 //--------------- LOKALISIERBARE GLOBALE VARIABLEN --------------
17
18 var MSG_NoMsg = "Geben Sie bitte eine Nachricht ein oder klicken Sie auf =>;Abbrechen.";
19 var MSG_BadBraces = "Geschweifte Klammern sind für das Einbetten von
20 Variablen reserviert und müssen korrekt übereinstimmen.\ n
21 Legen Sie bitte die geschweiften Klammern fest oder klicken Sie auf =>;Abbrechen.";
22 //--------------- ENDE LOKALISIERBARE VARIABLEN --------------
23 //--------------- END JAVASCRIPT ---------------
24 </SCRIPT>
25 <TITLE>Popup Message</TITLE>
26 <META HTTP-EQUIV="Content-Type" CONTENT="text/html">
27 </HEAD>
28 <BODY onLoad="initializeUI()">
29 <FORM NAME="theForm">
30 <DIV ALIGN="center">
31 <TABLE BORDER=0>
32 <TR>
33 <TD HEIGHT=8></TD>
34 <TD ALIGN="left" VALIGN="top" NOWRAP ROWSPAN="2">
35 <TEXTAREA NAME="message" ROWS="5" COLS="50" WRAP="VIRTUAL">
36 </TEXTAREA><BR>
37 </TR>
38 <TR>
39 <TD ALIGN="right" VALIGN="TOP" NOWRAP>Message:</TD>
40 </TR>
41 </TABLE>
42 </DIV>
43 </FORM>
44 </BODY>
45 </HTML>
Der Schlüssel für das Verständnis der Verbindung zwischen diesem Dokument und dem
JavaScript ist das Nachrichtenfeld. Dieses Feld heißt im HTML message
(Zeile 35) und
der Zugriff erfolgt direkt innerhalb der JavaScript-Verhaltensdefinition.
UltraDev fügt rechts im Konfigurationsfenster mehrere Standardschaltflächen ein, die im HTML für das Dialogfeld nicht angezeigt werden. Diese Schaltflächen (in der Regel OK und Abbrechen) signalisieren dem Verhalten, den JavaScript-Code in das Dokument einzufügen oder alle Änderungen zu verwerfen.
Wenn Sie Anfänger sind, erzeugen Sie Ihre eigenen Verhalten am besten, indem Sie bereits existierende Verhalten kopieren und bearbeiten. Sie können UltraDev sonst zu einer Applikation machen, die nicht mehr an das Original erinnert.
Vielleicht haben Sie bemerkt, dass es im Konfigurationsverzeichnis mehrere Ordner mit dem Präfix »Server« gibt. Diese Ordner enthalten Definitionen aller verfügbaren Applikationsserver-Modelle - ASP/VBScript, ASP/JavaScript, JSP und CFML sowie die Benutzeroberflächen-Definitionen für alle Verhalten.
Wenn Sie Abenteurer sind, versuchen Sie, den Inhalt dieses Ordners zu erkunden. Mit ein bisschen Arbeitsaufwand können Sie UltraDev so anpassen, dass es mit anderen eingebetteten Skriptingsprachen kommuniziert.