(FILECREATED "24-Sep-85 14:56:24" {QV}<NOTECARDS>RELEASE1.2I>LIBRARY>NCCLUSTER.;2 24269  

      changes to:  (VARS NCCLUSTERCOMS)

      previous date: " 3-Jun-85 19:11:18" {QV}<NOTECARDS>RELEASE1.2I>LIBRARY>NCCLUSTER.;1)


(* Copyright (c) 1984, 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT NCCLUSTERCOMS)

(RPAQQ NCCLUSTERCOMS ((FILES (FROM VALUEOF NOTECARDSDIRECTORIES)
			     NCSCREEN)
		      (* Fns for the Cluster notecard type.)
		      (FNS CLUSTER.Cluster.MakeCardFn CLUSTER.Cluster.EditCardFn 
			   CLUSTER.Cluster.QuitCardFn CLUSTER.RegroupClusterCards 
			   CLUSTER.AddClusterMenuItem CLUSTER.LayoutClusterChildren)
		      (* Fns for the CaseCluster notecard type.)
		      (FNS CLUSTER.CaseCluster.MakeCardFn)
		      (* Makefns for the other notecard types.)
		      (FNS CLUSTER.Facts.MakeCardFn CLUSTER.DecisionRule.MakeCardFn 
			   CLUSTER.RuleSupport.MakeCardFn CLUSTER.LegalStatusRule.MakeCardFn 
			   CLUSTER.RuleInstance.MakeCardFn CLUSTER.Rationale.MakeCardFn 
			   CLUSTER.Argument.MakeCardFn)
		      (P (OR (NCP.ValidCardType (QUOTE Cluster))
			     (NC.AddCardType (QUOTE Cluster)
					     (QUOTE Text)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
								       CLUSTER.Cluster.MakeCardFn))
						      (EditCardFn , (FUNCTION 
								       CLUSTER.Cluster.EditCardFn))
						      (QuitCardFn , (FUNCTION 
								       CLUSTER.Cluster.QuitCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , NIL))))))
		      (P (OR (NCP.ValidCardType (QUOTE CaseCluster))
			     (NC.AddCardType (QUOTE CaseCluster)
					     (QUOTE Cluster)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
								   CLUSTER.CaseCluster.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , T))))))
		      (P (OR (NCP.ValidCardType (QUOTE Facts))
			     (NC.AddCardType (QUOTE Facts)
					     (QUOTE Text)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
									 CLUSTER.Facts.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , T))))))
		      (P (OR (NCP.ValidCardType (QUOTE Rationale))
			     (NC.AddCardType (QUOTE Rationale)
					     (QUOTE Text)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
								     CLUSTER.Rationale.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , T))))))
		      (P (OR (NCP.ValidCardType (QUOTE Argument))
			     (NC.AddCardType (QUOTE Argument)
					     (QUOTE Browser)
					     (QUOTE GRAPH)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
								      CLUSTER.Argument.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , T))))))
		      (P (OR (NCP.ValidCardType (QUOTE DecisionRule))
			     (NC.AddCardType (QUOTE DecisionRule)
					     (QUOTE Text)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
								  CLUSTER.DecisionRule.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , NIL))))))
		      (P (OR (NCP.ValidCardType (QUOTE RuleSupport))
			     (NC.AddCardType (QUOTE RuleSupport)
					     (QUOTE Text)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
								   CLUSTER.RuleSupport.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , NIL))))))
		      (P (OR (NCP.ValidCardType (QUOTE LegalStatusRule))
			     (NC.AddCardType (QUOTE LegalStatusRule)
					     (QUOTE Text)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
							       CLUSTER.LegalStatusRule.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , NIL))))))
		      (P (OR (NCP.ValidCardType (QUOTE RuleInstance))
			     (NC.AddCardType (QUOTE RuleInstance)
					     (QUOTE Text)
					     (QUOTE TEXT)
					     (BQUOTE ((MakeCardFn , (FUNCTION 
								  CLUSTER.RuleInstance.MakeCardFn))))
					     (BQUOTE ((LinkDisplayMode Title)
						      (CardDisplayedInMenuFlg , T))))))
		      (VARS (CLUSTER.TypesAndLinkLabelsAndStrings (QUOTE ((Text issues Issues)
									  (Facts facts)
									  (Text decision Decision)
									  (Rationale rationale))))
			    (CLUSTER.FileBoxNames (QUOTE (CasesBox IssuesBox FactsBox DecisionsBox 
								   RationalesBox)))
			    (CLUSTER.ArgumentCardHeight 200)
			    (CLUSTER.ArgumentCardWidth 761))
		      (GLOBALVARS CLUSTER.TypesAndLinkLabelsAndStrings CLUSTER.FileBoxNames 
				  CLUSTER.ArgumentCardHeight CLUSTER.ArgumentCardWidth)))
(FILESLOAD (FROM VALUEOF NOTECARDSDIRECTORIES)
	   NCSCREEN)



(* Fns for the Cluster notecard type.)

(DEFINEQ

(CLUSTER.Cluster.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg ChildInfos FileBoxes)       (* rht: " 3-Jan-85 20:36")

          (* * Create a cluster with head card ID and one child card for each element of ChildInfos. The elements of 
	  ChildInfos are three-element lists with CAR being the child's type, CADR being the label of the link we'll make to 
	  it, and CADDR being the string to concatenate with the head card's title to make the child's title.
	  If no CADDR then use CAR.)



          (* * rht 1/2/85: No longer shrinks head cluster card. Files new cards in boxes taken from FileBoxes.
	  Creates necessary new links if non-extant.)


    (PROG (ChildIDs Window Region)
          (OR Title (SETQ Title (NCP.AskUser (CONCAT "Title of " (NCP.CardType ID)
						     " card? ")
					     "-- " NIL T NIL T)))
          (SETQ Window (WINDOWP (APPLY* (NCP.CardTypeInheritedFn (QUOTE Text)
								 (QUOTE MakeCardFn))
					ID Title NoDisplayFlg)))
          (NCP.CardTitle ID Title)
          (AND (CAR FileBoxes)
	       (NCP.FileCards ID (CAR FileBoxes)))
          (SETQ ChildIDs (for ChildInfo in ChildInfos as Box in (CDR FileBoxes) bind ChildID 
										     LinkLabel
			    collect (SETQ ChildID (NCP.CreateCard (CAR ChildInfo)
								  (CONCAT Title ": "
									  (OR (CADDR ChildInfo)
									      (CAR ChildInfo)))
								  T NIL NIL))
				    (AND Box (NCP.FileCards ChildID Box))
				    (OR (NCP.ValidLinkLabel (SETQ LinkLabel (CADR ChildInfo)))
					(NCP.CreateLinkLabel LinkLabel))
				    (NCP.LocalGlobalLink LinkLabel ID ChildID NIL (QUOTE Title))
				    (NCP.CardAddText ID (CHARACTER 13))
				    ChildID))
          (NCP.CardProp ID (QUOTE ClusterChildren)
			ChildIDs)
          (if (NOT NoDisplayFlg)
	      then (SETQ Region (WINDOWPROP Window (QUOTE REGION)))
		   (SCREEN.LayoutCardsInSquare (create POSITION
						       XCOORD ←(fetch (POSITION XCOORD)
								  of (SCREEN.WinULCorner Window))
						       YCOORD ←(IDIFFERENCE
							 (IPLUS (fetch (REGION HEIGHT) of Region)
								(fetch (REGION BOTTOM) of Region))
							 (IPLUS (FONTPROP WindowTitleDisplayStream
									  (QUOTE HEIGHT))
								SCREEN.CascadeYSpace)))
					       ChildIDs))
          (AND Window (CLUSTER.AddClusterMenuItem Window))
          (RETURN (OR Window ID)))))

(CLUSTER.Cluster.EditCardFn
  (LAMBDA (ID Substance Region/Position)                     (* rht: "11-Feb-85 23:24")

          (* * Bring up a cluster card. This causes head card to be shrunken and all child cards to come up cascaded below 
	  it.)



          (* * rht 1/2/85: No longer shrinks header card.)


    (PROG (Window)
          (SETQ Window (APPLY* (NCP.CardTypeInheritedFn (QUOTE Text)
							(QUOTE EditCardFn))
			       ID Substance Region/Position))
          (SCREEN.LayoutCardsInCascade (SCREEN.GetCascadePosition Window)
				       (REVERSE (NCP.CardProp ID (QUOTE ClusterChildren))))
          (CLUSTER.AddClusterMenuItem Window)
          (RETURN Window))))

(CLUSTER.Cluster.QuitCardFn
  (LAMBDA (IDOrWindow)                                       (* rht: " 2-Apr-85 14:28")

          (* * Close up a cluster card by first expanding it, then closing all children, then closing the head cluster card.)


    (PROG ((ID (if (WINDOWP IDOrWindow)
		   then (NCP.CardFromWindow (EXPANDW IDOrWindow))
		 else (EXPANDW (NCP.CardWindow IDOrWindow))
		      IDOrWindow)))
          (AND (NCP.ValidCard ID)
	       (for Card in (NCP.CardProp ID (QUOTE ClusterChildren)) when (NCP.ValidCard Card)
		  do (NCP.DeactivateCards Card)))
          (RETURN (APPLY* (NCP.CardTypeInheritedFn (QUOTE Text)
						   (QUOTE QuitCardFn))
			  ID)))))

(CLUSTER.RegroupClusterCards
  (LAMBDA (ClusterCard)                                      (* rht: " 3-Jan-85 00:02")

          (* * Shrink ClusterCard and pull the children of ClusterCard over under it.)



          (* * rht 1/2/85: No longer shrinks header card.)


    (PROG (Window)
          (if (SETQ Window (NCP.CardWindow ClusterCard))
	      then (SCREEN.LayoutCardsInCascade (SCREEN.WinULCorner Window)
						(CONS ClusterCard (REVERSE (NCP.CardProp
									     ClusterCard
									     (QUOTE ClusterChildren)))
						      ))
	    else (NCP.BringUpCard ClusterCard)))))

(CLUSTER.AddClusterMenuItem
  (LAMBDA (Window)                                           (* rht: " 3-Jan-85 00:45")

          (* * Add the cluster menu item to the left button menu of Window.)


    (NCP.AddTitleBarMenuItems Window (LIST (LIST (QUOTE Layout% Cluster% Children)
						 (QUOTE (FUNCTION CLUSTER.LayoutClusterChildren))
						 "Regroup and layout the elements of this cluster.")))
    ))

(CLUSTER.LayoutClusterChildren
  (LAMBDA (WindowOrTextStream)                               (* rht: " 3-Jan-85 19:56")

          (* * Regroups and lays out the cluster children in some format.)


    (PROG (Window Card Region)
          (SETQ Window (if (WINDOWP WindowOrTextStream)
			   then WindowOrTextStream
			 else (WINDOW.FROM.TEDIT.THING WindowOrTextStream)))
          (SETQ Card (NCP.CardFromWindow Window))
          (SELECTQ (MENU (create MENU
				 ITEMS ←(QUOTE (Layout% In% Square Layout% In% Cascade))))
		   (Layout% In% Square (SETQ Region (WINDOWPROP Window (QUOTE REGION)))
				       (SCREEN.LayoutCardsInSquare
					 (create POSITION
						 XCOORD ←(fetch (POSITION XCOORD)
							    of (SCREEN.WinULCorner Window))
						 YCOORD ←(IDIFFERENCE (IPLUS (fetch (REGION HEIGHT)
										of Region)
									     (fetch (REGION BOTTOM)
										of Region))
								      (IPLUS (FONTPROP 
									 WindowTitleDisplayStream
										       (QUOTE HEIGHT))
									     SCREEN.CascadeYSpace)))
					 (NCP.CardProp Card (QUOTE ClusterChildren))))
		   (Layout% In% Cascade (SCREEN.LayoutCardsInCascade (SCREEN.GetCascadePosition
								       Window)
								     (REVERSE (NCP.CardProp
										Card
										(QUOTE 
										  ClusterChildren)))))
		   NIL))))
)



(* Fns for the CaseCluster notecard type.)

(DEFINEQ

(CLUSTER.CaseCluster.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 3-Jan-85 20:17")

          (* * Create a case cluster card. Done by passing proper info triples through to Cluster's MakeCardFn.)



          (* * rht 1/2/85: Now also passes to the cluster makecardfn a list of fileboxes to file the cluster children in.
	  The method of searching for fileboxes is klugey. We need to invent a new I.S.opr for "for" to do this.)


    (PROG (FileBoxes)
          (OR Title (SETQ Title (NCP.AskUser (CONCAT "Title of " (NCP.CardType ID)
						     " card? ")
					     "-- " NIL T NIL T)))
          (SETQ FileBoxes (for ID# from 1 to (NCP.MaxIDNum) bind ID Match (FileBoxNames ←(COPY 
									     CLUSTER.FileBoxNames))
								 (NumFileBoxes ←(LENGTH 
									     CLUSTER.FileBoxNames))
			     when (AND (NCP.ValidID (SETQ ID (NC.IDFromNumber ID#)))
				       (NCP.FileBoxP ID)
				       (SETQ Match (FMEMB (MKATOM (NCP.CardTitle ID))
							  FileBoxNames)))
			     do (DSUBST ID (CAR Match)
					FileBoxNames)
				(AND (ZEROP (SETQ NumFileBoxes (SUB1 NumFileBoxes)))
				     (RETURN FileBoxNames))
			     finally (RETURN FileBoxNames)))
          (RETURN (APPLY* (NCP.CardTypeFn (QUOTE Cluster)
					  (QUOTE MakeCardFn))
			  ID Title NoDisplayFlg CLUSTER.TypesAndLinkLabelsAndStrings
			  (for Box in FileBoxes
			     collect (if (NCP.ValidID Box)
					 then Box
				       else (AND (FMEMB (MKATOM (NCP.AskUser (CONCAT 
							 "Want to create new filebox with name '"
										     Box "'? ")
									     "--" NIL T))
							(QUOTE (y Y yes Yes YES)))
						 (NCP.CreateFileBox Box T NIL NIL (
								      NCP.GetContentsFileBox))))))))))
)



(* Makefns for the other notecard types.)

(DEFINEQ

(CLUSTER.Facts.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 8-Apr-85 17:37")

          (* * Create a Facts card. Just like a Text card except throws in some initial text.)


    (PROG (ReturnValue)
          (SETQ ReturnValue (APPLY* (NCP.CardTypeInheritedField (NCP.CardTypeSuper (QUOTE Facts))
								(QUOTE MakeCardFn))
				    ID Title NoDisplayFlg))
          (NCP.CardAddText ID (CONCAT "LEGAL FACTS" (CHARACTER 13)
				      (CHARACTER 13)
				      (CHARACTER 13)
				      "REAL FACTS"
				      (CHARACTER 13)
				      (CHARACTER 13)))
          (RETURN ReturnValue))))

(CLUSTER.DecisionRule.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 8-Apr-85 17:50")

          (* * Create a DecisionRule card. Just like a Text card except throws in some initial text.)


    (PROG (ReturnValue)
          (SETQ ReturnValue (APPLY* (NCP.CardTypeInheritedField (NCP.CardTypeSuper (QUOTE 
										     DecisionRule))
								(QUOTE MakeCardFn))
				    ID Title NoDisplayFlg))
          (NCP.CardAddText ID (CONCAT "LEGAL CONTEXT" (CHARACTER 13)
				      (CHARACTER 13)
				      "OPERATIVE FACTS"
				      (CHARACTER 13)
				      (CHARACTER 13)
				      "DECISION"
				      (CHARACTER 13)
				      (CHARACTER 13)
				      "SUPPORT"
				      (CHARACTER 13)
				      (CHARACTER 13)))
          (RETURN ReturnValue))))

(CLUSTER.RuleSupport.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 8-Apr-85 17:50")

          (* * Create a RuleSupport card. Just like a Text card except throws in some initial text.)


    (PROG (ReturnValue)
          (SETQ ReturnValue (APPLY* (NCP.CardTypeInheritedField (NCP.CardTypeSuper (QUOTE RuleSupport)
										   )
								(QUOTE MakeCardFn))
				    ID Title NoDisplayFlg))
          (NCP.CardAddText ID (CONCAT "PRINCIPLE" (CHARACTER 13)
				      (CHARACTER 13)
				      "REFERENCE"
				      (CHARACTER 13)
				      (CHARACTER 13)
				      "STATUTE"
				      (CHARACTER 13)
				      (CHARACTER 13)
				      "CASE PRECEDENT"
				      (CHARACTER 13)
				      (CHARACTER 13)))
          (RETURN ReturnValue))))

(CLUSTER.LegalStatusRule.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 8-Apr-85 17:51")

          (* * Create a LegalStatusRule card. Just like a Text card except throws in some initial text.)


    (PROG (ReturnValue)
          (SETQ ReturnValue (APPLY* (NCP.CardTypeInheritedField (NCP.CardTypeSuper (QUOTE 
										  LegalStatusRule))
								(QUOTE MakeCardFn))
				    ID Title NoDisplayFlg))
          (NCP.CardAddText ID (CONCAT "LEGAL CONTEXT" (CHARACTER 13)
				      (CHARACTER 13)
				      "OPERATIVE FACTS"
				      (CHARACTER 13)
				      (CHARACTER 13)
				      "LEGAL STATUS"
				      (CHARACTER 13)
				      (CHARACTER 13)
				      "SUPPORT"
				      (CHARACTER 13)
				      (CHARACTER 13)))
          (RETURN ReturnValue))))

(CLUSTER.RuleInstance.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 9-Apr-85 19:04")

          (* * Create a RuleInstance card. Just like a Text card except throws in some initial text. Also creates and links to
	  a bindings card.)


    (PROG (ReturnValue BindingsCard)
          (SETQ ReturnValue (APPLY* (NCP.CardTypeInheritedField (NCP.CardTypeSuper (QUOTE 
										  LegalStatusRule))
								(QUOTE MakeCardFn))
				    ID Title NoDisplayFlg))
          (NCP.CardAddText ID (CONCAT "LEGAL RULE" (CHARACTER 13)
				      (CHARACTER 13)
				      "BINDINGS"
				      (CHARACTER 13)))
          (SETQ BindingsCard (NCP.CreateTextCard (CONCAT Title ":Bindings")
						 T))
          (OR (NCP.ValidLinkLabel (QUOTE Binding))
	      (NCP.CreateLinkLabel (QUOTE Binding)))
          (NCP.LocalGlobalLink (QUOTE Binding)
			       ID BindingsCard)
          (NCP.CardAddText ID (CONCAT (CHARACTER 13)
				      "STATUS RULES"
				      (CHARACTER 13)
				      (CHARACTER 13)))
          (RETURN ReturnValue))))

(CLUSTER.Rationale.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 8-Apr-85 17:36")

          (* * Create a Rationale card. Just like a text card except starts with an initial link to a fresh Argument card.)


    (PROG (ReturnValue)
          (SETQ ReturnValue (APPLY* (NCP.CardTypeInheritedField (NCP.CardTypeSuper (QUOTE Rationale))
								(QUOTE MakeCardFn))
				    ID Title NoDisplayFlg))
          (OR (NCP.ValidLinkLabel (QUOTE Argument))
	      (NCP.CreateLinkLabel (QUOTE Argument)))
          (NCP.LocalGlobalLink (QUOTE Argument)
			       ID
			       (NCP.CreateCard (QUOTE Argument)
					       (CONCAT Title ":Argument1")
					       T)
			       NIL
			       (QUOTE Title))
          (RETURN ReturnValue))))

(CLUSTER.Argument.MakeCardFn
  (LAMBDA (ID Title NoDisplayFlg)                            (* rht: " 9-Apr-85 19:23")

          (* * Create an Argument card. Just like a Browser card except builds some initial structure.)



          (* * rht 4/1/85: Fixed so makes browser card ala 1.2 style.)


    (PROG (RuleInstanceCard1 RuleInstanceCard2 WindowOrID Region HeadingPos)
          (OR Title (SETQ Title (NCP.AskUser "Title of Argument card: " "--" NIL T NIL)))
          (OR (NCP.ValidLinkLabel (QUOTE Support))
	      (NCP.CreateLinkLabel (QUOTE Support)))
          (OR (NCP.ValidLinkLabel (QUOTE Status))
	      (NCP.CreateLinkLabel (QUOTE Status)))
          (SETQ RuleInstanceCard1 (NCP.CreateCard (QUOTE RuleInstance)
						  (CONCAT Title ":Rule1")
						  T))
          (SETQ RuleInstanceCard2 (NCP.CreateCard (QUOTE RuleInstance)
						  (CONCAT Title ":Rule2")
						  T))        (* Find the "STATUS RULES" string in the first rule 
							     instance card and insert link to second rule instance 
							     card there.)
          (SETQ HeadingPos (TEDIT.FIND (TEXTOBJ (NCP.CardSubstance RuleInstanceCard1))
				       "STATUS RULES" 1 NIL))
          (NCP.ChangeLoc RuleInstanceCard1 (if HeadingPos
					       then (PLUS HeadingPos (NCHARS "LEGAL CONTEXT"))
					     else 1))
          (NCP.CardAddText RuleInstanceCard1 (CHARACTER 13))
          (NCP.LocalGlobalLink (QUOTE Status)
			       RuleInstanceCard1 RuleInstanceCard2 NIL (QUOTE Title))
                                                             (* Create this card as a browser on the structure we 
							     just built.)
          (SETQ WindowOrID (APPLY* (NCP.CardTypeInheritedField (NCP.CardTypeSuper (QUOTE Argument))
							       (QUOTE MakeCardFn))
				   ID Title NoDisplayFlg (LIST (QUOTE ROOTCARDS)
							       RuleInstanceCard1
							       (QUOTE LINKTYPES)
							       (QUOTE (Support Status Binding))
							       (QUOTE FORMAT)
							       (QUOTE (LATTICE VERTICAL)))))
          (RETURN WindowOrID))))
)
(OR (NCP.ValidCardType (QUOTE Cluster))
    (NC.AddCardType (QUOTE Cluster)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.Cluster.MakeCardFn))
			     (EditCardFn , (FUNCTION CLUSTER.Cluster.EditCardFn))
			     (QuitCardFn , (FUNCTION CLUSTER.Cluster.QuitCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , NIL)))))
(OR (NCP.ValidCardType (QUOTE CaseCluster))
    (NC.AddCardType (QUOTE CaseCluster)
		    (QUOTE Cluster)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.CaseCluster.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , T)))))
(OR (NCP.ValidCardType (QUOTE Facts))
    (NC.AddCardType (QUOTE Facts)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.Facts.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , T)))))
(OR (NCP.ValidCardType (QUOTE Rationale))
    (NC.AddCardType (QUOTE Rationale)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.Rationale.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , T)))))
(OR (NCP.ValidCardType (QUOTE Argument))
    (NC.AddCardType (QUOTE Argument)
		    (QUOTE Browser)
		    (QUOTE GRAPH)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.Argument.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , T)))))
(OR (NCP.ValidCardType (QUOTE DecisionRule))
    (NC.AddCardType (QUOTE DecisionRule)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.DecisionRule.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , NIL)))))
(OR (NCP.ValidCardType (QUOTE RuleSupport))
    (NC.AddCardType (QUOTE RuleSupport)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.RuleSupport.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , NIL)))))
(OR (NCP.ValidCardType (QUOTE LegalStatusRule))
    (NC.AddCardType (QUOTE LegalStatusRule)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.LegalStatusRule.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , NIL)))))
(OR (NCP.ValidCardType (QUOTE RuleInstance))
    (NC.AddCardType (QUOTE RuleInstance)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION CLUSTER.RuleInstance.MakeCardFn))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDisplayedInMenuFlg , T)))))

(RPAQQ CLUSTER.TypesAndLinkLabelsAndStrings ((Text issues Issues)
					     (Facts facts)
					     (Text decision Decision)
					     (Rationale rationale)))

(RPAQQ CLUSTER.FileBoxNames (CasesBox IssuesBox FactsBox DecisionsBox RationalesBox))

(RPAQQ CLUSTER.ArgumentCardHeight 200)

(RPAQQ CLUSTER.ArgumentCardWidth 761)
(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS CLUSTER.TypesAndLinkLabelsAndStrings CLUSTER.FileBoxNames CLUSTER.ArgumentCardHeight 
	    CLUSTER.ArgumentCardWidth)
)
(PUTPROPS NCCLUSTER COPYRIGHT ("Xerox Corporation" 1984 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (4746 11448 (CLUSTER.Cluster.MakeCardFn 4756 . 7364) (CLUSTER.Cluster.EditCardFn 7366 . 
8119) (CLUSTER.Cluster.QuitCardFn 8121 . 8898) (CLUSTER.RegroupClusterCards 8900 . 9553) (
CLUSTER.AddClusterMenuItem 9555 . 9993) (CLUSTER.LayoutClusterChildren 9995 . 11446)) (11500 13450 (
CLUSTER.CaseCluster.MakeCardFn 11510 . 13448)) (13501 21081 (CLUSTER.Facts.MakeCardFn 13511 . 14202) (
CLUSTER.DecisionRule.MakeCardFn 14204 . 15067) (CLUSTER.RuleSupport.MakeCardFn 15069 . 15923) (
CLUSTER.LegalStatusRule.MakeCardFn 15925 . 16798) (CLUSTER.RuleInstance.MakeCardFn 16800 . 17978) (
CLUSTER.Rationale.MakeCardFn 17980 . 18829) (CLUSTER.Argument.MakeCardFn 18831 . 21079)))))
STOP