<> <> <> <> <> <> DIRECTORY Commander USING [Register, CommandProc], IO USING [Handle, CreateOutputStreamToRope, GetOutputStreamRope, Put, text, int, rope, PutF,STREAM], Rope USING [ROPE], JaMInternal USING [Frame], JaMOps USING [NewFrame, defaultFrame], JaMImager USING [Create], ViewerClasses USING [Viewer], JaMTypeScript USING [InitTool]; RegisterJaMImager: PROGRAM IMPORTS IO, JaMOps, JaMTypeScript, Commander, JaMImager = { count: INTEGER _ 1; InitToolCommand: Commander.CommandProc --[cmd: Commander.Handle]-- = TRUSTED { OPEN IO; out: IO.STREAM = cmd.out; param: Rope.ROPE = cmd.commandLine; name: Rope.ROPE _ "JaM"; viewer: ViewerClasses.Viewer; already: BOOLEAN; frame: JaMInternal.Frame _ JaMOps.defaultFrame; [viewer,already] _ JaMTypeScript.InitTool[viewerName: name, param: param]; IF already THEN { h: Handle _ CreateOutputStreamToRope[]; frame _ JaMOps.NewFrame[]; Put[h,text["JaM"],int[count _ count+1]]; name _ GetOutputStreamRope[h]; [viewer,] _ JaMTypeScript.InitTool[name,frame,param,TRUE] }; [] _ JaMImager.Create[frame,viewer, TRUE]; out.PutF["%g TypeScript and imager viewer created.\n",rope[name]]; }; Commander.Register["JaMImager", InitToolCommand, "Create a typescript and imager viewer for JaM"]; }.