MODULE ZoomBundle;
Generated by m3bundle; see its manpage.
IMPORT Bundle, BundleRep, Text;
IMPORT Thread, Wr, TextWr;
TYPE T = Bundle.T OBJECT OVERRIDES
get := LookUp;
getNames := GetNames;
END;
TYPE Texts = REF ARRAY OF TEXT;
VAR
bundle: T := NIL;
names : Texts := NIL;
PROCEDURE Get(): Bundle.T =
BEGIN
IF (bundle = NIL) THEN bundle := NEW (T) END;
RETURN bundle;
END Get;
PROCEDURE GetNames (<*UNUSED*> self: T): Texts =
BEGIN
IF names = NIL THEN
names := NEW (Texts, NUMBER (Names));
names^ := Names;
END;
RETURN names;
END GetNames;
PROCEDURE LookUp (<*UNUSED*> self: T; element: TEXT): TEXT =
BEGIN
FOR i := 0 TO LAST (Names)-1 DO
IF Text.Equal (Names[i], element) THEN
IF Elements[i] = NIL THEN Elements[i] := GetElt (i) END;
RETURN Elements[i];
END;
END;
RETURN NIL;
END LookUp;
CONST Names = ARRAY [0..24] OF TEXT {
"AlgClass.m3",
"IE3D.i3",
"GEFView.m3",
"JunoView.m3",
"TranscriptView.m3",
"DataView.m3",
"ViewClass3D.i3",
"IE.m3",
"ObliqView.m3",
"AlgClass.i3",
"ViewClass.m3",
"GEFView.i3",
"JunoView.i3",
"TranscriptView.i3",
"Obliq3DView.m3",
"DataView.i3",
"IE3D.m3",
"IE.i3",
"ObliqView.i3",
"ViewClass.i3",
"EventData.fv",
"ViewClass3D.m3",
"TranscriptView.fv",
"Obliq3DView.i3",
NIL
};
VAR Elements := ARRAY [0..24] OF TEXT {
NIL (* E0 .. E0_2 *),
E1,
NIL (* E2 .. E2_0 *),
NIL (* E3 .. E3_1 *),
NIL (* E4 .. E4_1 *),
E5,
E6,
NIL (* E7 .. E7_0 *),
NIL (* E8 .. E8_2 *),
E9,
E10,
E11,
E12,
E13,
NIL (* E14 .. E14_1 *),
E15,
NIL (* E16 .. E16_1 *),
E17,
E18,
E19,
E20,
E21,
E22,
E23,
NIL
};
PROCEDURE GetElt (n: INTEGER): TEXT =
<*FATAL Thread.Alerted, Wr.Failure *>
VAR wr := TextWr.New ();
BEGIN
CASE n OF
| 0 =>
Wr.PutText (wr, E0);
Wr.PutText (wr, E0_0);
Wr.PutText (wr, E0_1);
Wr.PutText (wr, E0_2);
| 2 =>
Wr.PutText (wr, E2);
Wr.PutText (wr, E2_0);
| 3 =>
Wr.PutText (wr, E3);
Wr.PutText (wr, E3_0);
Wr.PutText (wr, E3_1);
| 4 =>
Wr.PutText (wr, E4);
Wr.PutText (wr, E4_0);
Wr.PutText (wr, E4_1);
| 7 =>
Wr.PutText (wr, E7);
Wr.PutText (wr, E7_0);
| 8 =>
Wr.PutText (wr, E8);
Wr.PutText (wr, E8_0);
Wr.PutText (wr, E8_1);
Wr.PutText (wr, E8_2);
| 14 =>
Wr.PutText (wr, E14);
Wr.PutText (wr, E14_0);
Wr.PutText (wr, E14_1);
| 16 =>
Wr.PutText (wr, E16);
Wr.PutText (wr, E16_0);
Wr.PutText (wr, E16_1);
ELSE (*skip*)
END;
RETURN TextWr.ToText (wr);
END GetElt;
CONST E0 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:48:22 PST 1995 by kalsow *)\n(* modified on Wed Feb 17 16:4"
& "6:18 PST 1993 by johnh *)\n(* modified on Thu Sep 24 10:59:20 PD"
& "T 1992 by mhb *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\nMODU"
& "LE #(_ALGNAME_)AlgClass;\n\n$Algorithm\n$Fmt\n$FormsVBT\n$Rd\n$Text\n$V"
& "BT\n$Wr\n$ZeusClass\n$ZeusPanel\n$ZeusUtil\n#(_IMPORTS_)\n\n<* PRAGMA L"
& "L *>\n\n(* Fix any FormsVBT errors; don\'t handle exceptions for them. "
& "*)\n<* FATAL FormsVBT.Error, FormsVBT.Unimplemented *>\n\n\nREVEAL\n T"
& " = Public BRANDED OBJECT\n OVERRIDES\n <* LL = VBT.mu *>\n "
& " init := #(_ALGNAME_)DefaultInit;\n snapshot := #(_ALGNAME"
& "_)DefaultSnapshot;\n restore := #(_ALGNAME_)DefaultRestore;\n "
& " updateEventCounts := #(_ALGNAME_)DefaultUpdateCts;\n#{_FEEDBACK\n "
& " fe#(_EVENT_) := #(_EVENT_);\n#}\n END;\n\nPROCEDURE #(_ALGN"
& "AME_)DefaultInit (v: T): Algorithm.T = \n <* LL = VBT.mu *>\n PROCEDU"
& "RE Attach (id: TEXT; proc: FormsVBT.Proc) =\n BEGIN\n FormsVBT."
& "AttachProc(v.eventData, id, proc, v);\n END Attach;\n BEGIN\n v."
& "eventData := ZeusPanel.NewForm(\"#(_ALGNAME_)EventData.fv\");\n Atta"
& "ch(\"stopatCodeEvents\", #(_ALGNAME_)DoIt);\n Attach(\"waitatCodeEve"
& "nts\", #(_ALGNAME_)DoIt);\n Attach(\"eventCounts\", #(_ALGNAME_)Refr"
& "eshCts);\n#{_OUTPUT\n Attach(\"stopAt#(_EVENT_)\", #(_ALGNAME_)DoIt)"
& ";\n Attach(\"waitAt#(_EVENT_)\", #(_ALGNAME_)DoIt);\n#}\n FromFV "
& "(v.eventData, v); (* Get FV and internal data in sync *)\n RETURN"
& " Algorithm.T.init(v);\n END #(_ALGNAME_)DefaultInit;\n\nPROCEDURE #(_A"
& "LGNAME_)DoIt ( ";
CONST E0_0 =
" fv : FormsVBT.T;\n e : TEXT;\n "
& " arg: REFANY;\n <*UNUSED*> t : VBT.Ti"
& "meStamp) =\n <* LL = VBT.mu *>\n BEGIN \n IF Text.Equal(e, \"stopa"
& "tCodeEvents\") THEN\n NARROW(arg, T).stopatCodeEvents :=\n "
& " FormsVBT.GetBoolean(fv, \"stopatCodeEvents\");\n END;\n IF Text"
& ".Equal(e, \"waitatCodeEvents\") THEN\n NARROW(arg, T).waitatCodeEv"
& "ents :=\n FormsVBT.GetInteger(fv, \"waitatCodeEvents\");\n "
& "END;\n#{_OUTPUT\n IF Text.Equal(e, \"stopAt#(_EVENT_)\") THEN\n "
& " NARROW(arg, T).eventDataRec.stopAt#(_EVENT_) :=\n FormsVBT.Ge"
& "tBoolean(fv, \"stopAt#(_EVENT_)\");\n END;\n IF Text.Equal(e, \"w"
& "aitAt#(_EVENT_)\") THEN\n NARROW(arg, T).eventDataRec.waitAt#(_EVE"
& "NT_) :=\n FormsVBT.GetInteger(fv, \"waitAt#(_EVENT_)\");\n "
& "END;\n#}\n END #(_ALGNAME_)DoIt;\n\nPROCEDURE #(_ALGNAME_)RefreshCts ("
& "\n <*UNUSED*> fv : FormsVBT.T;\n <*UNUSE"
& "D*> e : TEXT;\n arg : REFANY;\n "
& " <*UNUSED*> t : VBT.TimeStamp) =\n <* LL = VBT.mu *>\n BEGIN\n "
& " NARROW(arg, T).updateEventCounts(FALSE);\n END #(_ALGNAME_)RefreshCt"
& "s;\n\nPROCEDURE FromFV (fv : FormsVBT.T; alg: T) =\n <* LL = VBT.mu *>"
& "\n BEGIN \n alg.stopatCodeEvents :=\n FormsVBT.GetBoolean(fv"
& ", \"stopatCodeEvents\");\n alg.waitatCodeEvents :=\n FormsVBT"
& ".GetInteger(fv, \"waitatCodeEvents\");\n#{_OUTPUT\n alg.eventDataRec"
& ".stopAt#(_EVENT_) :=\n FormsVBT.GetBoolean(fv, \"stopAt#(_EVENT_"
& ")\");\n alg.eventDataRec.waitAt#(_EVENT_) :=\n FormsVBT.GetIn"
& "teger(fv, \"waitAt#(_EVENT_)\");\n#}\n END FromFV;\n\n<*UNUSED*> \nPRO"
& "CEDURE ToFV (fv : FormsVBT.T; alg: T) =\n <* LL = VBT.mu *>\n BEGIN \n"
& " FormsVBT.PutBoolean(fv, \"stopatCodeEvents\", alg.stopatCodeEvents)"
& ";\n FormsVBT.PutInteger(fv, \"waitatCodeEvents\", alg.waitatCodeEven"
& "ts);\n#{_OUTPUT\n FormsVBT.PutBoolean(fv, \"stopAt#(_EVENT_)\", \n "
& " alg.eventDataRec.stopAt#(_EVENT_));\n FormsVBT"
& ".PutInteger(fv, \"waitAt#(_EVEN";
CONST E0_1 =
"T_)\", \n alg.eventDataRec.waitAt#(_EVENT_));\n#"
& "}\n CountsToFV (fv, alg);\n END ToFV;\n\nPROCEDURE CountsToFV (fv :"
& " FormsVBT.T; alg: T) =\n <* LL = VBT.mu *>\n BEGIN \n#{_OUTPUT\n F"
& "ormsVBT.PutText(fv, \"ctOf#(_EVENT_)\", \n Fmt.I"
& "nt(alg.eventDataRec.ctOf#(_EVENT_)));\n#}\n END CountsToFV;\n\nPROCEDU"
& "RE #(_ALGNAME_)DefaultUpdateCts ( v: T; reset: BOOLEAN) =\n <* LL = VB"
& "T.mu *>\n BEGIN\n IF reset THEN\n#{_OUTPUT\n v.eventDataRec.ct"
& "Of#(_EVENT_) := 0;\n#}\n END;\n CountsToFV (v.eventData, v);\n E"
& "ND #(_ALGNAME_)DefaultUpdateCts;\n\n\nPROCEDURE #(_ALGNAME_)DefaultSnap"
& "shot (v: T; wr: Wr.T) \n RAISES {ZeusClass.Error} =\n <* LL = VBT.mu "
& "*>\n BEGIN\n TRY\n Wr.PutChar(wr, \'(\')\n EXCEPT\n ELSE"
& "\n RAISE ZeusClass.Error(\n \"#(_ALGNAME_)AlgClass.#(_ALG"
& "NAME_)DefaultSnapshot write error\");\n END;\n IF v.eventData = N"
& "IL THEN\n RAISE ZeusClass.Error(\n \"#(_ALGNAME_)AlgClass"
& ".#(_ALGNAME_)DefaultSnapshot: \" & \n \"eventData not set!\");"
& "\n END;\n TRY\n v.eventData.snapshot(wr)\n EXCEPT\n "
& "FormsVBT.Error (msg) =>\n RAISE ZeusClass.Error(\n \"#("
& "_ALGNAME_)AlgClass.#(_ALGNAME_)DefaultSnapshot FV error: \" \n "
& " & msg);\n ELSE\n RAISE ZeusClass.Error(\n \"#(_ALGNAME_"
& ")AlgClass.#(_ALGNAME_)DefaultSnapshot error\");\n END;\n Algorith"
& "m.T.snapshot(v, wr);\n TRY\n Wr.PutChar(wr, \')\')\n EXCEPT\n"
& " ELSE\n RAISE ZeusClass.Error(\n \"#(_ALGNAME_)AlgClas"
& "s.#(_ALGNAME_)DefaultSnapshot write error\");\n END;\n END #(_ALGNA"
& "ME_)DefaultSnapshot;\n\n\nPROCEDURE #(_ALGNAME_)DefaultRestore (v: T; r"
& "d: Rd.T) \n RAISES {ZeusClass.Error} =\n <* LL = VBT.mu *>\n BEGIN\n"
& " IF rd = NIL THEN RETURN END;\n IF NOT ZeusUtil.EatChar(rd, \'(\'"
& ") THEN\n RAISE ZeusClass.Error(\n \"#(_ALGNAME_)AlgClass."
& "#(_ALGNAME_)DefaultRestore read error\");\n END;\n IF v.eventData"
& " = NIL THEN\n RAISE ZeusClass.Error(\n \"#(_ALGNAME_)AlgC"
& "lass.#(_ALGNAME_)DefaultRestore: \" & \n ";
CONST E0_2 =
" \"eventData not set!\");\n END;\n TRY\n v.eventData."
& "restore(rd);\n v.updateEventCounts(FALSE);\n FromFV(v.eventDa"
& "ta, v);\n EXCEPT\n ELSE\n RAISE ZeusClass.Error(\n "
& "\"#(_ALGNAME_)AlgClass.#(_ALGNAME_)DefaultRestore error\");\n END;\n"
& " Algorithm.T.restore(v, rd);\n IF NOT ZeusUtil.EatChar(rd, \')\')"
& " THEN\n RAISE ZeusClass.Error(\n \"#(_ALGNAME_)AlgClass.#"
& "(_ALGNAME_)DefaultRestore read error\");\n END;\n END #(_ALGNAME_)D"
& "efaultRestore;\n\n#{_FEEDBACK\nPROCEDURE #(_EVENT_) (self: T\n#{\n ;"
& " <*UNUSED*> #(_ARGMODE_)#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n <* LL = "
& "VBT.mu *>\n BEGIN\n self.evtHandled := FALSE;\n END #(_EVENT_);\n\n"
& "#}\n\nBEGIN\nEND #(_ALGNAME_)AlgClass.\n";
CONST E1 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:51:16 PST 1995 by kalsow *)\n(* Last modified on Wed Feb 17 16:4"
& "6:35 PST 1993 by johnh *)\n\n(***************************************"
& "******************************\n|* NOTE: This file is generated automa"
& "tically from the event \n|* definition file #(_ALGNAME_).evt.\n|"
& "*********************************************************************)\n"
& "\n<* PRAGMA LL *>\n\nINTERFACE #(_ALGNAME_)IE;\n\n$Algorithm\n$Thread\n"
& "$View\n#(_IMPORTS_)\n\n(* call the following to generate an event: *)\n"
& "\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (\n initiator: Algorithm.T; \n "
& " #(_ARGSTR_) \n ) RAISES {Thread.Alerted};\n <* LL = {} *>\n\n"
& "#}\n#{_FEEDBACK\nPROCEDURE #(_EVENT_) (\n initiator: View.T; \n "
& " #(_ARGSTR_) \n ) RAISES {Thread.Alerted};\n <* LL = VBT.mu *>\n"
& "\n#}\n#{_UPDATE\nPROCEDURE #(_EVENT_) (\n initiator: Algorithm.T; "
& "\n #(_ARGSTR_) \n ) RAISES {Thread.Alerted};\n <* LL = VBT.m"
& "u *>\n\n#}\n\nEND #(_ALGNAME_)IE.\n";
CONST E2 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 09:01:09 PST 1995 by kalsow *)\n(* Last modified on Sat Jul 17 14:2"
& "8:37 PDT 1993 by mhb *)\n(* modified on Thu Jul 15 14:12:41 PD"
& "T 1993 by steveg *)\n(* modified on Tue Feb 16 16:31:40 PST 1993 "
& "by johnh *)\n\n(*****************************************************"
& "****************\n|* NOTE: This file is generated automatically from t"
& "he event \n|* definition file #(_ALGNAME_).evt.\n|**************"
& "*******************************************************)\n\n<* PRAGMA L"
& "L *>\n\nMODULE #(_ALGNAME_)#(_VIEWNAME_)GEFView;\n\n$Filter\n$Fmt\n$GEF"
& "\n$GEFError\n$GEFViewClass\n$GraphVBT\n$Rd\n$Rsrc\n$SLisp\n$Thread\n$VB"
& "T\n$View\n$ViewClass\n$ZeusClass\n$ZeusPanel\n$#(_ALGNAME_)AlgClass\n$#"
& "(_ALGNAME_)ViewClass\n#(_IMPORTS_)\n\nTYPE\n T = #(_ALGNAME_)ViewClass"
& ".T BRANDED OBJECT\n name := \"#(_VIEWNAME_).gef\"; \n OVERR"
& "IDES\n <* LL = VBT.mu *>\n install := Install;\n "
& "startrun := Startrun;\n <* LL = 0 *>\n#{_OUTPUT\n oe#(_EV"
& "ENT_) := #(_EVENT_);\n#}\n END;\n\nPROCEDURE Install (v: T) =\n <"
& "* FATAL SLisp.Error *>\n VAR\n interp := NEW(GEFViewClass.Interp).i"
& "nit();\n gef := NEW(GEF.T).init(interp);\n BEGIN\n EVAL Filte"
& "r.Replace (v, gef);\n #(_ALGNAME_)ViewClass.T.install(v)\n END Inst"
& "all;\n\nPROCEDURE Startrun(v: T) =\n BEGIN\n TRY\n GEF.InitFro"
& "mRsrc(Filter.Child(v), v.name, ZeusPanel.GetPath());\n EXCEPT\n |"
& " Thread.Alerted =>\n | Rsrc.NotFound =>\n ZeusPanel.ReportErr"
& "or(\n Fmt.F(\"GEF View error: Could not find file: %s\", v.nam"
& "e));\n | Rd.Failure =>\n ZeusPanel.ReportError(\n Fm"
& "t.F(\"GEF View error finding or parsing file: %s\", v.name));\n | GE"
& "FError.T (msg) =>\n ZeusPanel.ReportError(\n Fmt.F(\"GE"
& "F View error (%s) pars";
CONST E2_0 =
"ing file: %s\", msg, v.name));\n END;\n END Startrun;\n\nPROCEDURE "
& "New (): View.T =\n VAR g := NEW(GraphVBT.T).init(); \n BEGIN\n RET"
& "URN NEW(T).init(g)\n END New;\n\n(* event handling methods: *)\n\n#{_O"
& "UTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_ARGSTR_)) =\n <* LL = {} *>\n"
& " VAR gef: GEF.T := Filter.Child(view);\n BEGIN\n TRY\n GEF.In"
& "vokeEvent (gef, \"#(_EVENT_)\", GEF.EventData(\n#{\n #(_ARGFMT_)(#"
& "(_ARGNAME_))\n#|\n ,\n#}\n ));\n gef.redisplay();\n "
& " gef.animate(0.0, 1.0);\n EXCEPT\n | Thread.Alerted =>\n | GEF"
& "Error.T (msg) =>\n ZeusPanel.ReportError(\n Fmt.F(\"GEF"
& " View error (%s) parsing file: %s\", msg, view.name));\n END;\n END"
& " #(_EVENT_);\n\n#}\n\nBEGIN\n ZeusPanel.RegisterView(New, \"#(_VIEWNAM"
& "E_).gef\", \"#(_ALGNAME_)\"); \nEND #(_ALGNAME_)#(_VIEWNAME_)GEFView.\n"
;
CONST E3 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:59:04 PST 1995 by kalsow *)\n(* modified on Mon Jun 6 03:1"
& "6:18 PDT 1994 by mhb *)\n(* modified on Sun Jun 5 16:47:33 PD"
& "T 1994 by heydon *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\n<* P"
& "RAGMA LL *>\n\nMODULE #(_ALGNAME_)#(_VIEWNAME_)JunoView;\n\n$Atom\n$Ato"
& "mList\n$Fmt\n$NetObj\n$Thread\n$VBT\n$Wr\n$Rd\n$ZFmt\n$ZeusPanel\n$Remo"
& "teView\n$View\n$#(_ALGNAME_)ViewClass\n#(_IMPORTS_)\n\nTYPE\n T = #(_A"
& "LGNAME_)ViewClass.T BRANDED OBJECT\n jz: RemoteView.T := NIL;\n"
& " OVERRIDES\n <* LL.sup < VBT.mu *>\n startrun := Sta"
& "rtrun;\n endrun := Endrun;\n <* LL.sup < VBT.mu *>\n#{_OU"
& "TPUT\n oe#(_EVENT_) := #(_EVENT_);\n#}\n <* LL.sup = VBT."
& "mu *>\n#{_UPDATE\n ue#(_EVENT_) := #(_EVENT_);\n#}\n <* L"
& "L.sup = VBT.mu *>\n install := NoargNoop;\n delete := Noa"
& "rgNoop;\n snapshot := SnapshotNoop;\n restore := RestoreN"
& "oop;\n reactivity := ReactivityNoop\n END;\n\n(* STARTRUN a"
& "nd ENDRUN methods: *)\n\nPROCEDURE Startrun(view: T) =\n <* LL.sup < V"
& "BT.mu *>\n BEGIN\n IF view.jz = NIL THEN RETURN END;\n TRY view."
& "jz.startrun() EXCEPT\n NetObj.Error (err) => ZeusPanel.ReportError"
& "(NetObjError(err))\n | Thread.Alerted => ZeusPanel.ReportError(\"Net"
& "Obj call alerted\")\n END\n END Startrun;\n\nPROCEDURE Endrun(view:"
& " T) =\n <* LL.sup < VBT.mu *>\n BEGIN\n IF view.jz = NIL THEN RETU"
& "RN END;\n TRY view.jz.endrun() EXCEPT\n NetObj.Error (err) => Z"
& "eusPanel.ReportError(NetObjError(err))\n | Thread.Alerted => ZeusPan"
& "el.ReportError(\"";
CONST E3_0 =
"NetObj call alerted\")\n END\n END Endrun;\n\n(* OUTPUT and UPDATE "
& "event handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T;"
& " #(_ARGSTR_)) =\n <* LL.sup < VBT.mu *>\n CONST EventName = \"#(_EVEN"
& "T_)\";\n VAR tfactor: REAL; BEGIN \n IF view.jz = NIL THEN RETURN E"
& "ND;\n LOCK VBT.mu DO\n tfactor := ZeusPanel.GetAnimationTime()\n"
& " END;\n TRY\n view.jz.event (tfactor, EventName, \"(\"\n#{\n"
& " & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n & \" \"\n#}\n & \")\""
& ")\n EXCEPT\n RemoteView.Error (txt) => ReportError(EventName, t"
& "xt)\n | NetObj.Error (err) => ReportError(EventName, NetObjError(err"
& "))\n | Thread.Alerted => ReportError(EventName, \"NetObj call alerte"
& "d\")\n END\n END #(_EVENT_);\n\n#}\n#{_UPDATE\nPROCEDURE #(_EVENT_)"
& " (view: T; #(_ARGSTR_)) =\n <* LL.sup = VBT.mu *>\n CONST EventName ="
& " \"#(_EVENT_)\";\n VAR tfactor: REAL; BEGIN \n IF view.jz = NIL THE"
& "N RETURN END;\n tfactor := ZeusPanel.GetAnimationTime();\n TRY\n "
& " view.jz.event (tfactor, EventName, \"(\"\n#{\n & #(_ARGFMT_)("
& "#(_ARGNAME_))\n#|\n & \" \"\n#}\n & \")\")\n EXCEPT\n "
& " RemoteView.Error (txt) => ReportError(EventName, txt)\n | NetObj.Er"
& "ror (err) => ReportError(EventName, NetObjError(err))\n | Thread.Ale"
& "rted => ReportError(EventName, \"NetObj call alerted\")\n END\n END"
& " #(_EVENT_);\n\n#}\nPROCEDURE NoargNoop(<*UNUSED*> v: T) =\n BEGIN END"
& " NoargNoop;\n\nPROCEDURE SnapshotNoop(<*UNUSED*> v: T; <*UNUSED*> wr: W"
& "r.T) =\n BEGIN END SnapshotNoop;\n\nPROCEDURE RestoreNoop(<*UNUSED*> v"
& ": T; <*UNUSED*> rd: Rd.T) =\n BEGIN END RestoreNoop;\n\nPROCEDURE Reac"
& "tivityNoop(<*UNUSED*> v: T; <*UNUSED*> on: BOOLEAN) =\n BEGIN END Reac"
& "tivityNoop;\n\nPROCEDURE New (): View.T =\n VAR\n res: T := NEW(T)."
& "init(NIL);\n jz: NetObj.T;\n errMsg: TEXT := NIL;\n BEGIN\n T"
& "RY\n jz := NetObj.Import(\"JunoZeus\");\n IF jz = NIL THEN\n "
& " \terrMsg := \"NetObj Error: Can\'t find JunoZeus object\"\n ELS"
& "IF NOT ISTYPE(jz, RemoteView.T) THEN\n \terrMsg := \"NetObj Error: T"
& "ype mismatch between Juno and Zeus\"\n ELSE";
CONST E3_1 =
"\n \tres.jz := jz;\n \tRETURN res\n END\n EXCEPT\n N"
& "etObj.Error (err) => errMsg := NetObjError(err)\n | Thread.Alerted ="
& "> errMsg := \"NetObj Import alerted\"\n END;\n ZeusPanel.Repo"
& "rtError(errMsg);\n RETURN NIL\n END New;\n\nPROCEDURE NetObjError(e"
& "rr: AtomList.T): TEXT =\n VAR res := \"NetObj Error: \"; BEGIN\n WH"
& "ILE err # NIL DO\n res := res & Atom.ToText(err.head);\n err "
& ":= err.tail;\n IF err # NIL THEN res := res & \"; \" END\n END;"
& "\n RETURN res\n END NetObjError;\n\nPROCEDURE ReportError(nm, msg: "
& "TEXT) =\n BEGIN\n ZeusPanel.ReportError(\"\\\"\" & nm & \"\\\" even"
& "t error: \" & msg)\n END ReportError;\n\nPROCEDURE RegisterView () =\n"
& " BEGIN \n ZeusPanel.RegisterView(New, \"#(_VIEWNAME_)\", \"#(_ALGNA"
& "ME_)\") \n END RegisterView;\n\nBEGIN\n RegisterView ();\nEND #(_AL"
& "GNAME_)#(_VIEWNAME_)JunoView.\n";
CONST E4 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:56:02 PST 1995 by kalsow *)\n(* modified on Mon Jun 6 03:1"
& "8:55 PDT 1994 by mhb *)\n(* modified on Tue Feb 16 16:31:40 PST "
& "1993 by johnh *)\n\n(**************************************************"
& "*******************\n|* NOTE: This file is generated automatically fro"
& "m the event \n|* definition file #(_ALGNAME_).evt.\n|***********"
& "**********************************************************)\n\n<* PRAGM"
& "A LL *>\n\nMODULE #(_ALGNAME_)TranscriptView;\n\n$ZFmt\n$Fmt\n$FormsVBT"
& "\n$Rd\n$Filter\n$TextEditVBT\n$TextPort\n$VBT\n$View\n$Wr\n$ZeusClass\n"
& "$ZeusPanel\n$#(_ALGNAME_)ViewClass\n#(_IMPORTS_)\n\n<* FATAL FormsVBT.E"
& "rror, FormsVBT.Unimplemented *>\n\nREVEAL\n T = Public BRANDED OBJECT\n"
& " fv: FormsVBT.T := NIL;\n te: TextEditVBT.T := NIL;\n OVERRIDES\n"
& " init := TViewInit;\n install := TViewInstall;\n dele"
& "te := TViewDelete;\n snapshot := TViewSnapshot;\n restore "
& " := TViewRestore;\n config := TViewConfig;\n reactivity := T"
& "ViewReactivity;\n startrun := TViewStartrun;\n endrun := TV"
& "iewEndrun;\n#{_OUTPUT\n oe#(_EVENT_) := #(_EVENT_);\n#}\n#{_UPDATE\n"
& " ue#(_EVENT_) := #(_EVENT_);\n#}\n END;\n\nPROCEDURE TViewInit (vie"
& "w: T): T =\n <* LL = VBT.mu *>\n BEGIN\n TViewZTrace (view, \"init"
& "\");\n RETURN #(_ALGNAME_)ViewClass.T.init (view, NIL);\n END TView"
& "Init;\n\nPROCEDURE Clear (<* UNUSED *> fv : FormsVBT.T;\n "
& " <* UNUSED *> name: TEXT;\n cl : REFAN"
& "Y;\n <* UNUSED *> time: VBT.TimeStamp) =\n BEGIN\n "
& "TextPort.SetText(NARROW(cl, T).te.tp, \"\")\n END Clear;\n\nPROCEDURE "
& "TViewInstall (view: T) =\n <* LL = VBT.mu *>\n BEGIN\n view.fv := "
& "ZeusPanel.NewForm(\"#(_ALGNAME_)TranscriptView.fv\");\n view.te := F"
& "ormsVBT.GetVBT(view.";
CONST E4_0 =
"fv, \"transcript\");\n TViewZTrace (view, \"install\");\n FormsVB"
& "T.AttachProc(view.fv, \"clear\", Clear, view);\n EVAL Filter.Replace"
& " (view, view.fv);\n #(_ALGNAME_)ViewClass.T.install (view);\n END T"
& "ViewInstall;\n\nPROCEDURE TViewDelete (view: T) =\n <* LL = VBT.mu *>\n"
& " BEGIN \n TViewZTrace (view, \"delete\");\n #(_ALGNAME_)ViewClas"
& "s.T.delete (view);\n END TViewDelete;\n\nPROCEDURE TViewSnapshot (vie"
& "w: T; wr: Wr.T) RAISES {ZeusClass.Error} =\n <* LL = VBT.mu *>\n BEGI"
& "N \n TViewZTrace (view, \"snapshot\");\n #(_ALGNAME_)ViewClass.T."
& "snapshot (view, wr);\n END TViewSnapshot;\n\nPROCEDURE TViewRestore ("
& "view: T; rd: Rd.T) RAISES {ZeusClass.Error} =\n <* LL = VBT.mu *>\n B"
& "EGIN \n TViewZTrace (view, \"restore\");\n #(_ALGNAME_)ViewClass."
& "T.restore (view, rd);\n END TViewRestore;\n\nPROCEDURE TViewConfig (\n"
& " view: T; \n state: ZeusClass.StateChange; \n o: ZeusClass.T) "
& "=\n <* LL = VBT.mu *>\n BEGIN \n TViewZTrace (view, \"config\");\n"
& " #(_ALGNAME_)ViewClass.T.config (view, state, o);\n END TViewConfi"
& "g;\n\nPROCEDURE TViewReactivity (view: T; <*UNUSED*> on: BOOLEAN) =\n "
& "<* LL = VBT.mu *>\n BEGIN\n TViewZTrace(view, \"reactivity\");\n "
& " #(_ALGNAME_)ViewClass.T.reactivity (view, TRUE);\n END TViewReactivit"
& "y;\n\nPROCEDURE TViewStartrun (view: T) =\n <* LL = {} *>\n BEGIN \n "
& " TViewZTrace (view, \"startrun\");\n #(_ALGNAME_)ViewClass.T.start"
& "run (view);\n END TViewStartrun;\n\nPROCEDURE TViewEndrun (view: T) ="
& "\n <* LL = {} *>\n BEGIN \n TViewZTrace (view, \"endrun\");\n #"
& "(_ALGNAME_)ViewClass.T.endrun (view);\n END TViewEndrun;\n\n\n(* event"
& " handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_A"
& "RGSTR_)) =\n <* LL = {} *>\n BEGIN \n LOCK VBT.mu DO\n IF Forms"
& "VBT.GetBoolean(view.fv, \"alg\") THEN\n IF NOT FormsVBT.GetBoolea"
& "n(view.fv, \"args\") THEN\n TViewTrace (view, \"#(_EVENT_) ..."
& "\")\n ELSE\n TViewTrace (view, \"#(_EVENT_) \" \n#{\n "
& " & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n & \" \"\n#}\n "
& " )\n END\n END\n END\n END #(_EVENT_";
CONST E4_1 =
");\n\n#}\n\n\n#{_UPDATE\nPROCEDURE #(_EVENT_) (view: T; #(_ARGSTR_)) =\n"
& " <* LL = VBT.mu *>\n BEGIN \n IF FormsVBT.GetBoolean(view.fv, \"al"
& "g\") THEN\n IF NOT FormsVBT.GetBoolean(view.fv, \"args\") THEN\n "
& " TViewTrace (view, \"#(_EVENT_) ...\")\n ELSE\n "
& "TViewTrace (view, \"#(_EVENT_) \" \n#{\n & #(_ARGFMT_)(#(_AR"
& "GNAME_))\n#|\n & \" \"\n#}\n )\n END\n EN"
& "D\n END #(_EVENT_);\n\n#}\n\n\nPROCEDURE TViewZTrace (view: T; t: TEXT"
& ") =\n BEGIN\n IF view.fv # NIL THEN\n IF FormsVBT.GetBoolean(v"
& "iew.fv, \"zeus\") THEN\n TextPort.PutText(view.te.tp, \"**zeus: "
& " \" & t & \"\\n\");\n TextPort.Normalize(view.te.tp, LAST(INTEGE"
& "R))\n END\n END\n END TViewZTrace;\n\nPROCEDURE TViewTrace (vi"
& "ew: T; t: TEXT) =\n BEGIN\n TextPort.PutText(view.te.tp, \"--event:"
& " \" & t & \"\\n\");\n TextPort.Normalize(view.te.tp, LAST(INTEGER))\n"
& " END TViewTrace;\n\n\nPROCEDURE TViewNew (): View.T =\n BEGIN\n RE"
& "TURN NEW(T).init()\n END TViewNew;\n\n\nBEGIN\n ZeusPanel.RegisterVie"
& "w \n (TViewNew, \"#(_ALGNAME_) Transcript View\", \"#(_ALGNAME_)\""
& "); \nEND #(_ALGNAME_)TranscriptView.\n";
CONST E5 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:54:53 PST 1995 by kalsow *)\n(* modified on Tue Jul 13 10:4"
& "0:26 PDT 1993 by mhb *)\n\n(***************************************"
& "******************************\n|* NOTE: This file is generated automa"
& "tically from the event \n|* definition file #(_ALGNAME_).evt.\n|"
& "*********************************************************************)\n"
& "\nMODULE #(_ALGNAME_)DataView;\n\nIMPORT ZeusDataView, ZeusPanel;\n\nBE"
& "GIN\n ZeusPanel.RegisterView (\n ZeusDataView.New, \n \"#(_ALGNA"
& "ME_) Data View\", \n \"#(_ALGNAME_)\"); \nEND #(_ALGNAME_)DataView.\n"
;
CONST E6 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:57:10 PST 1995 by kalsow *)\n(* modified on Sun Nov 28 23:0"
& "9:13 PST 1993 by najork *)\n\n(***************************************"
& "******************************\n|* NOTE: This file is generated automa"
& "tically from the event \n|* definition file #(_ALGNAME_).evt.\n|"
& "*********************************************************************)\n"
& "\n<* PRAGMA LL *>\n\nINTERFACE #(_ALGNAME_)3DViewClass;\n\n$Thread\n$Vi"
& "ew3D\n#(_IMPORTS_)\n\nTYPE\n T <: Public;\n Public = View3D.T OBJECT\n"
& " METHODS\n <*LL = {} *>\n#{_OUTPUT\n oe#(_EVENT_) (#(_"
& "ARGSTR_)) RAISES {Thread.Alerted};\n#}\n <*LL = VBT.mu *>\n#{_UPDA"
& "TE\n ue#(_EVENT_) (#(_ARGSTR_)) RAISES {Thread.Alerted};\n#}\n "
& " END;\n \nEND #(_ALGNAME_)3DViewClass.\n";
CONST E7 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:50:48 PST 1995 by kalsow *)\n(* modified on Sun Jun 5 21:5"
& "9:57 PDT 1994 by mhb *)\n(* modified on Wed Feb 17 16:46:47 PS"
& "T 1993 by johnh *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\n<* P"
& "RAGMA LL *>\n\nMODULE #(_ALGNAME_)IE;\n\n$Algorithm\n$AlgorithmClass\n$"
& "Thread\n$View\n$Zeus\n$ZeusClass\n$#(_ALGNAME_)AlgClass\n$#(_ALGNAME_)V"
& "iewClass\n#(_IMPORTS_)\n\n<* FATAL Zeus.Error, Zeus.Locked *>\n(* If yo"
& "u get either of these errors, contact a Zeus implementor. *)\n\nTYPE\n#"
& "{\n #(_EVENT_)Args = BRANDED REF RECORD\n#{\n #(_ARGNAME_): #(_ARGT"
& "YPE_);\n#}\n END;\n\n#}\n\n(* Zeus calls the following to invoke vbt "
& "v\'s event handler: *)\n\n<*NOWARN*> PROCEDURE OEDispatcher(v: ZeusClas"
& "s.T; evt: REFANY) RAISES {Thread.Alerted} =\n <* LL <= VBT.mu *>\n (*"
& " LL = {} if event style is output, LL = VBT.mu if event style is update"
& ". *)\n BEGIN\n TYPECASE v OF\n | #(_ALGNAME_)ViewClass.T (view) "
& "=> <*NOWARN*>\n TYPECASE evt OF\n#{_OUTPUT\n | #(_EVENT_)Args"
& "(var#(_EVENT_)Args) => <*NOWARN*>\n view.oe#(_EVENT_) (\n#{\n "
& " var#(_EVENT_)Args.#(_ARGNAME_)\n#|\n ,\n#}\n"
& " )\n#}\n#{_UPDATE\n | #(_EVENT_)Args(var#(_EVENT_)Arg"
& "s) => <*NOWARN*>\n view.ue#(_EVENT_) (\n#{\n var#"
& "(_EVENT_)Args.#(_ARGNAME_)\n#|\n ,\n#}\n )\n"
& "#}\n ELSE <* ASSERT FALSE *>\n END;\n ELSE (* this view is"
& "n\'t a #(_ALGNAME_)ViewClass, so just ignore *)\n END\n END OEDispa"
& "tcher;\n\n<*NOWARN*> PROCEDURE FEDispatcher(v: ZeusClass.T; evt: REFANY"
& ") =\n <* LL = VB";
CONST E7_0 =
"T.mu *>\n BEGIN\n TYPECASE v OF\n | #(_ALGNAME_)AlgClass.T (alg)"
& " => <*NOWARN*>\n TYPECASE evt OF\n#{_FEEDBACK\n | #(_EVENT_)A"
& "rgs(var#(_EVENT_)Args) => <*NOWARN*>\n alg.fe#(_EVENT_) (\n#{\n"
& " var#(_EVENT_)Args.#(_ARGNAME_)\n#|\n ,\n#}"
& "\n )\n#}\n ELSE <* ASSERT FALSE *>\n END;\n E"
& "LSE (* this alg isn\'t a #(_ALGNAME_)AlgClass, so just ignore *)\n E"
& "ND\n END FEDispatcher;\n\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (\n i"
& "nitiator: Algorithm.T; \n #(_ARGSTR_) \n ) RAISES {Thread.Alert"
& "ed} =\n <* LL = {} *>\n VAR zumeArgRec := NEW(#(_EVENT_)Args \n#{\n "
& " , #(_ARGNAME_) := #(_ARGNAME_)\n#}\n );\n alg :="
& " NARROW(initiator, #(_ALGNAME_)AlgClass.T);\n BEGIN\n LOCK alg.evtM"
& "u DO\n INC(alg.eventDataRec.ctOf#(_EVENT_));\n alg.stopAtEven"
& "t := alg.eventDataRec.stopAt#(_EVENT_);\n alg.waitAtEvent := alg.e"
& "ventDataRec.waitAt#(_EVENT_);\n Zeus.Dispatch(initiator, Zeus.Even"
& "tStyle.Output, #(_EVENTPRIO_),\n \"#(_EVENT_)\", OED"
& "ispatcher, zumeArgRec);\n END;\n END #(_EVENT_);\n\n#}\n#{_UPDATE\n"
& "PROCEDURE #(_EVENT_) (\n initiator: Algorithm.T; \n #(_ARGSTR"
& "_) \n ) RAISES {Thread.Alerted} =\n <* LL = VBT.mu *>\n VAR zumeAr"
& "gRec := NEW(#(_EVENT_)Args \n#{\n , #(_ARGNAME_) := #(_AR"
& "GNAME_)\n#}\n );\n BEGIN\n Zeus.Dispatch(initiator, Zeus.Event"
& "Style.Update, #(_EVENTPRIO_), \n \"#(_EVENT_)\", OEDis"
& "patcher, zumeArgRec);\n END #(_EVENT_);\n\n#}\n\n#{_FEEDBACK\nPROCEDUR"
& "E #(_EVENT_) (\n initiator: View.T; \n #(_ARGSTR_) \n ) RA"
& "ISES {Thread.Alerted} =\n <* LL = VBT.mu *>\n VAR zumeArgRec := NEW(#"
& "(_EVENT_)Args \n#{\n , #(_ARGNAME_) := #(_ARGNAME_)\n#}\n"
& " );\n BEGIN\n Zeus.Dispatch(initiator, Zeus.EventStyle.Notify,"
& " #(_EVENTPRIO_), \n \"#(_EVENT_)\", FEDispatcher, zume"
& "ArgRec);\n END #(_EVENT_);\n\n#}\n\nBEGIN\nEND #(_ALGNAME_)IE.\n";
CONST E8 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Fri Sep "
& " 8 15:48:12 PDT 1995 by najork *)\n(* modified on Thu Feb 9 08:5"
& "4:15 PST 1995 by kalsow *)\n(* Last modified on Fri Dec 9 15:00:46 PS"
& "T 1994 by mhb *)\n(* modified on Sat Jun 4 16:24:49 1994 by h"
& "eydon *)\n(* modified on Tue Feb 16 16:31:40 PST 1993 by john"
& "h *)\n\n(************************************************************"
& "*********\n|* NOTE: This file is generated automatically from the even"
& "t \n|* definition file #(_ALGNAME_).evt.\n|*********************"
& "************************************************)\n\n<* PRAGMA LL *>\n\n"
& "MODULE #(_ALGNAME_)#(_VIEWNAME_)ObliqView;\n\n$Filter\n$Fmt\n$Obliq\n$O"
& "bliqParser\n$ObLibAnim\n$ObLibM3\n$ObLibUI\n$ObValue\n$Rd\n$Rsrc\n$SynW"
& "r\n$TextRd\n$TextWr\n$Thread\n$VBT\n$View\n$ZeusPanel\n$ZFmt\n$#(_ALGNA"
& "ME_)ViewClass\n#(_IMPORTS_)\n\nCONST \n ViewName = \"#(_VIEWNAME_).ob"
& "l\";\n\nTYPE\n T = #(_ALGNAME_)ViewClass.T BRANDED OBJECT\n obj"
& "ect : Obliq.Val;\n env : Obliq.Env;\n wr : Text"
& "Wr.T;\n swr : SynWr.T;\n parser : ObliqParser.T;\n "
& " OVERRIDES\n <* LL.sup < VBT.mu *>\n startrun := Start"
& "run;\n <* LL.sup < VBT.mu *>\n#{_OUTPUT\n oe#(_EVENT_) :="
& " #(_EVENT_);\n#}\n <* LL.sup = VBT.mu *>\n#{_UPDATE\n ue#"
& "(_EVENT_) := #(_EVENT_);\n#}\n END;\n\n(* OUTPUT and UPDATE event "
& "handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_AR"
& "GSTR_)) =\n <* LL.sup < VBT.mu *>\n BEGIN \n IF FieldDefined(view."
& "object, \"#(_EVENT_)\") THEN\n Invoke (view, \"#(_EVENT_)\", \"\"\n"
& "#{\n & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n & \",\"\n#}\n )\n"
& " END\n END #(_EVENT_);\n#}\n\n#{_UPDATE\nPROCEDURE #(_EVENT_) (view"
& ": T; #(_ARGSTR_)) =\n <* LL = VBT.mu *>\n BEGIN \n IF FieldDefined"
& "(view.object, \"#(_EVENT_)\") THEN\n ";
CONST E8_0 =
" Invoke (view, \"#(_EVENT_)\", \"\"\n#{\n & #(_ARGFMT_)(#(_ARG"
& "NAME_))\n#|\n & \",\"\n#}\n )\n END\n END #(_EVENT_);\n#}"
& "\n\nPROCEDURE RegisterView () =\n BEGIN \n ZeusPanel.RegisterView(N"
& "ew, \"#(_VIEWNAME_).obl\", \"#(_ALGNAME_)\") \n END RegisterView;\n\n"
& "PROCEDURE New (): View.T =\n BEGIN\n RETURN NEW(T).init(NIL)\n END"
& " New;\n\nCONST \n ObliqStackSizeMultiplier = 8;\n\nTYPE\n Closure = T"
& "hread.SizedClosure OBJECT\n view: T;\n OVERRIDE"
& "S\n apply := ForkedStartrun;\n END;\n\nPROCEDUR"
& "E Startrun (view: T) =\n <* LL.sup < VBT.mu *>\n BEGIN\n EVAL\n "
& " Thread.Join(\n Thread.Fork(\n NEW(Closure, view := v"
& "iew,\n stackSize := ObliqStackSizeMultiplier * Thread.GetD"
& "efaultStackSize())));\n END Startrun;\n\nPROCEDURE ForkedStartrun (cl:"
& " Closure): REFANY =\n VAR rd: Rd.T; view := cl.view;\n BEGIN\n IF "
& "view.parser = NIL THEN\n view.wr := TextWr.New();\n view.swr "
& ":= SynWr.New(view.wr);\n view.parser := ObliqParser.New(view.swr);"
& "\n END;\n view.object := NIL;\n TRY\n rd := Rsrc.Open(Vie"
& "wName, ZeusPanel.GetPath());\n view.env := ParseRd(view.parser, Vi"
& "ewName, rd);\n WITH obj = Obliq.Lookup(\"view\", view.env) DO\n "
& " IF NOT ISTYPE(obj, ObValue.ValObj) THEN\n ZeusPanel.Repor"
& "tError(\n \"not an Obliq object in \'\" & ViewName & \"\'\")"
& "\n ELSIF FieldDefined (obj, \"graphvbt\") THEN\n WITH g"
& "raphvbt =\n NARROW(Obliq.ObjectSelect(obj, \"graphvbt\"),\n "
& " ObLibAnim.ValGraph).vbt DO\n LOCK VBT.mu D"
& "O\n EVAL Filter.Replace(view, graphvbt)\n END\n"
& " END;\n view.object := obj;\n ELSIF FieldDefin"
& "ed (obj, \"rectsvbt\") THEN\n WITH rectsvbt =\n NAR"
& "ROW(Obliq.ObjectSelect(obj, \"rectsvbt\"),\n ObLibAni"
& "m.ValRects).vbt DO\n LOCK VBT.mu DO\n EVAL Filt"
& "er.Replace(view, rectsvbt)\n END\n END;\n "
& "view.object := obj;\n ELSIF FieldD";
CONST E8_1 =
"efined (obj, \"formsvbt\") THEN\n WITH formsvbt =\n "
& " NARROW(Obliq.ObjectSelect(obj, \"formsvbt\"),\n ObLi"
& "bUI.ValForm).vbt DO\n LOCK VBT.mu DO\n EVAL Fil"
& "ter.Replace(view, formsvbt)\n END\n END;\n "
& " view.object := obj;\n ELSE\n ZeusPanel.ReportError(\n "
& " \"cannot find \'graphvbt\', \'rectsvbt\', or \'formsvbt\' in"
& " \'\" & ViewName & \"\'\")\n END\n END\n EXCEPT\n | R"
& "src.NotFound =>\n ZeusPanel.ReportError(\"cannot find \'\" & Vie"
& "wName & \"\'\")\n | ObValue.Error (packet) => OblError(view, packet)"
& "\n | ObValue.Exception (packet) => OblException(view, packet)\n E"
& "ND;\n RETURN NIL;\n END ForkedStartrun;\n\nPROCEDURE ParseRd (p: Ob"
& "liqParser.T; name: TEXT; rd: Rd.T):\n Obliq.Env RAISES {ObValue.Error,"
& " ObValue.Exception} =\n VAR env := Obliq.EmptyEnv();\n BEGIN\n Obl"
& "iqParser.ReadFrom(p, name, rd, TRUE);\n TRY\n LOOP\n EVA"
& "L ObliqParser.EvalPhrase(p, ObliqParser.ParsePhrase(p), env)\n END"
& "\n EXCEPT\n ObliqParser.Eof => (* clean exit of loop *)\n EN"
& "D;\n RETURN env\n END ParseRd;\n\nPROCEDURE Invoke (view: T; event,"
& " args: TEXT) =\n VAR\n exp := \"view.\" & event & \"(\" & args &"
& " \");\";\n name := \"Zeus Event <\" & event & \">\";\n BEGIN\n "
& " ObliqParser.ReadFrom (view.parser, name, TextRd.New(exp), FALSE);\n "
& " TRY\n EVAL Obliq.EvalTerm(ObliqParser.ParseTerm(view.parser), vie"
& "w.env)\n EXCEPT\n | ObliqParser.Eof => <* ASSERT FALSE *>\n | "
& "ObValue.Error (packet) => OblError(view, packet)\n | ObValue.Excepti"
& "on (packet) => OblException(view, packet)\n END\n END Invoke;\n\nPR"
& "OCEDURE FieldDefined (object: Obliq.Val; event: TEXT): BOOLEAN =\n BEG"
& "IN\n TRY\n RETURN object # NIL AND Obliq.ObjectHas(object, even"
& "t)\n EXCEPT\n | ObValue.Error =>\n | ObValue.Exception =>\n "
& " END;\n RETURN FALSE\n END FieldDefined;\n\nPROCEDURE OblError (vie"
& "w: T; packet: ObValue.ErrorPacket) =\n BEGIN\n Obliq.ReportError(vi"
& "ew.swr, packet);\n ZeusPanel.ReportEr";
CONST E8_2 =
"ror(\n \"Obliq error: \" & TextWr.ToText(view.wr))\n END OblError"
& ";\n\nPROCEDURE OblException (view: T; packet: ObValue.ExceptionPacket) "
& "=\n BEGIN\n Obliq.ReportException(view.swr, packet);\n ZeusPanel"
& ".ReportError(\n \"Obliq exception: \" & TextWr.ToText(view.wr))\n "
& " END OblException;\n\nBEGIN\n SynWr.Setup();\n ObliqParser.PackageSet"
& "up();\n ObLibM3.PackageSetup();\n ObLibUI.PackageSetup();\n ObLibAni"
& "m.PackageSetup();\n RegisterView ();\nEND #(_ALGNAME_)#(_VIEWNAME_)Obl"
& "iqView.\n";
CONST E9 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:47:37 PST 1995 by kalsow *)\n(* Last modified on Wed Feb 17 16:4"
& "4:58 PST 1993 by johnh *)\n(* modified on Tue Jun 9 00:35:07 19"
& "92 by mhb *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\nINTE"
& "RFACE #(_ALGNAME_)AlgClass;\n\n$Algorithm\n$AlgorithmClass\n#(_IMPORTS_"
& ")\n\n<* PRAGMA LL *>\n\nTYPE\n EventDataRec = RECORD\n#{_OUTPUT\n s"
& "topAt#(_EVENT_): BOOLEAN := TRUE;\n waitAt#(_EVENT_): CARDINAL := 1;"
& "\n ctOf#(_EVENT_): CARDINAL := 0;\n#}\n END;\n\n T <: Public;\n P"
& "ublic = Algorithm.T OBJECT\n eventDataRec: EventDataRec;\n#(_ALGDA"
& "TA_)\n METHODS\n#{_FEEDBACK\n fe#(_EVENT_) (#(_ARGSTR_)); "
& " <* LL = VBT.mu *>\n#}\n END;\n \nREVEAL\n Algorithm.T <: A"
& "lgorithmClass.T;\n \nEND #(_ALGNAME_)AlgClass.\n";
CONST E10 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:56:54 PST 1995 by kalsow *)\n(* modified on Sat Jun 4 16:2"
& "3:08 1994 by heydon *)\n(* modified on Wed Feb 17 17:04:32 PS"
& "T 1993 by johnh *)\n(* modified on Tue Jun 9 00:35:35 1992 by m"
& "hb *)\n\n(*****************************************************"
& "****************\n|* NOTE: This file is generated automatically from t"
& "he event \n|* definition file #(_ALGNAME_).evt.\n|**************"
& "*******************************************************)\n\n<* PRAGMA L"
& "L *>\n\nMODULE #(_ALGNAME_)ViewClass;\n\n$ViewClass\n$ZeusClass\n$#(_AL"
& "GNAME_)AlgClass\n#(_IMPORTS_)\n\nREVEAL\n T = Public BRANDED OBJECT\n "
& " OVERRIDES\n <* LL.sup = VBT.mu *>\n isCompat := IsCo"
& "mpat;\n <* LL.sup < VBT.mu *>\n#{_OUTPUT\n oe#(_EVENT_) :"
& "= #(_EVENT_);\n#}\n <* LL.sup = VBT.mu *>\n#{_UPDATE\n ue"
& "#(_EVENT_) := #(_EVENT_);\n#}\n END;\n \nPROCEDURE IsCompat(<"
& "*UNUSED*> v: T; alg: ZeusClass.T): BOOLEAN =\n <* LL.sup = VBT.mu *>\n"
& " BEGIN\n RETURN ISTYPE(alg, #(_ALGNAME_)AlgClass.T)\n END IsCompat"
& ";\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T \n#{\n ; <*UNUSED*> #("
& "_ARGMODE_)#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n <* LL.sup < VBT.mu *>\n"
& " BEGIN \n view.evtHandled := FALSE;\n END #(_EVENT_);\n#}\n\n#{_UP"
& "DATE\nPROCEDURE #(_EVENT_) (view: T \n#{\n ; <*UNUSED*> #(_ARGMODE_)"
& "#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n <* LL.sup = VBT.mu *>\n BEGIN \n"
& " view.evtHandled := FALSE;\n END #(_EVENT_);\n#}\n\nBEGIN\nEND #(_A"
& "LGNAME_)ViewClass.\n";
CONST E11 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Wed Feb "
& " 8 15:29:45 PST 1995 by kalsow *)\n(* modified on Sat Jul 17 10:5"
& "5:43 PDT 1993 by mhb *)\n(* modified on Thu Jul 15 13:53:13 PD"
& "T 1993 by steveg *)\n(* modified on Wed Feb 17 16:47:18 PST 1993 "
& "by johnh *)\n\n(*****************************************************"
& "****************\n|* NOTE: This file is generated automatically from t"
& "he event \n|* definition file #(_ALGNAME_).evt.\n|**************"
& "*******************************************************)\n\nINTERFACE #"
& "(_ALGNAME_)#(_VIEWNAME_)GEFView;\nEND #(_ALGNAME_)#(_VIEWNAME_)GEFView."
& "\n\n";
CONST E12 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Wed Feb "
& " 8 15:33:55 PST 1995 by kalsow *)\n(* modified on Wed Jun 1 23:5"
& "8:34 PDT 1994 by mhb *)\n\n(***************************************"
& "******************************\n|* NOTE: This file is generated automa"
& "tically from the event \n|* definition file #(_ALGNAME_).evt.\n|"
& "*********************************************************************)\n"
& "\nINTERFACE #(_ALGNAME_)#(_VIEWNAME_)JunoView;\nEND #(_ALGNAME_)#(_VIEW"
& "NAME_)JunoView.\n\n";
CONST E13 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Wed Feb "
& " 8 15:42:11 PST 1995 by kalsow *)\n(* modified on Wed Feb 17 16:4"
& "7:18 PST 1993 by johnh *)\n(* modified on Tue Jun 9 00:43:17 19"
& "92 by mhb *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\n<* P"
& "RAGMA LL *>\n\nINTERFACE #(_ALGNAME_)TranscriptView;\n\nIMPORT #(_ALGNA"
& "ME_)ViewClass;\n\nTYPE\n T <: Public;\n Public = #(_ALGNAME_)ViewClas"
& "s.T OBJECT\n METHODS\n <* LL = VBT.mu *>\n init(): T"
& ";\n END;\n\nEND #(_ALGNAME_)TranscriptView.\n";
CONST E14 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Mon Jul "
& "10 15:31:57 PDT 1995 by najork *)\n(* modified on Thu Feb 9 08:5"
& "3:09 PST 1995 by kalsow *)\n(* modified on Mon Jun 6 03:20:38 PD"
& "T 1994 by mhb *)\n(* modified on Sat Jun 4 16:22:04 1994 by h"
& "eydon *)\n(* modified on Tue Feb 16 16:31:40 PST 1993 by john"
& "h *)\n\n(************************************************************"
& "*********\n|* NOTE: This file is generated automatically from the even"
& "t \n|* definition file #(_ALGNAME_).evt.\n|*********************"
& "************************************************)\n\n<* PRAGMA LL *>\n\n"
& "MODULE #(_ALGNAME_)#(_VIEWNAME_)Obliq3DView;\n\n$Fmt\n$ZFmt\n$Obliq\n$O"
& "bliqParser\n$ObLib3D\n$ObLibAnim\n$ObLibM3\n$ObLibUI\n$ObValue\n$ObView"
& "3D\n$ObZeus3D\n$Rd\n$Rsrc\n$SynWr\n$TextRd\n$TextWr\n$Thread\n$View\n$V"
& "iew3DProxy\n$ZeusPanel\n$SynLocation\n$SynParse\n$MetaParser\n$ObliqPri"
& "nter\n$ObLibOnline\n$#(_ALGNAME_)3DViewClass\n#(_IMPORTS_)\n\nCONST \n "
& " ViewName = \"#(_VIEWNAME_).obl\";\n\nTYPE\n T = #(_ALGNAME_)3DViewCl"
& "ass.T BRANDED OBJECT\n env : Obliq.Env;\n wr : T"
& "extWr.T;\n swr : SynWr.T;\n parser : ObliqParser.T;\n"
& " OVERRIDES\n <* LL.sup < VBT.mu *>\n startrun := Sta"
& "rtrun;\n <* LL.sup < VBT.mu *>\n#{_OUTPUT\n oe#(_EVENT_) "
& ":= #(_EVENT_);\n#}\n <* LL.sup = VBT.mu *>\n#{_UPDATE\n u"
& "e#(_EVENT_) := #(_EVENT_);\n#}\n END;\n\n(* OUTPUT and UPDATE even"
& "t handling methods: *)\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (view: T; #(_"
& "ARGSTR_)) =\n <* LL.sup < VBT.mu *>\n BEGIN \n Invoke (view, \"#"
& "(_EVENT_)\", \"\"\n#{\n & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n & \""
& ",\"\n#}\n )\n END #(_EVENT_);\n\n#}\n\n#{_UPDATE\nPROCEDURE #(_EV"
& "ENT_) (view: T; #(_ARGSTR_)) =\n <* LL.sup = VBT.mu *>\n BEGIN \n "
& " Invoke (view, \"#(_EVENT_)\", \"\"\n#{\n";
CONST E14_0 =
" & #(_ARGFMT_)(#(_ARGNAME_))\n#|\n & \",\"\n#}\n )\n EN"
& "D #(_EVENT_);\n#}\n\nTYPE \n Closure = Thread.SizedClosure BRANDED OBJ"
& "ECT\n view : T;\n OVERRIDES\n apply := Apply;\n END;\n\n\nPROCE"
& "DURE Apply (self : Closure) : REFANY =\n\n PROCEDURE ParseRd (p: Obliq"
& "Parser.T; name: TEXT; rd: Rd.T) : Obliq.Env \n RAISES {ObValue.Err"
& "or, ObValue.Exception} =\n VAR \n env := Obliq.EmptyEnv ();\n "
& " BEGIN\n ObliqParser.ReadFrom (p, name, rd, TRUE);\n TRY\n "
& " LOOP\n EVAL ObliqParser.EvalPhrase (p, ObliqParser.Parse"
& "Phrase (p), env)\n END\n EXCEPT\n ObliqParser.Eof =>"
& " (* clean exit of loop *)\n END;\n RETURN env\n END ParseR"
& "d;\n\n BEGIN\n WITH view = self.view DO\n (*** Parse the .obl "
& "file ***)\n TRY\n WITH rd = Rsrc.Open (ViewName, ZeusPanel."
& "GetPath ()) DO\n view.env := ParseRd (view.parser, ViewName, r"
& "d);\n END;\n WITH obj = Obliq.Lookup (\"view\", view.env)"
& " DO\n ObView3D.PairUp (view, obj);\n END;\n EXCEPT"
& "\n | Rsrc.NotFound => \n ZeusPanel.ReportError(\"cannot fin"
& "d \'\" & ViewName & \"\'\");\n | ObValue.Error (packet) => \n "
& " OblError(view, packet);\n | ObValue.Exception (packet) => \n "
& " OblException(view, packet);\n END;\n\n RETURN NIL;\n "
& "END;\n END Apply;\n\n\nPROCEDURE New (): View.T =\n VAR\n view : T"
& ";\n BEGIN\n (*** Create a View3D.T ***)\n view := NEW (T).init ("
& "\"Obliq3D View\");\n\n (*** Create a new Obliq parser ***)\n view"
& ".wr := TextWr.New ();\n view.swr := SynWr.New (view.wr);\n "
& " view.parser := ObliqParser.New (view.swr);\n\n (*** Load the .obl f"
& "ile ***)\n WITH thread = Thread.Fork (NEW (Closure, view := view)) D"
& "O\n EVAL Thread.Join (thread);\n END;\n\n (*** invoke the Ne"
& "w method of the Obliq object \"view\" ***)\n Invoke (view, \"New\", "
& "\"\");\n\n (*** Return the new view ***)\n RETURN view;\n END Ne"
& "w;\n\n\nPROCEDURE Startrun (view: T) =\n <* LL.sup < VBT.mu *>\n BEGI"
& "N\n (*** Reload the .obl file ***)\n WIT";
CONST E14_1 =
"H thread = Thread.Fork (\n NEW (Closure,\n "
& " stackSize := 2 * Thread.GetDefaultStackSize (),\n "
& " view := view)) DO\n EVAL Thread.Join (thre"
& "ad);\n END;\n END Startrun;\n\n\nPROCEDURE Invoke (view: T; event, "
& "args: TEXT) =\n VAR\n exp := \"view.\" & event & \"(\" & args & "
& "\");\";\n name := \"Zeus Event <\" & event & \">\";\n proxy :="
& " ObView3D.M3ToObliq (view);\n BEGIN\n TRY\n IF proxy # NIL AND"
& " Obliq.ObjectHas (proxy, event) THEN\n ObliqParser.ReadFrom (vie"
& "w.parser, name, TextRd.New(exp), FALSE);\n EVAL Obliq.EvalTerm ("
& "ObliqParser.ParseTerm (view.parser), view.env);\n END;\n EXCEPT"
& "\n | ObliqParser.Eof => <* ASSERT FALSE *>\n | ObValue.Error (pac"
& "ket) => OblError(view, packet)\n | ObValue.Exception (packet) => Obl"
& "Exception(view, packet)\n END;\n END Invoke;\n\n\nPROCEDURE OblErro"
& "r (view: T; packet: ObValue.ErrorPacket) =\n BEGIN\n Obliq.ReportEr"
& "ror(view.swr, packet);\n ZeusPanel.ReportError(\"Obliq error: \" & T"
& "extWr.ToText(view.wr))\n END OblError;\n\n\nPROCEDURE OblException (vi"
& "ew: T; packet: ObValue.ExceptionPacket) =\n BEGIN\n Obliq.ReportExc"
& "eption(view.swr, packet);\n ZeusPanel.ReportError(\n \"Obliq ex"
& "ception: \" & TextWr.ToText(view.wr))\n END OblException;\n\n\nBEGIN\n"
& " SynWr.Setup();\n SynLocation.PackageSetup();\n SynParse.PackageSetu"
& "p();\n MetaParser.PackageSetup(); <* NOWARN *>\n Obliq.PackageSetup()"
& ";\n ObliqParser.PackageSetup();\n ObliqPrinter.PackageSetup();\n ObL"
& "ibOnline.Setup(); (* really needed! *)\n\n ObLibM3.Package"
& "Setup();\n ObLibUI.PackageSetup();\n ObLibAnim.PackageSetup();\n ObL"
& "ib3D.PackageSetup();\n ObZeus3D.PackageSetup();\n\n ZeusPanel.Registe"
& "rView (New, \n \"#(_VIEWNAME_).obl\", \n "
& " \"#(_ALGNAME_)\", \n sampl"
& "e := NEW(T));\nEND #(_ALGNAME_)#(_VIEWNAME_)Obliq3DView.\n";
CONST E15 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Wed Feb "
& " 8 15:27:36 PST 1995 by kalsow *)\n(* modified on Mon Jul 12 22:"
& "36:53 PDT 1993 by mhb *)\n\nINTERFACE #(_ALGNAME_)DataView;\n\nEND #"
& "(_ALGNAME_)DataView.\n";
CONST E16 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 09:00:07 PST 1995 by kalsow *)\n(* modified on Mon Nov 29 08:0"
& "7:34 PST 1993 by najork *)\n(* modified on Wed Feb 17 16:46:47 PS"
& "T 1993 by johnh *)\n(* modified on Tue Jun 9 00:41:25 1992 by m"
& "hb *)\n\n(*****************************************************"
& "****************\n|* NOTE: This file is generated automatically from t"
& "he event \n|* definition file #(_ALGNAME_).evt.\n|**************"
& "*******************************************************)\n\n<* PRAGMA L"
& "L *>\n\nMODULE #(_ALGNAME_)IE;\n\n$Algorithm\n$AlgorithmClass\n$Thread\n"
& "$View\n$Zeus\n$ZeusClass\n$#(_ALGNAME_)AlgClass\n$#(_ALGNAME_)ViewClass"
& "\n$#(_ALGNAME_)3DViewClass\n#(_IMPORTS_)\n\n<* FATAL Zeus.Error, Zeus.L"
& "ocked *>\n(* If you get either of these errors, contact a Zeus implemen"
& "tor. *)\n\nTYPE\n#{\n #(_EVENT_)Args = BRANDED REF RECORD\n#{\n #(_"
& "ARGNAME_): #(_ARGTYPE_);\n#}\n END;\n\n#}\n\n(* Zeus calls the follow"
& "ing to invoke vbt v\'s event handler: *)\n\nPROCEDURE OEDispatcher(v: Z"
& "eusClass.T; evt: REFANY) RAISES {Thread.Alerted} =\n <* LL <= VBT.mu *"
& ">\n (* LL = {} if event style is output, LL = VBT.mu if event style is"
& " update. *)\n BEGIN\n TYPECASE v OF\n | #(_ALGNAME_)ViewClass.T "
& "(view) =>\n TYPECASE evt OF\n#{_OUTPUT\n | #(_EVENT_)Args(var"
& "#(_EVENT_)Args) => \n view.oe#(_EVENT_) (\n#{\n v"
& "ar#(_EVENT_)Args.#(_ARGNAME_)\n#|\n ,\n#}\n "
& " )\n#}\n#{_UPDATE\n | #(_EVENT_)Args(var#(_EVENT_)Args) => \n "
& " view.ue#(_EVENT_) (\n#{\n var#(_EVENT_)Args.#(_ARGNAM"
& "E_)\n#|\n ,\n#}\n )\n#}\n ELSE <* ASSE"
& "RT FALSE *>\n END;\n | #(_ALGNAME_)3DViewClass.T (view) =>\n "
& " TYPECASE evt OF\n#{_OUTPUT\n | #(_EVENT_)Args(var#(_EVENT_)Args"
& ") => \n v";
CONST E16_0 =
"iew.oe#(_EVENT_) (\n#{\n var#(_EVENT_)Args.#(_ARGNAME_)\n#"
& "|\n ,\n#}\n )\n#}\n#{_UPDATE\n | #(_EV"
& "ENT_)Args(var#(_EVENT_)Args) => \n view.ue#(_EVENT_) (\n#{\n "
& " var#(_EVENT_)Args.#(_ARGNAME_)\n#|\n ,\n#}\n"
& " )\n#}\n ELSE <* ASSERT FALSE *>\n END;\n ELS"
& "E (* this view isn\'t a #(_ALGNAME_)3DViewClass or\n a #(_AL"
& "GNAME_)3DViewClass, so just ignore *)\n END\n END OEDispatcher;\n\n"
& "PROCEDURE FEDispatcher(v: ZeusClass.T; evt: REFANY) =\n <* LL = VBT.mu"
& " *>\n BEGIN\n TYPECASE v OF\n | #(_ALGNAME_)AlgClass.T (alg) =>\n"
& " TYPECASE evt OF\n#{_FEEDBACK\n | #(_EVENT_)Args(var#(_EVENT_"
& ")Args) => \n alg.fe#(_EVENT_) (\n#{\n var#(_EVENT"
& "_)Args.#(_ARGNAME_)\n#|\n ,\n#}\n )\n#}\n "
& " ELSE <* ASSERT FALSE *>\n END;\n ELSE (* this alg isn\'t a "
& "#(_ALGNAME_)AlgClass, so just ignore *)\n END\n END FEDispatcher;\n"
& "\n\n#{_OUTPUT\nPROCEDURE #(_EVENT_) (\n initiator: Algorithm.T; \n"
& " #(_ARGSTR_) \n ) RAISES {Thread.Alerted} =\n <* LL = {} *>\n "
& " VAR zumeArgRec := NEW(#(_EVENT_)Args \n#{\n , #(_ARGNAME"
& "_) := #(_ARGNAME_)\n#}\n );\n alg := NARROW(initiator, #(_ALG"
& "NAME_)AlgClass.T);\n BEGIN\n LOCK alg.evtMu DO\n INC(alg.event"
& "DataRec.ctOf#(_EVENT_));\n alg.stopAtEvent := alg.eventDataRec.sto"
& "pAt#(_EVENT_);\n alg.waitAtEvent := alg.eventDataRec.waitAt#(_EVEN"
& "T_);\n Zeus.Dispatch(initiator, Zeus.EventStyle.Output, #(_EVENTPR"
& "IO_),\n \"#(_EVENT_)\", OEDispatcher, zumeArgRec);\n"
& " END;\n END #(_EVENT_);\n\n#}\n#{_UPDATE\nPROCEDURE #(_EVENT_) (\n "
& " initiator: Algorithm.T; \n #(_ARGSTR_) \n ) RAISES {Thread"
& ".Alerted} =\n <* LL = VBT.mu *>\n VAR zumeArgRec := NEW(#(_EVENT_)Arg"
& "s \n#{\n , #(_ARGNAME_) := #(_ARGNAME_)\n#}\n );\n "
& "BEGIN\n Zeus.Dispatch(initiator, Zeus.EventStyle.Update, #(_EVENTPRI"
& "O_), \n \"#(_EVENT_)\", OEDispatcher, zumeArgRec);\n "
& "END #(_EVENT_);\n\n#}\n\n#{_FEEDBAC";
CONST E16_1 =
"K\nPROCEDURE #(_EVENT_) (\n initiator: View.T; \n #(_ARGSTR_)"
& " \n ) RAISES {Thread.Alerted} =\n <* LL = VBT.mu *>\n VAR zumeArgR"
& "ec := NEW(#(_EVENT_)Args \n#{\n , #(_ARGNAME_) := #(_ARGN"
& "AME_)\n#}\n );\n BEGIN\n Zeus.Dispatch(initiator, Zeus.EventSt"
& "yle.Notify, #(_EVENTPRIO_), \n \"#(_EVENT_)\", FEDispa"
& "tcher, zumeArgRec);\n END #(_EVENT_);\n\n#}\n\nBEGIN\nEND #(_ALGNAME_)"
& "IE.\n";
CONST E17 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:50:12 PST 1995 by kalsow *)\n(* modified on Sun Jun 5 21:5"
& "8:07 PDT 1994 by mhb *)\n(* modified on Wed Feb 17 16:46:35 PS"
& "T 1993 by johnh *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\n<* P"
& "RAGMA LL *>\n\nINTERFACE #(_ALGNAME_)IE;\n\n$Algorithm\n$Thread\n$View\n"
& "#(_IMPORTS_)\n\n\n(* call the following to generate an event: *)\n\n#{_"
& "OUTPUT\nPROCEDURE #(_EVENT_) (\n initiator: Algorithm.T; \n #"
& "(_ARGSTR_) \n ) RAISES {Thread.Alerted};\n <* LL = {} *>\n\n#}\n#"
& "{_FEEDBACK\nPROCEDURE #(_EVENT_) (\n initiator: View.T; \n #("
& "_ARGSTR_) \n ) RAISES {Thread.Alerted};\n <* LL = VBT.mu *>\n\n#}"
& "\n#{_UPDATE\nPROCEDURE #(_EVENT_) (\n initiator: Algorithm.T; \n "
& " #(_ARGSTR_) \n ) RAISES {Thread.Alerted};\n <* LL = VBT.mu *>"
& "\n\n#}\n\nEND #(_ALGNAME_)IE.\n";
CONST E18 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Wed Feb "
& " 8 15:36:04 PST 1995 by kalsow *)\n(* modified on Sat Jul 17 10:5"
& "5:21 PDT 1993 by mhb *)\n(* modified on Wed Feb 17 16:47:18 PS"
& "T 1993 by johnh *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\nINTE"
& "RFACE #(_ALGNAME_)#(_VIEWNAME_)ObliqView;\nEND #(_ALGNAME_)#(_VIEWNAME_"
& ")ObliqView.\n\n";
CONST E19 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:56:28 PST 1995 by kalsow *)\n(* modified on Wed Feb 17 17:0"
& "4:21 PST 1993 by johnh *)\n(* modified on Tue Jun 9 00:35:21 19"
& "92 by mhb *)\n\n(**********************************************"
& "***********************\n|* NOTE: This file is generated automatically"
& " from the event \n|* definition file #(_ALGNAME_).evt.\n|*******"
& "**************************************************************)\n\n<* P"
& "RAGMA LL *>\n\nINTERFACE #(_ALGNAME_)ViewClass;\n\n$Thread\n$View\n#(_I"
& "MPORTS_)\n\nTYPE\n T <: Public;\n Public = View.T OBJECT\n METHO"
& "DS\n <*LL = {} *>\n#{_OUTPUT\n oe#(_EVENT_) (#(_ARGSTR_)) R"
& "AISES {Thread.Alerted};\n#}\n <*LL = VBT.mu *>\n#{_UPDATE\n "
& " ue#(_EVENT_) (#(_ARGSTR_)) RAISES {Thread.Alerted};\n#}\n END;\n "
& " \nEND #(_ALGNAME_)ViewClass.\n";
CONST E20 =
"; Copyright (C) 1995, Digital Equipment Corporation.\n; All rights rese"
& "rved.\n; See the file COPYRIGHT for a full description.\n;\n; Last modi"
& "fied on Wed Feb 8 15:29:09 PST 1995 by kalsow\n\n;********************"
& "************************************************\n; NOTE: This file is"
& " generated automatically from the event \n; definition file #(_A"
& "LGNAME_).evt.\n;*******************************************************"
& "*************\n\n(VBox\n (Border (Pen 1)\n (Shape\n (Height 75"
& " - 25 + Inf)\n (Viewport\n (HBox\n (Glue 4 + Inf)\n"
& " (VBox\n (Glue 6)\n (Shape (Height 16 + "
& "0)\n (HBox Fill (Shape (Width + 0) (Height + 0) \n "
& " \"Code View events: Stop? \") \n "
& " (Boolean %stopatCodeEvents =TRUE \"\")\n (Glu"
& "e 10)\n (Shape (Width + 0) (Height + 0) \"Weight: \""
& ")\n (Shape (Width 80) (Numeric %waitatCodeEvents =1 "
& "\n (Min 0) (Max 100)))))\n"
& " (Glue 6)\n#{_OUTPUT\n (Shape (Height 16 + 0)\n "
& " (HBox Fill (Shape (Width + 0) (Height + 0) \n "
& " \"#(_EVENT_): Stop? \") \n (Bool"
& "ean %stopAt#(_EVENT_) =TRUE \"\")\n (Glue 10)\n "
& " (Shape (Width + 0) (Height + 0) \"Weight: \")\n "
& " (Shape (Width 80) (Numeric %waitAt#(_EVENT_) =1 \n "
& " (Min 0) (Max 100)))))\n "
& " (Glue 6)\n#}\n )\n (Glue 4)\n (VBox\n "
& " (Glue 5)\n (Shape (Width + 0) (Height 16 + 0) \"Cts:\""
& ")\n (Button %eventCounts\n (VBox\n#{_OUTPUT\n "
& " (Glue 6)\n (HBox Fill (Shape (Width + 0) ("
& "Height 16 + 0) \n (Text %ctOf#(_EVENT_"
& ") \"0\")))\n#}\n (Glue 3))))\n Fill\n "
& "(Glue 4 + Inf)\n )\n )\n )\n )\n)\n";
CONST E21 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Thu Feb "
& " 9 08:57:32 PST 1995 by kalsow *)\n(* modified on Sun Nov 28 23:0"
& "8:58 PST 1993 by najork *)\n\n(***************************************"
& "******************************\n|* NOTE: This file is generated automa"
& "tically from the event \n|* definition file #(_ALGNAME_).evt.\n|"
& "*********************************************************************)\n"
& "\n<* PRAGMA LL *>\n\nMODULE #(_ALGNAME_)3DViewClass;\n\n$View3D\n$ViewC"
& "lass\n$ZeusClass\n$#(_ALGNAME_)AlgClass\n#(_IMPORTS_)\n\nREVEAL\n T = "
& "Public BRANDED OBJECT\n OVERRIDES\n isCompat := IsCompat;\n "
& " <*LL = {} *>\n#{_OUTPUT\n oe#(_EVENT_) := #(_EVENT_);\n#}\n"
& " <*LL = VBT.mu *>\n#{_UPDATE\n ue#(_EVENT_) := #(_EVENT_);\n"
& "#}\n END;\n \nPROCEDURE IsCompat (v: T; alg: ZeusClass.T): BO"
& "OLEAN =\n BEGIN\n RETURN ISTYPE(alg, #(_ALGNAME_)AlgClass.T) AND Vi"
& "ew3D.T.isCompat (v, alg);\n END IsCompat;\n\n#{_OUTPUT\nPROCEDURE #(_E"
& "VENT_) (view: T \n#{\n ; <*UNUSED*> #(_ARGMODE_)#(_ARGNAME_): #(_ARG"
& "TYPE_)\n#}\n) =\n <*LL = {} *>\n BEGIN \n view.evtHandled := FALSE"
& ";\n END #(_EVENT_);\n\n#}\n\n#{_UPDATE\nPROCEDURE #(_EVENT_) (view: T "
& "\n#{\n ; <*UNUSED*> #(_ARGMODE_)#(_ARGNAME_): #(_ARGTYPE_)\n#}\n) =\n"
& " <*LL = VBT.mu *>\n BEGIN \n view.evtHandled := FALSE;\n END #(_E"
& "VENT_);\n\n#}\n\nBEGIN\nEND #(_ALGNAME_)3DViewClass.\n";
CONST E22 =
"; Copyright (C) 1995, Digital Equipment Corporation.\n; All rights rese"
& "rved.\n; See the file COPYRIGHT for a full description.\n;\n; Last modi"
& "fied on Wed Feb 8 15:37:06 PST 1995 by kalsow\n\n;********************"
& "************************************************\n; NOTE: This file is"
& " generated automatically from the event \n; definition file #(_A"
& "LGNAME_).evt.\n;*******************************************************"
& "*************\n\n(VBox\n (Rim\n (Pen 2)\n (HBox\n (VBox (Gl"
& "ue 4) (Shape (Height + Inf) (Button %clear \"CLEAR\")) (Glue 4))\n "
& " (Glue 4)\n (VBox\n (Boolean =TRUE %alg (Text LeftAlign \"A"
& "lgorithm events\"))\n (Boolean =FALSE %zeus (Text LeftAlign \"Ze"
& "us events\"))\n (Boolean =TRUE %args (Text LeftAlign \"Display a"
& "rgs to events\")))\n Fill))\n (Bar 1)\n (Shape (ShadowSize 0) (H"
& "eight 200 + INF) (TextEdit ReadOnly %transcript)))\n";
CONST E23 =
"(* Copyright (C) 1995, Digital Equipment Corporation. *)\n(* All "
& "rights reserved. *)\n(* See the fil"
& "e COPYRIGHT for a full description. *)\n(* "
& " *)\n(* Last modified on Wed Feb "
& " 8 15:34:46 PST 1995 by kalsow *)\n(* modified on Mon Jan 24 10:0"
& "0:27 PST 1994 by najork *)\n(* modified on Sat Jul 17 10:55:21 PD"
& "T 1993 by mhb *)\n(* modified on Wed Feb 17 16:47:18 PST 1993 "
& "by johnh *)\n\n(*****************************************************"
& "****************\n|* NOTE: This file is generated automatically from t"
& "he event \n|* definition file #(_ALGNAME_).evt.\n|**************"
& "*******************************************************)\n\nINTERFACE #"
& "(_ALGNAME_)#(_VIEWNAME_)Obliq3DView;\nEND #(_ALGNAME_)#(_VIEWNAME_)Obli"
& "q3DView.\n\n";
BEGIN
END ZoomBundle.