Tools_ClassList.st
changeset 9204 0690de3bd379
parent 9075 08ec2bc8bf92
child 9371 d0828a270e10
equal deleted inserted replaced
9203:9e5f512a75a7 9204:0690de3bd379
   425 
   425 
   426     "Modified: / 25.2.2000 / 23:53:51 / cg"
   426     "Modified: / 25.2.2000 / 23:53:51 / cg"
   427 !
   427 !
   428 
   428 
   429 delayedUpdate:something with:aParameter from:changedObject
   429 delayedUpdate:something with:aParameter from:changedObject
   430     |cls classes chgClass wg|
   430     |cls classes chgClass wg savedList|
   431 
   431 
   432     classes := self classList value ? #().
   432     classes := self classList value ? #().
   433 
   433 
   434     self inSlaveModeOrInvisible ifTrue:[
   434     self inSlaveModeOrInvisible ifTrue:[
   435 	self invalidateList.
   435         self invalidateList.
   436 	^ self.
   436         ^ self.
   437     ].
   437     ].
   438 
   438 
   439 "/    (self slaveMode value == true) ifTrue:[^ self].
   439 "/    (self slaveMode value == true) ifTrue:[^ self].
   440 "/    self slaveMode value isNil ifTrue:[
   440 "/    self slaveMode value isNil ifTrue:[
   441 "/        self window shown ifFalse:[
   441 "/        self window shown ifFalse:[
   443 "/            ^ self
   443 "/            ^ self
   444 "/        ].
   444 "/        ].
   445 "/    ].
   445 "/    ].
   446 
   446 
   447     changedObject == slaveMode ifTrue:[
   447     changedObject == slaveMode ifTrue:[
   448 	listValid ~~ true ifTrue:[
   448         listValid ~~ true ifTrue:[
   449 	    self enqueueDelayedUpdateList.
   449             self enqueueDelayedUpdateList.
   450 	].
   450         ].
   451 	self enqueueDelayedClassSelectionChanged.
   451         self enqueueDelayedClassSelectionChanged.
   452 	^  self
   452         ^  self
   453     ].
   453     ].
   454 
   454 
   455     changedObject == Smalltalk ifTrue:[
   455     changedObject == Smalltalk ifTrue:[
   456 	something == #methodInClass ifTrue:[
   456         something == #methodInClass ifTrue:[
   457 	    ^ self "no interest" 
   457             ^ self "no interest" 
   458 	].    
   458         ].    
   459 	something == #methodInClassRemoved ifTrue:[
   459         something == #methodInClassRemoved ifTrue:[
   460 	    "/ must update the list, if the methods package is different from
   460             "/ must update the list, if the methods package is different from
   461 	    "/ the classes package (to undo any has-exension highlighting)
   461             "/ the classes package (to undo any has-exension highlighting)
   462 	    cls := aParameter first.
   462             cls := aParameter first.
   463 	    self updateListsFor:cls.
   463             self updateListsFor:cls.
   464 	    ^ self 
   464             ^ self 
   465 	].    
   465         ].    
   466 	something == #organization ifTrue:[^ self "no interest" ].    
   466         something == #organization ifTrue:[^ self "no interest" ].    
   467 
   467 
   468 	(something == #classDefinition 
   468         (something == #classDefinition 
   469 	or:[something == #classVariables
   469         or:[something == #classVariables
   470 	or:[something == #newClass]]) ifTrue:[
   470         or:[something == #newClass]]) ifTrue:[
   471 	    "/ update that class in my classList and the selection
   471             "/ update that class in my classList and the selection
   472 	    listValid ifTrue:[
   472             listValid ifTrue:[
   473 		self classDefinitionChanged:aParameter.
   473                 self classDefinitionChanged:aParameter.
   474 	    ].
   474             ].
   475 	    ^ self.
   475             ^ self.
   476 	].
   476         ].
   477 	(something == #lastTestRunResult) ifTrue:[
   477         (something == #lastTestRunResult) ifTrue:[
   478 	    "/ update that class in my classList and the selection
   478             "/ update that class in my classList and the selection
   479 	    listValid ifTrue:[
   479             listValid ifTrue:[
   480 		self updateListsFor:aParameter.
   480                 self updateListsFor:aParameter.
   481 		"/ self classDefinitionChanged:aParameter.
   481                 "/ self classDefinitionChanged:aParameter.
   482 	    ].
   482             ].
   483 	    ^ self.
   483             ^ self.
   484 	].
   484         ].
   485 	something == #classRemove ifTrue:[
   485         something == #classRemove ifTrue:[
   486 	    "/ update my classList and the selection
   486             "/ update my classList and the selection
   487 	    self classRemoved:aParameter.
   487             self classRemoved:aParameter.
   488 	    ^ self.
   488             ^ self.
   489 	].
   489         ].
   490 	something == #classRename ifTrue:[
   490         something == #classRename ifTrue:[
   491 	    "/ update that class in my classList and the selection
   491             "/ update that class in my classList and the selection
   492 	    listValid ifTrue:[
   492             listValid ifTrue:[
   493 		aParameter isArray ifTrue:[
   493                 aParameter isArray ifTrue:[
   494 		    cls := aParameter at:1.
   494                     cls := aParameter at:1.
   495 		    self classDefinitionChanged:cls.
   495                     self classDefinitionChanged:cls.
   496 		]
   496                 ]
   497 	    ].
   497             ].
   498 	    ^ self.
   498             ^ self.
   499 	].
   499         ].
   500 
   500 
   501 	something == #projectOrganization ifTrue:[
   501         something == #projectOrganization ifTrue:[
   502 	    aParameter isNil ifTrue:[
   502             aParameter isNil ifTrue:[
   503 		self invalidateList.
   503                 self invalidateList.
   504 		organizerMode value == #project ifTrue:[
   504                 organizerMode value == #project ifTrue:[
   505 		    self enqueueDelayedUpdateOutputGenerator.
   505                     self enqueueDelayedUpdateOutputGenerator.
   506 		].
   506                 ].
   507 		^ self
   507                 ^ self
   508 	    ].
   508             ].
   509 
   509 
   510 	    cls := aParameter at:1.
   510             cls := aParameter at:1.
   511 	    cls notNil ifTrue:[  "/ should not happen (but does occasionally)
   511             cls notNil ifTrue:[  "/ should not happen (but does occasionally)
   512 		((classes includes:cls theMetaclass)
   512                 ((classes includes:cls theMetaclass)
   513 		or:[(classes includes:cls theNonMetaclass)]) ifTrue:[
   513                 or:[(classes includes:cls theNonMetaclass)]) ifTrue:[
   514 		    self invalidateList.
   514                     self invalidateList.
   515 		    organizerMode value == #project ifTrue:[
   515                     organizerMode value == #project ifTrue:[
   516 			self enqueueDelayedUpdateOutputGenerator.
   516                         self enqueueDelayedUpdateOutputGenerator.
   517 		    ]
   517                     ]
   518 		].
   518                 ].
   519 	    ].
   519             ].
   520 	    ^ self
   520             ^ self
   521 	].
   521         ].
   522 	^ self.
   522         ^ self.
   523     ].
   523     ].
   524 
   524 
   525     (something == #lastTestRunResult) ifTrue:[
   525     (something == #lastTestRunResult) ifTrue:[
   526 	^ self
   526         ^ self
   527     ].
   527     ].
   528 
   528 
   529     changedObject == ChangeSet ifTrue:[
   529     changedObject == ChangeSet ifTrue:[
   530 	wg := self windowGroup.
   530         wg := self windowGroup.
   531 	wg isNil ifTrue:[
   531         wg isNil ifTrue:[
   532 	    changedObject removeDependent:self.
   532             changedObject removeDependent:self.
   533 	] ifFalse:[
   533         ] ifFalse:[
   534 	    "/ react on changes of the changeSet to recolorize items
   534             "/ react on changes of the changeSet to recolorize items
   535 	    something == #addChange: ifTrue:[
   535             something == #addChange: ifTrue:[
   536 		chgClass := aParameter changeClass.
   536                 chgClass := aParameter changeClass.
   537 		chgClass notNil ifTrue:[
   537                 chgClass notNil ifTrue:[
   538 		    ((classes includes:chgClass theNonMetaclass) 
   538                     ((classes includes:chgClass theNonMetaclass) 
   539 		    or:[classes includes:chgClass theMetaclass]) ifTrue:[
   539                     or:[classes includes:chgClass theMetaclass]) ifTrue:[
   540 			"/ remove all other addChange notifications ...
   540                         "/ remove all other addChange notifications ...
   541 			wg sensor 
   541                         wg sensor 
   542 			    flushEventsFor:self 
   542                             flushEventsFor:self 
   543 			    where:[:ev | ev isMessageSendEvent 
   543                             where:[:ev | ev isMessageSendEvent 
   544 					 and:[ev selector == #delayedUpdate:with:from:
   544                                          and:[ev selector == #delayedUpdate:with:from:
   545 					 and:[(ev arguments at:3) == ChangeSet]]].
   545                                          and:[(ev arguments at:3) == ChangeSet]]].
   546 			self reconstructNameList.
   546                         self reconstructNameList.
   547 		    ]
   547                     ]
   548 		]
   548                 ]
   549 	    ] ifFalse:[
   549             ] ifFalse:[
   550 		"/ remove all other ChangeSet notifications ...
   550                 "/ remove all other ChangeSet notifications ...
   551 		wg sensor 
   551                 wg sensor 
   552 		    flushEventsFor:self 
   552                     flushEventsFor:self 
   553 		    where:[:ev | ev isMessageSendEvent 
   553                     where:[:ev | ev isMessageSendEvent 
   554 				 and:[ev selector == #delayedUpdate:with:from:
   554                                  and:[ev selector == #delayedUpdate:with:from:
   555 				 and:[(ev arguments at:3) == ChangeSet]]].
   555                                  and:[(ev arguments at:3) == ChangeSet]]].
   556 		self reconstructNameList.
   556                 self reconstructNameList.
   557 	    ].
   557             ].
   558 	].
   558         ].
   559 	^ self 
   559         ^ self 
   560     ].
   560     ].
   561 
   561 
   562     changedObject == self selectedClasses ifTrue:[
   562     changedObject == self selectedClasses ifTrue:[
   563 	slaveMode value ~~ true ifTrue:[
   563         slaveMode value ~~ true ifTrue:[
   564 	    listValid == true ifFalse:[
   564             savedList := self selectedClasses value.
   565 		self updateList
   565             lastSelectedClasses := nil.
   566 	    ].
   566             listValid == true ifFalse:[
   567 	    self selectedClassesChanged.
   567                 self updateList
   568 	    self updateOutputGenerator.
   568             ].
   569 	] ifFalse:[
   569             self selectedClasses setValue:savedList.
   570 	    listValid := false.
   570             self selectedClassesChanged.
   571 	].
   571             self updateOutputGenerator.
   572 	^ self 
   572         ] ifFalse:[
       
   573             listValid := false.
       
   574         ].
       
   575         ^ self 
   573     ].
   576     ].
   574 
   577 
   575     (changedObject == meta 
   578     (changedObject == meta 
   576     or:[changedObject == selectedClassNameIndices]) ifTrue:[
   579     or:[changedObject == selectedClassNameIndices]) ifTrue:[
   577 	self selectionChanged.
   580         self selectionChanged.
   578 	^ self
   581         ^ self
   579     ].
   582     ].
   580     changedObject == showClassPackages ifTrue:[
   583     changedObject == showClassPackages ifTrue:[
   581 	self classNameList value:nil.
   584         self classNameList value:nil.
   582 	self invalidateList.
   585         self invalidateList.
   583 	^ self 
   586         ^ self 
   584     ].
   587     ].
   585 
   588 
   586     (changedObject == hideUnloadedClasses
   589     (changedObject == hideUnloadedClasses
   587     or:[changedObject == hidePrivateClasses
   590     or:[changedObject == hidePrivateClasses
   588     or:[changedObject == nameSpaceFilter
   591     or:[changedObject == nameSpaceFilter
   589     or:[changedObject == packageFilter]]]) ifTrue:[
   592     or:[changedObject == packageFilter]]]) ifTrue:[
   590 	self invalidateList.
   593         self invalidateList.
   591 	^ self 
   594         ^ self 
   592     ].
   595     ].
   593 
   596 
   594     super delayedUpdate:something with:aParameter from:changedObject
   597     super delayedUpdate:something with:aParameter from:changedObject
   595 
   598 
   596     "Modified: / 13.11.2001 / 11:32:10 / cg"
   599     "Modified: / 13.11.2001 / 11:32:10 / cg"
  1653 ! !
  1656 ! !
  1654 
  1657 
  1655 !ClassList class methodsFor:'documentation'!
  1658 !ClassList class methodsFor:'documentation'!
  1656 
  1659 
  1657 version
  1660 version
  1658     ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.41 2009-10-25 01:37:23 cg Exp $'
  1661     ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.42 2009-11-05 21:56:43 cg Exp $'
  1659 !
  1662 !
  1660 
  1663 
  1661 version_CVS
  1664 version_CVS
  1662     ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.41 2009-10-25 01:37:23 cg Exp $'
  1665     ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.42 2009-11-05 21:56:43 cg Exp $'
  1663 ! !
  1666 ! !