ChangesBrowser.st
changeset 17899 fd1e7993ab71
parent 17848 ab289c04f89c
child 17924 e9ec188d9e59
equal deleted inserted replaced
17898:f5f921c1e9c1 17899:fd1e7993ab71
       
     1 "{ Encoding: utf8 }"
       
     2 
     1 "
     3 "
     2  COPYRIGHT (c) 1990 by Claus Gittinger
     4  COPYRIGHT (c) 1990 by Claus Gittinger
     3 	      All Rights Reserved
     5 	      All Rights Reserved
     4 
     6 
     5  This software is furnished under a license and may be used
     7  This software is furnished under a license and may be used
   168     "Created: / 27.9.1999 / 12:28:27 / cg"
   170     "Created: / 27.9.1999 / 12:28:27 / cg"
   169 ! !
   171 ! !
   170 
   172 
   171 !ChangesBrowser class methodsFor:'help specs'!
   173 !ChangesBrowser class methodsFor:'help specs'!
   172 
   174 
   173 flyByHelpSpec
   175 helpSpec
   174     <resource: #help>
   176     <resource: #help>
   175 
   177 
   176     ^ Dictionary new 
   178     ^ Dictionary new 
   177         addPairsFrom:#(
   179         addPairsFrom:#(
   178 
   180 
  1283 
  1285 
  1284     "Modified: / 18.6.1998 / 22:15:36 / cg"
  1286     "Modified: / 18.6.1998 / 22:15:36 / cg"
  1285 ! !
  1287 ! !
  1286 
  1288 
  1287 !ChangesBrowser methodsFor:'help'!
  1289 !ChangesBrowser methodsFor:'help'!
  1288 
       
  1289 flyByHelpSpec
       
  1290     ^ self class flyByHelpSpec
       
  1291 !
       
  1292 
  1290 
  1293 showActivity:someMessage
  1291 showActivity:someMessage
  1294     "some activityNotification to be forwarded to the user;
  1292     "some activityNotification to be forwarded to the user;
  1295      show it in the windows title area here."
  1293      show it in the windows title area here."
  1296 
  1294 
  1577 
  1575 
  1578         toolbarMenu := MenuPanel in:self.
  1576         toolbarMenu := MenuPanel in:self.
  1579         toolbarMenu verticalLayout:false.
  1577         toolbarMenu verticalLayout:false.
  1580         toolbarMenu receiver:self.
  1578         toolbarMenu receiver:self.
  1581         toolbarMenu menu:(self toolbarMenu).
  1579         toolbarMenu menu:(self toolbarMenu).
  1582         toolbarMenu flyByHelpSpecProvider:self. "/ for helpTexts
  1580         toolbarMenu helpSpecProvider:self. "/ for helpTexts
  1583 
  1581 
  1584         tmH := toolbarMenu preferredHeight.
  1582         tmH := toolbarMenu preferredHeight.
  1585         toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
  1583         toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
  1586         mH := mH + tmH + 1.
  1584         mH := mH + tmH + 1.
  1587     ] ifTrue:[
  1585     ] ifTrue:[
  3668 
  3666 
  3669     "/ old:
  3667     "/ old:
  3670     "/ does not care for VW qualified names
  3668     "/ does not care for VW qualified names
  3671     "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
  3669     "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
  3672 
  3670 
  3673 (text includesString:'§') ifTrue:[self halt].
  3671 (text includesString:'§') ifTrue:[self halt].
  3674 
  3672 
  3675     "/ new:
  3673     "/ new:
  3676     parser := Parser for:(ReadStream on:text).
  3674     parser := Parser for:(ReadStream on:text).
  3677     parser parserFlags allowQualifiedNames:true.
  3675     parser parserFlags allowQualifiedNames:true.
  3678     parser parserFlags allowDollarInIdentifier:true.
  3676     parser parserFlags allowDollarInIdentifier:true.
  4788                             ex proceedWith:defaultApplicationForVAGEClasses
  4786                             ex proceedWith:defaultApplicationForVAGEClasses
  4789                         ] do:[
  4787                         ] do:[
  4790                             Class changeDefaultApplicationNotificationSignal handle:[:ex |
  4788                             Class changeDefaultApplicationNotificationSignal handle:[:ex |
  4791                                 defaultApplicationForVAGEClasses := ex parameter.    
  4789                                 defaultApplicationForVAGEClasses := ex parameter.    
  4792                             ] do:[
  4790                             ] do:[
       
  4791                                 |skip|
       
  4792 
       
  4793                                 skip := false.
  4793 
  4794 
  4794                                 "/ a followup methodsFor: chunk ...
  4795                                 "/ a followup methodsFor: chunk ...
  4795                                 (self changeIsFollowupMethodChange:changeNr) ifTrue:[
  4796                                 (self changeIsFollowupMethodChange:changeNr) ifTrue:[
  4796                                     methodsForChunk := self changeChunkAt:changeNr.
  4797                                     methodsForChunk := self changeChunkAt:changeNr.
  4797                                 ] ifFalse:[
  4798                                 ] ifFalse:[
  4835                                                 shortName := className copyFrom:(className lastIndexOf:$:) + 1.
  4836                                                 shortName := className copyFrom:(className lastIndexOf:$:) + 1.
  4836                                                 shortName = className ifTrue:[
  4837                                                 shortName = className ifTrue:[
  4837                                                      shortName := ''
  4838                                                      shortName := ''
  4838                                                 ].
  4839                                                 ].
  4839                                             ].
  4840                                             ].
  4840                                             className := Dialog
  4841 
       
  4842                                             skip := false.
       
  4843 
       
  4844                                             Dialog modifyingBoxWith:[:box |
       
  4845                                                 self halt.
       
  4846                                                 box 
       
  4847                                                     addButton:(Button label:'Skip' action:[skip := true. box hide])
       
  4848                                                     after:box noButton
       
  4849                                             ] do:[
       
  4850                                                 className := Dialog
  4841                                                             request:'No class ''' , className , ''' for change. Add to which class? (enter empty string to skip this change)'
  4851                                                             request:'No class ''' , className , ''' for change. Add to which class? (enter empty string to skip this change)'
  4842                                                             initialAnswer:shortName.
  4852                                                             initialAnswer:shortName.
  4843 
       
  4844                                             className isNil ifTrue:[
       
  4845                                                 AbortAllOperationRequest raise.
       
  4846                                             ].
  4853                                             ].
  4847                                             className isEmpty ifTrue:[
  4854                                             skip ifFalse:[
  4848                                                 ^ false
  4855                                                 className isNil ifTrue:[
       
  4856                                                     AbortAllOperationRequest raise.
       
  4857                                                 ].
       
  4858                                                 className isEmpty ifTrue:[
       
  4859                                                     ^ false
       
  4860                                                 ].
       
  4861                                                 alternativeClass := Smalltalk classNamed:className.
       
  4862                                                 alternativeClass notNil ifTrue:[
       
  4863                                                     changeClass := alternativeClass
       
  4864                                                 ]
  4849                                             ].
  4865                                             ].
  4850                                             alternativeClass := Smalltalk classNamed:className.
       
  4851                                             alternativeClass notNil ifTrue:[
       
  4852                                                 changeClass := alternativeClass
       
  4853                                             ]
       
  4854                                         ].
  4866                                         ].
  4855                                         methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
  4867                                         skip ifFalse:[
  4856                                         methodsForChunk := changeClass name , methodsForChunk.
  4868                                             methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
       
  4869                                             methodsForChunk := changeClass name , methodsForChunk.
       
  4870                                         ].
  4857                                     ].
  4871                                     ].
  4858                                     reader := Compiler evaluate:methodsForChunk notifying:self.
  4872                                     skip ifFalse:[
  4859                                     reader fileInFrom:aStream notifying:self passChunk:false single:true.
  4873                                         reader := Compiler evaluate:methodsForChunk notifying:self.
       
  4874                                         reader fileInFrom:aStream notifying:self passChunk:false single:true.
       
  4875                                     ]                        
  4860                                 ]
  4876                                 ]
  4861                             ]
  4877                             ]
  4862                         ]
  4878                         ]
  4863                     ]
  4879                     ]
  4864                 ]
  4880                 ]
  6698      The system only writes one chunk,
  6714      The system only writes one chunk,
  6699      and we cannot handle more in this ChangesBrowser ....
  6715      and we cannot handle more in this ChangesBrowser ....
  6700     "
  6716     "
  6701     clsName := nil.
  6717     clsName := nil.
  6702 
  6718 
  6703 (chunkText includesString:'§') ifTrue:[self halt].
  6719 (chunkText includesString:'§') ifTrue:[self halt].
  6704 
  6720 
  6705     p := browser parseExpression:chunkText inNameSpace:(self nameSpaceForApply).
  6721     p := browser parseExpression:chunkText inNameSpace:(self nameSpaceForApply).
  6706     (p notNil and:[p ~~ #Error and:[p isMessage]]) ifTrue:[
  6722     (p notNil and:[p ~~ #Error and:[p isMessage]]) ifTrue:[
  6707         rec := p receiver.
  6723         rec := p receiver.
  6708         sel := p selector.
  6724         sel := p selector.