********************************************************************
* NOTE: This file is generated automatically from the event * definition file Sort.evt. ********************************************************************MODULEFix any FormsVBT errors; don't handle exceptions for them.; <*NOWARN*> IMPORT Rd, ZeusClass, Fmt, Algorithm, Sort, Wr; <*NOWARN*> IMPORT ZeusPanel, FormsVBT, VBT, Text, ZeusUtil; <* PRAGMA LL *> SortAlgClass <* FATAL FormsVBT.Error, FormsVBT.Unimplemented *> REVEAL T = Public BRANDED OBJECT OVERRIDES <* LL = VBT.mu *> init := SortDefaultInit; snapshot := SortDefaultSnapshot; restore := SortDefaultRestore; updateEventCounts := SortDefaultUpdateCts; feChangeVal := ChangeVal; END; PROCEDURESortDefaultInit (v: T): Algorithm.T = <* LL = VBT.mu *> PROCEDURE Attach (id: TEXT; proc: FormsVBT.Proc) = BEGIN FormsVBT.AttachProc(v.eventData, id, proc, v); END Attach; BEGIN v.eventData := ZeusPanel.NewForm("SortEventData.fv"); Attach("stopatCodeEvents", SortDoIt); Attach("waitatCodeEvents", SortDoIt); Attach("eventCounts", SortRefreshCts); Attach("stopAtInit", SortDoIt); Attach("waitAtInit", SortDoIt); Attach("stopAtSetVal", SortDoIt); Attach("waitAtSetVal", SortDoIt); Attach("stopAtSwapElts", SortDoIt); Attach("waitAtSwapElts", SortDoIt); Attach("stopAtStartPass", SortDoIt); Attach("waitAtStartPass", SortDoIt); FromFV (v.eventData, v); (* Get FV and internal data in sync *) RETURN Algorithm.T.init(v); END SortDefaultInit; PROCEDURESortDoIt ( fv : FormsVBT.T; e : TEXT; arg: REFANY; <*UNUSED*> t : VBT.TimeStamp) = <* LL = VBT.mu *> BEGIN IF Text.Equal(e, "stopatCodeEvents") THEN NARROW(arg, T).stopatCodeEvents := FormsVBT.GetBoolean(fv, "stopatCodeEvents"); END; IF Text.Equal(e, "waitatCodeEvents") THEN NARROW(arg, T).waitatCodeEvents := FormsVBT.GetInteger(fv, "waitatCodeEvents"); END; IF Text.Equal(e, "stopAtInit") THEN NARROW(arg, T).eventDataRec.stopAtInit := FormsVBT.GetBoolean(fv, "stopAtInit"); END; IF Text.Equal(e, "waitAtInit") THEN NARROW(arg, T).eventDataRec.waitAtInit := FormsVBT.GetInteger(fv, "waitAtInit"); END; IF Text.Equal(e, "stopAtSetVal") THEN NARROW(arg, T).eventDataRec.stopAtSetVal := FormsVBT.GetBoolean(fv, "stopAtSetVal"); END; IF Text.Equal(e, "waitAtSetVal") THEN NARROW(arg, T).eventDataRec.waitAtSetVal := FormsVBT.GetInteger(fv, "waitAtSetVal"); END; IF Text.Equal(e, "stopAtSwapElts") THEN NARROW(arg, T).eventDataRec.stopAtSwapElts := FormsVBT.GetBoolean(fv, "stopAtSwapElts"); END; IF Text.Equal(e, "waitAtSwapElts") THEN NARROW(arg, T).eventDataRec.waitAtSwapElts := FormsVBT.GetInteger(fv, "waitAtSwapElts"); END; IF Text.Equal(e, "stopAtStartPass") THEN NARROW(arg, T).eventDataRec.stopAtStartPass := FormsVBT.GetBoolean(fv, "stopAtStartPass"); END; IF Text.Equal(e, "waitAtStartPass") THEN NARROW(arg, T).eventDataRec.waitAtStartPass := FormsVBT.GetInteger(fv, "waitAtStartPass"); END; END SortDoIt; PROCEDURESortRefreshCts ( <*UNUSED*> fv : FormsVBT.T; <*UNUSED*> e : TEXT; arg : REFANY; <*UNUSED*> t : VBT.TimeStamp) = <* LL = VBT.mu *> BEGIN NARROW(arg, T).updateEventCounts(FALSE); END SortRefreshCts; PROCEDUREFromFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN alg.stopatCodeEvents := FormsVBT.GetBoolean(fv, "stopatCodeEvents"); alg.waitatCodeEvents := FormsVBT.GetInteger(fv, "waitatCodeEvents"); alg.eventDataRec.stopAtInit := FormsVBT.GetBoolean(fv, "stopAtInit"); alg.eventDataRec.waitAtInit := FormsVBT.GetInteger(fv, "waitAtInit"); alg.eventDataRec.stopAtSetVal := FormsVBT.GetBoolean(fv, "stopAtSetVal"); alg.eventDataRec.waitAtSetVal := FormsVBT.GetInteger(fv, "waitAtSetVal"); alg.eventDataRec.stopAtSwapElts := FormsVBT.GetBoolean(fv, "stopAtSwapElts"); alg.eventDataRec.waitAtSwapElts := FormsVBT.GetInteger(fv, "waitAtSwapElts"); alg.eventDataRec.stopAtStartPass := FormsVBT.GetBoolean(fv, "stopAtStartPass"); alg.eventDataRec.waitAtStartPass := FormsVBT.GetInteger(fv, "waitAtStartPass"); END FromFV; <*UNUSED*> PROCEDUREToFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN FormsVBT.PutBoolean(fv, "stopatCodeEvents", alg.stopatCodeEvents); FormsVBT.PutInteger(fv, "waitatCodeEvents", alg.waitatCodeEvents); FormsVBT.PutBoolean(fv, "stopAtInit", alg.eventDataRec.stopAtInit); FormsVBT.PutInteger(fv, "waitAtInit", alg.eventDataRec.waitAtInit); FormsVBT.PutBoolean(fv, "stopAtSetVal", alg.eventDataRec.stopAtSetVal); FormsVBT.PutInteger(fv, "waitAtSetVal", alg.eventDataRec.waitAtSetVal); FormsVBT.PutBoolean(fv, "stopAtSwapElts", alg.eventDataRec.stopAtSwapElts); FormsVBT.PutInteger(fv, "waitAtSwapElts", alg.eventDataRec.waitAtSwapElts); FormsVBT.PutBoolean(fv, "stopAtStartPass", alg.eventDataRec.stopAtStartPass); FormsVBT.PutInteger(fv, "waitAtStartPass", alg.eventDataRec.waitAtStartPass); CountsToFV (fv, alg); END ToFV; PROCEDURECountsToFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN FormsVBT.PutText(fv, "ctOfInit", Fmt.Int(alg.eventDataRec.ctOfInit)); FormsVBT.PutText(fv, "ctOfSetVal", Fmt.Int(alg.eventDataRec.ctOfSetVal)); FormsVBT.PutText(fv, "ctOfSwapElts", Fmt.Int(alg.eventDataRec.ctOfSwapElts)); FormsVBT.PutText(fv, "ctOfStartPass", Fmt.Int(alg.eventDataRec.ctOfStartPass)); END CountsToFV; PROCEDURESortDefaultUpdateCts ( v: T; reset: BOOLEAN) = <* LL = VBT.mu *> BEGIN IF reset THEN v.eventDataRec.ctOfInit := 0; v.eventDataRec.ctOfSetVal := 0; v.eventDataRec.ctOfSwapElts := 0; v.eventDataRec.ctOfStartPass := 0; END; CountsToFV (v.eventData, v); END SortDefaultUpdateCts; PROCEDURESortDefaultSnapshot (v: T; wr: Wr.T) RAISES {ZeusClass.Error} = <* LL = VBT.mu *> BEGIN TRY Wr.PutChar(wr, '(') EXCEPT ELSE RAISE ZeusClass.Error( "SortAlgClass.SortDefaultSnapshot write error"); END; IF v.eventData = NIL THEN RAISE ZeusClass.Error( "SortAlgClass.SortDefaultSnapshot: " & "eventData not set!"); END; TRY v.eventData.snapshot(wr) EXCEPT FormsVBT.Error (msg) => RAISE ZeusClass.Error( "SortAlgClass.SortDefaultSnapshot FV error: " & msg); ELSE RAISE ZeusClass.Error( "SortAlgClass.SortDefaultSnapshot error"); END; Algorithm.T.snapshot(v, wr); TRY Wr.PutChar(wr, ')') EXCEPT ELSE RAISE ZeusClass.Error( "SortAlgClass.SortDefaultSnapshot write error"); END; END SortDefaultSnapshot; PROCEDURESortDefaultRestore (v: T; rd: Rd.T) RAISES {ZeusClass.Error} = <* LL = VBT.mu *> BEGIN IF rd = NIL THEN RETURN END; IF NOT ZeusUtil.EatChar(rd, '(') THEN RAISE ZeusClass.Error( "SortAlgClass.SortDefaultRestore read error"); END; IF v.eventData = NIL THEN RAISE ZeusClass.Error( "SortAlgClass.SortDefaultRestore: " & "eventData not set!"); END; TRY v.eventData.restore(rd); v.updateEventCounts(FALSE); FromFV(v.eventData, v); EXCEPT ELSE RAISE ZeusClass.Error( "SortAlgClass.SortDefaultRestore error"); END; Algorithm.T.restore(v, rd); IF NOT ZeusUtil.EatChar(rd, ')') THEN RAISE ZeusClass.Error( "SortAlgClass.SortDefaultRestore read error"); END; END SortDefaultRestore; PROCEDUREChangeVal (self: T ; <*UNUSED*> i: CARDINAL ; <*UNUSED*> new: Sort.Key ) = <* LL = VBT.mu *> BEGIN self.evtHandled := FALSE; END ChangeVal; BEGIN END SortAlgClass.