Tools_OrganizerCanvas.st
author Claus Gittinger <cg@exept.de>
Fri, 11 Jun 2004 17:20:09 +0200
changeset 5909 95cd2d9822b3
parent 5592 d9730a8d7c52
child 6259 e440c14b02aa
permissions -rw-r--r--
commonPostBuild

"
 COPYRIGHT (c) 2000 by eXept Software AG
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"

"{ Package: 'stx:libtool' }"

"{ NameSpace: Tools }"

NavigatorModel subclass:#OrganizerCanvas
	instanceVariableNames:'projectListSlaveMode namespaceListSlaveMode categoryListSlaveMode
		classInheritanceListSlaveMode classListSlaveMode
		classHierarchyListSlaveMode organizerMode metaToggle
		notMetaToggle meta classList classCategoryDoubleClickChannel
		classDoubleClickChannel classGeneratorHolder
		classGeneratorHolderFromClassCategory
		classGeneratorHolderFromClassHierarchy
		classGeneratorHolderFromProject classGeneratorHolderFromNamespace
		classCategoryListMenuHolder categoryListShown
		classCategoryListUpdateTrigger classListUpdateTrigger
		classListMenuHolder classHierarchyListMenuHolder
		projectListMenuHolder variablesMenuHolder filterClassVars
		variableFilter packageFilter nameSpaceFilter hidePrivateClasses
		hideUnloadedClasses showClassPackages immediateUpdate
		metaToggleLabelHolder selectedCategories selectedClasses
		selectedNamespaces selectedProjects selectionChangeCondition
		nameSpaceFilterSelection markApplicationsHolder'
	classVariableNames:''
	poolDictionaries:''
	category:'Interface-Browsers-New'
!

!OrganizerCanvas class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2000 by eXept Software AG
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
! !

!OrganizerCanvas class methodsFor:'interface specs'!

embeddedNameSpaceListSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:OrganizerCanvas andSelector:#embeddedNameSpaceListSpec
     OrganizerCanvas new openInterface:#embeddedNameSpaceListSpec
    "

    <resource: #canvas>

    ^ 
     #(#FullSpec
	#name: #embeddedNameSpaceListSpec
	#window: 
       #(#WindowSpec
	  #label: 'Organizer'
	  #name: 'Organizer'
	  #min: #(#Point 0 0)
	  #max: #(#Point 1024 721)
	  #bounds: #(#Rectangle 218 175 518 475)
	)
	#component: 
       #(#SpecCollection
	  #collection: #(
	   #(#SubCanvasSpec
	      #name: 'NamespaceList2'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #level: 1
	      #majorKey: #'NamespaceList'
	      #subAspectHolders: 
	     #(#Array
                
	       #(#SubChannelInfoSpec
		  #subAspect: #doubleClickChannel
		  #aspect: #nameSpaceFilterDoubleClickChannel
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #forceGeneratorTrigger
		  #aspect: #forceNamespaceGeneratorTrigger
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #hideUnloadedClasses
		  #aspect: #hideUnloadedClasses
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #immediateUpdate
		  #aspect: #immediateUpdate
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #menuHolder
		  #aspect: #nameSpaceListMenuHolder
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #organizerMode
		  #aspect: #organizerMode
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #outGeneratorHolder
		  #aspect: #classGeneratorHolder
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #selectedNamespaces
		  #aspect: #nameSpaceFilterSelection
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #selectionChangeCondition
		  #aspect: #selectionChangeCondition
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #slaveMode
		  #aspect: #popUpNameSpaceListSlaveMode
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #updateTrigger
		  #aspect: #nameSpaceListUpdateTrigger
		)
	      )
	      #createNewApplication: true
	      #createNewBuilder: true
	      #postBuildCallback: #nameSpaceListWidgetWasBuilt:
	    )
	   )
         
	)
      )
!

windowSpec
    ^ self windowSpecNonHierarchical
    "/ ^ self windowSpecHierarchical
!

windowSpecHierarchical
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:OrganizerCanvas andSelector:#windowSpec
     OrganizerCanvas new openInterface:#windowSpec
     OrganizerCanvas open
    "

    <resource: #canvas>

    ^ 
     #(#FullSpec
	#name: #windowSpec
	#window: 
       #(#WindowSpec
	  #label: 'Organizer'
	  #name: 'Organizer'
	  #min: #(#Point 0 0)
	  #max: #(#Point 1024 721)
	  #bounds: #(#Rectangle 16 46 316 346)
	)
	#component: 
       #(#SpecCollection
	  #collection: #(
	   #(#VariableHorizontalPanelSpec
	      #name: 'CategoryNameSpaceAndProjectPanel'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #visibilityChannel: #classHierarchyOrInheritanceNotShown
	      #barWidth: 2
	      #showHandle: false
	      #component: 
	     #(#SpecCollection
		#collection: #(
		 #(#ViewSpec
		    #name: 'LeftBox'
		    #component: 
		   #(#SpecCollection
		      #collection: #(
		       #(#ViewSpec
			  #name: 'ClassCategoryAndNamespaceFilterBox'
			  #layout: #(#LayoutFrame 0 0 0 0 0 1 0 1)
			  #visibilityChannel: #categoryListShown
			  #component: 
			 #(#SpecCollection
			    #collection: #(
			     #(#SubCanvasSpec
				#name: 'ClassCategoryList'
				#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -25 1.0)
"/                                #majorKey: #'ClassCategoryList'
				#majorKey: #'HierarchicalClassCategoryList'
				#subAspectHolders: 
			       #(#Array
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classCategoryDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #forceGeneratorTrigger
				    #aspect: #forceClassCategoryGeneratorTrigger
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #hideUnloadedClasses
				    #aspect: #hideUnloadedClasses
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classCategoryListMenuHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #classGeneratorHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedCategories
				    #aspect: #selectedCategories
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #categoryListSlaveMode
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classCategoryListUpdateTrigger
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilterSelection
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     #(#ExtendedComboBoxSpec
				#name: 'NameSpaceFilterComboBox'
				#layout: #(#LayoutFrame 0 0 -25 1 0 1 0 1)
				#tabable: true
				#model: #nameSpaceFilterSelectedNameSpace
				#menuWidgetHolder: #nameSpaceListWidgetHolder
				#miniScrollerHorizontal: true
				#menuSelector: #nameSpaceFilterPopUpMenu
			      )
			     )
                           
			  )
			)
		       #(#SubCanvasSpec
			  #name: 'NamespaceList'
			  #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
			  #initiallyInvisible: true
			  #visibilityChannel: #nameSpaceListShown
			  #majorKey: #'NamespaceList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #nameSpaceDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #forceGeneratorTrigger
			      #aspect: #forceNamespaceGeneratorTrigger
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #hideUnloadedClasses
			      #aspect: #hideUnloadedClasses
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #immediateUpdate
			      #aspect: #immediateUpdate
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #nameSpaceListMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #organizerMode
			      #aspect: #organizerMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #outGeneratorHolder
			      #aspect: #classGeneratorHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedNamespaces
			      #aspect: #selectedNamespaces
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectionChangeCondition
			      #aspect: #selectionChangeCondition
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #slaveMode
			      #aspect: #nameSpaceListSlaveMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #updateTrigger
			      #aspect: #nameSpaceListUpdateTrigger
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       #(#SubCanvasSpec
			  #name: 'ProjectList'
			  #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
			  #initiallyInvisible: true
			  #visibilityChannel: #projectListShown
			  #majorKey: #'HierarchicalProjectList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #projectDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #forceGeneratorTrigger
			      #aspect: #forceProjectGeneratorTrigger
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #hideUnloadedClasses
			      #aspect: #hideUnloadedClasses
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #immediateUpdate
			      #aspect: #immediateUpdate
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #projectListMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #organizerMode
			      #aspect: #organizerMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #outGeneratorHolder
			      #aspect: #classGeneratorHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedProjects
			      #aspect: #selectedProjects
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectionChangeCondition
			      #aspect: #selectionChangeCondition
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #slaveMode
			      #aspect: #projectListSlaveMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #updateTrigger
			      #aspect: #projectListUpdateTrigger
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       )
                     
		    )
		  )
		 #(#ViewSpec
		    #name: 'RightBox'
		    #component: 
		   #(#SpecCollection
		      #collection: #(
		       #(#VariableVerticalPanelSpec
			  #name: 'ClassAndVariablesPanel'
			  #layout: #(#LayoutFrame 0 0 0 0 0 1 -25 1)
			  #showHandle: false
			  #snapMode: #both
			  #handlePosition: #left
			  #component: 
			 #(#SpecCollection
			    #collection: #(
			     #(#SubCanvasSpec
				#name: 'ClassList'
				#majorKey: #'ClassList'
				#minorKey: #windowSpec
				#subAspectHolders: 
			       #(#Array

				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #markApplicationsHolder
				    #aspect: #markApplicationsHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassPackages
				    #aspect: #showClassPackages
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #inGeneratorHolder
				    #aspect: #classGeneratorHolder
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classListMenuHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #meta
				    #aspect: #meta
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #outGeneratorHolder
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #packageFilter
				    #aspect: #packageFilter
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilter
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedClasses
				    #aspect: #selectedClasses
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #classListSlaveMode
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classListUpdateTrigger
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     #(#SubCanvasSpec
				#name: 'VariableList'
				#majorKey: #'VariableList'
				#subAspectHolders: 
			       #(#Array
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #variableDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #classHolder
				    #aspect: #selectedClasses
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #variablesMenuHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedVariables
				    #aspect: #variableFilter
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassVarsInVariableList
				    #aspect: #filterClassVars
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #sortVariablesByName
				    #aspect: #variableListSortByName
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     )
                           
			  )
			  #handles: #(#Any 0.5 1.0)
			)
		       #(#UISubSpecification
			  #name: 'MetaToggleSpec2'
			  #layout: #(#LayoutFrame 0 0 -25 1 0 1 0 1)
			  #minorKey: #metaSpec
			)
		       )
                     
		    )
		  )
		 )
               
	      )
	      #handles: #(#Any 0.5 1.0)
	    )
	   #(#ViewSpec
	      #name: 'ClassHierarchyOrInheritanceBox'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #initiallyInvisible: true
	      #visibilityChannel: #classHierarchyOrInheritanceShown
	      #component: 
	     #(#SpecCollection
		#collection: #(
		 #(#VariableVerticalPanelSpec
		    #name: 'VariableVerticalPanel2'
		    #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -25 1.0)
		    #showHandle: false
		    #snapMode: #both
		    #handlePosition: #left
		    #component: 
		   #(#SpecCollection
		      #collection: #(
		       #(#ViewSpec
			  #name: 'HierarchyOrInheritanceBox'
			  #component: 
			 #(#SpecCollection
			    #collection: #(
			     #(#SubCanvasSpec
				#name: 'ClassHierarchyList'
				#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
				#visibilityChannel: #classHierarchyShown
				#majorKey: #'HierarchicalClassList'
				#subAspectHolders: 
			       #(#Array
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #forceGeneratorTrigger
				    #aspect: #forceClassInheritanceGeneratorTrigger
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #hideUnloadedClasses
				    #aspect: #hideUnloadedClasses
				  ) 
	       #(#SubChannelInfoSpec
		  #subAspect: #markApplicationsHolder
		  #aspect: #markApplicationsHolder
		) 
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassPackages
				    #aspect: #showClassPackages
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classInheritanceListMenuHolder
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #meta
				    #aspect: #meta
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #outGeneratorHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #packageFilter
				    #aspect: #packageFilter
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilter
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedClasses
				    #aspect: #selectedClasses
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #classHierarchyListSlaveMode
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #topClassHolder
				    #aspect: #classHierarchyTopClass
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classHierarchyUpdateTrigger
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     #(#SubCanvasSpec
				#name: 'ClassInheritanceList'
				#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
				#visibilityChannel: #classInheritanceShown
				#majorKey: #'InheritanceClassList'
				#subAspectHolders: 
			       #(#Array
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #forceGeneratorTrigger
				    #aspect: #forceClassInheritanceGeneratorTrigger
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #hideUnloadedClasses
				    #aspect: #hideUnloadedClasses
				  ) 
	       #(#SubChannelInfoSpec
		  #subAspect: #markApplicationsHolder
		  #aspect: #markApplicationsHolder
		) 
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassPackages
				    #aspect: #showClassPackages
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classInheritanceListMenuHolder
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #meta
				    #aspect: #meta
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #outGeneratorHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #packageFilter
				    #aspect: #packageFilter
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilter
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedClasses
				    #aspect: #selectedClasses
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #classInheritanceListSlaveMode
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #topClassHolder
				    #aspect: #classHierarchyTopClass
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classHierarchyUpdateTrigger
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     )
                           
			  )
			)
		       #(#SubCanvasSpec
			  #name: 'VariableList2'
			  #majorKey: #'VariableList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #variableDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #classHolder
			      #aspect: #selectedClasses
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #variablesMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #slaveMode
			      #aspect: #classHierarchyListSlaveMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedVariables
			      #aspect: #variableFilter
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #showClassVarsInVariableList
			      #aspect: #filterClassVars
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       )
                     
		    )
		    #handles: #(#Any 0.5 1.0)
		  )
		 #(#SubCanvasSpec
		    #name: 'MetaToggles1'
		    #layout: #(#LayoutFrame 0 0.0 -25 1 0 1.0 0 1)
		    #hasHorizontalScrollBar: false
		    #hasVerticalScrollBar: false
		    #minorKey: #metaSpec
		  )
		 )
               
	      )
	    )
	   )
         
	)
      )
!

windowSpecNonHierarchical
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:OrganizerCanvas andSelector:#windowSpec
     OrganizerCanvas new openInterface:#windowSpec
     OrganizerCanvas open
    "

    <resource: #canvas>

    ^ 
     #(#FullSpec
	#name: #windowSpec
	#window: 
       #(#WindowSpec
	  #label: 'Organizer'
	  #name: 'Organizer'
	  #min: #(#Point 0 0)
	  #max: #(#Point 1024 721)
	  #bounds: #(#Rectangle 16 46 316 346)
	)
	#component: 
       #(#SpecCollection
	  #collection: #(
	   #(#VariableHorizontalPanelSpec
	      #name: 'CategoryNameSpaceAndProjectPanel'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #visibilityChannel: #classHierarchyOrInheritanceNotShown
	      #barWidth: 2
	      #showHandle: false
	      #component: 
	     #(#SpecCollection
		#collection: #(
		 #(#ViewSpec
		    #name: 'LeftBox'
		    #component: 
		   #(#SpecCollection
		      #collection: #(
		       #(#ViewSpec
			  #name: 'ClassCategoryAndNamespaceFilterBox'
			  #layout: #(#LayoutFrame 0 0 0 0 0 1 0 1)
			  #visibilityChannel: #categoryListShown
			  #component: 
			 #(#SpecCollection
			    #collection: #(
			     #(#SubCanvasSpec
				#name: 'ClassCategoryList'
				#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -25 1.0)
				#majorKey: #'ClassCategoryList'
				#subAspectHolders: 
			       #(#Array
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classCategoryDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #forceGeneratorTrigger
				    #aspect: #forceClassCategoryGeneratorTrigger
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #hideUnloadedClasses
				    #aspect: #hideUnloadedClasses
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classCategoryListMenuHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #classGeneratorHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedCategories
				    #aspect: #selectedCategories
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #categoryListSlaveMode
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classCategoryListUpdateTrigger
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilterSelection
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     #(#ExtendedComboBoxSpec
				#name: 'NameSpaceFilterComboBox'
				#layout: #(#LayoutFrame 0 0 -25 1 0 1 0 1)
				#tabable: true
				#model: #nameSpaceFilterSelectedNameSpace
				#menuWidgetHolder: #nameSpaceListWidgetHolder
				#miniScrollerHorizontal: true
				#menuSelector: #nameSpaceFilterPopUpMenu
			      )
			     )
                           
			  )
			)
		       #(#SubCanvasSpec
			  #name: 'NamespaceList'
			  #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
			  #initiallyInvisible: true
			  #visibilityChannel: #nameSpaceListShown
			  #majorKey: #'NamespaceList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #nameSpaceDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #forceGeneratorTrigger
			      #aspect: #forceNamespaceGeneratorTrigger
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #hideUnloadedClasses
			      #aspect: #hideUnloadedClasses
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #immediateUpdate
			      #aspect: #immediateUpdate
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #nameSpaceListMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #organizerMode
			      #aspect: #organizerMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #outGeneratorHolder
			      #aspect: #classGeneratorHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedNamespaces
			      #aspect: #selectedNamespaces
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectionChangeCondition
			      #aspect: #selectionChangeCondition
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #slaveMode
			      #aspect: #nameSpaceListSlaveMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #updateTrigger
			      #aspect: #nameSpaceListUpdateTrigger
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       #(#SubCanvasSpec
			  #name: 'ProjectList'
			  #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
			  #initiallyInvisible: true
			  #visibilityChannel: #projectListShown
			  #majorKey: #'HierarchicalProjectList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #projectDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #forceGeneratorTrigger
			      #aspect: #forceProjectGeneratorTrigger
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #hideUnloadedClasses
			      #aspect: #hideUnloadedClasses
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #immediateUpdate
			      #aspect: #immediateUpdate
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #projectListMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #organizerMode
			      #aspect: #organizerMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #outGeneratorHolder
			      #aspect: #classGeneratorHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedProjects
			      #aspect: #selectedProjects
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectionChangeCondition
			      #aspect: #selectionChangeCondition
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #slaveMode
			      #aspect: #projectListSlaveMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #updateTrigger
			      #aspect: #projectListUpdateTrigger
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       )
                     
		    )
		  )
		 #(#ViewSpec
		    #name: 'RightBox'
		    #component: 
		   #(#SpecCollection
		      #collection: #(
		       #(#VariableVerticalPanelSpec
			  #name: 'ClassAndVariablesPanel'
			  #layout: #(#LayoutFrame 0 0 0 0 0 1 -25 1)
			  #showHandle: false
			  #snapMode: #both
			  #handlePosition: #left
			  #component: 
			 #(#SpecCollection
			    #collection: #(
			     #(#SubCanvasSpec
				#name: 'ClassList'
				#majorKey: #'ClassList'
				#minorKey: #windowSpec
				#subAspectHolders: 
			       #(#Array

				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #markApplicationsHolder
				    #aspect: #markApplicationsHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassPackages
				    #aspect: #showClassPackages
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #inGeneratorHolder
				    #aspect: #classGeneratorHolder
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classListMenuHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #meta
				    #aspect: #meta
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #outGeneratorHolder
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #packageFilter
				    #aspect: #packageFilter
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilter
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedClasses
				    #aspect: #selectedClasses
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #classListSlaveMode
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classListUpdateTrigger
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     #(#SubCanvasSpec
				#name: 'VariableList'
				#majorKey: #'VariableList'
				#subAspectHolders: 
			       #(#Array
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #variableDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #classHolder
				    #aspect: #selectedClasses
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #variablesMenuHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedVariables
				    #aspect: #variableFilter
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassVarsInVariableList
				    #aspect: #filterClassVars
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #sortVariablesByName
				    #aspect: #variableListSortByName
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     )
                           
			  )
			  #handles: #(#Any 0.5 1.0)
			)
		       #(#UISubSpecification
			  #name: 'MetaToggleSpec2'
			  #layout: #(#LayoutFrame 0 0 -25 1 0 1 0 1)
			  #minorKey: #metaSpec
			)
		       )
                     
		    )
		  )
		 )
               
	      )
	      #handles: #(#Any 0.5 1.0)
	    )
	   #(#ViewSpec
	      #name: 'ClassHierarchyOrInheritanceBox'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #initiallyInvisible: true
	      #visibilityChannel: #classHierarchyOrInheritanceShown
	      #component: 
	     #(#SpecCollection
		#collection: #(
		 #(#VariableVerticalPanelSpec
		    #name: 'VariableVerticalPanel2'
		    #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -25 1.0)
		    #showHandle: false
		    #snapMode: #both
		    #handlePosition: #left
		    #component: 
		   #(#SpecCollection
		      #collection: #(
		       #(#ViewSpec
			  #name: 'HierarchyOrInheritanceBox'
			  #component: 
			 #(#SpecCollection
			    #collection: #(
			     #(#SubCanvasSpec
				#name: 'ClassHierarchyList'
				#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
				#visibilityChannel: #classHierarchyShown
				#majorKey: #'HierarchicalClassList'
				#subAspectHolders: 
			       #(#Array
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #forceGeneratorTrigger
				    #aspect: #forceClassInheritanceGeneratorTrigger
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #hideUnloadedClasses
				    #aspect: #hideUnloadedClasses
				  ) 
	       #(#SubChannelInfoSpec
		  #subAspect: #markApplicationsHolder
		  #aspect: #markApplicationsHolder
		) 
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassPackages
				    #aspect: #showClassPackages
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classInheritanceListMenuHolder
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #meta
				    #aspect: #meta
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #outGeneratorHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #packageFilter
				    #aspect: #packageFilter
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilter
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedClasses
				    #aspect: #selectedClasses
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #classHierarchyListSlaveMode
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #topClassHolder
				    #aspect: #classHierarchyTopClass
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classHierarchyUpdateTrigger
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     #(#SubCanvasSpec
				#name: 'ClassInheritanceList'
				#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
				#visibilityChannel: #classInheritanceShown
				#majorKey: #'InheritanceClassList'
				#subAspectHolders: 
			       #(#Array
				 #(#SubChannelInfoSpec
				    #subAspect: #doubleClickChannel
				    #aspect: #classDoubleClickChannel
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #forceGeneratorTrigger
				    #aspect: #forceClassInheritanceGeneratorTrigger
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #hideUnloadedClasses
				    #aspect: #hideUnloadedClasses
				  ) 
	       #(#SubChannelInfoSpec
		  #subAspect: #markApplicationsHolder
		  #aspect: #markApplicationsHolder
		) 
				 #(#SubChannelInfoSpec
				    #subAspect: #showClassPackages
				    #aspect: #showClassPackages
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #immediateUpdate
				    #aspect: #immediateUpdate
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #menuHolder
				    #aspect: #classInheritanceListMenuHolder
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #meta
				    #aspect: #meta
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #organizerMode
				    #aspect: #organizerMode
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #outGeneratorHolder
				    #aspect: #outGeneratorHolder
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #packageFilter
				    #aspect: #packageFilter
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #nameSpaceFilter
				    #aspect: #nameSpaceFilter
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #selectedClasses
				    #aspect: #selectedClasses
				  )
				 #(#SubChannelInfoSpec
				    #subAspect: #selectionChangeCondition
				    #aspect: #selectionChangeCondition
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #slaveMode
				    #aspect: #classInheritanceListSlaveMode
				  )
                                  
				 #(#SubChannelInfoSpec
				    #subAspect: #topClassHolder
				    #aspect: #classHierarchyTopClass
				  ) 
				 #(#SubChannelInfoSpec
				    #subAspect: #updateTrigger
				    #aspect: #classHierarchyUpdateTrigger
				  )
				)
				#createNewApplication: true
				#createNewBuilder: true
			      )
			     )
                           
			  )
			)
		       #(#SubCanvasSpec
			  #name: 'VariableList2'
			  #majorKey: #'VariableList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #variableDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #classHolder
			      #aspect: #selectedClasses
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #variablesMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #slaveMode
			      #aspect: #classHierarchyListSlaveMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedVariables
			      #aspect: #variableFilter
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #showClassVarsInVariableList
			      #aspect: #filterClassVars
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       )
                     
		    )
		    #handles: #(#Any 0.5 1.0)
		  )
		 #(#SubCanvasSpec
		    #name: 'MetaToggles1'
		    #layout: #(#LayoutFrame 0 0.0 -25 1 0 1.0 0 1)
		    #hasHorizontalScrollBar: false
		    #hasVerticalScrollBar: false
		    #minorKey: #metaSpec
		  )
		 )
               
	      )
	    )
	   )
         
	)
      )
!

windowSpecWithoutMetaToggles
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:OrganizerCanvas andSelector:#windowSpecWithoutMetaToggles
     OrganizerCanvas new openInterface:#windowSpecWithoutMetaToggles
    "

    <resource: #canvas>

    ^ 
     #(#FullSpec
	#name: #windowSpecWithoutMetaToggles
	#window: 
       #(#WindowSpec
	  #label: 'Organizer'
	  #name: 'Organizer'
	  #min: #(#Point 0 0)
	  #max: #(#Point 1024 721)
	  #bounds: #(#Rectangle 13 23 313 323)
	)
	#component: 
       #(#SpecCollection
	  #collection: #(
	   #(#SubCanvasSpec
	      #name: 'ClassHierarchyList'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #visibilityChannel: #classHierarchyShown
	      #majorKey: #'HierarchicalClassList'
	      #minorKey: #windowSpec
	      #subAspectHolders: 
	     #(#Array
                
	       #(#SubChannelInfoSpec
		  #subAspect: #doubleClickChannel
		  #aspect: #classDoubleClickChannel
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #forceGeneratorTrigger
		  #aspect: #forceClassInheritanceGeneratorTrigger
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #hideUnloadedClasses
		  #aspect: #hideUnloadedClasses
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #markApplicationsHolder
		  #aspect: #markApplicationsHolder
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #showClassPackages
		  #aspect: #showClassPackages
		) 
		     #(#SubChannelInfoSpec
			#subAspect: #showMethodInheritance
			#aspect: #showMethodInheritance
		      )
		     #(#SubChannelInfoSpec
			#subAspect: #methodVisibilityHolder
			#aspect: #methodVisibilityHolder
		      )
	       #(#SubChannelInfoSpec
		  #subAspect: #immediateUpdate
		  #aspect: #immediateUpdate
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #menuHolder
		  #aspect: #classInheritanceListMenuHolder
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #meta
		  #aspect: #meta
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #organizerMode
		  #aspect: #organizerMode
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #outGeneratorHolder
		  #aspect: #outGeneratorHolder
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #packageFilter
		  #aspect: #packageFilter
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #nameSpaceFilter
		  #aspect: #nameSpaceFilter
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #selectedClasses
		  #aspect: #selectedClasses
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #selectionChangeCondition
		  #aspect: #selectionChangeCondition
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #slaveMode
		  #aspect: #classInheritanceListSlaveMode
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #topClassHolder
		  #aspect: #classHierarchyTopClass
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #updateTrigger
		  #aspect: #classHierarchyUpdateTrigger
		)
	      )
	      #createNewApplication: true
	      #createNewBuilder: true
	    )
	   #(#SubCanvasSpec
	      #name: 'ClassInheritanceList'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #visibilityChannel: #classInheritanceShown
	      #majorKey: #'InheritanceClassList'
	      #minorKey: #windowSpec
	      #subAspectHolders: 
	     #(#Array
                
	       #(#SubChannelInfoSpec
		  #subAspect: #doubleClickChannel
		  #aspect: #classDoubleClickChannel
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #forceGeneratorTrigger
		  #aspect: #forceClassInheritanceGeneratorTrigger
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #hideUnloadedClasses
		  #aspect: #hideUnloadedClasses
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #markApplicationsHolder
		  #aspect: #markApplicationsHolder
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #immediateUpdate
		  #aspect: #immediateUpdate
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #menuHolder
		  #aspect: #classInheritanceListMenuHolder
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #meta
		  #aspect: #meta
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #organizerMode
		  #aspect: #organizerMode
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #outGeneratorHolder
		  #aspect: #outGeneratorHolder
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #packageFilter
		  #aspect: #packageFilter
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #nameSpaceFilter
		  #aspect: #nameSpaceFilter
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #selectedClasses
		  #aspect: #selectedClasses
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #selectionChangeCondition
		  #aspect: #selectionChangeCondition
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #slaveMode
		  #aspect: #classInheritanceListSlaveMode
		)
                
	       #(#SubChannelInfoSpec
		  #subAspect: #topClassHolder
		  #aspect: #classHierarchyTopClass
		) 
	       #(#SubChannelInfoSpec
		  #subAspect: #updateTrigger
		  #aspect: #classHierarchyUpdateTrigger
		)
	      )
	      #createNewApplication: true
	      #createNewBuilder: true
	    )
	   #(#VariableHorizontalPanelSpec
	      #name: 'VariableHorizontalPanel1'
	      #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
	      #visibilityChannel: #classHierarchyNotShown
	      #barWidth: 2
	      #showHandle: false
	      #component: 
	     #(#SpecCollection
		#collection: #(
		 #(#ViewSpec
		    #name: 'Box1'
		    #component: 
		   #(#SpecCollection
		      #collection: #(
		       #(#SubCanvasSpec
			  #name: 'ClassCategoryList'
			  #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
			  #visibilityChannel: #categoryListShown
			  #majorKey: #'ClassCategoryList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #classCategoryDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #forceGeneratorTrigger
			      #aspect: #forceClassCategoryGeneratorTrigger
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #hideUnloadedClasses
			      #aspect: #hideUnloadedClasses
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #immediateUpdate
			      #aspect: #immediateUpdate
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #classCategoryListMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #organizerMode
			      #aspect: #organizerMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #outGeneratorHolder
			      #aspect: #classGeneratorHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedCategories
			      #aspect: #selectedCategories
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectionChangeCondition
			      #aspect: #selectionChangeCondition
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #updateTrigger
			      #aspect: #classCategoryListUpdateTrigger
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       #(#SubCanvasSpec
			  #name: 'NamespaceList'
			  #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
			  #visibilityChannel: #nameSpaceListShown
			  #majorKey: #'NamespaceList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #nameSpaceDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #forceGeneratorTrigger
			      #aspect: #forceNamespaceGeneratorTrigger
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #hideUnloadedClasses
			      #aspect: #hideUnloadedClasses
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #immediateUpdate
			      #aspect: #immediateUpdate
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #nameSpaceListMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #organizerMode
			      #aspect: #organizerMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #outGeneratorHolder
			      #aspect: #classGeneratorHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedNamespaces
			      #aspect: #selectedNamespaces
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectionChangeCondition
			      #aspect: #selectionChangeCondition
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #updateTrigger
			      #aspect: #nameSpaceListUpdateTrigger
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       #(#SubCanvasSpec
			  #name: 'ProjectList'
			  #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
			  #visibilityChannel: #projectListShown
			  #majorKey: #'ProjectList'
			  #subAspectHolders: 
			 #(#Array
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #doubleClickChannel
			      #aspect: #projectDoubleClickChannel
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #forceGeneratorTrigger
			      #aspect: #forceProjectGeneratorTrigger
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #hideUnloadedClasses
			      #aspect: #hideUnloadedClasses
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #immediateUpdate
			      #aspect: #immediateUpdate
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #menuHolder
			      #aspect: #projectListMenuHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #organizerMode
			      #aspect: #organizerMode
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #outGeneratorHolder
			      #aspect: #classGeneratorHolder
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #selectedProjects
			      #aspect: #selectedProjects
			    )
                            
			   #(#SubChannelInfoSpec
			      #subAspect: #selectionChangeCondition
			      #aspect: #selectionChangeCondition
			    ) 
			   #(#SubChannelInfoSpec
			      #subAspect: #updateTrigger
			      #aspect: #projectListUpdateTrigger
			    )
			  )
			  #createNewApplication: true
			  #createNewBuilder: true
			)
		       )
                     
		    )
		  )
		 #(#SubCanvasSpec
		    #name: 'ClassList'
		    #majorKey: #'ClassList'
		    #minorKey: #windowSpec
		    #subAspectHolders: 
		   #(#Array
                      
		     #(#SubChannelInfoSpec
			#subAspect: #doubleClickChannel
			#aspect: #classDoubleClickChannel
		      ) 
		     #(#SubChannelInfoSpec
			#subAspect: #hidePrivateClasses
			#aspect: #hidePrivateClasses
		      )
		     #(#SubChannelInfoSpec
			#subAspect: #hideUnloadedClasses
			#aspect: #hideUnloadedClasses
		      ) 
	       #(#SubChannelInfoSpec
		  #subAspect: #markApplicationsHolder
		  #aspect: #markApplicationsHolder
		) 
		     #(#SubChannelInfoSpec
			#subAspect: #immediateUpdate
			#aspect: #immediateUpdate
		      )
                      
		     #(#SubChannelInfoSpec
			#subAspect: #inGeneratorHolder
			#aspect: #classGeneratorHolder
		      ) 
		     #(#SubChannelInfoSpec
			#subAspect: #menuHolder
			#aspect: #classListMenuHolder
		      )
                      
		     #(#SubChannelInfoSpec
			#subAspect: #meta
			#aspect: #meta
		      ) 
		     #(#SubChannelInfoSpec
			#subAspect: #organizerMode
			#aspect: #organizerMode
		      )
                      
		     #(#SubChannelInfoSpec
			#subAspect: #outGeneratorHolder
			#aspect: #outGeneratorHolder
		      ) 
		     #(#SubChannelInfoSpec
			#subAspect: #selectedClasses
			#aspect: #selectedClasses
		      )
                      
		     #(#SubChannelInfoSpec
			#subAspect: #selectionChangeCondition
			#aspect: #selectionChangeCondition
		      ) 
		     #(#SubChannelInfoSpec
			#subAspect: #slaveMode
			#aspect: #classListSlaveMode
		      )
                      
		     #(#SubChannelInfoSpec
			#subAspect: #updateTrigger
			#aspect: #classListUpdateTrigger
		      )
		    )
		    #createNewApplication: true
		    #createNewBuilder: true
		  )
		 )
               
	      )
	      #handles: #(#Any 0.5 1.0)
	    )
	   )
         
	)
      )

    "Modified: / 25.2.2000 / 22:39:54 / cg"
! !

!OrganizerCanvas class methodsFor:'plugIn spec'!

aspectSelectors
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this. If it is corrupted,
     the UIPainter may not be able to read the specification."

    "Return a description of exported aspects;
     these can be connected to aspects of an embedding application
     (if this app is embedded in a subCanvas)."

    ^ #(
	#(#classCategoryDoubleClickChannel #action )
	#classCategoryListMenuHolder
	#(#classDoubleClickChannel #action )
	#classHierarchyListMenuHolder
	#classHierarchyTopClass
	#classListMenuHolder
	#filterClassVars
	#hidePrivateClasses
	#hideUnloadedClasses
	#immediateUpdate
	#meta
	#metaToggleLabelHolder
	#(#nameSpaceDoubleClickChannel #action )
	#nameSpaceFilter
	#nameSpaceListMenuHolder
	#organizerMode
	#outGeneratorHolder
	#packageFilter
	#(#projectDoubleClickChannel #action )
	#projectListMenuHolder
	#selectedCategories
	#selectedClasses
	#selectedNamespaces
	#selectedProjects
	#selectedProtocols
	#selectionChangeCondition
	#showClassPackages
	#(#variableDoubleClickChannel #action )
	#variableFilter
	#variablesMenuHolder
	#markApplicationsHolder
      ).
! !

!OrganizerCanvas methodsFor:'aspects'!

classCategoryDoubleClickChannel
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classCategoryDoubleClickChannel isNil ifTrue:[
	classCategoryDoubleClickChannel := TriggerValue new.
"/        classCategoryDoubleClickChannel addDependent:self.
    ].
    ^ classCategoryDoubleClickChannel.
!

classCategoryListMenuHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classCategoryListMenuHolder isNil ifTrue:[
	classCategoryListMenuHolder := ValueHolder new.
"/        classCategoryListMenuHolder addDependent:self.
    ].
    ^ classCategoryListMenuHolder.

    "Created: / 18.2.2000 / 11:52:55 / cg"
!

classDoubleClickChannel
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classDoubleClickChannel isNil ifTrue:[
	classDoubleClickChannel := TriggerValue new.
"/        classDoubleClickChannel addDependent:self.
    ].
    ^ classDoubleClickChannel.
!

classGeneratorHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classGeneratorHolder isNil ifTrue:[
	classGeneratorHolder := ValueHolder new.
"/        classGeneratorHolder addDependent:self.
    ].
    ^ classGeneratorHolder.

    "Created: / 18.2.2000 / 00:56:50 / cg"
!

classGeneratorHolderFromClassCategory
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classGeneratorHolderFromClassCategory isNil ifTrue:[
	classGeneratorHolderFromClassCategory := ValueHolder new.
"/        classGeneratorHolderFromClassCategory addDependent:self.
    ].
    ^ classGeneratorHolderFromClassCategory.

    "Created: / 18.2.2000 / 02:21:55 / cg"
!

classGeneratorHolderFromClassHierarchy
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classGeneratorHolderFromClassHierarchy isNil ifTrue:[
	classGeneratorHolderFromClassHierarchy := ValueHolder new.
"/        classGeneratorHolderFromClassHierarchy addDependent:self.
    ].
    ^ classGeneratorHolderFromClassHierarchy.

    "Created: / 18.2.2000 / 02:21:55 / cg"
!

classGeneratorHolderFromNamespace
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classGeneratorHolderFromNamespace isNil ifTrue:[
	classGeneratorHolderFromNamespace := ValueHolder new.
"/        classGeneratorHolderFromNamespace addDependent:self.
    ].
    ^ classGeneratorHolderFromNamespace.

    "Created: / 18.2.2000 / 02:21:55 / cg"
!

classGeneratorHolderFromProject
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classGeneratorHolderFromProject isNil ifTrue:[
	classGeneratorHolderFromProject := ValueHolder new.
"/        classGeneratorHolderFromProject addDependent:self.
    ].
    ^ classGeneratorHolderFromProject.

    "Created: / 18.2.2000 / 02:21:55 / cg"
!

classHierarchyListMenuHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classHierarchyListMenuHolder isNil ifTrue:[
	classHierarchyListMenuHolder := ValueHolder new.
"/        classHierarchyListMenuHolder addDependent:self.
    ].
    ^ classHierarchyListMenuHolder.

    "Created: / 18.2.2000 / 11:52:55 / cg"
!

classHierarchyTopClass
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#classHierarchyTopClass) isNil ifTrue:[
	holder := ValueHolder new.
	builder aspectAt:#classHierarchyTopClass put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.
!

classInheritanceListMenuHolder
    ^ self classHierarchyListMenuHolder
!

classList
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classList isNil ifTrue:[
	classList := ValueHolder new.
"/        classList addDependent:self.
    ].
    ^ classList.

    "Created: / 18.2.2000 / 00:23:43 / cg"
!

classListMenuHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classListMenuHolder isNil ifTrue:[
	classListMenuHolder := ValueHolder new.
"/        classListMenuHolder addDependent:self.
    ].
    ^ classListMenuHolder.

    "Created: / 18.2.2000 / 11:57:22 / cg"
!

filterClassVars
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    filterClassVars isNil ifTrue:[
	filterClassVars := ValueHolder new.
"/        filterClassVars addDependent:self.
    ].
    ^ filterClassVars.

    "Created: / 24.2.2000 / 23:29:52 / cg"
!

hidePrivateClasses
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    hidePrivateClasses isNil ifTrue:[
	hidePrivateClasses := false asValue.
"/        hidePrivateClasses addDependent:self.
    ].
    ^ hidePrivateClasses.

    "Created: / 24.2.2000 / 16:18:45 / cg"
!

hideUnloadedClasses
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    hideUnloadedClasses isNil ifTrue:[
	hideUnloadedClasses := false asValue.
"/        hideUnloadedClasses addDependent:self.
    ].
    ^ hideUnloadedClasses.

    "Created: / 18.2.2000 / 17:54:57 / cg"
!

immediateUpdate
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    immediateUpdate isNil ifTrue:[
	immediateUpdate := false asValue.
"/        immediateUpdate addDependent:self.
    ].
    ^ immediateUpdate.

    "Created: / 18.2.2000 / 00:23:43 / cg"
!

markApplicationsHolder
    markApplicationsHolder isNil ifTrue:[
	markApplicationsHolder := false asValue.
    ].
    ^ markApplicationsHolder.
!

meta
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    meta isNil ifTrue:[
	meta := false asValue.
"/        meta addDependent:self.
    ].
    ^ meta.

    "Created: / 18.2.2000 / 00:23:43 / cg"
    "Modified: / 18.2.2000 / 00:42:23 / cg"
!

metaToggle
    metaToggle isNil ifTrue:[
	metaToggle := PluggableAdaptor on:(self meta).
	metaToggle
	    getBlock:[:m | m value == true]
	    putBlock:[:m :newValue | m value:(newValue ? false)]
	    updateBlock:[:m :aspect :param | true].
    ].
    ^ metaToggle
!

metaToggleLabelHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    metaToggleLabelHolder isNil ifTrue:[
	metaToggleLabelHolder := (resources string:'Class') asValue.
"/        metaToggleLabelHolder addDependent:self.
    ].
    ^ metaToggleLabelHolder.

    "Created: / 18.2.2000 / 11:52:55 / cg"
!

nameSpaceDoubleClickChannel
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#nameSpaceDoubleClickChannel) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#nameSpaceDoubleClickChannel put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.
!

nameSpaceFilter
    "automatically generated by UIPainter ..."

    nameSpaceFilter isNil ifTrue:[
	nameSpaceFilter := ValueHolder new.
self halt.
	nameSpaceFilter onChangeEvaluate:[
self halt.
	    nameSpaceFilter value ~= nameSpaceFilterSelection value ifTrue:[
		self halt
	    ].
"/            self nameSpaceFilter value: nameSpaceFilterSelection value.
	]
    ].
    ^ nameSpaceFilter.

    "Created: / 24.2.2000 / 23:29:52 / cg"
!

nameSpaceFilterDoubleClickChannel
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#nameSpaceFilterDoubleClickChannel) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#nameSpaceFilterDoubleClickChannel put:holder.
	holder onChangeEvaluate:[
		    (builder componentAt:#NameSpaceFilterComboBox) closeMenu.
"/                    self nameSpaceDoubleClickChannel value:true.
	       ]
    ].
    ^ holder.
!

nameSpaceFilterPopUpMenu
    ^ self nameSpaceListMenuHolder.
!

nameSpaceFilterSelectedNameSpace
    |holder|

    (holder := builder bindingAt:#nameSpaceFilterSelectedNameSpace) isNil ifTrue:[
	holder := self class nameListEntryForALL "'* all *'" asValue.
	builder aspectAt:#nameSpaceFilterSelectedNameSpace put:holder.
	holder onChangeEvaluate:[ self updateNameSpaceLabel. ].
    ].
    ^ holder.

    "Created: / 18.2.2000 / 11:52:55 / cg"
!

nameSpaceFilterSelection
    "automatically generated by UIPainter ..."

    nameSpaceFilterSelection isNil ifTrue:[
	nameSpaceFilterSelection := (OrderedCollection with:self class nameListEntryForALL) asValue.
	nameSpaceFilterSelection addDependent:self.
    ].
    ^ nameSpaceFilterSelection.
!

nameSpaceListMenuHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#nameSpaceListMenuHolder) isNil ifTrue:[
	holder := ValueHolder new.
	builder aspectAt:#nameSpaceListMenuHolder put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 11:52:55 / cg"
!

nameSpaceListWidget
    |view|

    view := SubCanvas new.
    view client:self spec:#embeddedNameSpaceListSpec builder:nil. "/ (self builder).
    (view builder findComponentAt:#List) autoHideHorizontalScrollBar:true.
    ^ view.
!

nameSpaceListWidgetHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#nameSpaceListWidgetHolder) isNil ifTrue:[
	holder := ValueHolder new.
	builder aspectAt:#nameSpaceListWidgetHolder put:holder.
	holder value:(self nameSpaceListWidget).
    ].
    ^ holder.
!

notMetaToggle
    notMetaToggle isNil ifTrue:[
	notMetaToggle := PluggableAdaptor on:(self meta).
	notMetaToggle
	    getBlock:[:m | m value == false]
	    putBlock:[:m :newValue | m value:(newValue ? false) not]
	    updateBlock:[:m :aspect :param | true].
    ].
    ^ notMetaToggle
!

organizerMode
    organizerMode isNil ifTrue:[
	organizerMode := #category asValue.
	organizerMode addDependent:self.
    ].
    ^ organizerMode

    "Created: / 18.2.2000 / 00:30:44 / cg"
    "Modified: / 18.2.2000 / 02:56:21 / cg"
!

outGeneratorHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#outGeneratorHolder) isNil ifTrue:[
	holder := ValueHolder new.
	builder aspectAt:#outGeneratorHolder put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 00:23:43 / cg"
!

packageFilter
    "automatically generated by UIPainter ..."

    packageFilter isNil ifTrue:[
	packageFilter := ValueHolder new.
"/        packageFilter addDependent:self.
    ].
    ^ packageFilter.

    "Created: / 24.2.2000 / 23:29:52 / cg"
!

popUpNameSpaceListSlaveMode
    ^ false
!

projectDoubleClickChannel
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#projectDoubleClickChannel) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#projectDoubleClickChannel put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.
!

projectListMenuHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    projectListMenuHolder isNil ifTrue:[
	projectListMenuHolder := ValueHolder new.
"/        projectListMenuHolder addDependent:self.
    ].
    ^ projectListMenuHolder.

    "Created: / 18.2.2000 / 11:52:55 / cg"
!

selectedCategories
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    selectedCategories isNil ifTrue:[
	selectedCategories := ValueHolder new.
"/        selectedCategories addDependent:self.
    ].
    ^ selectedCategories.

    "Created: / 18.2.2000 / 12:27:58 / cg"
!

selectedClasses
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    selectedClasses isNil ifTrue:[
	selectedClasses := ValueHolder new.
	selectedClasses addDependent:self.
    ].
    ^ selectedClasses.

    "Created: / 18.2.2000 / 00:23:43 / cg"
!

selectedNamespaces
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    selectedNamespaces isNil ifTrue:[
	selectedNamespaces := (OrderedCollection with:self class nameListEntryForALL) asValue.
    ].
    ^ selectedNamespaces.

    "Created: / 18.2.2000 / 12:27:58 / cg"
!

selectedProjects
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    selectedProjects isNil ifTrue:[
	selectedProjects := ValueHolder new.
"/        selectedProjects addDependent:self.
    ].
    ^ selectedProjects.

    "Created: / 18.2.2000 / 12:16:01 / cg"
!

selectionChangeCondition
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    selectionChangeCondition isNil ifTrue:[
	selectionChangeCondition := ValueHolder new.
"/        selectionChangeCondition addDependent:self.
    ].
    ^ selectionChangeCondition.

    "Created: / 18.2.2000 / 00:23:43 / cg"
!

showClassPackages
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    showClassPackages isNil ifTrue:[
	showClassPackages := false asValue.
"/        showClassPackages addDependent:self.
    ].
    ^ showClassPackages.

    "Created: / 18.2.2000 / 17:54:57 / cg"
!

updateNameSpaceLabel
    |box|

    box := self builder componentAt:#NameSpaceFilterComboBox.
    box notNil ifTrue:[
	"/ new code: ExtComboBox uses always an EditField
	box editor contents:nameSpaceFilterSelection value first.        

	"/ old code: readOnly ExtComboBox used a Label
	"/ box menuField label:nameSpaceFilterSelection value first
    ]
!

variableDoubleClickChannel
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#variableDoubleClickChannel) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#variableDoubleClickChannel put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.
!

variableFilter
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    variableFilter isNil ifTrue:[
	variableFilter := ValueHolder new.
"/        variableFilter addDependent:self.
    ].
    ^ variableFilter.

    "Created: / 24.2.2000 / 23:29:52 / cg"
!

variablesMenuHolder
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    variablesMenuHolder isNil ifTrue:[
	variablesMenuHolder := ValueHolder new.
"/        variablesMenuHolder addDependent:self.
    ].
    ^ variablesMenuHolder.

    "Created: / 24.2.2000 / 23:29:52 / cg"
! !

!OrganizerCanvas methodsFor:'aspects-exported'!

classCategoryDoubleClickChannel:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classCategoryDoubleClickChannel removeDependent:self.

    classCategoryDoubleClickChannel := something.

    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.8.2000 / 20:04:48 / cg"
!

classCategoryListMenuHolder:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classCategoryListMenuHolder removeDependent:self.

    classCategoryListMenuHolder := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 11:53:31 / cg"
!

classCategoryListUpdateTrigger:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classCategoryListUpdateTrigger removeDependent:self.

    classCategoryListUpdateTrigger := something.

    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 02:08:01 / cg"
!

classDoubleClickChannel:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classDoubleClickChannel removeDependent:self.

    classDoubleClickChannel := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.
!

classHierarchyListMenuHolder:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classHierarchyListMenuHolder removeDependent:self.

    classHierarchyListMenuHolder := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 11:53:31 / cg"
!

classHierarchyShown:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#classHierarchyShown) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#classHierarchyShown put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 00:24:28 / cg"
!

classHierarchyTopClass:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#classHierarchyTopClass) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#classHierarchyTopClass put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.
!

classHierarchyUpdateTrigger:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#classHierarchyUpdateTrigger) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#classHierarchyUpdateTrigger put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 02:08:01 / cg"
!

classList:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classList notNil ifTrue:[
    "/     classList removeDependent:self.
    "/ ].
    classList := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 00:24:28 / cg"
!

classListMenuHolder:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classListMenuHolder removeDependent:self.

    classListMenuHolder := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 11:57:22 / cg"
!

classListUpdateTrigger:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ classListUpdateTrigger removeDependent:self.

    classListUpdateTrigger := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 02:08:01 / cg"
!

filterClassVars:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ filterClassVars removeDependent:self.

    filterClassVars := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 24.2.2000 / 23:46:16 / cg"
!

hidePrivateClasses:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ hidePrivateClasses removeDependent:self.

    hidePrivateClasses := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 24.2.2000 / 16:18:32 / cg"
!

hideUnloadedClasses:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ hideUnloadedClasses removeDependent:self.

    hideUnloadedClasses := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 17:54:57 / cg"
!

immediateUpdate:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ immediateUpdate removeDependent:self.

    immediateUpdate := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 00:24:29 / cg"
!

markApplicationsHolder:something
    markApplicationsHolder := something.
!

meta:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ meta notNil ifTrue:[
    "/     meta removeDependent:self.
    "/ ].
"/ (something == true or:[something == false]) ifTrue:[self halt].
    meta := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    metaToggle notNil ifTrue:[
	metaToggle model:something
    ].
    notMetaToggle notNil ifTrue:[
	notMetaToggle model:something
    ].
    ^ self.

    "Created: / 18.2.2000 / 00:24:29 / cg"
!

metaToggleLabelHolder:something
    |v|

    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ metaToggleLabelHolder removeDependent:self.

    metaToggleLabelHolder := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    (v := builder componentAt:#ClassToggle) notNil ifTrue:[
	v labelChannel:metaToggleLabelHolder.
    ].
    ^ self.

    "Created: / 18.2.2000 / 11:53:31 / cg"
!

nameSpaceFilter:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ packageFilter notNil ifTrue:[
    "/     packageFilter removeDependent:self.
    "/ ].
    nameSpaceFilter := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    self nameSpaceFilterSelection value:something value.
    ^ self.

    "Created: / 24.2.2000 / 23:46:16 / cg"
!

nameSpaceListMenuHolder:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#namespaceListMenuHolder) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#nameSpaceListMenuHolder put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 11:53:31 / cg"
!

nameSpaceListUpdateTrigger:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#namespaceListUpdateTrigger) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#nameSpaceListUpdateTrigger put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 02:08:01 / cg"
!

organizerMode:aValueHolder
    organizerMode notNil ifTrue:[
	organizerMode removeDependent:self.
    ].
    organizerMode := aValueHolder.
    organizerMode notNil ifTrue:[
	organizerMode addDependent:self.
    ].

    "Created: / 18.2.2000 / 10:21:41 / cg"
!

outGeneratorHolder:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#outGeneratorHolder) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#outGeneratorHolder put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 00:24:29 / cg"
!

packageFilter:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ packageFilter notNil ifTrue:[
    "/     packageFilter removeDependent:self.
    "/ ].
    packageFilter := something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 24.2.2000 / 23:46:16 / cg"
!

projectDoubleClickChannel:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#projectDoubleClickChannel) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#projectDoubleClickChannel put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.
!

projectListMenuHolder:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    projectListMenuHolder := something.

    "Created: / 18.2.2000 / 11:53:31 / cg"
!

projectListUpdateTrigger:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#projectListUpdateTrigger) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#projectListUpdateTrigger put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.

    "Created: / 18.2.2000 / 02:08:01 / cg"
!

selectedCategories:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    selectedCategories := something.
    ^ self.

    "Created: / 18.2.2000 / 14:04:36 / cg"
!

selectedClasses:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    selectedClasses removeDependent:self.

    selectedClasses := something.
    something notNil ifTrue:[
	something addDependent:self.
    ].
    ^ self.

    "Created: / 18.2.2000 / 00:24:29 / cg"
!

selectedNamespaces:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    selectedNamespaces := something.
    selectedNamespaces onChangeEvaluate:[
	nameSpaceFilterSelection value:selectedNamespaces value.     
    ].
!

selectedProjects:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    selectedProjects := something.
!

selectionChangeCondition:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    selectionChangeCondition := something.
!

showClassPackages:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    showClassPackages := something.
!

variableDoubleClickChannel:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    "/ |holder|

    "/ (holder := builder bindingAt:#variableDoubleClickChannel) notNil ifTrue:[
    "/     holder removeDependent:self.
    "/ ].
    builder aspectAt:#variableDoubleClickChannel put:something.
    "/ something notNil ifTrue:[
    "/     something addDependent:self.
    "/ ].
    ^ self.
!

variableFilter:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    variableFilter := something.
!

variablesMenuHolder:something
    "automatically generated by UIPainter ..."

    "This method is used when I am embedded as subApplication,"
    "and the mainApp wants to connect its aspects to mine."

    variablesMenuHolder := something.
! !

!OrganizerCanvas methodsFor:'aspects-private'!

categoryListSlaveMode
    categoryListSlaveMode isNil ifTrue:[
	categoryListSlaveMode := false asValue.
    ].
    ^ categoryListSlaveMode

    "Created: / 18.2.2000 / 00:30:44 / cg"
    "Modified: / 18.2.2000 / 02:56:21 / cg"
!

classHierarchyListSlaveMode
    classHierarchyListSlaveMode isNil ifTrue:[
	classHierarchyListSlaveMode := true asValue.
    ].
    ^ classHierarchyListSlaveMode

    "Created: / 18.2.2000 / 00:30:44 / cg"
    "Modified: / 18.2.2000 / 02:56:21 / cg"
!

classInheritanceListSlaveMode
    classInheritanceListSlaveMode isNil ifTrue:[
	classInheritanceListSlaveMode := true asValue.
    ].
    ^ classInheritanceListSlaveMode

    "Modified: / 18.2.2000 / 02:56:21 / cg"
    "Created: / 26.2.2000 / 00:09:18 / cg"
!

classListSlaveMode
    classListSlaveMode isNil ifTrue:[
	classListSlaveMode := false asValue.
    ].
    ^ classListSlaveMode

    "Created: / 18.2.2000 / 00:30:44 / cg"
    "Modified: / 18.2.2000 / 02:56:21 / cg"
!

nameSpaceListSlaveMode
    namespaceListSlaveMode isNil ifTrue:[
	namespaceListSlaveMode := true asValue.
    ].
    ^ namespaceListSlaveMode

    "Created: / 18.2.2000 / 00:30:44 / cg"
    "Modified: / 18.2.2000 / 02:56:21 / cg"
!

projectListSlaveMode
    projectListSlaveMode isNil ifTrue:[
	projectListSlaveMode := true asValue.
    ].
    ^ projectListSlaveMode

    "Created: / 18.2.2000 / 00:30:44 / cg"
    "Modified: / 18.2.2000 / 02:56:21 / cg"
! !

!OrganizerCanvas methodsFor:'aspects-trigger'!

classCategoryListUpdateTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classCategoryListUpdateTrigger isNil ifTrue:[
	classCategoryListUpdateTrigger := TriggerValue new.
"/        classCategoryListUpdateTrigger addDependent:self.
    ].
    ^ classCategoryListUpdateTrigger.

    "Created: / 18.2.2000 / 02:05:14 / cg"
    "Modified: / 18.2.2000 / 02:14:04 / cg"
!

classHierarchyUpdateTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#classHierarchyUpdateTrigger) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#classHierarchyUpdateTrigger put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 02:05:14 / cg"
    "Modified: / 18.2.2000 / 02:13:57 / cg"
!

classListUpdateTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    classListUpdateTrigger isNil ifTrue:[
	classListUpdateTrigger := TriggerValue new.
"/        classListUpdateTrigger addDependent:self.
    ].
    ^ classListUpdateTrigger.

    "Created: / 18.2.2000 / 02:05:14 / cg"
    "Modified: / 18.2.2000 / 02:14:08 / cg"
!

forceClassCategoryGeneratorTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#forceClassCategoryGeneratorTrigger) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#forceClassCategoryGeneratorTrigger put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 02:49:43 / cg"
    "Modified: / 18.2.2000 / 02:52:30 / cg"
!

forceClassHierarchyGeneratorTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#forceClassHierarchyGeneratorTrigger) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#forceClassHierarchyGeneratorTrigger put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 02:49:43 / cg"
    "Modified: / 18.2.2000 / 02:52:32 / cg"
!

forceNamespaceGeneratorTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#forceNamespaceGeneratorTrigger) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#forceNamespaceGeneratorTrigger put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 02:49:43 / cg"
    "Modified: / 18.2.2000 / 02:52:35 / cg"
!

forceProjectGeneratorTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#forceProjectGeneratorTrigger) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#forceProjectGeneratorTrigger put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 02:49:43 / cg"
    "Modified: / 18.2.2000 / 02:52:38 / cg"
!

nameSpaceListUpdateTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#nameSpaceListUpdateTrigger) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#nameSpaceListUpdateTrigger put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 02:05:14 / cg"
    "Modified: / 18.2.2000 / 02:14:12 / cg"
!

projectListUpdateTrigger
    "automatically generated by UIPainter ..."

    "*** the code below creates a default model when invoked."
    "*** (which may not be the one you wanted)"
    "*** Please change as required and accept it in the browser."

    |holder|

    (holder := builder bindingAt:#projectListUpdateTrigger) isNil ifTrue:[
	holder := TriggerValue new.
	builder aspectAt:#projectListUpdateTrigger put:holder.
"/        holder addDependent:self.
    ].
    ^ holder.

    "Created: / 18.2.2000 / 02:05:14 / cg"
    "Modified: / 18.2.2000 / 02:14:15 / cg"
! !

!OrganizerCanvas methodsFor:'aspects-visibility'!

categoryListShown
    categoryListShown isNil ifTrue:[
	categoryListShown := BlockValue 
			with:[:v | v value == #category]
			argument:(self organizerMode).
    ].
    ^ categoryListShown

    "Modified: / 18.2.2000 / 02:11:00 / cg"
!

classHierarchyNotShown
    |holder|

    (holder := builder bindingAt:#classHierarchyNotShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v | |org|
				   org := v value.
				   org ~~ #hierarchy
				   and:[org ~~ #classHierarchy
				   and:[org ~~ #classInheritance]]]
			argument:(self organizerMode).
	builder aspectAt:#classHierarchyNotShown put: holder
    ].
    ^ holder

    "Created: / 18.2.2000 / 00:36:38 / cg"
    "Modified: / 24.2.2000 / 13:22:43 / cg"
!

classHierarchyOrInheritanceNotShown
    |holder|

    (holder := builder bindingAt:#classHierarchyOrInheritanceNotShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v1 :v2 | (v1 value or:[v2 value]) not]
			argument:(self classHierarchyShown)
			argument:(self classInheritanceShown).
	builder aspectAt:#classHierarchyOrInheritanceNotShown put: holder
    ].
    ^ holder
!

classHierarchyOrInheritanceShown
    |holder|

    (holder := builder bindingAt:#classHierarchyOrInheritanceShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v1 :v2 | v1 value or:[v2 value] ]
			argument:(self classHierarchyShown)
			argument:(self classInheritanceShown).
	builder aspectAt:#classHierarchyOrInheritanceShown put: holder
    ].
    ^ holder
!

classHierarchyShown
    |holder|

    (holder := builder bindingAt:#classHierarchyShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v | |org|
				   org := v value.
				   org == #hierarchy
				   or:[org == #classHierarchy]]
			argument:(self organizerMode).
	builder aspectAt:#classHierarchyShown put: holder
    ].
    ^ holder

    "Modified: / 24.2.2000 / 13:23:33 / cg"
!

classInheritanceShown
    |holder|

    (holder := builder bindingAt:#classInheritanceShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v | v value == #classInheritance]
			argument:(self organizerMode).
	builder aspectAt:#classInheritanceShown put: holder
    ].
    ^ holder

    "Created: / 24.2.2000 / 13:23:01 / cg"
!

classListShown
    |holder|

    (holder := builder bindingAt:#classListShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v | v value ~~ #hierarchy]
			argument:(self organizerMode).
	builder aspectAt:#classListShown put: holder
    ].
    ^ holder

    "Modified: / 18.2.2000 / 00:32:48 / cg"
!

nameSpaceListShown
    |holder|

    (holder := builder bindingAt:#nameSpaceListShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v | v value == #namespace]
			argument:(self organizerMode).
	builder aspectAt:#nameSpaceListShown put: holder
    ].
    ^ holder

    "Created: / 18.2.2000 / 00:32:09 / cg"
    "Modified: / 18.2.2000 / 01:48:35 / cg"
!

projectListShown
    |holder|

    (holder := builder bindingAt:#projectListShown) isNil ifTrue:[
	holder := BlockValue 
			with:[:v | v value == #project]
			argument:(self organizerMode).
	builder aspectAt:#projectListShown put: holder
    ].
    ^ holder

    "Modified: / 18.2.2000 / 00:31:19 / cg"
    "Created: / 18.2.2000 / 00:32:09 / cg"
! !

!OrganizerCanvas methodsFor:'change & update'!

update:something with:aParameter from:changedObject
    |orgMode trigger classes selectedClassesHolder selectionValue|

    orgMode := organizerMode value.
    selectedClassesHolder := self selectedClasses.
    classes := selectedClassesHolder value copy.

    changedObject == organizerMode ifTrue:[
	self classHierarchyListSlaveMode value:true.
	self classInheritanceListSlaveMode value:true.
	self classListSlaveMode value:true.
	self categoryListSlaveMode value:true.
	self nameSpaceListSlaveMode value:true.
	self projectListSlaveMode value:true.

	self updateOrganizationFromChangedClass.

	orgMode == #category ifTrue:[
"/            trigger := self forceClassCategoryGeneratorTrigger.
	] ifFalse:[ orgMode == #hierarchy ifTrue:[
"/            trigger := self forceClassHierarchyGeneratorTrigger.
	] ifFalse:[ orgMode == #namespace ifTrue:[
"/            trigger := self forceNamespaceGeneratorTrigger
	] ifFalse:[ orgMode == #project ifTrue:[
	    trigger := self forceProjectGeneratorTrigger.
	] ifFalse:[ ((orgMode == #classHierarchy) or:[orgMode == #classInheritance]) ifTrue:[
"/            trigger := self forceClassHierarchyGeneratorTrigger.
	]]]]].

	"/ must update the packageFilter
	orgMode == #project ifTrue:[
	    packageFilter setValue:(self selectedProjects value)
	] ifFalse:[
	    packageFilter value:nil
	].

	trigger notNil ifTrue:[
	    trigger value:true
	].
	"/ selectedClassesHolder value:classes.


	(orgMode == #classHierarchy or:[orgMode == #hierarchy]) ifTrue:[
	    classHierarchyListSlaveMode value:false.
	].
	(orgMode == #classInheritance) ifTrue:[
	    classInheritanceListSlaveMode value:false.
	].
	(orgMode == #classInheritance 
	or:[orgMode == #classHierarchy 
	or:[orgMode == #hierarchy]])
	ifFalse:[
	    classListSlaveMode value:false.
	].
	(orgMode == #category) ifTrue:[
	    categoryListSlaveMode value:false.
	].
	(orgMode == #namespace) ifTrue:[
	    namespaceListSlaveMode value:false.
	].
	(orgMode == #project) ifTrue:[
	    projectListSlaveMode value:false.
	].

	^ self
    ].

    changedObject == selectedClasses ifTrue:[
	selectedClasses value size ~~ 0 ifTrue:[
	    (orgMode ~~ #classHierarchy) ifTrue:[
		self updateOrganizationFromChangedClass.
	    ].
	]
    ].
"/    changedObject == selectedNamespaces ifTrue:[
"/ self halt.
"/    ].
    changedObject == nameSpaceFilterSelection ifTrue:[
	selectionValue := nameSpaceFilterSelection value.
	selectionValue size > 1 ifTrue:[
	    nameSpaceFilterSelection value:(OrderedCollection with:selectionValue first).
	    selectionValue := nameSpaceFilterSelection value.
	].
	self selectedNamespaces value:selectionValue.
	selectionValue size > 0 ifTrue:[
	    self nameSpaceFilterSelectedNameSpace setValue:selectionValue first.
	    self updateNameSpaceLabel.
	].
	self nameSpaceFilter value: selectionValue.
    ].

    super update:something with:aParameter from:changedObject

    "Modified: / 26.2.2000 / 18:02:02 / cg"
!

updateCategorySelectionFromClasses
    |allEntry oldSelectedCategories categories|

    allEntry := self class nameListEntryForALL.

    categories := Set new.
    oldSelectedCategories := self selectedCategories value.

    "/ category-selection feedBack;
    "/ if '* all *' was in its selection, keep it (to avoid updating the classList)
    (oldSelectedCategories size > 0 
    and:[oldSelectedCategories includes:allEntry]) ifTrue:[
	categories add:allEntry
    ].

    (self selectedClasses value ? #()) do:[:eachSelectedClass |
	|cat cls|

	cls := eachSelectedClass theNonMetaclass.
	cls isPrivate ifTrue:[
	    cls := cls topOwningClass.
	].
	cat := cls category.   
	categories add:cat.
    ].
    (categories conform:[:each | (self selectedCategories value ? #()) includes:each]) ifFalse:[
	self selectedCategories value:categories.
    ].

    "Modified: / 18.2.2000 / 13:17:36 / cg"
!

updateNamespaceSelectionFromClasses
    "invoked when switching to the namespace-organization;
     update selected namespaces from the set of selected classes"

    |allEntry classes selectedNamespaces oldSelectedNamespaces|

    allEntry := self class nameListEntryForALL.

    classes := self selectedClasses value.
    classes size > 0 ifTrue:[
	selectedNamespaces := self selectedNamespaces value.
	oldSelectedNamespaces := (selectedNamespaces ? #()) asSet.
	selectedNamespaces := Set new.

	"/ namespace-selection feedBack;
	"/ if '* all *' was in its selection, keep it (to avoid updating the classList)
	(oldSelectedNamespaces size > 0 
	and:[oldSelectedNamespaces includes:allEntry]) 
	ifTrue:[
	    selectedNamespaces add:allEntry.
	].
	selectedNamespaces 
	    addAll:(classes 
			collect:[:eachClass | eachClass theNonMetaclass topNameSpace name.]).

	classes := classes copy.
	"/ selectedNamespaces ~= oldSelectedNamespaces ifTrue:[
	    self selectedNamespaces value:selectedNamespaces.
	"/ ].

	classes ~= self selectedClasses value ifTrue:[self halt:'oops'].
    ].
!

updateOrganizationFromChangedClass
    |orgMode selectedClassesHolder selectedClasses classHierarchyTopClassHolder commonSuperClass|

    orgMode := organizerMode value.
    selectedClassesHolder := self selectedClasses.
    selectedClasses := selectedClassesHolder value.
    classHierarchyTopClassHolder := self classHierarchyTopClass.

    orgMode == #category ifTrue:[
	self updateCategorySelectionFromClasses.
	^ self.
    ].
    orgMode == #namespace ifTrue:[
	self updateNamespaceSelectionFromClasses.
	^ self.
    ].
    orgMode == #project ifTrue:[
	self updateProjectSelectionFromClasses.
	^ self.
    ].
    orgMode == #hierarchy ifTrue:[
	classHierarchyTopClassHolder value:nil.
	^ self.
    ].
    (orgMode == #classHierarchy) ifTrue:[
"/        (selectedClasses size == 1) ifTrue:[
"/            self classHierarchyTopClass value:selectedClasses first
"/        ].
	"/ classHierarchyTopClassHolder value isNil ifTrue:[
	selectedClasses size > 0 ifTrue:[
	    commonSuperClass := selectedClasses 
				    inject:selectedClasses first 
				    into:[:commonSuperClass :thisClass | commonSuperClass commonSuperclass:thisClass ].
	    classHierarchyTopClassHolder value:commonSuperClass "selectedClasses first".
	].
	"/ ].
	^ self.
    ].
    (orgMode == #classInheritance) ifTrue:[
	classHierarchyTopClassHolder value:
	    ((selectedClasses size == 1) ifTrue:[selectedClasses first] ifFalse:nil).
	^ self.
    ].
!

updateProjectSelectionFromClasses
    "invoked when switching to the projects-organization;
     update selected projects from the set of selected classes"

    |allEntry classes selectedProjects oldSelectedProjects|

^ self.
    allEntry := self class nameListEntryForALL.

    classes := self selectedClasses value.
    classes size > 0 ifTrue:[
	selectedProjects := self selectedProjects value.
	oldSelectedProjects := (selectedProjects ? #()) asSet.
	selectedProjects := Set new.

	"/ project-selection feedBack;
	"/ if '* all *' was in its selection, keep it (to avoid updating the classList)
	(oldSelectedProjects size > 0 
	and:[oldSelectedProjects includes:allEntry]) 
	ifTrue:[
	    selectedProjects add:allEntry.
	].

	classes do:[:eachClass |
	    selectedProjects add:(eachClass theNonMetaclass package).
	    eachClass allSelectorsAndMethodsDo:[:sel :mthd |
		selectedProjects add:(mthd package).
	    ]
	].
	selectedProjects ~= oldSelectedProjects ifTrue:[
	    self selectedProjects value:selectedProjects.
	].
    ].

    "Created: / 26.2.2000 / 01:09:13 / cg"
    "Modified: / 26.2.2000 / 01:20:59 / cg"
! !

!OrganizerCanvas methodsFor:'forwarder operations'!

moveClasses:classes toCategory:cat
    self masterApplication moveClasses:classes toCategory:cat
!

moveClasses:classes toProject:cat
    self masterApplication moveClasses:classes toProject:cat
!

moveMethods:methods toClass:cls
    self masterApplication moveMethods:methods toClass:cls.
!

moveMethods:methods toProject:package
    self masterApplication moveMethods:methods toProject:package.
! !

!OrganizerCanvas methodsFor:'private'!

nameSpaceListWidgetWasBuilt:widget
    |list|

    "/ sigh - cannot do this in the nameSpaceListWidget method,
    "/ because the GUI is build late (when the menu is popped up the first time)
    widget application immediateUpdate:true.
    list := widget builder componentAt:#List.
    list autoHideHorizontalScrollBar:true.
!

release
    super release.

    nameSpaceFilterSelection removeDependent:self.
    organizerMode removeDependent:self.
    selectedClasses removeDependent:self.
! !

!OrganizerCanvas class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libtool/Tools_OrganizerCanvas.st,v 1.3 2004-06-11 15:20:06 cg Exp $'
! !