********************************************************************
* NOTE: This file is generated automatically from the event * definition file UnionFind.evt. ********************************************************************MODULEFix any FormsVBT errors; don't handle exceptions for them.; <*NOWARN*> IMPORT Rd, ZeusClass, Fmt, Algorithm, Wr, ZeusPanel; <*NOWARN*> IMPORT FormsVBT, VBT, Text, ZeusUtil; <* PRAGMA LL *> UnionFindAlgClass <* FATAL FormsVBT.Error, FormsVBT.Unimplemented *> REVEAL T = Public BRANDED OBJECT OVERRIDES <* LL = VBT.mu *> init := UnionFindDefaultInit; snapshot := UnionFindDefaultSnapshot; restore := UnionFindDefaultRestore; updateEventCounts := UnionFindDefaultUpdateCts; END; PROCEDUREUnionFindDefaultInit (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("UnionFindEventData.fv"); Attach("stopatCodeEvents", UnionFindDoIt); Attach("waitatCodeEvents", UnionFindDoIt); Attach("eventCounts", UnionFindRefreshCts); Attach("stopAtSetup", UnionFindDoIt); Attach("waitAtSetup", UnionFindDoIt); Attach("stopAtNewSet", UnionFindDoIt); Attach("waitAtNewSet", UnionFindDoIt); Attach("stopAtFinishedSets", UnionFindDoIt); Attach("waitAtFinishedSets", UnionFindDoIt); Attach("stopAtStartFind", UnionFindDoIt); Attach("waitAtStartFind", UnionFindDoIt); Attach("stopAtEndFind", UnionFindDoIt); Attach("waitAtEndFind", UnionFindDoIt); Attach("stopAtStartDoFind", UnionFindDoIt); Attach("waitAtStartDoFind", UnionFindDoIt); Attach("stopAtStepUp", UnionFindDoIt); Attach("waitAtStepUp", UnionFindDoIt); Attach("stopAtFound", UnionFindDoIt); Attach("waitAtFound", UnionFindDoIt); Attach("stopAtStepDown", UnionFindDoIt); Attach("waitAtStepDown", UnionFindDoIt); Attach("stopAtChangeParent", UnionFindDoIt); Attach("waitAtChangeParent", UnionFindDoIt); Attach("stopAtEndDoFind", UnionFindDoIt); Attach("waitAtEndDoFind", UnionFindDoIt); Attach("stopAtStartUnion", UnionFindDoIt); Attach("waitAtStartUnion", UnionFindDoIt); Attach("stopAtFoundFirst", UnionFindDoIt); Attach("waitAtFoundFirst", UnionFindDoIt); Attach("stopAtCompareRanks", UnionFindDoIt); Attach("waitAtCompareRanks", UnionFindDoIt); Attach("stopAtUnite", UnionFindDoIt); Attach("waitAtUnite", UnionFindDoIt); Attach("stopAtEndUnion", UnionFindDoIt); Attach("waitAtEndUnion", UnionFindDoIt); FromFV (v.eventData, v); (* Get FV and internal data in sync *) RETURN Algorithm.T.init(v); END UnionFindDefaultInit; PROCEDUREUnionFindDoIt ( 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, "stopAtSetup") THEN NARROW(arg, T).eventDataRec.stopAtSetup := FormsVBT.GetBoolean(fv, "stopAtSetup"); END; IF Text.Equal(e, "waitAtSetup") THEN NARROW(arg, T).eventDataRec.waitAtSetup := FormsVBT.GetInteger(fv, "waitAtSetup"); END; IF Text.Equal(e, "stopAtNewSet") THEN NARROW(arg, T).eventDataRec.stopAtNewSet := FormsVBT.GetBoolean(fv, "stopAtNewSet"); END; IF Text.Equal(e, "waitAtNewSet") THEN NARROW(arg, T).eventDataRec.waitAtNewSet := FormsVBT.GetInteger(fv, "waitAtNewSet"); END; IF Text.Equal(e, "stopAtFinishedSets") THEN NARROW(arg, T).eventDataRec.stopAtFinishedSets := FormsVBT.GetBoolean(fv, "stopAtFinishedSets"); END; IF Text.Equal(e, "waitAtFinishedSets") THEN NARROW(arg, T).eventDataRec.waitAtFinishedSets := FormsVBT.GetInteger(fv, "waitAtFinishedSets"); END; IF Text.Equal(e, "stopAtStartFind") THEN NARROW(arg, T).eventDataRec.stopAtStartFind := FormsVBT.GetBoolean(fv, "stopAtStartFind"); END; IF Text.Equal(e, "waitAtStartFind") THEN NARROW(arg, T).eventDataRec.waitAtStartFind := FormsVBT.GetInteger(fv, "waitAtStartFind"); END; IF Text.Equal(e, "stopAtEndFind") THEN NARROW(arg, T).eventDataRec.stopAtEndFind := FormsVBT.GetBoolean(fv, "stopAtEndFind"); END; IF Text.Equal(e, "waitAtEndFind") THEN NARROW(arg, T).eventDataRec.waitAtEndFind := FormsVBT.GetInteger(fv, "waitAtEndFind"); END; IF Text.Equal(e, "stopAtStartDoFind") THEN NARROW(arg, T).eventDataRec.stopAtStartDoFind := FormsVBT.GetBoolean(fv, "stopAtStartDoFind"); END; IF Text.Equal(e, "waitAtStartDoFind") THEN NARROW(arg, T).eventDataRec.waitAtStartDoFind := FormsVBT.GetInteger(fv, "waitAtStartDoFind"); END; IF Text.Equal(e, "stopAtStepUp") THEN NARROW(arg, T).eventDataRec.stopAtStepUp := FormsVBT.GetBoolean(fv, "stopAtStepUp"); END; IF Text.Equal(e, "waitAtStepUp") THEN NARROW(arg, T).eventDataRec.waitAtStepUp := FormsVBT.GetInteger(fv, "waitAtStepUp"); END; IF Text.Equal(e, "stopAtFound") THEN NARROW(arg, T).eventDataRec.stopAtFound := FormsVBT.GetBoolean(fv, "stopAtFound"); END; IF Text.Equal(e, "waitAtFound") THEN NARROW(arg, T).eventDataRec.waitAtFound := FormsVBT.GetInteger(fv, "waitAtFound"); END; IF Text.Equal(e, "stopAtStepDown") THEN NARROW(arg, T).eventDataRec.stopAtStepDown := FormsVBT.GetBoolean(fv, "stopAtStepDown"); END; IF Text.Equal(e, "waitAtStepDown") THEN NARROW(arg, T).eventDataRec.waitAtStepDown := FormsVBT.GetInteger(fv, "waitAtStepDown"); END; IF Text.Equal(e, "stopAtChangeParent") THEN NARROW(arg, T).eventDataRec.stopAtChangeParent := FormsVBT.GetBoolean(fv, "stopAtChangeParent"); END; IF Text.Equal(e, "waitAtChangeParent") THEN NARROW(arg, T).eventDataRec.waitAtChangeParent := FormsVBT.GetInteger(fv, "waitAtChangeParent"); END; IF Text.Equal(e, "stopAtEndDoFind") THEN NARROW(arg, T).eventDataRec.stopAtEndDoFind := FormsVBT.GetBoolean(fv, "stopAtEndDoFind"); END; IF Text.Equal(e, "waitAtEndDoFind") THEN NARROW(arg, T).eventDataRec.waitAtEndDoFind := FormsVBT.GetInteger(fv, "waitAtEndDoFind"); END; IF Text.Equal(e, "stopAtStartUnion") THEN NARROW(arg, T).eventDataRec.stopAtStartUnion := FormsVBT.GetBoolean(fv, "stopAtStartUnion"); END; IF Text.Equal(e, "waitAtStartUnion") THEN NARROW(arg, T).eventDataRec.waitAtStartUnion := FormsVBT.GetInteger(fv, "waitAtStartUnion"); END; IF Text.Equal(e, "stopAtFoundFirst") THEN NARROW(arg, T).eventDataRec.stopAtFoundFirst := FormsVBT.GetBoolean(fv, "stopAtFoundFirst"); END; IF Text.Equal(e, "waitAtFoundFirst") THEN NARROW(arg, T).eventDataRec.waitAtFoundFirst := FormsVBT.GetInteger(fv, "waitAtFoundFirst"); END; IF Text.Equal(e, "stopAtCompareRanks") THEN NARROW(arg, T).eventDataRec.stopAtCompareRanks := FormsVBT.GetBoolean(fv, "stopAtCompareRanks"); END; IF Text.Equal(e, "waitAtCompareRanks") THEN NARROW(arg, T).eventDataRec.waitAtCompareRanks := FormsVBT.GetInteger(fv, "waitAtCompareRanks"); END; IF Text.Equal(e, "stopAtUnite") THEN NARROW(arg, T).eventDataRec.stopAtUnite := FormsVBT.GetBoolean(fv, "stopAtUnite"); END; IF Text.Equal(e, "waitAtUnite") THEN NARROW(arg, T).eventDataRec.waitAtUnite := FormsVBT.GetInteger(fv, "waitAtUnite"); END; IF Text.Equal(e, "stopAtEndUnion") THEN NARROW(arg, T).eventDataRec.stopAtEndUnion := FormsVBT.GetBoolean(fv, "stopAtEndUnion"); END; IF Text.Equal(e, "waitAtEndUnion") THEN NARROW(arg, T).eventDataRec.waitAtEndUnion := FormsVBT.GetInteger(fv, "waitAtEndUnion"); END; END UnionFindDoIt; PROCEDUREUnionFindRefreshCts ( <*UNUSED*> fv : FormsVBT.T; <*UNUSED*> e : TEXT; arg : REFANY; <*UNUSED*> t : VBT.TimeStamp) = <* LL = VBT.mu *> BEGIN NARROW(arg, T).updateEventCounts(FALSE); END UnionFindRefreshCts; PROCEDUREFromFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN alg.stopatCodeEvents := FormsVBT.GetBoolean(fv, "stopatCodeEvents"); alg.waitatCodeEvents := FormsVBT.GetInteger(fv, "waitatCodeEvents"); alg.eventDataRec.stopAtSetup := FormsVBT.GetBoolean(fv, "stopAtSetup"); alg.eventDataRec.waitAtSetup := FormsVBT.GetInteger(fv, "waitAtSetup"); alg.eventDataRec.stopAtNewSet := FormsVBT.GetBoolean(fv, "stopAtNewSet"); alg.eventDataRec.waitAtNewSet := FormsVBT.GetInteger(fv, "waitAtNewSet"); alg.eventDataRec.stopAtFinishedSets := FormsVBT.GetBoolean(fv, "stopAtFinishedSets"); alg.eventDataRec.waitAtFinishedSets := FormsVBT.GetInteger(fv, "waitAtFinishedSets"); alg.eventDataRec.stopAtStartFind := FormsVBT.GetBoolean(fv, "stopAtStartFind"); alg.eventDataRec.waitAtStartFind := FormsVBT.GetInteger(fv, "waitAtStartFind"); alg.eventDataRec.stopAtEndFind := FormsVBT.GetBoolean(fv, "stopAtEndFind"); alg.eventDataRec.waitAtEndFind := FormsVBT.GetInteger(fv, "waitAtEndFind"); alg.eventDataRec.stopAtStartDoFind := FormsVBT.GetBoolean(fv, "stopAtStartDoFind"); alg.eventDataRec.waitAtStartDoFind := FormsVBT.GetInteger(fv, "waitAtStartDoFind"); alg.eventDataRec.stopAtStepUp := FormsVBT.GetBoolean(fv, "stopAtStepUp"); alg.eventDataRec.waitAtStepUp := FormsVBT.GetInteger(fv, "waitAtStepUp"); alg.eventDataRec.stopAtFound := FormsVBT.GetBoolean(fv, "stopAtFound"); alg.eventDataRec.waitAtFound := FormsVBT.GetInteger(fv, "waitAtFound"); alg.eventDataRec.stopAtStepDown := FormsVBT.GetBoolean(fv, "stopAtStepDown"); alg.eventDataRec.waitAtStepDown := FormsVBT.GetInteger(fv, "waitAtStepDown"); alg.eventDataRec.stopAtChangeParent := FormsVBT.GetBoolean(fv, "stopAtChangeParent"); alg.eventDataRec.waitAtChangeParent := FormsVBT.GetInteger(fv, "waitAtChangeParent"); alg.eventDataRec.stopAtEndDoFind := FormsVBT.GetBoolean(fv, "stopAtEndDoFind"); alg.eventDataRec.waitAtEndDoFind := FormsVBT.GetInteger(fv, "waitAtEndDoFind"); alg.eventDataRec.stopAtStartUnion := FormsVBT.GetBoolean(fv, "stopAtStartUnion"); alg.eventDataRec.waitAtStartUnion := FormsVBT.GetInteger(fv, "waitAtStartUnion"); alg.eventDataRec.stopAtFoundFirst := FormsVBT.GetBoolean(fv, "stopAtFoundFirst"); alg.eventDataRec.waitAtFoundFirst := FormsVBT.GetInteger(fv, "waitAtFoundFirst"); alg.eventDataRec.stopAtCompareRanks := FormsVBT.GetBoolean(fv, "stopAtCompareRanks"); alg.eventDataRec.waitAtCompareRanks := FormsVBT.GetInteger(fv, "waitAtCompareRanks"); alg.eventDataRec.stopAtUnite := FormsVBT.GetBoolean(fv, "stopAtUnite"); alg.eventDataRec.waitAtUnite := FormsVBT.GetInteger(fv, "waitAtUnite"); alg.eventDataRec.stopAtEndUnion := FormsVBT.GetBoolean(fv, "stopAtEndUnion"); alg.eventDataRec.waitAtEndUnion := FormsVBT.GetInteger(fv, "waitAtEndUnion"); 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, "stopAtSetup", alg.eventDataRec.stopAtSetup); FormsVBT.PutInteger(fv, "waitAtSetup", alg.eventDataRec.waitAtSetup); FormsVBT.PutBoolean(fv, "stopAtNewSet", alg.eventDataRec.stopAtNewSet); FormsVBT.PutInteger(fv, "waitAtNewSet", alg.eventDataRec.waitAtNewSet); FormsVBT.PutBoolean(fv, "stopAtFinishedSets", alg.eventDataRec.stopAtFinishedSets); FormsVBT.PutInteger(fv, "waitAtFinishedSets", alg.eventDataRec.waitAtFinishedSets); FormsVBT.PutBoolean(fv, "stopAtStartFind", alg.eventDataRec.stopAtStartFind); FormsVBT.PutInteger(fv, "waitAtStartFind", alg.eventDataRec.waitAtStartFind); FormsVBT.PutBoolean(fv, "stopAtEndFind", alg.eventDataRec.stopAtEndFind); FormsVBT.PutInteger(fv, "waitAtEndFind", alg.eventDataRec.waitAtEndFind); FormsVBT.PutBoolean(fv, "stopAtStartDoFind", alg.eventDataRec.stopAtStartDoFind); FormsVBT.PutInteger(fv, "waitAtStartDoFind", alg.eventDataRec.waitAtStartDoFind); FormsVBT.PutBoolean(fv, "stopAtStepUp", alg.eventDataRec.stopAtStepUp); FormsVBT.PutInteger(fv, "waitAtStepUp", alg.eventDataRec.waitAtStepUp); FormsVBT.PutBoolean(fv, "stopAtFound", alg.eventDataRec.stopAtFound); FormsVBT.PutInteger(fv, "waitAtFound", alg.eventDataRec.waitAtFound); FormsVBT.PutBoolean(fv, "stopAtStepDown", alg.eventDataRec.stopAtStepDown); FormsVBT.PutInteger(fv, "waitAtStepDown", alg.eventDataRec.waitAtStepDown); FormsVBT.PutBoolean(fv, "stopAtChangeParent", alg.eventDataRec.stopAtChangeParent); FormsVBT.PutInteger(fv, "waitAtChangeParent", alg.eventDataRec.waitAtChangeParent); FormsVBT.PutBoolean(fv, "stopAtEndDoFind", alg.eventDataRec.stopAtEndDoFind); FormsVBT.PutInteger(fv, "waitAtEndDoFind", alg.eventDataRec.waitAtEndDoFind); FormsVBT.PutBoolean(fv, "stopAtStartUnion", alg.eventDataRec.stopAtStartUnion); FormsVBT.PutInteger(fv, "waitAtStartUnion", alg.eventDataRec.waitAtStartUnion); FormsVBT.PutBoolean(fv, "stopAtFoundFirst", alg.eventDataRec.stopAtFoundFirst); FormsVBT.PutInteger(fv, "waitAtFoundFirst", alg.eventDataRec.waitAtFoundFirst); FormsVBT.PutBoolean(fv, "stopAtCompareRanks", alg.eventDataRec.stopAtCompareRanks); FormsVBT.PutInteger(fv, "waitAtCompareRanks", alg.eventDataRec.waitAtCompareRanks); FormsVBT.PutBoolean(fv, "stopAtUnite", alg.eventDataRec.stopAtUnite); FormsVBT.PutInteger(fv, "waitAtUnite", alg.eventDataRec.waitAtUnite); FormsVBT.PutBoolean(fv, "stopAtEndUnion", alg.eventDataRec.stopAtEndUnion); FormsVBT.PutInteger(fv, "waitAtEndUnion", alg.eventDataRec.waitAtEndUnion); CountsToFV (fv, alg); END ToFV; PROCEDURECountsToFV (fv : FormsVBT.T; alg: T) = <* LL = VBT.mu *> BEGIN FormsVBT.PutText(fv, "ctOfSetup", Fmt.Int(alg.eventDataRec.ctOfSetup)); FormsVBT.PutText(fv, "ctOfNewSet", Fmt.Int(alg.eventDataRec.ctOfNewSet)); FormsVBT.PutText(fv, "ctOfFinishedSets", Fmt.Int(alg.eventDataRec.ctOfFinishedSets)); FormsVBT.PutText(fv, "ctOfStartFind", Fmt.Int(alg.eventDataRec.ctOfStartFind)); FormsVBT.PutText(fv, "ctOfEndFind", Fmt.Int(alg.eventDataRec.ctOfEndFind)); FormsVBT.PutText(fv, "ctOfStartDoFind", Fmt.Int(alg.eventDataRec.ctOfStartDoFind)); FormsVBT.PutText(fv, "ctOfStepUp", Fmt.Int(alg.eventDataRec.ctOfStepUp)); FormsVBT.PutText(fv, "ctOfFound", Fmt.Int(alg.eventDataRec.ctOfFound)); FormsVBT.PutText(fv, "ctOfStepDown", Fmt.Int(alg.eventDataRec.ctOfStepDown)); FormsVBT.PutText(fv, "ctOfChangeParent", Fmt.Int(alg.eventDataRec.ctOfChangeParent)); FormsVBT.PutText(fv, "ctOfEndDoFind", Fmt.Int(alg.eventDataRec.ctOfEndDoFind)); FormsVBT.PutText(fv, "ctOfStartUnion", Fmt.Int(alg.eventDataRec.ctOfStartUnion)); FormsVBT.PutText(fv, "ctOfFoundFirst", Fmt.Int(alg.eventDataRec.ctOfFoundFirst)); FormsVBT.PutText(fv, "ctOfCompareRanks", Fmt.Int(alg.eventDataRec.ctOfCompareRanks)); FormsVBT.PutText(fv, "ctOfUnite", Fmt.Int(alg.eventDataRec.ctOfUnite)); FormsVBT.PutText(fv, "ctOfEndUnion", Fmt.Int(alg.eventDataRec.ctOfEndUnion)); END CountsToFV; PROCEDUREUnionFindDefaultUpdateCts ( v: T; reset: BOOLEAN) = <* LL = VBT.mu *> BEGIN IF reset THEN v.eventDataRec.ctOfSetup := 0; v.eventDataRec.ctOfNewSet := 0; v.eventDataRec.ctOfFinishedSets := 0; v.eventDataRec.ctOfStartFind := 0; v.eventDataRec.ctOfEndFind := 0; v.eventDataRec.ctOfStartDoFind := 0; v.eventDataRec.ctOfStepUp := 0; v.eventDataRec.ctOfFound := 0; v.eventDataRec.ctOfStepDown := 0; v.eventDataRec.ctOfChangeParent := 0; v.eventDataRec.ctOfEndDoFind := 0; v.eventDataRec.ctOfStartUnion := 0; v.eventDataRec.ctOfFoundFirst := 0; v.eventDataRec.ctOfCompareRanks := 0; v.eventDataRec.ctOfUnite := 0; v.eventDataRec.ctOfEndUnion := 0; END; CountsToFV (v.eventData, v); END UnionFindDefaultUpdateCts; PROCEDUREUnionFindDefaultSnapshot (v: T; wr: Wr.T) RAISES {ZeusClass.Error} = <* LL = VBT.mu *> BEGIN TRY Wr.PutChar(wr, '(') EXCEPT ELSE RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultSnapshot write error"); END; IF v.eventData = NIL THEN RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultSnapshot: " & "eventData not set!"); END; TRY v.eventData.snapshot(wr) EXCEPT FormsVBT.Error (msg) => RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultSnapshot FV error: " & msg); ELSE RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultSnapshot error"); END; Algorithm.T.snapshot(v, wr); TRY Wr.PutChar(wr, ')') EXCEPT ELSE RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultSnapshot write error"); END; END UnionFindDefaultSnapshot; PROCEDUREUnionFindDefaultRestore (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( "UnionFindAlgClass.UnionFindDefaultRestore read error"); END; IF v.eventData = NIL THEN RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultRestore: " & "eventData not set!"); END; TRY v.eventData.restore(rd); v.updateEventCounts(FALSE); FromFV(v.eventData, v); EXCEPT ELSE RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultRestore error"); END; Algorithm.T.restore(v, rd); IF NOT ZeusUtil.EatChar(rd, ')') THEN RAISE ZeusClass.Error( "UnionFindAlgClass.UnionFindDefaultRestore read error"); END; END UnionFindDefaultRestore; BEGIN END UnionFindAlgClass.