sfraser%netscape.com 4d691df9e3 Some renaming of nodes to reduce ambiguity, and leave the field open for Find and Replace later.
git-svn-id: svn://10.0.0.236/trunk@33783 18797224-902f-48f8-a5cc-f745e15eee43
1999-06-04 21:49:21 +00:00

170 lines
6.4 KiB
JavaScript

var data;
var dialog;
function string2Bool( value )
{
return value != "false";
}
function bool2String( value )
{
if ( value ) {
return "true";
} else {
return "false";
}
}
function initData()
{
// Create data object and initialize.
data = new Object;
data.findKey = document.getElementById("data.findKey");
//data.replaceKey = document.getElementById("data.replaceKey");
data.caseSensitive = document.getElementById("data.caseSensitive");
data.wrap = document.getElementById("data.wrap");
data.searchBackwards = document.getElementById("data.searchBackwards");
data.execute = document.getElementById("data.execute");
}
function initDialog()
{
// Create dialog object and initialize.
dialog = new Object;
dialog.findKey = document.getElementById("dialog.findKey");
dialog.caseSensitive = document.getElementById("dialog.caseSensitive");
dialog.wrap = document.getElementById("dialog.wrap");
dialog.searchBackwards = document.getElementById("dialog.searchBackwards");
dialog.find = document.getElementById("dialog.find");
dialog.cancel = document.getElementById("dialog.cancel");
dialog.enabled = false;
}
function loadDialog()
{
// Set initial dialog field contents.
dialog.findKey.setAttribute( "value", data.findKey.getAttribute("value") );
if ( data.caseSensitive.getAttribute("value") == "true" ) {
dialog.caseSensitive.setAttribute( "checked", "" );
} else {
dialog.caseSensitive.removeAttribute( "checked" );
}
if ( data.wrap.getAttribute("value") == "true" ) {
dialog.wrap.setAttribute( "checked", "" );
} else {
dialog.wrap.removeAttribute( "checked" );
}
if ( data.searchBackwards.getAttribute("value") == "true" ) {
dialog.searchBackwards.setAttribute( "checked", "" );
} else {
dialog.searchBackwards.removeAttribute( "checked" );
}
// disable the OK button if no text
if (dialog.findKey.getAttribute("value") == "") {
dialog.find.setAttribute( "disabled", "" );
}
}
function loadData()
{
// Set data attributes per user input.
data.findKey.setAttribute( "value", dialog.findKey.value );
if ( dialog.caseSensitive.checked ) {
data.caseSensitive.setAttribute( "value", "true" );
} else {
data.caseSensitive.setAttribute( "value", "false" );
}
if ( dialog.wrap.checked ) {
data.wrap.setAttribute( "value", "true" );
} else {
data.wrap.setAttribute( "value", "false" );
}
if ( dialog.searchBackwards.checked ) {
data.searchBackwards.setAttribute( "value", "true" );
} else {
data.searchBackwards.setAttribute( "value", "false" );
}
}
function dumpData()
{
dump( "data.key = " + data.key + "\n" );
dump( "\tvalue=" + data.key.getAttribute("value") + "\n" );
dump( "data.caseSensitive = " + data.caseSensitive + "\n" );
dump( "\tvalue=" + data.caseSensitive.getAttribute("value") + "\n" );
dump( "data.searchBackwards = " + data.searchBackwards + "\n" );
dump( "\tvalue=" + data.searchBackwards.getAttribute("value") + "\n" );
dump( "data.wrap = " + data.wrap + "\n" );
dump( "\tvalue=" + data.wrap.getAttribute("value") + "\n" );
dump( "data.execute = " + data.execute + "\n" );
dump( "\tkey=" + data.execute.getAttribute("key") + "\n" );
dump( "\tcaseSensitive=" + data.execute.getAttribute("caseSensitive") + "\n" );
dump( "\tsearchBackwards=" + data.execute.getAttribute("searchBackwards") + "\n" );
dump( "\twrap=" + data.execute.getAttribute("wrap") + "\n" );
}
function onLoad()
{
// Init data.
initData();
// Init dialog.
initDialog();
// Fill dialog.
loadDialog();
}
function find()
{
// Note: This is broken! We must detect whether the user has changed
// the dialog contents and only trigger "find" if they have.
// Otherwise, trigger "next."
// Transfer dialog contents to data elements.
loadData();
// Set data.execute argument attributes from data.
data.execute.setAttribute( "findKey", data.findKey.getAttribute("value") );
data.execute.setAttribute( "caseSensitive", data.caseSensitive.getAttribute("value") );
data.execute.setAttribute( "searchBackwards", data.searchBackwards.getAttribute("value") );
data.execute.setAttribute( "wrap", data.wrap.getAttribute("value") );
// Fire command.
data.execute.setAttribute( "command", "find" );
}
function cancel()
{
// Close the window.
data.execute.setAttribute( "command", "cancel" );
}
function onTyping( key )
{
if ( key == 13 && dialog.enabled) {
ok();
} else
{
if ( dialog.enabled ) {
// Disable OK if they delete all the text.
if ( dialog.findKey.value == "" ) {
dialog.enabled = false;
dialog.find.setAttribute( "disabled", "" );
}
} else {
// Enable OK once the user types something.
if ( dialog.findKey.value != "" ) {
dialog.enabled = true;
dialog.find.removeAttribute( "disabled" );
}
}
}
}