MODULE ObxPhoneUI;
(**
project = "BlackBox"
organization = "www.oberon.ch"
contributors = "Oberon microsystems"
version = "System/Rsrc/About"
copyright = "System/Rsrc/About"
license = "Docu/BB-License"
changes = ""
issues = ""
**)
IMPORT Dialog, ObxPhoneDB;
VAR
phone*: RECORD
name*, number*: ObxPhoneDB.String;
lookupByName*: BOOLEAN
END;
PROCEDURE Lookup*;
BEGIN
IF phone.lookupByName THEN
ObxPhoneDB.LookupByName(phone.name, phone.number);
IF phone.number = "" THEN phone.number := "not found" END
ELSE
ObxPhoneDB.LookupByNumber(phone.number, phone.name);
IF phone.name = "" THEN phone.name := "not found" END
END;
Dialog.Update(phone)
END Lookup;
PROCEDURE LookupGuard* (VAR par: Dialog.Par);
BEGIN (* disable if input string is empty *)
par.disabled := phone.lookupByName & (phone.name = "") OR
~phone.lookupByName & (phone.number = "")
END LookupGuard;
PROCEDURE NameGuard* (VAR par: Dialog.Par);
BEGIN (* make read-only if lookup is by number *)
par.readOnly := ~phone.lookupByName
END NameGuard;
PROCEDURE NumberGuard* (VAR par: Dialog.Par);
BEGIN (* make read-only if lookup is by name *)
par.readOnly := phone.lookupByName
END NumberGuard;
END ObxPhoneUI.