Specifications

Floating Panels 131
Example
The following example of selectionChanged() shows a different layer in the floating panel,
depending on whether the selection is a script marker. If the selection is a script marker,
Dreamweaver makes the script layer visible. Otherwise, Dreamweaver makes the blank
layer visible:
function selectionChanged(){
/* get the selected node */
var theDOM = dw.getDocumentDOM();
var theNode = dw.getSelectedNode();
/* check to see if the node is a script marker */
if (theNode.nodeType == Node.ELEMENT_NODE && ¬
theNode.tagName == "SCRIPT"){
document.layers['blanklayer'].visibility = 'hidden';
document.layers['scriptlayer'].visibility = 'visible';
}else{
document.layers['scriptlayer'].visibility = 'hidden';
document.layers['blanklayer'].visibility = 'visible';
}
}
About performance
Declaring the selectionChanged() or documentEdited() function in your custom floating
panels risks impacting Dreamweaver performance adversely. Consider that
documentEdited()
and
selectionChanged() are called after every keystroke and mouse click when Dreamweaver is
idle for more than one-tenth of a second. Its important use different scenarios to test your
floating panel, using large documents (100K or more of HTML) whenever possible, to test
performance impact.
To help avoid performance penalties,
setTimeout() was implemented as a global method in
Dreamweaver 3. As in the browsers,
setTimeout() takes two arguments: the JavaScript to be
called and the amount of time in milliseconds to wait before calling it.
The
setTimeout() method lets you build pauses into your processing. These pauses let the user
continue interacting with the application. You must build in these pauses explicitly because the
screen freezes while scripts process, which prevents the user from performing further edits. The
pauses also prevent you from updating the interface or the floating panel.