ChangesBrowser.st
branchjv
changeset 17136 cb908d2ba02e
parent 17132 17d361c666c2
parent 17096 e86120cc8ba3
child 17216 47ff06181c21
equal deleted inserted replaced
17135:81b78926f09a 17136:cb908d2ba02e
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "
     1 "
     4  COPYRIGHT (c) 1990 by Claus Gittinger
     2  COPYRIGHT (c) 1990 by Claus Gittinger
     5 	      All Rights Reserved
     3 	      All Rights Reserved
     6 
     4 
     7  This software is furnished under a license and may be used
     5  This software is furnished under a license and may be used
    98         free. Also, this will put the chunk analysation code into Change and
    96         free. Also, this will put the chunk analysation code into Change and
    99         subclasses (where it belongs) and give a better encapsulation and
    97         subclasses (where it belongs) and give a better encapsulation and
   100         overall structure. Do not take this as an example for good style ;-)
    98         overall structure. Do not take this as an example for good style ;-)
   101 
    99 
   102         The Change hierarchy is currently been completed, and the changes browser
   100         The Change hierarchy is currently been completed, and the changes browser
   103         will be adapted soon.
   101         should be adapted soon.
   104 
   102 
   105     [author:]
   103     [author:]
   106         Claus Gittinger
   104         Claus Gittinger
   107 
   105 
   108     [start with:]
   106     [start with:]
   211     ^ 
   209     ^ 
   212      #(Menu
   210      #(Menu
   213         (
   211         (
   214          (MenuItem
   212          (MenuItem
   215             label: 'File'
   213             label: 'File'
   216             submenu: 
   214             submenuChannel: menuSpecFile
   217            (Menu
       
   218               (
       
   219                (MenuItem
       
   220                   label: 'Compress'
       
   221                   itemValue: doCompress
       
   222                   isVisible: notEditingClassSource
       
   223                 )
       
   224                (MenuItem
       
   225                   enabled: hasSingleSelection
       
   226                   label: 'Compress for Class'
       
   227                   itemValue: doCompressClass
       
   228                   isVisible: notEditingClassSource
       
   229                 )
       
   230                (MenuItem
       
   231                   enabled: hasSingleSelection
       
   232                   label: 'Compress for Class && Selector'
       
   233                   itemValue: doCompressSelector
       
   234                   isVisible: notEditingClassSource
       
   235                 )
       
   236                (MenuItem
       
   237                   label: 'Compare and Compress'
       
   238                   itemValue: doCompareAndCompress
       
   239                   isVisible: notEditingClassSource
       
   240                 )
       
   241                (MenuItem
       
   242                   label: '-'
       
   243                   isVisible: notEditingClassSource
       
   244                 )
       
   245                (MenuItem
       
   246                   enabled: hasSingleSelection
       
   247                   label: 'Fileout && Delete all Changes for Class'
       
   248                   itemValue: doFileoutAndDeleteClassAll
       
   249                   isVisible: notEditingClassSource
       
   250                 )
       
   251                (MenuItem
       
   252                   enabled: hasSelection
       
   253                   label: 'CheckIn && Delete all Changes for Class'
       
   254                   itemValue: doCheckinAndDeleteClassAll
       
   255                   isVisible: notEditingClassSource
       
   256                 )
       
   257                (MenuItem
       
   258                   label: '-'
       
   259                   isVisible: notEditingClassSource
       
   260                 )
       
   261                (MenuItem
       
   262                   enabled: hasSelection
       
   263                   label: 'Save In...'
       
   264                   itemValue: doSave
       
   265                 )
       
   266                (MenuItem
       
   267                   enabled: hasSingleSelection
       
   268                   label: 'Save to End In...'
       
   269                   itemValue: doSaveRest
       
   270                 )
       
   271                (MenuItem
       
   272                   enabled: hasSingleSelection
       
   273                   label: 'Save for Class to End In...'
       
   274                   itemValue: doSaveClassRest
       
   275                 )
       
   276                (MenuItem
       
   277                   enabled: hasSingleSelection
       
   278                   label: 'Save all for Class In...'
       
   279                   itemValue: doSaveClassAll
       
   280                 )
       
   281                (MenuItem
       
   282                   label: '-'
       
   283                 )
       
   284                (MenuItem
       
   285                   label: 'Writeback ClassFile'
       
   286                   itemValue: doWriteBack
       
   287                   isVisible: editingClassSource
       
   288                 )
       
   289                (MenuItem
       
   290                   label: 'Writeback ChangeFile'
       
   291                   itemValue: doWriteBack
       
   292                   isVisible: notEditingClassSource
       
   293                 )
       
   294                (MenuItem
       
   295                   label: '-'
       
   296                 )
       
   297                (MenuItem
       
   298                   label: 'Update'
       
   299                   itemValue: doUpdate
       
   300                 )
       
   301                (MenuItem
       
   302                   label: '-'
       
   303                 )
       
   304                (MenuItem
       
   305                   label: 'Exit'
       
   306                   itemValue: menuExit
       
   307                 )
       
   308                )
       
   309               nil
       
   310               nil
       
   311             )
       
   312           )
   215           )
   313          (MenuItem
   216          (MenuItem
   314             label: 'CHANGE'
   217             label: 'CHANGE'
   315             submenu: 
   218             submenuChannel: menuSpecChange
   316            (Menu
       
   317               (
       
   318                (MenuItem
       
   319                   enabled: hasSelection
       
   320                   label: 'Apply'
       
   321                   itemValue: doApply
       
   322                 )
       
   323                (MenuItem
       
   324                   enabled: hasSingleSelection
       
   325                   label: 'Apply to End'
       
   326                   itemValue: doApplyRest
       
   327                 )
       
   328                (MenuItem
       
   329                   enabled: hasSingleSelection
       
   330                   label: 'Apply from Begin'
       
   331                   itemValue: doApplyFromBeginning
       
   332                 )
       
   333                (MenuItem
       
   334                   enabled: hasSingleSelection
       
   335                   label: 'Apply for Class to End'
       
   336                   itemValue: doApplyClassRest
       
   337                 )
       
   338                (MenuItem
       
   339                   enabled: hasSingleSelection
       
   340                   label: 'Apply for Class from Begin'
       
   341                   itemValue: doApplyClassFromBeginning
       
   342                 )
       
   343                (MenuItem
       
   344                   enabled: hasNoSelection
       
   345                   label: 'Apply All'
       
   346                   itemValue: doApplyAll
       
   347                 )
       
   348                (MenuItem
       
   349                   enabled: hasSingleSelection
       
   350                   label: 'Apply to Conflict or End'
       
   351                   itemValue: doApplyToConflictOrEnd
       
   352                 )
       
   353                (MenuItem
       
   354                   label: '-'
       
   355                 )
       
   356                (MenuItem
       
   357                   enabled: hasSelection
       
   358                   label: 'Delete'
       
   359                   itemValue: doDelete
       
   360                 )
       
   361                (MenuItem
       
   362                   enabled: hasSingleSelection
       
   363                   label: 'Delete to End'
       
   364                   itemValue: doDeleteRest
       
   365                 )
       
   366                (MenuItem
       
   367                   enabled: hasSingleSelection
       
   368                   label: 'Delete from Begin'
       
   369                   itemValue: doDeleteFromBeginning
       
   370                 )
       
   371                (MenuItem
       
   372                   enabled: hasSingleSelection
       
   373                   label: 'Delete for Class to End'
       
   374                   itemValue: doDeleteClassRest
       
   375                 )
       
   376                (MenuItem
       
   377                   enabled: hasSingleSelection
       
   378                   label: 'Delete for Class from Begin'
       
   379                   itemValue: doDeleteClassFromBeginning
       
   380                 )
       
   381                (MenuItem
       
   382                   enabled: hasSelection
       
   383                   label: 'Delete all for Class'
       
   384                   itemValue: doDeleteClassAll
       
   385                   isVisible: hasNoMultiSelection
       
   386                 )
       
   387                (MenuItem
       
   388                   enabled: hasSelection
       
   389                   label: 'Delete all for Class && its Private Classes'
       
   390                   itemValue: doDeleteClassAndPrivateClassesAll
       
   391                   isVisible: hasNoMultiSelection
       
   392                 )
       
   393                (MenuItem
       
   394                   enabled: hasSelection
       
   395                   label: 'Delete all for Namespace'
       
   396                   itemValue: doDeleteAllForNamespace
       
   397                 )
       
   398                (MenuItem
       
   399                   enabled: hasSelection
       
   400                   label: 'Delete all for Classes'
       
   401                   itemValue: doDeleteClassAll
       
   402                   isVisible: hasMultiSelection
       
   403                 )
       
   404                (MenuItem
       
   405                   enabled: hasSelection
       
   406                   label: 'Delete all for Classes && their Private Classes'
       
   407                   itemValue: doDeleteClassAndPrivateClassesAll
       
   408                   isVisible: hasMultiSelection
       
   409                 )
       
   410                (MenuItem
       
   411                   label: '-'
       
   412                 )
       
   413                (MenuItem
       
   414                   enabled: hasSelection
       
   415                   label: 'Delete older Versions of Selected Method'
       
   416                   itemValue: doDeleteClassSelectorOlder
       
   417                   isVisible: hasNoMultiSelectionHolder
       
   418                 )
       
   419                (MenuItem
       
   420                   enabled: hasSelection
       
   421                   label: 'Delete older Versions of all Selected Methods'
       
   422                   itemValue: doDeleteClassSelectorOlder
       
   423                   isVisible: hasMultiSelectionHolder
       
   424                 )
       
   425                (MenuItem
       
   426                   enabled: hasSelection
       
   427                   label: 'Delete all Versions of Selected Method'
       
   428                   itemValue: doDeleteClassSelectorAll
       
   429                   isVisible: hasNoMultiSelectionHolder
       
   430                 )
       
   431                (MenuItem
       
   432                   enabled: hasSelection
       
   433                   label: 'Delete all Versions of all Selected Methods'
       
   434                   itemValue: doDeleteClassSelectorAll
       
   435                   isVisible: hasMultiSelectionHolder
       
   436                 )
       
   437                (MenuItem
       
   438                   label: '-'
       
   439                 )
       
   440                (MenuItem
       
   441                   enabled: hasSingleSelection
       
   442                   label: 'Compare with Current'
       
   443                   itemValue: doCompare
       
   444                 )
       
   445                (MenuItem
       
   446                   label: '-'
       
   447                 )
       
   448                (MenuItem
       
   449                   enabled: hasSelection
       
   450                   label: 'Make Change a Patch'
       
   451                   itemValue: doMakePatch
       
   452                 )
       
   453                )
       
   454               nil
       
   455               nil
       
   456             )
       
   457           )
   219           )
   458          (MenuItem
   220          (MenuItem
   459             label: 'Search'
   221             label: 'Search'
   460             submenu: 
   222             submenuChannel: menuSpecSearch
   461            (Menu
       
   462               (
       
   463                (MenuItem
       
   464                   label: 'Class...'
       
   465                   itemValue: findClass
       
   466                 )
       
   467                (MenuItem
       
   468                   enabled: hasSelection
       
   469                   label: 'First for Class'
       
   470                   itemValue: findFirstForClass
       
   471                 )
       
   472                (MenuItem
       
   473                   enabled: hasSelection
       
   474                   label: 'Previous for Class'
       
   475                   itemValue: findPreviousForClass
       
   476                 )
       
   477                (MenuItem
       
   478                   enabled: hasSelection
       
   479                   label: 'Next for Class'
       
   480                   itemValue: findNextForClass
       
   481                 )
       
   482                (MenuItem
       
   483                   enabled: hasSelection
       
   484                   label: 'Last for Class'
       
   485                   itemValue: findLastForClass
       
   486                 )
       
   487                (MenuItem
       
   488                   label: '-'
       
   489                 )
       
   490                (MenuItem
       
   491                   label: 'Selector...'
       
   492                   itemValue: findSelector
       
   493                 )
       
   494                (MenuItem
       
   495                   enabled: hasSelection
       
   496                   label: 'Previous for Selector'
       
   497                   itemValue: findPreviousForSelector
       
   498                 )
       
   499                (MenuItem
       
   500                   enabled: hasSelection
       
   501                   label: 'Next for Selector'
       
   502                   itemValue: findNextForSelector
       
   503                 )
       
   504                (MenuItem
       
   505                   label: '-'
       
   506                 )
       
   507                (MenuItem
       
   508                   label: 'String...'
       
   509                   itemValue: findString
       
   510                 )
       
   511                (MenuItem
       
   512                   enabled: hasSelection
       
   513                   label: 'Previous with String'
       
   514                   itemValue: findPreviousForString
       
   515                 )
       
   516                (MenuItem
       
   517                   enabled: hasSelection
       
   518                   label: 'Next with String'
       
   519                   itemValue: findNextForString
       
   520                 )
       
   521                (MenuItem
       
   522                   label: '-'
       
   523                 )
       
   524                (MenuItem
       
   525                   enabled: hasSelection
       
   526                   label: 'Previous Difference'
       
   527                   itemValue: findPreviousDifference
       
   528                 )
       
   529                (MenuItem
       
   530                   enabled: hasSelection
       
   531                   label: 'Next Difference'
       
   532                   itemValue: findNextDifference
       
   533                 )
       
   534                (MenuItem
       
   535                   label: '-'
       
   536                 )
       
   537                (MenuItem
       
   538                   enabled: hasSelection
       
   539                   label: 'Previous Snapshot'
       
   540                   itemValue: findPreviousSnapshot
       
   541                 )
       
   542                (MenuItem
       
   543                   enabled: hasSelection
       
   544                   label: 'Next Snapshot'
       
   545                   itemValue: findNextSnapshot
       
   546                 )
       
   547                (MenuItem
       
   548                   label: 'Last Snapshot'
       
   549                   itemValue: findLastSnapshot
       
   550                 )
       
   551                )
       
   552               nil
       
   553               nil
       
   554             )
       
   555           )
   223           )
   556          (MenuItem
   224          (MenuItem
   557             label: 'Browse'
   225             label: 'Browse'
   558             submenu: 
   226             submenuChannel: menuSpecBrowse
   559            (Menu
       
   560               (
       
   561                (MenuItem
       
   562                   enabled: hasSingleSelection
       
   563                   label: 'Class'
       
   564                   itemValue: doBrowse
       
   565                 )
       
   566                (MenuItem
       
   567                   label: '-'
       
   568                 )
       
   569                (MenuItem
       
   570                   label: 'Senders...'
       
   571                   itemValue: doBrowseSenders
       
   572                 )
       
   573                (MenuItem
       
   574                   label: 'Implementors...'
       
   575                   itemValue: doBrowseImplementors
       
   576                 )
       
   577                )
       
   578               nil
       
   579               nil
       
   580             )
       
   581           )
   227           )
   582          (MenuItem
   228          (MenuItem
   583             label: 'Settings'
   229             label: 'Settings'
   584             submenu: 
   230             submenuChannel: menuSpecSettings
   585            (Menu
       
   586               (
       
   587                (MenuItem
       
   588                   label: 'Auto Compare'
       
   589                   indication: autoCompare
       
   590                 )
       
   591                (MenuItem
       
   592                   label: 'Autoload As Required'
       
   593                   indication: autoloadAsRequired
       
   594                 )
       
   595                (MenuItem
       
   596                   label: 'Show Diffs'
       
   597                   indication: showingDiffs
       
   598                 )
       
   599                (MenuItem
       
   600                   label: 'Auto Update'
       
   601                   indication: autoUpdate
       
   602                 )
       
   603                (MenuItem
       
   604                   label: '-'
       
   605                 )
       
   606                (MenuItem
       
   607                   label: 'Add to ChangeSet when Applying'
       
   608                   indication: updateChangeSet
       
   609                 )
       
   610                (MenuItem
       
   611                   label: 'Ignore Public/Private in Categories (Dolphin code)'
       
   612                   itemValue: ignorePublicPrivateCategories:
       
   613                   indication: ignorePublicPrivateCategories
       
   614                   isVisible: false
       
   615                 )
       
   616                (MenuItem
       
   617                   label: '-'
       
   618                 )
       
   619                (MenuItem
       
   620                   label: 'Apply into Package...'
       
   621                   itemValue: setEnforcedPackage
       
   622                 )
       
   623                (MenuItem
       
   624                   label: 'Apply into NameSpace...'
       
   625                   itemValue: setEnforcedNameSpace
       
   626                 )
       
   627                (MenuItem
       
   628                   label: '-'
       
   629                 )
       
   630                (MenuItem
       
   631                   label: 'Settings...'
       
   632                   itemValue: openSettingsDialog
       
   633                 )
       
   634                )
       
   635               nil
       
   636               nil
       
   637             )
       
   638           )
   231           )
   639          (MenuItem
   232          (MenuItem
   640             label: 'MENU_Help'
   233             label: 'MENU_Help'
   641             startGroup: conditionalRight
   234             submenuChannel: menuSpecHelp
   642             submenu: 
   235           )
   643            (Menu
   236          )
   644               (
   237         nil
   645                (MenuItem
   238         nil
   646                   label: 'ChangesBrowser Documentation'
   239       )
   647                   itemValue: openHTMLDocument:
   240 
   648                   argument: 'tools/cbrowser/TOP.html'
   241     "Modified: / 21-11-2016 / 23:46:22 / cg"
   649                 )
   242 !
   650                (MenuItem
   243 
   651                   label: '-'
   244 menuSpecBrowse
   652                 )
   245     "This resource specification was automatically generated
   653                (MenuItem
   246      by the MenuEditor of ST/X."
   654                   label: 'About ChangesBrowser...'
   247 
   655                   itemValue: openAboutThisApplication
   248     "Do not manually edit this!! If it is corrupted,
   656                 )
   249      the MenuEditor may not be able to read the specification."
   657                )
   250 
   658               nil
   251 
   659               nil
   252     "
   660             )
   253      MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecBrowse
       
   254      (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecBrowse)) startUp
       
   255     "
       
   256 
       
   257     <resource: #menu>
       
   258 
       
   259     ^ 
       
   260      #(Menu
       
   261         (
       
   262          (MenuItem
       
   263             enabled: hasSingleSelection
       
   264             label: 'Class'
       
   265             itemValue: doBrowse
       
   266           )
       
   267          (MenuItem
       
   268             label: '-'
       
   269           )
       
   270          (MenuItem
       
   271             label: 'Senders...'
       
   272             itemValue: doBrowseSenders
       
   273           )
       
   274          (MenuItem
       
   275             label: 'Implementors...'
       
   276             itemValue: doBrowseImplementors
       
   277           )
       
   278          )
       
   279         nil
       
   280         nil
       
   281       )
       
   282 !
       
   283 
       
   284 menuSpecChange
       
   285     "This resource specification was automatically generated
       
   286      by the MenuEditor of ST/X."
       
   287 
       
   288     "Do not manually edit this!! If it is corrupted,
       
   289      the MenuEditor may not be able to read the specification."
       
   290 
       
   291 
       
   292     "
       
   293      MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecChange
       
   294      (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecChange)) startUp
       
   295     "
       
   296 
       
   297     <resource: #menu>
       
   298 
       
   299     ^ 
       
   300      #(Menu
       
   301         (
       
   302          (MenuItem
       
   303             enabled: hasSelection
       
   304             label: 'Apply'
       
   305             itemValue: doApply
       
   306           )
       
   307          (MenuItem
       
   308             enabled: hasSingleSelection
       
   309             label: 'Apply to End'
       
   310             itemValue: doApplyRest
       
   311           )
       
   312          (MenuItem
       
   313             enabled: hasSingleSelection
       
   314             label: 'Apply from Begin'
       
   315             itemValue: doApplyFromBeginning
       
   316           )
       
   317          (MenuItem
       
   318             enabled: hasSingleSelection
       
   319             label: 'Apply for Class to End'
       
   320             itemValue: doApplyClassRest
       
   321           )
       
   322          (MenuItem
       
   323             enabled: hasSingleSelection
       
   324             label: 'Apply for Class from Begin'
       
   325             itemValue: doApplyClassFromBeginning
       
   326           )
       
   327          (MenuItem
       
   328             enabled: hasNoSelection
       
   329             label: 'Apply All'
       
   330             itemValue: doApplyAll
       
   331           )
       
   332          (MenuItem
       
   333             enabled: hasSingleSelection
       
   334             label: 'Apply to Conflict or End'
       
   335             itemValue: doApplyToConflictOrEnd
       
   336           )
       
   337          (MenuItem
       
   338             label: '-'
       
   339           )
       
   340          (MenuItem
       
   341             enabled: hasSelection
       
   342             label: 'Delete'
       
   343             itemValue: doDelete
       
   344           )
       
   345          (MenuItem
       
   346             enabled: hasSingleSelection
       
   347             label: 'Delete to End'
       
   348             itemValue: doDeleteRest
       
   349           )
       
   350          (MenuItem
       
   351             enabled: hasSingleSelection
       
   352             label: 'Delete from Begin'
       
   353             itemValue: doDeleteFromBeginning
       
   354           )
       
   355          (MenuItem
       
   356             enabled: hasSingleSelection
       
   357             label: 'Delete for Class to End'
       
   358             itemValue: doDeleteClassRest
       
   359           )
       
   360          (MenuItem
       
   361             enabled: hasSingleSelection
       
   362             label: 'Delete for Class from Begin'
       
   363             itemValue: doDeleteClassFromBeginning
       
   364           )
       
   365          (MenuItem
       
   366             enabled: hasSelection
       
   367             label: 'Delete all for Class'
       
   368             itemValue: doDeleteClassAll
       
   369             isVisible: hasNoMultiSelection
       
   370           )
       
   371          (MenuItem
       
   372             enabled: hasSelection
       
   373             label: 'Delete all for Class && its Private Classes'
       
   374             itemValue: doDeleteClassAndPrivateClassesAll
       
   375             isVisible: hasNoMultiSelection
       
   376           )
       
   377          (MenuItem
       
   378             enabled: hasSelection
       
   379             label: 'Delete all for Namespace'
       
   380             itemValue: doDeleteAllForNamespace
       
   381           )
       
   382          (MenuItem
       
   383             enabled: hasSelection
       
   384             label: 'Delete all for Classes'
       
   385             itemValue: doDeleteClassAll
       
   386             isVisible: hasMultiSelection
       
   387           )
       
   388          (MenuItem
       
   389             enabled: hasSelection
       
   390             label: 'Delete all for Classes && their Private Classes'
       
   391             itemValue: doDeleteClassAndPrivateClassesAll
       
   392             isVisible: hasMultiSelection
       
   393           )
       
   394          (MenuItem
       
   395             label: '-'
       
   396           )
       
   397          (MenuItem
       
   398             enabled: hasSelection
       
   399             label: 'Delete older Versions of Selected Method'
       
   400             itemValue: doDeleteClassSelectorOlder
       
   401             isVisible: hasNoMultiSelectionHolder
       
   402           )
       
   403          (MenuItem
       
   404             enabled: hasSelection
       
   405             label: 'Delete older Versions of all Selected Methods'
       
   406             itemValue: doDeleteClassSelectorOlder
       
   407             isVisible: hasMultiSelectionHolder
       
   408           )
       
   409          (MenuItem
       
   410             enabled: hasSelection
       
   411             label: 'Delete all Versions of Selected Method'
       
   412             itemValue: doDeleteClassSelectorAll
       
   413             isVisible: hasNoMultiSelectionHolder
       
   414           )
       
   415          (MenuItem
       
   416             enabled: hasSelection
       
   417             label: 'Delete all Versions of all Selected Methods'
       
   418             itemValue: doDeleteClassSelectorAll
       
   419             isVisible: hasMultiSelectionHolder
       
   420           )
       
   421          (MenuItem
       
   422             label: '-'
       
   423           )
       
   424          (MenuItem
       
   425             enabled: hasSingleSelection
       
   426             label: 'Compare with Current'
       
   427             itemValue: doCompare
       
   428           )
       
   429          (MenuItem
       
   430             enabled: hasSingleSelection
       
   431             label: 'Copy to Clipboard'
       
   432             itemValue: doCopyToClipboard
       
   433           )
       
   434          (MenuItem
       
   435             label: '-'
       
   436           )
       
   437          (MenuItem
       
   438             enabled: hasSelection
       
   439             label: 'Make Change a Patch'
       
   440             itemValue: doMakePatch
       
   441           )
       
   442          )
       
   443         nil
       
   444         nil
       
   445       )
       
   446 
       
   447     "Modified: / 21-11-2016 / 23:46:42 / cg"
       
   448 !
       
   449 
       
   450 menuSpecFile
       
   451     "This resource specification was automatically generated
       
   452      by the MenuEditor of ST/X."
       
   453 
       
   454     "Do not manually edit this!! If it is corrupted,
       
   455      the MenuEditor may not be able to read the specification."
       
   456 
       
   457 
       
   458     "
       
   459      MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecFile
       
   460      (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecFile)) startUp
       
   461     "
       
   462 
       
   463     <resource: #menu>
       
   464 
       
   465     ^ 
       
   466      #(Menu
       
   467         (
       
   468          (MenuItem
       
   469             label: 'Compress'
       
   470             itemValue: doCompress
       
   471             isVisible: notEditingClassSource
       
   472           )
       
   473          (MenuItem
       
   474             enabled: hasSingleSelection
       
   475             label: 'Compress for Class'
       
   476             itemValue: doCompressClass
       
   477             isVisible: notEditingClassSource
       
   478           )
       
   479          (MenuItem
       
   480             enabled: hasSingleSelection
       
   481             label: 'Compress for Class && Selector'
       
   482             itemValue: doCompressSelector
       
   483             isVisible: notEditingClassSource
       
   484           )
       
   485          (MenuItem
       
   486             label: 'Compare and Compress'
       
   487             itemValue: doCompareAndCompress
       
   488             isVisible: notEditingClassSource
       
   489           )
       
   490          (MenuItem
       
   491             label: '-'
       
   492             isVisible: notEditingClassSource
       
   493           )
       
   494          (MenuItem
       
   495             enabled: hasSingleSelection
       
   496             label: 'Fileout && Delete all Changes for Class'
       
   497             itemValue: doFileoutAndDeleteClassAll
       
   498             isVisible: notEditingClassSource
       
   499           )
       
   500          (MenuItem
       
   501             enabled: hasSelection
       
   502             label: 'CheckIn && Delete all Changes for Class'
       
   503             itemValue: doCheckinAndDeleteClassAll
       
   504             isVisible: notEditingClassSource
       
   505           )
       
   506          (MenuItem
       
   507             label: '-'
       
   508             isVisible: notEditingClassSource
       
   509           )
       
   510          (MenuItem
       
   511             enabled: hasSelection
       
   512             label: 'Save In...'
       
   513             itemValue: doSave
       
   514           )
       
   515          (MenuItem
       
   516             enabled: hasSingleSelection
       
   517             label: 'Save to End In...'
       
   518             itemValue: doSaveRest
       
   519           )
       
   520          (MenuItem
       
   521             enabled: hasSingleSelection
       
   522             label: 'Save for Class to End In...'
       
   523             itemValue: doSaveClassRest
       
   524           )
       
   525          (MenuItem
       
   526             enabled: hasSingleSelection
       
   527             label: 'Save all for Class In...'
       
   528             itemValue: doSaveClassAll
       
   529           )
       
   530          (MenuItem
       
   531             label: '-'
       
   532           )
       
   533          (MenuItem
       
   534             label: 'Writeback ClassFile'
       
   535             itemValue: doWriteBack
       
   536             isVisible: editingClassSource
       
   537           )
       
   538          (MenuItem
       
   539             label: 'Writeback ChangeFile'
       
   540             itemValue: doWriteBack
       
   541             isVisible: notEditingClassSource
       
   542           )
       
   543          (MenuItem
       
   544             label: '-'
       
   545           )
       
   546          (MenuItem
       
   547             label: 'Update'
       
   548             itemValue: doUpdate
       
   549           )
       
   550          (MenuItem
       
   551             label: '-'
       
   552           )
       
   553          (MenuItem
       
   554             label: 'Exit'
       
   555             itemValue: menuExit
       
   556           )
       
   557          )
       
   558         nil
       
   559         nil
       
   560       )
       
   561 !
       
   562 
       
   563 menuSpecHelp
       
   564     "This resource specification was automatically generated
       
   565      by the MenuEditor of ST/X."
       
   566 
       
   567     "Do not manually edit this!! If it is corrupted,
       
   568      the MenuEditor may not be able to read the specification."
       
   569 
       
   570 
       
   571     "
       
   572      MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecHelp
       
   573      (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecHelp)) startUp
       
   574     "
       
   575 
       
   576     <resource: #menu>
       
   577 
       
   578     ^ 
       
   579      #(Menu
       
   580         (
       
   581          (MenuItem
       
   582             label: 'ChangesBrowser Documentation'
       
   583             itemValue: openHTMLDocument:
       
   584             argument: 'tools/cbrowser/TOP.html'
       
   585           )
       
   586          (MenuItem
       
   587             label: '-'
       
   588           )
       
   589          (MenuItem
       
   590             label: 'About ChangesBrowser...'
       
   591             itemValue: openAboutThisApplication
       
   592           )
       
   593          )
       
   594         nil
       
   595         nil
       
   596       )
       
   597 !
       
   598 
       
   599 menuSpecSearch
       
   600     "This resource specification was automatically generated
       
   601      by the MenuEditor of ST/X."
       
   602 
       
   603     "Do not manually edit this!! If it is corrupted,
       
   604      the MenuEditor may not be able to read the specification."
       
   605 
       
   606 
       
   607     "
       
   608      MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSearch
       
   609      (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSearch)) startUp
       
   610     "
       
   611 
       
   612     <resource: #menu>
       
   613 
       
   614     ^ 
       
   615      #(Menu
       
   616         (
       
   617          (MenuItem
       
   618             label: 'Class...'
       
   619             itemValue: findClass
       
   620           )
       
   621          (MenuItem
       
   622             enabled: hasSelection
       
   623             label: 'First for Class'
       
   624             itemValue: findFirstForClass
       
   625           )
       
   626          (MenuItem
       
   627             enabled: hasSelection
       
   628             label: 'Previous for Class'
       
   629             itemValue: findPreviousForClass
       
   630           )
       
   631          (MenuItem
       
   632             enabled: hasSelection
       
   633             label: 'Next for Class'
       
   634             itemValue: findNextForClass
       
   635           )
       
   636          (MenuItem
       
   637             enabled: hasSelection
       
   638             label: 'Last for Class'
       
   639             itemValue: findLastForClass
       
   640           )
       
   641          (MenuItem
       
   642             label: '-'
       
   643           )
       
   644          (MenuItem
       
   645             label: 'Selector...'
       
   646             itemValue: findSelector
       
   647           )
       
   648          (MenuItem
       
   649             enabled: hasSelection
       
   650             label: 'Previous for Selector'
       
   651             itemValue: findPreviousForSelector
       
   652           )
       
   653          (MenuItem
       
   654             enabled: hasSelection
       
   655             label: 'Next for Selector'
       
   656             itemValue: findNextForSelector
       
   657           )
       
   658          (MenuItem
       
   659             label: '-'
       
   660           )
       
   661          (MenuItem
       
   662             label: 'String...'
       
   663             itemValue: findString
       
   664           )
       
   665          (MenuItem
       
   666             enabled: hasSelection
       
   667             label: 'Previous with String'
       
   668             itemValue: findPreviousForString
       
   669           )
       
   670          (MenuItem
       
   671             enabled: hasSelection
       
   672             label: 'Next with String'
       
   673             itemValue: findNextForString
       
   674           )
       
   675          (MenuItem
       
   676             label: '-'
       
   677           )
       
   678          (MenuItem
       
   679             enabled: hasSelection
       
   680             label: 'Previous Difference'
       
   681             itemValue: findPreviousDifference
       
   682           )
       
   683          (MenuItem
       
   684             enabled: hasSelection
       
   685             label: 'Next Difference'
       
   686             itemValue: findNextDifference
       
   687           )
       
   688          (MenuItem
       
   689             label: '-'
       
   690           )
       
   691          (MenuItem
       
   692             enabled: hasSelection
       
   693             label: 'Previous Snapshot'
       
   694             itemValue: findPreviousSnapshot
       
   695           )
       
   696          (MenuItem
       
   697             enabled: hasSelection
       
   698             label: 'Next Snapshot'
       
   699             itemValue: findNextSnapshot
       
   700           )
       
   701          (MenuItem
       
   702             label: 'Last Snapshot'
       
   703             itemValue: findLastSnapshot
       
   704           )
       
   705          )
       
   706         nil
       
   707         nil
       
   708       )
       
   709 !
       
   710 
       
   711 menuSpecSettings
       
   712     "This resource specification was automatically generated
       
   713      by the MenuEditor of ST/X."
       
   714 
       
   715     "Do not manually edit this!! If it is corrupted,
       
   716      the MenuEditor may not be able to read the specification."
       
   717 
       
   718 
       
   719     "
       
   720      MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSettings
       
   721      (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSettings)) startUp
       
   722     "
       
   723 
       
   724     <resource: #menu>
       
   725 
       
   726     ^ 
       
   727      #(Menu
       
   728         (
       
   729          (MenuItem
       
   730             label: 'Auto Compare'
       
   731             indication: autoCompare
       
   732           )
       
   733          (MenuItem
       
   734             label: 'Autoload As Required'
       
   735             indication: autoloadAsRequired
       
   736           )
       
   737          (MenuItem
       
   738             label: 'Show Diffs'
       
   739             indication: showingDiffs
       
   740           )
       
   741          (MenuItem
       
   742             label: 'Auto Update'
       
   743             indication: autoUpdate
       
   744           )
       
   745          (MenuItem
       
   746             label: '-'
       
   747           )
       
   748          (MenuItem
       
   749             label: 'Add to ChangeSet when Applying'
       
   750             indication: updateChangeSet
       
   751           )
       
   752          (MenuItem
       
   753             label: 'Ignore Public/Private in Categories (Dolphin code)'
       
   754             itemValue: ignorePublicPrivateCategories:
       
   755             isVisible: false
       
   756             indication: ignorePublicPrivateCategories
       
   757           )
       
   758          (MenuItem
       
   759             label: '-'
       
   760           )
       
   761          (MenuItem
       
   762             label: 'Apply into Package...'
       
   763             itemValue: setEnforcedPackage
       
   764           )
       
   765          (MenuItem
       
   766             label: 'Apply into NameSpace...'
       
   767             itemValue: setEnforcedNameSpace
       
   768           )
       
   769          (MenuItem
       
   770             label: '-'
       
   771           )
       
   772          (MenuItem
       
   773             label: 'Settings...'
       
   774             itemValue: openSettingsDialog
   661           )
   775           )
   662          )
   776          )
   663         nil
   777         nil
   664         nil
   778         nil
   665       )
   779       )
  2014 
  2128 
  2015     "Created: / 19.11.2001 / 21:50:59 / cg"
  2129     "Created: / 19.11.2001 / 21:50:59 / cg"
  2016     "Modified: / 19.11.2001 / 22:10:08 / cg"
  2130     "Modified: / 19.11.2001 / 22:10:08 / cg"
  2017 !
  2131 !
  2018 
  2132 
       
  2133 doCopyToClipboard
       
  2134     "user wants a change text to be copied to the clipboard"
       
  2135 
       
  2136     |text|
       
  2137 
       
  2138     self withSingleSelectedChangeDo:[:changeNr |
       
  2139         text := self sourceOfMethodChange:changeNr.
       
  2140     ].
       
  2141     text notEmptyOrNil ifTrue:[
       
  2142         self window setClipboardText:text
       
  2143     ]
       
  2144 
       
  2145     "Created: / 21-11-2016 / 23:38:11 / cg"
       
  2146 !
       
  2147 
  2019 doDelete
  2148 doDelete
  2020     "delete currently selected change(s)"
  2149     "delete currently selected change(s)"
  2021 
  2150 
  2022     |rangeEnd rangeStart firstDeleted|
  2151     |rangeEnd rangeStart firstDeleted|
  2023 
  2152 
  3474 
  3603 
  3475     "/ old:
  3604     "/ old:
  3476     "/ does not care for VW qualified names
  3605     "/ does not care for VW qualified names
  3477     "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
  3606     "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
  3478 
  3607 
       
  3608 (text includesString:'§') ifTrue:[self halt].
       
  3609 
  3479     "/ new:
  3610     "/ new:
  3480     parser := Parser for:(ReadStream on:text).
  3611     parser := Parser for:(ReadStream on:text).
  3481     parser parserFlags allowQualifiedNames:true.
  3612     parser parserFlags allowQualifiedNames:true.
       
  3613     parser parserFlags allowDollarInIdentifier:true.
       
  3614     parser parserFlags allowParagraphInIdentifier:true.
  3482     Error handle:[:ex |
  3615     Error handle:[:ex |
  3483         ^ nil
  3616         ^ nil
  3484     ] do:[
  3617     ] do:[
  3485         p := parser 
  3618         p := parser 
  3486             parseExpressionWithSelf:nil 
  3619             parseExpressionWithSelf:nil 
  3488             ignoreErrors:true 
  3621             ignoreErrors:true 
  3489             ignoreWarnings:true 
  3622             ignoreWarnings:true 
  3490             inNameSpace:nameSpace.
  3623             inNameSpace:nameSpace.
  3491     ].
  3624     ].
  3492     ^ p
  3625     ^ p
       
  3626 
       
  3627     "Modified: / 21-11-2016 / 23:25:48 / cg"
  3493 !
  3628 !
  3494 
  3629 
  3495 queryCloseText
  3630 queryCloseText
  3496     "made this a method for easy redefinition in subclasses"
  3631     "made this a method for easy redefinition in subclasses"
  3497 
  3632 
  4657             ].
  4792             ].
  4658             changeNrProcessed := nil.
  4793             changeNrProcessed := nil.
  4659         ].
  4794         ].
  4660 
  4795 
  4661     "/
  4796     "/
  4662     "/ if I am showing the changes file, dont update it
  4797     "/ if I am showing the changes file, don't update it
  4663     "/
  4798     "/
  4664     changeFileName = ObjectMemory nameForChanges ifTrue:[
  4799     changeFileName = ObjectMemory nameForChanges ifTrue:[
  4665         Class withoutUpdatingChangesDo:[
  4800         Class withoutUpdatingChangesDo:[
  4666             Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
  4801             Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
  4667         ]
  4802         ]
  5712     super closeRequest
  5847     super closeRequest
  5713 !
  5848 !
  5714 
  5849 
  5715 saveAndTerminate
  5850 saveAndTerminate
  5716     "update the changes file and quit.
  5851     "update the changes file and quit.
  5717      Dont depend on this being sent, not all window managers
  5852      Don't depend on this being sent, not all window managers
  5718      send it; instead, they simply destroy the view."
  5853      send it; instead, they simply destroy the view."
  5719 
  5854 
  5720     anyChanges ifTrue:[
  5855     anyChanges ifTrue:[
  5721 	self writeBackChanges.
  5856         self writeBackChanges.
  5722     ].
  5857     ].
  5723     super saveAndTerminate
  5858     super saveAndTerminate
  5724 
  5859 
  5725     "Modified: / 3.8.1998 / 19:54:00 / cg"
  5860     "Modified: / 3.8.1998 / 19:54:00 / cg"
  5726 ! !
  5861 ! !
  6430      The system only writes one chunk,
  6565      The system only writes one chunk,
  6431      and we cannot handle more in this ChangesBrowser ....
  6566      and we cannot handle more in this ChangesBrowser ....
  6432     "
  6567     "
  6433     clsName := nil.
  6568     clsName := nil.
  6434 
  6569 
       
  6570 (chunkText includesString:'§') ifTrue:[self halt].
       
  6571 
  6435     p := browser parseExpression:chunkText inNameSpace:(self nameSpaceForApply).
  6572     p := browser parseExpression:chunkText inNameSpace:(self nameSpaceForApply).
  6436     (p notNil and:[p ~~ #Error and:[p isMessage]]) ifTrue:[
  6573     (p notNil and:[p ~~ #Error and:[p isMessage]]) ifTrue:[
  6437         rec := p receiver.
  6574         rec := p receiver.
  6438         sel := p selector.
  6575         sel := p selector.
  6439         (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
  6576         (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
  6494                 info := ChangesBrowser::ChangeInfo new 
  6631                 info := ChangesBrowser::ChangeInfo new 
  6495                             position:methodPos chunk:chunkText className:clsName 
  6632                             position:methodPos chunk:chunkText className:clsName 
  6496                             selector:nil headerLine:nil timestamp:timeStampInfo isFollowupChange:true. 
  6633                             selector:nil headerLine:nil timestamp:timeStampInfo isFollowupChange:true. 
  6497                 changeInfo add:info.
  6634                 changeInfo add:info.
  6498 
  6635 
  6499 "/                changeChunks add:chunkText.
       
  6500 "/                changeClassNames add:clsName.
       
  6501 "/                changePositions add:methodPos.
       
  6502 "/                changeTimeStamps add:timeStampInfo.
       
  6503 "/                changeIsFollowupMethodChange add:true.
       
  6504                 askedForEditingClassSource ifFalse:[
  6636                 askedForEditingClassSource ifFalse:[
  6505                     thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
  6637                     thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
  6506                     askedForEditingClassSource := true.
  6638                     askedForEditingClassSource := true.
  6507                 ]
  6639                 ]
  6508             ] ifTrue:[
  6640             ] ifTrue:[
  6509 "/                changeClassNames at:changeClassNames size put:clsName.
       
  6510                 changeInfo last className:clsName
  6641                 changeInfo last className:clsName
  6511             ].
  6642             ].
  6512 
  6643 
  6513             first := false.
  6644             first := false.
  6514 
  6645 
  6531                  try to find the selector
  6662                  try to find the selector
  6532                 "
  6663                 "
  6533                 methodSelector := nil.
  6664                 methodSelector := nil.
  6534                 clsName notNil ifTrue:[
  6665                 clsName notNil ifTrue:[
  6535                     methodChunks ifTrue:[
  6666                     methodChunks ifTrue:[
  6536                         p := Parser
  6667                         p := Parser for:(ReadStream on:text) in:nil.  
  6537                                  parseMethodSpecification:text
  6668                         p ignoreErrors:true.
  6538                                  in:nil
  6669                         p ignoreWarnings:true.
  6539                                  ignoreErrors:true
  6670                         p parserFlags allowDollarInIdentifier:true.
  6540                                  ignoreWarnings:true.
  6671                         p parserFlags allowParagraphInIdentifier:true.
  6541                         (p notNil and:[p ~~ #Error]) ifTrue:[
  6672                         p parseMethodSpec.
  6542                             methodSelector := p selector.
  6673                         methodSelector := p selector.
  6543                         ]
  6674 "/                        p := Parser
       
  6675 "/                                 parseMethodSpecification:text
       
  6676 "/                                 in:nil
       
  6677 "/                                 ignoreErrors:true
       
  6678 "/                                 ignoreWarnings:true.
       
  6679 "/                        (p notNil and:[p ~~ #Error]) ifTrue:[
       
  6680 "/                            methodSelector := p selector.
       
  6681 "/                        ]
  6544                     ]
  6682                     ]
  6545                 ].
  6683                 ].
  6546 
  6684 
  6547                 methodSelector isNil ifTrue:[
  6685                 methodSelector isNil ifTrue:[
  6548                     changeString := (chunkText contractTo:maxLen).
  6686                     changeString := (chunkText contractTo:maxLen).
  6553                     changeType := '{ ' , category , ' }'.
  6691                     changeType := '{ ' , category , ' }'.
  6554                     headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
  6692                     headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
  6555                 ].
  6693                 ].
  6556 
  6694 
  6557                 autoCompare value ifTrue:[
  6695                 autoCompare value ifTrue:[
  6558                     changeDelta := ChangeDeltaInformation changeDeltaFor:text changeClass:changeClass selector:methodSelector.
  6696                     changeDelta := ChangeDeltaInformation 
       
  6697                                         changeDeltaFor:text changeClass:changeClass selector:methodSelector.
  6559                 ].
  6698                 ].
  6560             ].
  6699             ].
  6561             changeInfo last headerLine:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo).
  6700             changeInfo last 
  6562 "/            self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
  6701                 headerLine:(self headerLineForChangeType:changeType 
       
  6702                                  changeString:changeString
       
  6703                                  changeDelta:changeDelta
       
  6704                                  timeStampInfo:timeStampInfo).
  6563         ].
  6705         ].
  6564         changeString := nil.
  6706         changeString := nil.
  6565         headerLine := nil.
  6707         headerLine := nil.
  6566         singleJunkOnly ifTrue:[done := true]
  6708         singleJunkOnly ifTrue:[done := true]
  6567     ].
  6709     ].
  6570     ].
  6712     ].
  6571     anyMethod ifFalse:[
  6713     anyMethod ifFalse:[
  6572         emptyBlock value
  6714         emptyBlock value
  6573     ].
  6715     ].
  6574 
  6716 
  6575     "Modified: / 01-05-2016 / 19:15:00 / cg"
  6717     "Modified: / 21-11-2016 / 23:32:29 / cg"
  6576 !
  6718 !
  6577 
  6719 
  6578 processNonMethodChunk
  6720 processNonMethodChunk
  6579     |s changeClass sel  cls p rec clsName ownerTree ownerName
  6721     |s changeClass sel  cls p rec clsName ownerTree ownerName
  6580      m nameAndClass args instVarsArg classVarsArg categoryArg|
  6722      m nameAndClass args instVarsArg classVarsArg categoryArg|