Tools__ObjectModuleInformation.st
author Patrik Svestka <patrik.svestka@gmail.com>
Wed, 14 Nov 2018 12:07:51 +0100
branchjv
changeset 3630 5e718e0a754e
parent 3345 681833029ed5
child 3388 b9b7b2fae2f9
permissions -rw-r--r--
Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present

- All source *.st files are now Unicode UTF8 without BOM
Files are in two groups (fileOut works this way in Smalltalk/X):
- containing a unicode character have "{ Encoding: utf8 }" at the header
- ASCII only are without the header
cg@2181
     1
"{ Package: 'stx:libtool2' }"
cg@2181
     2
cg@2181
     3
"{ NameSpace: Tools }"
cg@2181
     4
cg@2184
     5
ToolApplicationModel subclass:#ObjectModuleInformation
cg@2184
     6
	instanceVariableNames:'readOnly listOfModuleNames selectedModuleIndexHolder allModules
cg@2183
     7
		objectHandles showOthers showCObjects showBuiltIn showMethods
cg@2253
     8
		showClassLibs table1VisibleHolder table2VisibleHolder
cg@2253
     9
		selectedInfoIndexHolder canBrowseSelectedModule
cg@2253
    10
		canUnloadSelectedModule classNamesShown classInfoShown
cg@2618
    11
		vmInfoShown canUnloadSelectedModulesPackage
cg@2619
    12
		canBrowseSelectedModulesExtensions canUnloadSelectedDLL'
cg@2181
    13
	classVariableNames:''
cg@2181
    14
	poolDictionaries:''
cg@2181
    15
	category:'Monitors-ST/X'
cg@2181
    16
!
cg@2181
    17
cg@2181
    18
Object subclass:#InfoRow
cg@2183
    19
	instanceVariableNames:'name version date value'
cg@2181
    20
	classVariableNames:''
cg@2181
    21
	poolDictionaries:''
cg@2181
    22
	privateIn:ObjectModuleInformation
cg@2181
    23
!
cg@2181
    24
cg@2181
    25
!ObjectModuleInformation class methodsFor:'documentation'!
cg@2181
    26
cg@2181
    27
documentation
cg@2181
    28
"
cg@2181
    29
    Shows the modules (dll's) of ST/X.
cg@2181
    30
    Both builtIn modules, and dynamically loaded modules are listed.
cg@2181
    31
cg@2181
    32
    [author:]
cg@2253
    33
        Claus Gittinger
cg@2181
    34
"
cg@2181
    35
!
cg@2181
    36
cg@2181
    37
examples
cg@2181
    38
"
cg@2181
    39
  Starting the application:
cg@2181
    40
                                                                [exBegin]
cg@2181
    41
    ObjectModuleInformation open
cg@2181
    42
cg@2181
    43
                                                                [exEnd]
cg@2181
    44
"
cg@2181
    45
! !
cg@2181
    46
cg@2181
    47
!ObjectModuleInformation class methodsFor:'info'!
cg@2181
    48
cg@2181
    49
defaultLabel
cg@2183
    50
    ^ 'Object Module Info'
cg@2181
    51
cg@2181
    52
    "Created: / 05-10-2007 / 11:56:59 / cg"
cg@2181
    53
! !
cg@2181
    54
cg@2181
    55
!ObjectModuleInformation class methodsFor:'interface specs'!
cg@2181
    56
cg@2181
    57
windowSpec
cg@2181
    58
    "This resource specification was automatically generated
cg@2181
    59
     by the UIPainter of ST/X."
cg@2181
    60
cg@2181
    61
    "Do not manually edit this!! If it is corrupted,
cg@2181
    62
     the UIPainter may not be able to read the specification."
cg@2181
    63
cg@2181
    64
    "
cg@2183
    65
     UIPainter new openOnClass:Tools::ObjectModuleInformation andSelector:#windowSpec
cg@2183
    66
     Tools::ObjectModuleInformation new openInterface:#windowSpec
cg@2183
    67
     Tools::ObjectModuleInformation open
cg@2181
    68
    "
cg@2181
    69
cg@2181
    70
    <resource: #canvas>
cg@2181
    71
cg@2181
    72
    ^ 
cg@3069
    73
    #(FullSpec
cg@3069
    74
       name: windowSpec
cg@3069
    75
       window: 
cg@3069
    76
      (WindowSpec
cg@3069
    77
         label: 'ST/X Module & Version Information'
cg@3069
    78
         name: 'ST/X Module & Version Information'
cg@3069
    79
         min: (Point 0 0)
cg@3069
    80
         bounds: (Rectangle 0 0 505 567)
cg@3069
    81
         menu: mainMenu
cg@3069
    82
       )
cg@3069
    83
       component: 
cg@3069
    84
      (SpecCollection
cg@3069
    85
         collection: (
cg@3069
    86
          (MenuPanelSpec
cg@3069
    87
             name: 'ToolBar1'
cg@3069
    88
             layout: (LayoutFrame 0 0 0 0 0 1 40 0)
cg@3069
    89
             menu: toolbarMenu
cg@3069
    90
             textDefault: true
cg@3069
    91
           )
cg@3069
    92
          (VariableVerticalPanelSpec
cg@3069
    93
             name: 'VariableVerticalPanel1'
cg@3069
    94
             layout: (LayoutFrame 0 0 40 0 0 1 0 1)
cg@3069
    95
             component: 
cg@3069
    96
            (SpecCollection
cg@3069
    97
               collection: (
cg@3069
    98
                (SequenceViewSpec
cg@3069
    99
                   name: 'List1'
cg@3069
   100
                   model: selectedModuleIndexHolder
cg@3069
   101
                   menu: moduleMenu
cg@3069
   102
                   hasHorizontalScrollBar: true
cg@3069
   103
                   hasVerticalScrollBar: true
cg@3069
   104
                   useIndex: true
cg@3069
   105
                   sequenceList: listOfModuleNames
cg@3069
   106
                 )
cg@3069
   107
                (ViewSpec
cg@3069
   108
                   name: 'Box1'
cg@3069
   109
                   component: 
cg@3069
   110
                  (SpecCollection
cg@3069
   111
                     collection: (
cg@3069
   112
                      (LabelSpec
cg@3069
   113
                         name: 'Label2'
cg@3069
   114
                         layout: (LayoutFrame 0 0 0 0 0 1 30 0)
cg@3069
   115
                         translateLabel: true
cg@3069
   116
                         labelChannel: descriptionLabelHolder
cg@3069
   117
                         adjust: left
cg@2181
   118
                       )
cg@3069
   119
                      (LabelSpec
cg@3069
   120
                         name: 'Label1'
cg@3069
   121
                         layout: (LayoutFrame 0 0 30 0 0 1 60 0)
cg@3069
   122
                         translateLabel: true
cg@3069
   123
                         labelChannel: middleLabelHolder
cg@3069
   124
                         adjust: left
cg@3069
   125
                       )
cg@3069
   126
                      (DataSetSpec
cg@3069
   127
                         name: 'Table1'
cg@3069
   128
                         layout: (LayoutFrame 0 0 60 0 0 1 0 1)
cg@3069
   129
                         visibilityChannel: table1VisibleHolder
cg@3069
   130
                         model: selectedInfoIndexHolder
cg@3069
   131
                         menu: moduleItemMenu
cg@3069
   132
                         hasHorizontalScrollBar: true
cg@3069
   133
                         hasVerticalScrollBar: true
cg@3069
   134
                         dataList: infoTable1ListHolder
cg@3069
   135
                         columnHolder: tableColumns
cg@3069
   136
                         separatorOneDColor: (Color 66.9993133440147 66.9993133440147 66.9993133440147)
cg@3069
   137
                         keepSpaceForOSXResizeHandleV: true
cg@3069
   138
                       )
cg@3069
   139
                      (DataSetSpec
cg@3069
   140
                         name: 'Table2'
cg@3069
   141
                         layout: (LayoutFrame 0 0 60 0 0 1 0 1)
cg@3069
   142
                         initiallyInvisible: true
cg@3069
   143
                         visibilityChannel: table2VisibleHolder
cg@3069
   144
                         model: selectedInfoIndexHolder
cg@3069
   145
                         hasHorizontalScrollBar: true
cg@3069
   146
                         hasVerticalScrollBar: true
cg@3069
   147
                         dataList: infoTable2ListHolder
cg@3069
   148
                         columnHolder: tableColumnsForSingleInfo
cg@3069
   149
                         separatorOneDColor: (Color 66.9993133440147 66.9993133440147 66.9993133440147)
cg@3069
   150
                         keepSpaceForOSXResizeHandleV: true
cg@3069
   151
                       )
cg@3069
   152
                      )
cg@3069
   153
                    
cg@3069
   154
                   )
cg@2181
   155
                 )
cg@3069
   156
                )
cg@3069
   157
              
cg@3069
   158
             )
cg@3069
   159
             handles: (Any 0.35195530726257 1.0)
cg@2181
   160
           )
cg@3069
   161
          )
cg@3069
   162
        
cg@3069
   163
       )
cg@3069
   164
     )
cg@2181
   165
! !
cg@2181
   166
cg@2181
   167
!ObjectModuleInformation class methodsFor:'menu specs'!
cg@2181
   168
cg@2181
   169
mainMenu
cg@2181
   170
    "This resource specification was automatically generated
cg@2181
   171
     by the MenuEditor of ST/X."
cg@2181
   172
cg@2181
   173
    "Do not manually edit this!! If it is corrupted,
cg@2181
   174
     the MenuEditor may not be able to read the specification."
cg@2181
   175
cg@2181
   176
    "
cg@2183
   177
     MenuEditor new openOnClass:Tools::ObjectModuleInformation andSelector:#mainMenu
cg@2183
   178
     (Menu new fromLiteralArrayEncoding:(Tools::ObjectModuleInformation mainMenu)) startUp
cg@2181
   179
    "
cg@2181
   180
cg@2181
   181
    <resource: #menu>
cg@2181
   182
cg@2181
   183
    ^ 
cg@2181
   184
     #(Menu
cg@2181
   185
        (
cg@2181
   186
         (MenuItem
cg@2181
   187
            label: 'File'
cg@2181
   188
            translateLabel: true
cg@2181
   189
            submenu: 
cg@2181
   190
           (Menu
cg@2181
   191
              (
cg@2181
   192
               (MenuItem
cg@2181
   193
                  label: 'Exit'
cg@2181
   194
                  itemValue: closeRequest
cg@2181
   195
                  translateLabel: true
cg@2181
   196
                )
cg@2181
   197
               )
cg@2181
   198
              nil
cg@2181
   199
              nil
cg@2181
   200
            )
cg@2181
   201
          )
cg@2181
   202
         (MenuItem
cg@2181
   203
            label: 'View'
cg@2181
   204
            translateLabel: true
cg@2181
   205
            submenu: 
cg@2181
   206
           (Menu
cg@2181
   207
              (
cg@2181
   208
               (MenuItem
cg@2619
   209
                  label: 'Dynamically Loaded ClassLibraries Only'
sv@2842
   210
                  itemValue: showOnlyDynamicallyLoadedClassLibraries
cg@2619
   211
                  translateLabel: true
cg@2619
   212
                  hideMenuOnActivated: false
cg@2619
   213
                )
cg@2619
   214
               (MenuItem
cg@2619
   215
                  label: '-'
cg@2619
   216
                )
cg@2619
   217
               (MenuItem
cg@2181
   218
                  label: 'Builtin'
cg@2181
   219
                  translateLabel: true
cg@2183
   220
                  hideMenuOnActivated: false
cg@2181
   221
                  indication: showBuiltIn
cg@2181
   222
                )
cg@2181
   223
               (MenuItem
cg@2181
   224
                  label: 'Class Libraries'
cg@2181
   225
                  translateLabel: true
cg@2183
   226
                  hideMenuOnActivated: false
cg@2181
   227
                  indication: showClassLibs
cg@2181
   228
                )
cg@2181
   229
               (MenuItem
cg@2181
   230
                  label: 'Methods'
cg@2181
   231
                  translateLabel: true
cg@2183
   232
                  hideMenuOnActivated: false
cg@2181
   233
                  indication: showMethods
cg@2181
   234
                )
cg@2181
   235
               (MenuItem
cg@2181
   236
                  label: 'C-Objects'
cg@2181
   237
                  translateLabel: true
cg@2183
   238
                  hideMenuOnActivated: false
cg@2181
   239
                  indication: showCObjects
cg@2181
   240
                )
cg@2181
   241
               (MenuItem
cg@2181
   242
                  label: 'Others'
cg@2181
   243
                  translateLabel: true
cg@2183
   244
                  hideMenuOnActivated: false
cg@2181
   245
                  indication: showOthers
cg@2181
   246
                )
cg@2403
   247
               (MenuItem
cg@2403
   248
                  label: '-'
cg@2403
   249
                )
cg@2403
   250
               (MenuItem
cg@2403
   251
                  label: 'Update'
cg@2403
   252
                  itemValue: menuUpdateModuleList
cg@2403
   253
                  translateLabel: true
cg@2403
   254
                )
cg@2181
   255
               )
cg@2181
   256
              nil
cg@2181
   257
              nil
cg@2181
   258
            )
cg@2181
   259
          )
cg@2181
   260
         (MenuItem
cg@2181
   261
            label: 'Module'
cg@2181
   262
            translateLabel: true
cg@2181
   263
            submenu: 
cg@2181
   264
           (Menu
cg@2181
   265
              (
cg@2403
   266
               (MenuItem
cg@2403
   267
                  enabled: canBrowseSelectedModule
cg@2403
   268
                  label: 'Browse'
cg@2403
   269
                  itemValue: browseModule
cg@2403
   270
                  translateLabel: true
cg@2403
   271
                )
cg@2403
   272
               (MenuItem
cg@2619
   273
                  enabled: canBrowseSelectedModulesExtensions
cg@2619
   274
                  label: 'Browse Extensions'
cg@2619
   275
                  itemValue: browseModuleExtensions
cg@2619
   276
                  translateLabel: true
cg@2619
   277
                )
sv@2842
   278
               (MenuItem
sv@2842
   279
                  enabled: canBrowseSelectedModulesProjectDefinition
sv@2842
   280
                  label: 'Browse ProjectDefinition'
sv@2842
   281
                  itemValue: browseModulesProjectDefinition
sv@2842
   282
                  translateLabel: true
sv@2842
   283
                )
sv@2842
   284
               (MenuItem
sv@2842
   285
                  label: 'Find a Class...'
sv@2842
   286
                  itemValue: findClass
sv@2842
   287
                  translateLabel: true
sv@2842
   288
                )
cg@2619
   289
               (MenuItem
cg@2619
   290
                  label: '-'
cg@2619
   291
                )
cg@2619
   292
               (MenuItem
cg@2253
   293
                  enabled: canCopyClassNameList
cg@2253
   294
                  label: 'Copy Version Info to Clipboard'
cg@2253
   295
                  itemValue: copyClassOrVMNameList
cg@2253
   296
                  translateLabel: true
cg@2253
   297
                )
cg@2181
   298
               (MenuItem
cg@2253
   299
                  label: '-'
cg@2253
   300
                )
cg@2253
   301
               (MenuItem
cg@2619
   302
                  label: 'Load Package...'
cg@2619
   303
                  itemValue: loadPackage
cg@2619
   304
                  translateLabel: true
cg@2619
   305
                )
cg@2619
   306
               (MenuItem
cg@2619
   307
                  label: '-'
cg@2619
   308
                )
cg@2619
   309
               (MenuItem
cg@2616
   310
                  enabled: canUnloadSelectedModulesPackage
cg@2619
   311
                  label: 'Unload Package...'
cg@2616
   312
                  itemValue: unloadSelectedModulesPackage
cg@2181
   313
                  translateLabel: true
cg@2181
   314
                )
cg@2403
   315
               (MenuItem
cg@2977
   316
                  enabled: canUnloadSelectedModule
cg@2619
   317
                  label: 'Remove Classes && Unload DLL...'
cg@2403
   318
                  itemValue: unloadSelectedModuleAndRemoveClasses
cg@2403
   319
                  translateLabel: true
cg@2403
   320
                )
cg@2616
   321
               (MenuItem
cg@2977
   322
                  enabled: canUnloadSelectedDLL
cg@2619
   323
                  label: 'Unload DLL...'
cg@2616
   324
                  itemValue: unloadSelectedModule
cg@2616
   325
                  translateLabel: true
cg@2616
   326
                )
sv@2842
   327
               (MenuItem
sv@2842
   328
                  label: 'Inspect'
sv@2842
   329
                  itemValue: inspectSelectedObject
sv@2842
   330
                  translateLabel: true
sv@2842
   331
                )
sv@2842
   332
               (MenuItem
sv@2842
   333
                  label: '-'
sv@2842
   334
                )
sv@2842
   335
               (MenuItem
sv@2842
   336
                  label: 'Update'
sv@2842
   337
                  itemValue: menuUpdateModuleList
sv@2842
   338
                  translateLabel: true
sv@2842
   339
                )
cg@2181
   340
               )
cg@2181
   341
              nil
cg@2181
   342
              nil
cg@2181
   343
            )
cg@2181
   344
          )
cg@2181
   345
         (MenuItem
cg@3192
   346
            label: 'MENU_Help'
cg@3192
   347
            startGroup: conditionalRight
cg@2181
   348
            translateLabel: true
cg@2181
   349
            submenu: 
cg@2181
   350
           (Menu
cg@2181
   351
              (
cg@2181
   352
               (MenuItem
cg@2181
   353
                  label: 'Documentation'
cg@2181
   354
                  itemValue: openDocumentation
cg@2181
   355
                  translateLabel: true
cg@2181
   356
                )
cg@2181
   357
               (MenuItem
cg@2181
   358
                  label: '-'
cg@2181
   359
                )
cg@2181
   360
               (MenuItem
cg@2181
   361
                  label: 'About this Application...'
cg@2181
   362
                  itemValue: openAboutThisApplication
cg@2181
   363
                  translateLabel: true
cg@2181
   364
                )
cg@2181
   365
               )
cg@2181
   366
              nil
cg@2181
   367
              nil
cg@2181
   368
            )
cg@2181
   369
          )
cg@2181
   370
         )
cg@2181
   371
        nil
cg@2181
   372
        nil
cg@2181
   373
      )
cg@2253
   374
!
cg@2253
   375
cg@2253
   376
moduleItemMenu
cg@2253
   377
    "This resource specification was automatically generated
cg@2253
   378
     by the MenuEditor of ST/X."
cg@2253
   379
cg@2253
   380
    "Do not manually edit this!! If it is corrupted,
cg@2253
   381
     the MenuEditor may not be able to read the specification."
cg@2253
   382
cg@2253
   383
    "
cg@2253
   384
     MenuEditor new openOnClass:Tools::ObjectModuleInformation andSelector:#moduleItemMenu
cg@2253
   385
     (Menu new fromLiteralArrayEncoding:(Tools::ObjectModuleInformation moduleItemMenu)) startUp
cg@2253
   386
    "
cg@2253
   387
cg@2253
   388
    <resource: #menu>
cg@2253
   389
cg@2253
   390
    ^ 
cg@2253
   391
     #(Menu
cg@2253
   392
        (
sv@2842
   393
         (MenuItem
cg@2253
   394
            enabled: canBrowseSelectedClass
cg@2253
   395
            label: 'Browse'
cg@2253
   396
            itemValue: browseClass
cg@2253
   397
            translateLabel: true
cg@2253
   398
          )
sv@2842
   399
         (MenuItem
cg@2253
   400
            label: '-'
cg@2253
   401
          )
sv@2842
   402
         (MenuItem
cg@2253
   403
            enabled: canCopyClassNameList
cg@2253
   404
            label: 'Copy Version Info to Clipboard'
cg@2253
   405
            itemValue: copyClassOrVMNameList
cg@2253
   406
            translateLabel: true
cg@2253
   407
          )
cg@2253
   408
         )
cg@2253
   409
        nil
cg@2253
   410
        nil
cg@2253
   411
      )
cg@2253
   412
!
cg@2253
   413
cg@2253
   414
moduleMenu
cg@2253
   415
    "This resource specification was automatically generated
cg@2253
   416
     by the MenuEditor of ST/X."
cg@2253
   417
cg@2253
   418
    "Do not manually edit this!! If it is corrupted,
cg@2253
   419
     the MenuEditor may not be able to read the specification."
cg@2253
   420
cg@2253
   421
    "
cg@2253
   422
     MenuEditor new openOnClass:Tools::ObjectModuleInformation andSelector:#moduleMenu
cg@2253
   423
     (Menu new fromLiteralArrayEncoding:(Tools::ObjectModuleInformation moduleMenu)) startUp
cg@2253
   424
    "
cg@2253
   425
cg@2253
   426
    <resource: #menu>
cg@2253
   427
cg@2253
   428
    ^ 
cg@2253
   429
     #(Menu
cg@2253
   430
        (
cg@2253
   431
         (MenuItem
cg@2253
   432
            enabled: canBrowseSelectedModule
cg@2253
   433
            label: 'Browse'
cg@2253
   434
            itemValue: browseModule
cg@2253
   435
            translateLabel: true
cg@2253
   436
          )
cg@2618
   437
         (MenuItem
cg@2618
   438
            enabled: canBrowseSelectedModulesExtensions
cg@2618
   439
            label: 'Browse Extensions'
cg@2618
   440
            itemValue: browseModuleExtensions
cg@2618
   441
            translateLabel: true
cg@2618
   442
          )
cg@2619
   443
         (MenuItem
cg@2763
   444
            enabled: canBrowseSelectedModulesProjectDefinition
cg@2763
   445
            label: 'Browse ProjectDefinition'
cg@2763
   446
            itemValue: browseModulesProjectDefinition
cg@2763
   447
            translateLabel: true
cg@2763
   448
          )
cg@2763
   449
         (MenuItem
cg@2623
   450
            label: 'Find a Class...'
cg@2623
   451
            itemValue: findClass
cg@2623
   452
            translateLabel: true
cg@2623
   453
          )
cg@2623
   454
         (MenuItem
cg@2619
   455
            label: '-'
cg@2619
   456
          )
cg@2619
   457
         (MenuItem
cg@2253
   458
            enabled: canCopyClassNameList
cg@2253
   459
            label: 'Copy Version Info to Clipboard'
cg@2253
   460
            itemValue: copyClassOrVMNameList
cg@2253
   461
            translateLabel: true
cg@2253
   462
          )
cg@2253
   463
         (MenuItem
cg@2253
   464
            label: '-'
cg@2253
   465
          )
cg@2253
   466
         (MenuItem
cg@2616
   467
            enabled: canUnloadSelectedModulesPackage
cg@2619
   468
            label: 'Unload Package...'
cg@2616
   469
            itemValue: unloadSelectedModulesPackage
cg@2616
   470
            translateLabel: true
cg@2616
   471
          )
cg@2616
   472
         (MenuItem
cg@2253
   473
            enabled: canUnloadSelectedModule
cg@2619
   474
            label: 'Remove Classes && Unload DLL...'
cg@2253
   475
            itemValue: unloadSelectedModuleAndRemoveClasses
cg@2253
   476
            translateLabel: true
cg@2253
   477
          )
cg@2253
   478
         (MenuItem
cg@2619
   479
            enabled: canUnloadSelectedDLL
cg@2619
   480
            label: 'Unload DLL...'
cg@2253
   481
            itemValue: unloadSelectedModule
cg@2253
   482
            translateLabel: true
cg@2253
   483
          )
cg@2619
   484
         (MenuItem
sv@2842
   485
            label: 'Inspect'
sv@2842
   486
            itemValue: inspectSelectedObject
sv@2842
   487
            translateLabel: true
sv@2842
   488
          )
sv@2842
   489
         (MenuItem
cg@2619
   490
            label: '-'
cg@2619
   491
          )
cg@2619
   492
         (MenuItem
cg@2619
   493
            label: 'Update'
cg@2619
   494
            itemValue: menuUpdateModuleList
cg@2619
   495
            translateLabel: true
cg@2619
   496
          )
cg@2253
   497
         )
cg@2253
   498
        nil
cg@2253
   499
        nil
cg@2253
   500
      )
cg@2616
   501
!
cg@2616
   502
cg@2616
   503
toolbarMenu
cg@2616
   504
    "This resource specification was automatically generated
cg@2616
   505
     by the MenuEditor of ST/X."
cg@2616
   506
cg@2616
   507
    "Do not manually edit this!! If it is corrupted,
cg@2616
   508
     the MenuEditor may not be able to read the specification."
cg@2616
   509
cg@2616
   510
    "
cg@2616
   511
     MenuEditor new openOnClass:Tools::ObjectModuleInformation andSelector:#toolbarMenu
cg@2616
   512
     (Menu new fromLiteralArrayEncoding:(Tools::ObjectModuleInformation toolbarMenu)) startUp
cg@2616
   513
    "
cg@2616
   514
cg@2616
   515
    <resource: #menu>
cg@2616
   516
cg@2616
   517
    ^ 
cg@2616
   518
     #(Menu
cg@2616
   519
        (
cg@2616
   520
         (MenuItem
cg@2620
   521
            label: 'Update'
cg@2620
   522
            itemValue: menuUpdateModuleList
cg@2620
   523
            translateLabel: true
cg@2620
   524
            isButton: true
cg@2620
   525
            labelImage: (ResourceRetriever ToolbarIconLibrary reloadIcon)
cg@2620
   526
          )
cg@2620
   527
         (MenuItem
cg@2620
   528
            label: '-'
cg@2620
   529
          )
cg@2620
   530
         (MenuItem
cg@2616
   531
            enabled: canBrowseSelectedModule
cg@2617
   532
            label: 'Browse the Selected Module''s Classes'
cg@2616
   533
            itemValue: browseModule
cg@2616
   534
            translateLabel: true
cg@2616
   535
            isButton: true
cg@2618
   536
            labelImage: (ResourceRetriever ToolbarIconLibrary startSystemBrowserIcon)
cg@2618
   537
          )
cg@2618
   538
         (MenuItem
cg@2618
   539
            enabled: canBrowseSelectedModulesExtensions
cg@2618
   540
            label: 'Browse the Selected Module''s Extensions'
cg@2618
   541
            itemValue: browseModuleExtensions
cg@2618
   542
            translateLabel: true
cg@2618
   543
            isButton: true
cg@2618
   544
            labelImage: (ResourceRetriever ToolbarIconLibrary browseClassExtensionsIcon)
cg@2616
   545
          )
cg@2616
   546
         )
cg@2616
   547
        nil
cg@2616
   548
        nil
cg@2616
   549
      )
cg@2181
   550
! !
cg@2181
   551
cg@2181
   552
!ObjectModuleInformation class methodsFor:'tableColumns specs'!
cg@2181
   553
cg@2181
   554
tableColumns
cg@2181
   555
    "This resource specification was automatically generated
cg@2181
   556
     by the DataSetBuilder of ST/X."
cg@2181
   557
cg@2181
   558
    "Do not manually edit this!! If it is corrupted,
cg@2181
   559
     the DataSetBuilder may not be able to read the specification."
cg@2181
   560
cg@2181
   561
    "
cg@3345
   562
     DataSetBuilder new openOnClass:Tools::ObjectModuleInformation andSelector:#tableColumns
cg@2181
   563
    "
cg@2181
   564
cg@2181
   565
    <resource: #tableColumns>
cg@2181
   566
cg@2181
   567
    ^#(
cg@2181
   568
      (DataSetColumnSpec
cg@2181
   569
         label: 'Name'
cg@2181
   570
         activeHelpKey: ''
cg@3345
   571
         activeHelpKeyForLabel: ''
cg@2181
   572
         labelButtonType: Button
cg@3345
   573
         isSortable: true
cg@3345
   574
         sortSelector: name
cg@2181
   575
         width: 0.5
cg@3345
   576
         height: heightOfFirstRow
cg@2181
   577
         model: name
cg@3345
   578
         menuFromApplication: false
cg@2181
   579
         canSelect: false
cg@2181
   580
       )
cg@2181
   581
      (DataSetColumnSpec
cg@2181
   582
         label: 'Version'
cg@2181
   583
         activeHelpKey: ''
cg@2181
   584
         labelButtonType: Button
cg@3345
   585
         height: heightOfFirstRow
cg@2181
   586
         model: version
cg@2181
   587
         canSelect: false
cg@2181
   588
       )
cg@2181
   589
      (DataSetColumnSpec
cg@2181
   590
         label: 'Date'
cg@2181
   591
         activeHelpKey: ''
cg@3345
   592
         activeHelpKeyForLabel: ''
cg@2181
   593
         labelButtonType: Button
cg@3345
   594
         isSortable: true
cg@3345
   595
         sortSelector: dateOrEmpty
cg@3345
   596
         height: heightOfFirstRow
cg@2181
   597
         model: date
cg@3345
   598
         menuFromApplication: false
cg@2181
   599
         canSelect: false
cg@2181
   600
       )
cg@2181
   601
      )
cg@2181
   602
    
cg@2183
   603
!
cg@2183
   604
cg@2183
   605
tableColumnsForSingleInfo
cg@2183
   606
    "This resource specification was automatically generated
cg@2183
   607
     by the DataSetBuilder of ST/X."
cg@2183
   608
cg@2183
   609
    "Do not manually edit this!! If it is corrupted,
cg@2183
   610
     the DataSetBuilder may not be able to read the specification."
cg@2183
   611
cg@2183
   612
    "
cg@2183
   613
     DataSetBuilder new openOnClass:Tools::ObjectModuleInformation andSelector:#tableColumnsForSingleInfo
cg@2183
   614
    "
cg@2183
   615
cg@2183
   616
    <resource: #tableColumns>
cg@2183
   617
cg@2183
   618
    ^#(
cg@2183
   619
      (DataSetColumnSpec
cg@2183
   620
         label: ''
cg@2183
   621
         activeHelpKey: ''
cg@2183
   622
         labelButtonType: None
cg@2183
   623
         width: 0.3
cg@2183
   624
         model: name
cg@2183
   625
         canSelect: false
cg@2183
   626
       )
cg@2183
   627
      (DataSetColumnSpec
cg@2183
   628
         label: ''
cg@2183
   629
         activeHelpKey: ''
cg@2183
   630
         labelButtonType: None
cg@2183
   631
         model: value
cg@2183
   632
         canSelect: false
cg@2183
   633
       )
cg@2183
   634
      )
cg@2183
   635
    
cg@2181
   636
! !
cg@2181
   637
cg@2181
   638
!ObjectModuleInformation methodsFor:'aspects'!
cg@2181
   639
cg@2253
   640
canBrowseSelectedClass
cg@2253
   641
    ^ [classNamesShown notEmptyOrNil
cg@2253
   642
       and:[ self selectedInfoIndex notNil
cg@2253
   643
       and:[ self selectedInfoIndex ~~ 0 ]]]
cg@2253
   644
cg@2253
   645
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2253
   646
!
cg@2253
   647
cg@2253
   648
canBrowseSelectedModule
cg@2253
   649
    canBrowseSelectedModule isNil ifTrue:[
cg@2253
   650
        canBrowseSelectedModule := false asValue
cg@2253
   651
    ].
cg@2253
   652
    ^ canBrowseSelectedModule.
cg@2253
   653
cg@2253
   654
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2253
   655
!
cg@2253
   656
cg@2618
   657
canBrowseSelectedModulesExtensions
cg@2618
   658
    canBrowseSelectedModulesExtensions isNil ifTrue:[
cg@2618
   659
        canBrowseSelectedModulesExtensions := false asValue
cg@2618
   660
    ].
cg@2618
   661
    ^ canBrowseSelectedModulesExtensions.
cg@2618
   662
cg@2618
   663
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2618
   664
!
cg@2618
   665
cg@2763
   666
canBrowseSelectedModulesProjectDefinition
cg@2763
   667
    ^ [ self projectDefinitionClassOfSelectedModule notNil ]
cg@2763
   668
!
cg@2763
   669
cg@2253
   670
canCopyClassNameList
cg@2253
   671
    ^ [table1VisibleHolder value 
cg@2253
   672
    and:[classInfoShown notEmptyOrNil or:[vmInfoShown notEmptyOrNil] ]]
cg@2253
   673
cg@2253
   674
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2253
   675
!
cg@2253
   676
cg@2619
   677
canUnloadSelectedDLL
cg@2619
   678
    canUnloadSelectedDLL isNil ifTrue:[
cg@2619
   679
        canUnloadSelectedDLL := false asValue
cg@2619
   680
    ].
cg@2619
   681
    ^ canUnloadSelectedDLL.
cg@2619
   682
cg@2619
   683
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2619
   684
!
cg@2619
   685
cg@2253
   686
canUnloadSelectedModule
cg@2253
   687
    canUnloadSelectedModule isNil ifTrue:[
cg@2253
   688
        canUnloadSelectedModule := false asValue
cg@2253
   689
    ].
cg@2253
   690
    ^ canUnloadSelectedModule.
cg@2253
   691
cg@2253
   692
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2253
   693
!
cg@2253
   694
cg@2616
   695
canUnloadSelectedModulesPackage
cg@2616
   696
    canUnloadSelectedModulesPackage isNil ifTrue:[
cg@2616
   697
        canUnloadSelectedModulesPackage := false asValue
cg@2616
   698
    ].
cg@2616
   699
    ^ canUnloadSelectedModulesPackage.
cg@2616
   700
!
cg@2616
   701
cg@3069
   702
descriptionLabelHolder
cg@3069
   703
    ^ builder valueAspectFor:#'descriptionLabelHolder' initialValue:''
cg@3069
   704
!
cg@3069
   705
cg@2183
   706
infoTable1ListHolder
cg@2183
   707
    ^ builder valueAspectFor:#'infoTable1ListHolder' initialValue:#()
cg@2181
   708
cg@2183
   709
    "Created: / 05-10-2007 / 12:48:06 / cg"
cg@2183
   710
!
cg@2183
   711
cg@2183
   712
infoTable2ListHolder
cg@2183
   713
    ^ builder valueAspectFor:#'infoTable2ListHolder' initialValue:#()
cg@2183
   714
cg@2183
   715
    "Created: / 05-10-2007 / 12:48:10 / cg"
cg@2181
   716
!
cg@2181
   717
cg@2181
   718
listOfModuleNames
cg@2181
   719
    listOfModuleNames isNil ifTrue:[
cg@2181
   720
        listOfModuleNames := List new.
cg@2181
   721
    ].
cg@2181
   722
    ^ listOfModuleNames.
cg@2181
   723
cg@2181
   724
    "Modified: / 05-10-2007 / 10:49:19 / cg"
cg@2181
   725
!
cg@2181
   726
cg@2181
   727
middleLabelHolder
cg@2181
   728
    ^ builder valueAspectFor:#'middleLabelHolder' initialValue:''
cg@2181
   729
cg@2181
   730
    "Created: / 05-10-2007 / 11:05:08 / cg"
cg@2181
   731
!
cg@2181
   732
cg@2184
   733
notReadOnly
cg@2184
   734
    ^ self readOnly not
cg@2184
   735
cg@2184
   736
    "Created: / 05-10-2007 / 13:06:00 / cg"
cg@2184
   737
!
cg@2184
   738
cg@2184
   739
readOnly
cg@2184
   740
    ^ readOnly ? false
cg@2184
   741
cg@2184
   742
    "Created: / 05-10-2007 / 13:05:51 / cg"
cg@2184
   743
!
cg@2184
   744
cg@2253
   745
readOnly:aBoolean
cg@2253
   746
    readOnly := aBoolean
cg@2253
   747
cg@2253
   748
    "Created: / 05-10-2007 / 13:05:51 / cg"
cg@2253
   749
!
cg@2253
   750
cg@2253
   751
selectedInfoIndex
cg@2253
   752
    |sel|
cg@2253
   753
cg@2253
   754
    sel := self selectedInfoIndexHolder value.
cg@2253
   755
    ^ sel
cg@2253
   756
!
cg@2253
   757
cg@2253
   758
selectedInfoIndexHolder
cg@2253
   759
    selectedInfoIndexHolder isNil ifTrue:[
cg@2253
   760
        selectedInfoIndexHolder := ValueHolder new.
cg@2253
   761
        selectedInfoIndexHolder onChangeSend:#selectedInfoIndexChanged to:self.
cg@2253
   762
    ].
cg@2253
   763
    ^ selectedInfoIndexHolder.
cg@2253
   764
cg@2253
   765
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2253
   766
!
cg@2253
   767
cg@2253
   768
selectedModuleIndex
cg@2253
   769
    |sel|
cg@2253
   770
cg@2253
   771
    sel := self selectedModuleIndexHolder value.
cg@2253
   772
    ^ sel
cg@2253
   773
!
cg@2253
   774
cg@2181
   775
selectedModuleIndexHolder
cg@2181
   776
    selectedModuleIndexHolder isNil ifTrue:[
cg@2181
   777
        selectedModuleIndexHolder := ValueHolder new.
cg@2181
   778
        selectedModuleIndexHolder onChangeSend:#selectedModuleIndexChanged to:self.
cg@2181
   779
    ].
cg@2181
   780
    ^ selectedModuleIndexHolder.
cg@2181
   781
cg@2181
   782
    "Modified: / 05-10-2007 / 10:51:39 / cg"
cg@2181
   783
!
cg@2181
   784
cg@2181
   785
showBuiltIn
cg@2183
   786
    showBuiltIn isNil ifTrue:[
cg@2183
   787
        showBuiltIn := true asValue.
cg@2183
   788
        showBuiltIn onChangeSend:#filterChanged to:self.
cg@2183
   789
    ].
cg@2183
   790
    ^ showBuiltIn
cg@2181
   791
cg@2183
   792
    "Modified: / 05-10-2007 / 12:43:23 / cg"
cg@2181
   793
!
cg@2181
   794
cg@2181
   795
showCObjects
cg@2183
   796
    showCObjects isNil ifTrue:[
cg@2183
   797
        showCObjects := true asValue.
cg@2183
   798
        showCObjects onChangeSend:#filterChanged to:self.
cg@2183
   799
    ].
cg@2183
   800
    ^ showCObjects
cg@2181
   801
cg@2183
   802
    "Modified: / 05-10-2007 / 12:43:16 / cg"
cg@2181
   803
!
cg@2181
   804
cg@2181
   805
showClassLibs
cg@2183
   806
    showClassLibs isNil ifTrue:[
cg@2183
   807
        showClassLibs := true asValue.
cg@2183
   808
        showClassLibs onChangeSend:#filterChanged to:self.
cg@2183
   809
    ].
cg@2183
   810
    ^ showClassLibs
cg@2181
   811
cg@2183
   812
    "Modified: / 05-10-2007 / 12:43:10 / cg"
cg@2181
   813
!
cg@2181
   814
cg@2181
   815
showMethods
cg@2183
   816
    showMethods isNil ifTrue:[
cg@2183
   817
        showMethods := true asValue.
cg@2183
   818
        showMethods onChangeSend:#filterChanged to:self.
cg@2183
   819
    ].
cg@2183
   820
    ^ showMethods
cg@2181
   821
cg@2183
   822
    "Modified: / 05-10-2007 / 12:43:02 / cg"
cg@2181
   823
!
cg@2181
   824
cg@2619
   825
showOnlyDynamicallyLoadedClassLibraries
cg@2619
   826
    self showBuiltIn value:false withoutNotifying:self.
cg@2619
   827
    self showCObjects value:false withoutNotifying:self.
cg@2619
   828
    self showMethods value:false withoutNotifying:self.
cg@2619
   829
    self showOthers value:false withoutNotifying:self.
cg@2619
   830
    self showClassLibs value:true withoutNotifying:self.
cg@2619
   831
    self filterChanged.
cg@2619
   832
!
cg@2619
   833
cg@2181
   834
showOthers
cg@2183
   835
    showOthers isNil ifTrue:[
cg@2183
   836
        showOthers := true asValue.
cg@2183
   837
        showOthers onChangeSend:#filterChanged to:self.
cg@2183
   838
    ].
cg@2183
   839
    ^ showOthers
cg@2181
   840
cg@2183
   841
    "Modified: / 05-10-2007 / 12:42:54 / cg"
cg@2183
   842
!
cg@2183
   843
cg@2183
   844
table1VisibleHolder
cg@2183
   845
    table1VisibleHolder isNil ifTrue:[
cg@2183
   846
        table1VisibleHolder := true asValue.
cg@2183
   847
    ].
cg@2183
   848
    ^ table1VisibleHolder.
cg@2183
   849
cg@2183
   850
    "Modified: / 05-10-2007 / 12:53:05 / cg"
cg@2183
   851
!
cg@2183
   852
cg@2183
   853
table2VisibleHolder
cg@2183
   854
    table2VisibleHolder isNil ifTrue:[
cg@2183
   855
        table2VisibleHolder := false asValue.
cg@2183
   856
    ].
cg@2183
   857
    ^ table2VisibleHolder.
cg@2183
   858
cg@2183
   859
    "Modified: / 05-10-2007 / 12:53:14 / cg"
cg@2181
   860
! !
cg@2181
   861
cg@2181
   862
!ObjectModuleInformation methodsFor:'change & update'!
cg@2181
   863
cg@2618
   864
isExtensionName:nm
cg@2618
   865
    ^ (nm endsWith:'_extensions')
cg@2618
   866
!
cg@2618
   867
cg@2253
   868
selectedInfoIndexChanged
cg@2253
   869
!
cg@2253
   870
cg@2253
   871
selectedModule
cg@2253
   872
    |sel|
cg@2253
   873
cg@2253
   874
    sel := self selectedModuleIndex.
cg@2253
   875
    sel isNil ifTrue:[^ nil].
cg@2253
   876
    ^ objectHandles at:sel.
cg@2253
   877
!
cg@2253
   878
cg@2181
   879
selectedModuleIndexChanged
cg@2620
   880
    | info |
cg@2181
   881
cg@2253
   882
    info := self selectedModuleInfo.
cg@2253
   883
cg@2619
   884
    self canBrowseSelectedModule value:false.
cg@2619
   885
    self canBrowseSelectedModulesExtensions value:false.
cg@2619
   886
    self canUnloadSelectedDLL value:false.
cg@2619
   887
    self canUnloadSelectedModule value:false.
cg@2619
   888
    self canUnloadSelectedModulesPackage value:false.
cg@2253
   889
cg@2253
   890
    classNamesShown := nil.
cg@2253
   891
    classInfoShown := nil.
cg@2253
   892
    vmInfoShown := nil.
cg@2181
   893
cg@2181
   894
    info isNil ifTrue:[
cg@2620
   895
        "/ selected a cObject or unknown
cg@2253
   896
        self showInfoForNonClassLib:(self selectedModuleIndex).
cg@2181
   897
        ^ self.
cg@2181
   898
    ].
cg@2181
   899
    info == #VM ifTrue:[
cg@2181
   900
        "/ selected the pseudo entry for the VM itself
cg@2181
   901
        self showInfoForVM.
cg@2181
   902
        ^ self.
cg@2181
   903
    ].
cg@2618
   904
cg@2181
   905
    "/ selected a class-library package
cg@2181
   906
    self showInfoForClassLib:info.
cg@2181
   907
cg@2183
   908
    "Modified: / 05-10-2007 / 12:56:13 / cg"
cg@2181
   909
!
cg@2181
   910
cg@2253
   911
selectedModuleInfo
cg@2620
   912
    |sel|
cg@2253
   913
cg@2253
   914
    sel := self selectedModuleIndex.
cg@2253
   915
    sel notNil ifTrue:[
cg@2253
   916
        (self showClassLibs value or:[self showBuiltIn value]) ifTrue:[
cg@2620
   917
            ^ allModules at:sel ifAbsent:nil.
cg@2253
   918
        ].
cg@2253
   919
    ].
cg@2620
   920
    ^ nil
cg@2620
   921
!
cg@2620
   922
cg@2620
   923
selectedObjectHandle
cg@2620
   924
    |sel|
cg@2620
   925
cg@2620
   926
    sel := self selectedModuleIndex.
cg@2620
   927
    sel isNil ifTrue:[^ nil].
cg@2620
   928
    ^ objectHandles at:sel.
cg@2253
   929
!
cg@2253
   930
cg@2181
   931
showInfoForClassLib:info
sv@2788
   932
    "selected a lib-package; fill bottom list with class-info"
cg@2181
   933
sv@2788
   934
    |rows projectDefinitionClass mgr canUnload canUnloadPackage|
sv@2788
   935
sv@2788
   936
    self middleLabelHolder value:'Components:'.
sv@2788
   937
sv@2788
   938
    projectDefinitionClass := self selectedModulesProjectDefinitionClass.
cg@3069
   939
    projectDefinitionClass isNil ifTrue:[
cg@3069
   940
        self descriptionLabelHolder value:''.
cg@3069
   941
    ] ifFalse:[
cg@3069
   942
        self descriptionLabelHolder value:("'Description: ',"projectDefinitionClass description).
cg@3069
   943
    ].
cg@2619
   944
cg@2619
   945
    self canBrowseSelectedModule value:true.
cg@2619
   946
cg@2619
   947
    self canBrowseSelectedModulesExtensions 
cg@2619
   948
        value:(info classNames contains:[:nm | self isExtensionName:nm]).
cg@2619
   949
cg@2619
   950
    canUnload := info dynamic and:[self readOnly not].
cg@2619
   951
    self canUnloadSelectedModule value:canUnload.
sv@2788
   952
    canUnloadPackage := canUnload 
sv@2788
   953
                and:[projectDefinitionClass notNil
sv@2788
   954
                and:[projectDefinitionClass projectIsLoaded]].
cg@2619
   955
    self canUnloadSelectedModulesPackage value:canUnloadPackage.
cg@2181
   956
cg@2181
   957
cg@2402
   958
    classNamesShown := self shownClassNamesFor:info.
sv@2788
   959
    rows := classNamesShown collect:[:eachClassName |
cg@2860
   960
                    |cls entry rev binRev listEntry revisionInfo versionString dateString|
cg@2181
   961
cg@2181
   962
                    listEntry := InfoRow new.
sv@2788
   963
                    listEntry name:eachClassName.
cg@2181
   964
sv@2788
   965
                    cls := Smalltalk classNamed:eachClassName.
cg@2181
   966
                    cls isNil ifTrue:[
sv@2788
   967
                        (self isExtensionName:eachClassName) ifTrue:[
sv@2788
   968
                            projectDefinitionClass notNil ifTrue:[
cg@3166
   969
                                mgr := projectDefinitionClass sourceCodeManager.
cg@3166
   970
                                mgr notNil ifTrue:[
cg@3166
   971
                                    versionString := projectDefinitionClass perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
cg@3166
   972
                                    versionString notNil ifTrue:[
cg@3166
   973
                                        versionString := '(bin: ',(mgr revisionInfoFromString:versionString) revision,')'.
cg@3166
   974
                                    ]
cg@3166
   975
                                ] ifFalse:[
cg@3166
   976
                                    versionString := '(SCM disabled)'.
cg@3166
   977
                                ].
cg@2616
   978
                            ].
sv@2788
   979
                        ] ifFalse:[
sv@2788
   980
                            versionString := '(class removed)'.
cg@2616
   981
                        ].
cg@2181
   982
                    ] ifFalse:[
cg@2860
   983
                        binRev := cls binaryRevision.
cg@2860
   984
                        binRev notNil ifTrue:[
sv@2788
   985
                            cls isLoaded ifTrue:[
cg@2860
   986
                                entry :='(bin: ' , binRev.
sv@2788
   987
                            ] ifFalse:[
cg@2860
   988
                                entry := '(stub for: ' , binRev.
cg@2181
   989
                            ].    
cg@2860
   990
                            (rev := cls revision) ~= binRev ifTrue:[
cg@2860
   991
                                entry := entry , ' / src: ' , (rev printString)
cg@2181
   992
                            ].
cg@2181
   993
                            entry := entry , ')'.
cg@2616
   994
                            versionString := entry
cg@2181
   995
                        ] ifFalse:[
cg@2616
   996
                            cls revision notNil ifTrue:[
cg@2616
   997
                                versionString := '(overloaded by: ' , cls revision , ')' 
cg@2616
   998
                            ]
cg@2181
   999
                        ].
cg@2181
  1000
                        revisionInfo := cls revisionInfo.
cg@2181
  1001
                        revisionInfo notNil ifTrue:[
sv@2788
  1002
                            dateString := revisionInfo at:#date.
cg@2181
  1003
                        ].
cg@2181
  1004
                    ].
cg@2616
  1005
                    listEntry version:versionString.
sv@2788
  1006
                    listEntry date:dateString.
cg@2181
  1007
                  ].
cg@2181
  1008
cg@2253
  1009
    classInfoShown := rows.
cg@2253
  1010
cg@2183
  1011
    self infoTable1ListHolder value:rows.
cg@2183
  1012
    self table1VisibleHolder value:true.
cg@2183
  1013
    self table2VisibleHolder value:false.
cg@2181
  1014
cg@2860
  1015
    "Modified: / 29-09-2011 / 15:40:42 / cg"
cg@2181
  1016
!
cg@2181
  1017
cg@2181
  1018
showInfoForNonClassLib:sel
sv@2773
  1019
    "selected a method, cObject or unknown"
cg@2181
  1020
sv@2787
  1021
    |module fileName list newEntry|
cg@2181
  1022
cg@3069
  1023
    self descriptionLabelHolder value:''.
cg@3069
  1024
cg@2253
  1025
    sel isNil ifTrue:[
cg@2253
  1026
        self table1VisibleHolder value:false.
cg@2253
  1027
        self table2VisibleHolder value:false.
cg@2253
  1028
        ^ self.
cg@2253
  1029
    ].
cg@2253
  1030
cg@2181
  1031
    module := objectHandles at:sel.
cg@2181
  1032
    fileName := module pathName.
cg@2181
  1033
cg@2739
  1034
    self canUnloadSelectedDLL value:true.
cg@2739
  1035
cg@2181
  1036
    module isMethodHandle ifTrue:[
sv@2787
  1037
        |method nm entries|
sv@2773
  1038
sv@2773
  1039
        self canUnloadSelectedModule value:self readOnly not.
cg@2181
  1040
cg@2183
  1041
        self middleLabelHolder value:'Compiled Method:'.
cg@2181
  1042
cg@2181
  1043
        (method := module method) isNil ifTrue:[
cg@2181
  1044
            nm := '** removed **'.
cg@2181
  1045
        ] ifFalse:[
cg@2619
  1046
            self canBrowseSelectedModule value:true.
cg@2181
  1047
"/            menu := PopUpMenu
cg@2181
  1048
"/                        labels:#('Inspect' 'Browse')
cg@2181
  1049
"/                        selectors:#(inspect browse).
cg@2181
  1050
"/            menu actionAt:#inspect put:[ method inspect ].
cg@2181
  1051
"/            menu actionAt:#browse put:[ |who|
cg@2181
  1052
"/                                        who := method who.
cg@2181
  1053
"/                                        UserPreferences systemBrowserClass
cg@2181
  1054
"/                                            openInClass:(who methodClass) 
cg@2181
  1055
"/                                            selector:(who methodSelector) 
cg@2181
  1056
"/                                      ].
cg@2181
  1057
"/            listView1 middleButtonMenu:menu.
cg@2181
  1058
cg@3294
  1059
            nm := (method whoString) withColor:Color blue.
cg@2181
  1060
        ].
sv@2773
  1061
        entries := OrderedCollection new.
sv@2787
  1062
        newEntry := InfoRow new.
sv@2787
  1063
        newEntry name:'Compiled method'; value:nm.
sv@2787
  1064
        entries add:newEntry.
cg@2181
  1065
sv@2787
  1066
        newEntry := InfoRow new.
sv@2787
  1067
        newEntry name:'Path'; value:fileName.
sv@2787
  1068
        entries add:newEntry.
cg@2181
  1069
sv@2773
  1070
        (method notNil and:[method code notNil]) ifTrue:[
sv@2787
  1071
            newEntry := InfoRow new.
sv@2787
  1072
            newEntry name:'Address'; value:('(16r) ' , (method code address hexPrintString leftPaddedTo:8 with:$0)).
sv@2787
  1073
            entries add:newEntry.
sv@2773
  1074
        ].
cg@2181
  1075
sv@2773
  1076
        self infoTable2ListHolder value:entries.
cg@2183
  1077
        self table1VisibleHolder value:false.
cg@2183
  1078
        self table2VisibleHolder value:true.
cg@2181
  1079
        ^ self.
cg@2181
  1080
    ].
cg@2181
  1081
cg@2181
  1082
    (module isFunctionObjectHandle 
cg@2181
  1083
    and:[module functions notEmpty]) ifTrue:[
cg@2183
  1084
        self middleLabelHolder value:'Functions:'.
cg@2181
  1085
cg@2181
  1086
"/        menu := PopUpMenu
cg@2181
  1087
"/                    labels:#('Inspect')
cg@2181
  1088
"/                    selectors:#(inspect).
cg@2181
  1089
"/        menu actionAt:#inspect put:[ module functions inspect  ].
cg@2181
  1090
"/        listView1 middleButtonMenu:menu.
cg@2181
  1091
"/
cg@3254
  1092
        list := module functions 
cg@3254
  1093
                        select:[:f | f notNil]
cg@3254
  1094
                        thenCollect:[:f | |entry code|
cg@2181
  1095
                                        entry := InfoRow new.
cg@3294
  1096
                                        entry name:(f name withColor:Color blue).
cg@3254
  1097
                                        code := f code.
cg@3254
  1098
                                        code isNil ifTrue:[
cg@3254
  1099
                                            entry value:('address: NULL').
cg@3254
  1100
                                        ] ifFalse:[
cg@3254
  1101
                                            entry value:('address: (16r) ' , (code address hexPrintString leftPaddedTo:8 with:$0)).
cg@3254
  1102
                                        ].
cg@2181
  1103
                                        entry
cg@2181
  1104
                                ].
cg@2183
  1105
        self infoTable2ListHolder value:list.
cg@2183
  1106
        self table1VisibleHolder value:false.
cg@2183
  1107
        self table2VisibleHolder value:true.
cg@2181
  1108
        ^ self.
cg@2181
  1109
    ].
cg@2181
  1110
sv@2787
  1111
    newEntry := InfoRow new.
sv@2787
  1112
    newEntry name:'Unknown'.
sv@2787
  1113
    self infoTable2ListHolder value:(Array with:newEntry).
cg@2183
  1114
    self table1VisibleHolder value:false.
cg@2183
  1115
    self table2VisibleHolder value:true.
cg@2181
  1116
cg@2183
  1117
    "Modified: / 05-10-2007 / 13:01:33 / cg"
cg@2181
  1118
!
cg@2181
  1119
cg@2181
  1120
showInfoForVM
sv@2788
  1121
    "show file versions of vm info in lower view."
cg@2181
  1122
cg@2181
  1123
    |l|
cg@2181
  1124
cg@2619
  1125
    self canBrowseSelectedModule value:false.
sv@2788
  1126
    self middleLabelHolder value:'VM Components:'.
cg@3069
  1127
    self descriptionLabelHolder value:("'Description: '," 'Runtime System (VM)').
cg@2619
  1128
sv@2788
  1129
    l := ObjectMemory getVMIdentificationStrings
sv@2788
  1130
            select:[:entry | (entry includesString:'$Header') 
sv@2788
  1131
                                    and:[entry includesString:',v']]
sv@2788
  1132
            thenCollect:[:entry |
sv@2788
  1133
                |i1 i2 file revision date listEntry|
cg@2181
  1134
sv@2788
  1135
                listEntry := InfoRow new.
cg@2181
  1136
sv@2788
  1137
                i1 := entry indexOfSubCollection:'librun'.
sv@2788
  1138
                i1 ~~ 0 ifTrue:[
sv@2788
  1139
                    i2 := entry indexOfSubCollection:',v' startingAt:i1.
sv@2788
  1140
                    i2 ~~ 0 ifTrue:[
sv@2788
  1141
                        file := entry copyFrom:i1+7 to:(i2-1).
sv@2788
  1142
                        listEntry name:file.
cg@2181
  1143
sv@2788
  1144
                        i1 := i2+3.
sv@2788
  1145
                        i2 := entry indexOfSeparatorStartingAt:i1.
sv@2788
  1146
                        revision := entry copyFrom:i1 to:(i2-1).
sv@2788
  1147
                        listEntry version:revision.
cg@2181
  1148
sv@2788
  1149
                        i1 := i2+1.
sv@2788
  1150
                        i2 := entry indexOfSeparatorStartingAt:i1.
sv@2788
  1151
                        date := entry copyFrom:i1 to:(i2-1).
sv@2788
  1152
                        listEntry date:date.
sv@2788
  1153
                    ].
sv@2788
  1154
                ].
sv@2788
  1155
                listEntry.
cg@2181
  1156
            ].
cg@2253
  1157
cg@2253
  1158
    vmInfoShown := l.
cg@2183
  1159
    self infoTable1ListHolder value:l.
cg@2183
  1160
    self table1VisibleHolder value:true.
cg@2183
  1161
    self table2VisibleHolder value:false.
cg@2181
  1162
cg@2181
  1163
"/    readOnly ifFalse:[
cg@2181
  1164
"/        unloadButton disable.
cg@2181
  1165
"/        unloadAndRemoveButton disable.
cg@2181
  1166
"/    ]
cg@2181
  1167
cg@2183
  1168
    "Modified: / 05-10-2007 / 12:53:44 / cg"
cg@2402
  1169
!
cg@2402
  1170
cg@2402
  1171
shownClassNamesFor:info
cg@2402
  1172
    "/ selected a package; fill bottom list with class-info
cg@2402
  1173
cg@2402
  1174
    |classNames|
cg@2402
  1175
cg@2402
  1176
    classNames := info classNames asSortedCollection.
cg@2402
  1177
    ^ classNames 
cg@2402
  1178
        select:[:cName |
cg@2402
  1179
            |cls|
cg@2402
  1180
cg@2402
  1181
            cls := Smalltalk classNamed:cName.
cg@2402
  1182
            cls isNil ifTrue:[
cg@2402
  1183
                true "a removed class"
cg@2402
  1184
            ] ifFalse:[
cg@2402
  1185
                cls isPrivate not
cg@2402
  1186
            ].
cg@2402
  1187
        ].
cg@2181
  1188
! !
cg@2181
  1189
cg@2181
  1190
!ObjectModuleInformation methodsFor:'initialization'!
cg@2181
  1191
cg@2181
  1192
postBuildWith:aBuilder
cg@2181
  1193
    |canDoIt|
cg@2181
  1194
cg@2181
  1195
    super postBuildWith:aBuilder.
cg@2181
  1196
cg@2181
  1197
    canDoIt := ObjectFileLoader notNil and:[ObjectFileLoader canLoadObjectFiles].
cg@2181
  1198
    self showBuiltIn value:canDoIt.
cg@2181
  1199
    self showCObjects value:canDoIt.
cg@2181
  1200
    self showClassLibs value:canDoIt.
cg@2181
  1201
    self showMethods value:canDoIt.
cg@2181
  1202
    self showOthers value:canDoIt.
cg@2181
  1203
cg@2181
  1204
    self updateModuleList
cg@2181
  1205
cg@2181
  1206
    "Created: / 05-10-2007 / 10:50:27 / cg"
cg@2181
  1207
! !
cg@2181
  1208
cg@2181
  1209
!ObjectModuleInformation methodsFor:'menu actions'!
cg@2181
  1210
cg@2253
  1211
browseClass
cg@2620
  1212
    |info classNames selectedClassName selectedClass|
cg@2253
  1213
cg@2253
  1214
    info := self selectedModuleInfo.
cg@2402
  1215
    classNames := (self shownClassNamesFor:info) asSortedCollection.
cg@2253
  1216
    selectedClassName := classNames at:(self selectedInfoIndex).
cg@2253
  1217
    selectedClass := Smalltalk classNamed:selectedClassName.
cg@2253
  1218
cg@2402
  1219
    selectedClass notNil ifTrue:[
cg@2402
  1220
        Smalltalk browseInClass:selectedClass.
cg@2402
  1221
        ^ self.
cg@2402
  1222
    ].
cg@2402
  1223
cg@2402
  1224
    "/ clicked on an extensions-module ?
cg@2618
  1225
    (self isExtensionName:selectedClassName) ifTrue:[
cg@2618
  1226
        self browseModuleExtensions.
cg@2616
  1227
        ^ self.
cg@2402
  1228
    ].
cg@2618
  1229
cg@2618
  1230
    self breakPoint:#cg.
cg@2253
  1231
!
cg@2253
  1232
cg@2253
  1233
browseModule
cg@2620
  1234
    |moduleInfoOrHandle classes method|
cg@2253
  1235
cg@2620
  1236
    moduleInfoOrHandle := self selectedObjectHandle.
cg@2620
  1237
    "/ what a hack
cg@2620
  1238
    (moduleInfoOrHandle isKindOf: ObjectMemory::BinaryModuleDescriptor) ifTrue:[
cg@2620
  1239
        classes := moduleInfoOrHandle classNames collect:[:nm | Smalltalk classNamed:nm].
cg@3258
  1240
cg@3258
  1241
        UserPreferences systemBrowserClass
cg@3258
  1242
            perform:#openOnPackage: with:(moduleInfoOrHandle package)
cg@3258
  1243
            ifNotUnderstood:[
cg@3258
  1244
                "/ Q: what about extensions ?
cg@3258
  1245
                UserPreferences systemBrowserClass
cg@3258
  1246
                    browseClasses:classes
cg@3258
  1247
                    label:(resources string:'Classes in %1' with:moduleInfoOrHandle libraryName).
cg@3258
  1248
            ]
cg@2620
  1249
    ] ifFalse:[
cg@2620
  1250
        moduleInfoOrHandle isMethodHandle ifTrue:[
cg@2620
  1251
            method := moduleInfoOrHandle method.
cg@2620
  1252
            (method notNil and:[method mclass notNil]) ifFalse:[
cg@2620
  1253
                Dialog information:'The method has been redefined/removed'.
cg@2620
  1254
                ^ self.
cg@2620
  1255
            ].
cg@2620
  1256
            UserPreferences systemBrowserClass 
cg@2620
  1257
                openInMethod:method
cg@2620
  1258
        ]
cg@2620
  1259
    ].
cg@2253
  1260
!
cg@2253
  1261
cg@2618
  1262
browseModuleExtensions
cg@2620
  1263
    |info name packageID methods|
cg@2618
  1264
cg@2620
  1265
    info := self selectedModuleInfo.
cg@2618
  1266
cg@2620
  1267
    name := info classNames detect:[:nm | self isExtensionName:nm].
sv@2998
  1268
    packageID := (name copyButLast:('_extensions' size)) asSymbol.
cg@2618
  1269
    methods := Smalltalk allExtensionsForPackage:packageID.
cg@2618
  1270
    (UserPreferences browserClass) browseMethods:methods title:('Extensions for ',packageID).
cg@2618
  1271
!
cg@2618
  1272
cg@2763
  1273
browseModulesProjectDefinition
cg@2763
  1274
    |projectDefinitionClass|
cg@2763
  1275
cg@2763
  1276
    projectDefinitionClass := self projectDefinitionClassOfSelectedModule.
cg@2763
  1277
    projectDefinitionClass notNil ifTrue:[
cg@2763
  1278
        (UserPreferences browserClass) openInClass:projectDefinitionClass class
cg@2763
  1279
    ].
cg@2763
  1280
!
cg@2763
  1281
cg@2253
  1282
copyClassOrVMNameList
cg@2253
  1283
    |text|
cg@2253
  1284
cg@2253
  1285
    text := ((classInfoShown ? vmInfoShown)collect:[:eachRow | eachRow infoString]) asStringCollection asString.
cg@2253
  1286
    self window setClipboardText:text.
cg@2253
  1287
!
cg@2253
  1288
cg@2623
  1289
findClass
cg@2623
  1290
    |class moduleIndex classNamesShown classIndex|
cg@2623
  1291
cg@2623
  1292
    class := Dialog requestClass:'Classname (Tab for completion):'.
cg@2623
  1293
    class isEmptyOrNil ifTrue:[^ self].
cg@2623
  1294
cg@2623
  1295
    moduleIndex := allModules findFirst:[:module | module isSymbol not and:[module classNames includes:class name]].
cg@2623
  1296
    moduleIndex == 0 ifTrue:[
cg@2623
  1297
        Dialog information:'Class is not contained in a loaded or builtIn package.'.
cg@2623
  1298
        ^ self
cg@2623
  1299
    ].
cg@2623
  1300
    self selectedModuleIndexHolder value:moduleIndex.
cg@2623
  1301
cg@2623
  1302
    classNamesShown := self shownClassNamesFor:(self selectedModuleInfo).
cg@2623
  1303
    classIndex := classNamesShown indexOf:class name.
cg@2623
  1304
    self selectedInfoIndexHolder value:classIndex.
cg@2623
  1305
cg@2623
  1306
"/    module := allModules at:moduleIndex.
cg@2623
  1307
"/    info := self selectedModuleInfo.
cg@2623
  1308
"/    classNames := (self shownClassNamesFor:info) asSortedCollection.
cg@2623
  1309
"/    selectedClassName := classNames at:(self selectedInfoIndex).
cg@2623
  1310
"/    selectedClass := Smalltalk classNamed:selectedClassName.
cg@2623
  1311
"/
cg@2623
  1312
"/    selectedClass notNil ifTrue:[
cg@2623
  1313
"/        Smalltalk browseInClass:selectedClass.
cg@2623
  1314
"/        ^ self.
cg@2623
  1315
"/    ].
cg@2623
  1316
"/
cg@2623
  1317
"/    "/ clicked on an extensions-module ?
cg@2623
  1318
"/    (self isExtensionName:selectedClassName) ifTrue:[
cg@2623
  1319
"/        self browseModuleExtensions.
cg@2623
  1320
"/        ^ self.
cg@2623
  1321
"/    ].
cg@2623
  1322
"/
cg@2623
  1323
"/    self breakPoint:#cg.
cg@2623
  1324
!
cg@2623
  1325
sv@2842
  1326
inspectSelectedObject
sv@2842
  1327
    self selectedObjectHandle inspect.
sv@2842
  1328
!
sv@2842
  1329
cg@2619
  1330
loadPackage
cg@3258
  1331
    AbstractLauncherApplication::PackageLoadDialog openModal.
cg@3258
  1332
"/    |package|
cg@3258
  1333
"/
cg@3258
  1334
"/    package := Dialog request:'Name of Package (module:directory)'.
cg@3258
  1335
"/    package isEmptyOrNil ifTrue:[^ self].
cg@3258
  1336
"/    [
cg@3258
  1337
"/        self withWaitCursorDo:[
cg@3258
  1338
"/            Smalltalk loadPackage:package.
cg@3258
  1339
"/        ].
cg@3258
  1340
"/    ] on:PackageLoadError do:[:ex|
cg@3258
  1341
"/        Dialog information:'Package not loaded: ', ex description.
cg@3258
  1342
"/    ].
cg@2619
  1343
    self updateModuleList
cg@2619
  1344
!
cg@2619
  1345
cg@2403
  1346
menuUpdateModuleList
cg@2403
  1347
    self updateModuleList
cg@2403
  1348
cg@2403
  1349
    "Modified: / 05-10-2007 / 13:11:45 / cg"
cg@2403
  1350
!
cg@2403
  1351
cg@2181
  1352
openDocumentation
cg@2184
  1353
    self openHTMLDocument: 'tools/misc/TOP.html#MODULEINFO'
cg@2181
  1354
cg@2184
  1355
    "Modified: / 05-10-2007 / 13:11:45 / cg"
cg@2253
  1356
!
cg@2253
  1357
cg@2619
  1358
selectedModulesProjectDefinitionClass
sv@2788
  1359
    "try to figure out, what the definitionClass is inside that module.
sv@2788
  1360
     in the future, we should always find one there, however, old libs or
sv@2788
  1361
     special libraries (hand built) might be without a projectDefinition."
sv@2788
  1362
sv@2788
  1363
    |info classNames definitionClasses libraryName|
cg@2619
  1364
cg@2619
  1365
    info := self selectedModuleInfo.
cg@2619
  1366
    classNames := (self shownClassNamesFor:info) asSortedCollection.
sv@2788
  1367
    definitionClasses := classNames ? #()
sv@2788
  1368
                                collect:[:nm | Smalltalk classNamed:nm]
sv@2788
  1369
                                thenSelect:[:cls | cls isProjectDefinition].
sv@2788
  1370
cg@2619
  1371
    definitionClasses size == 1 ifTrue:[
cg@2619
  1372
        ^ definitionClasses first
sv@2788
  1373
    ] ifFalse:[
sv@2788
  1374
        "/ 0 or more definition classes - fall back - some heuristics...
sv@2788
  1375
        libraryName := info libraryName.  "maybe something like 'libstx_libbasic'"
sv@2788
  1376
        (libraryName notNil and:[ libraryName startsWith:'lib' ]) ifTrue:[
sv@2788
  1377
            ^ Smalltalk classNamed:(libraryName copyFrom:4).
sv@2788
  1378
        ].
cg@2619
  1379
    ].
sv@2788
  1380
cg@2619
  1381
    ^ nil
cg@2619
  1382
!
cg@2619
  1383
cg@2254
  1384
unloadSelectedModule
sv@2773
  1385
    self unloadSelectedModuleRemoveConnectedObjects:false
cg@2253
  1386
!
cg@2253
  1387
cg@2254
  1388
unloadSelectedModuleAndRemoveClasses
sv@2773
  1389
    self unloadSelectedModuleRemoveConnectedObjects:true
cg@2253
  1390
!
cg@2253
  1391
sv@2773
  1392
unloadSelectedModuleRemoveConnectedObjects:doRemoveClasses 
sv@2773
  1393
    |module handle|
cg@2739
  1394
cg@2739
  1395
    module := allModules at:self selectedModuleIndex ifAbsent:nil.
cg@2739
  1396
    module notNil ifTrue:[
cg@2739
  1397
        (Dialog 
cg@2739
  1398
            confirm:'This is a possibly dangerous operation, as the DLL is unloaded without caring for 
cg@2619
  1399
proper package-deinstallation procedures. Please use this only in repair situations and when the 
cg@2616
  1400
regular unloadPackage operation fails.
cg@2616
  1401
sv@2773
  1402
Continue ?') 
sv@2773
  1403
                ifFalse:[ ^ self ].
cg@2977
  1404
        handle := module handle.
cg@2977
  1405
    ] ifFalse:[
cg@2977
  1406
        handle := objectHandles at:self selectedModuleIndex ifAbsent:nil.
cg@2616
  1407
    ].
sv@2773
  1408
    handle notNil ifTrue:[
sv@2773
  1409
        self 
sv@2773
  1410
            withWaitCursorDo:[
sv@2773
  1411
                self selectedModuleIndexHolder value:nil.
sv@2773
  1412
                doRemoveClasses ifTrue:[
sv@2773
  1413
                    handle removeConnectedObjects.
sv@2773
  1414
                ].
sv@2773
  1415
                handle unload.
sv@2773
  1416
                self updateModuleList.
sv@2773
  1417
            ].
cg@2253
  1418
    ]
cg@2619
  1419
!
cg@2619
  1420
cg@2619
  1421
unloadSelectedModulesPackage
cg@2619
  1422
    |definitionClass|
cg@2619
  1423
cg@2619
  1424
    definitionClass := self selectedModulesProjectDefinitionClass.
cg@2619
  1425
    definitionClass isNil ifTrue:[^ self].
cg@2619
  1426
cg@2619
  1427
    (Dialog 
cg@2619
  1428
        confirm:(resources stringWithCRs:'About to unload the package\\    %1\\Continue' with:definitionClass package allBold))
cg@2619
  1429
    ifFalse:[
cg@2619
  1430
        ^ self
cg@2619
  1431
    ].
cg@2619
  1432
    Smalltalk unloadPackage:definitionClass package.
cg@2181
  1433
! !
cg@2181
  1434
cg@2181
  1435
!ObjectModuleInformation methodsFor:'private'!
cg@2181
  1436
cg@2183
  1437
filterChanged
cg@2183
  1438
    self updateModuleList
cg@2183
  1439
cg@2183
  1440
    "Created: / 05-10-2007 / 12:43:36 / cg"
cg@2183
  1441
!
cg@2183
  1442
cg@2763
  1443
projectDefinitionClassOfSelectedModule
cg@2763
  1444
    |info packageID projectDefinitionClass|
cg@2763
  1445
cg@2763
  1446
    info := self selectedModuleInfo.
cg@2763
  1447
    info isNil ifTrue:[^ nil].
cg@2763
  1448
cg@2763
  1449
    info classNames 
cg@2763
  1450
        detect:[:nm | 
cg@2763
  1451
            |cls|
cg@2763
  1452
cg@2763
  1453
            cls := Smalltalk at:nm. 
cg@2763
  1454
            cls notNil ifTrue:[
cg@2763
  1455
                packageID := cls package.
cg@2763
  1456
                true
cg@2763
  1457
            ] ifFalse:[
cg@2763
  1458
                false
cg@2763
  1459
            ]
cg@2763
  1460
        ]
cg@2763
  1461
        ifNone:[^ nil].
cg@2763
  1462
cg@2763
  1463
    projectDefinitionClass := packageID asPackageId projectDefinitionClass.
cg@2763
  1464
    ^ projectDefinitionClass
cg@2763
  1465
!
cg@2763
  1466
cg@2181
  1467
updateModuleList
cg@2181
  1468
    |showClassLibs showBuiltIn showMethods showCObjects showOthers
cg@2620
  1469
     listOfModuleNames allObjects handles methodObjects |
cg@2181
  1470
cg@2181
  1471
    showClassLibs := self showClassLibs value.
cg@2181
  1472
    showBuiltIn := self showBuiltIn value.
cg@2181
  1473
    showMethods := self showMethods value.
cg@2181
  1474
    showCObjects := self showCObjects value.
cg@2181
  1475
    showOthers := self showOthers value.
cg@2181
  1476
cg@2181
  1477
    listOfModuleNames := OrderedCollection new.
cg@2181
  1478
    handles := OrderedCollection new.
cg@2181
  1479
cg@2181
  1480
    allObjects := ObjectFileLoader loadedObjectHandles.
cg@2620
  1481
    methodObjects := (allObjects select:[:h | h isMethodHandle]) asArray.
cg@2181
  1482
cg@2181
  1483
    (showClassLibs or:[showBuiltIn]) ifTrue:[
cg@2181
  1484
        |moduleNames|
cg@2181
  1485
cg@2181
  1486
        allModules := ObjectMemory binaryModuleInfo asOrderedCollection.
cg@2620
  1487
        allModules := allModules select:
cg@2620
  1488
                                    [:i |
cg@2620
  1489
                                        |wantToSee|
cg@2181
  1490
cg@2620
  1491
                                        wantToSee := false.
cg@2620
  1492
                                        i dynamic ifTrue:[
cg@2620
  1493
                                            showClassLibs ifTrue:[
cg@2620
  1494
                                                i isSingleMethod ifFalse:[
cg@2620
  1495
                                                    wantToSee := true
cg@2620
  1496
                                                ].
cg@2620
  1497
                                            ].
cg@2620
  1498
                                        ] ifFalse:[
cg@2181
  1499
                                            showBuiltIn ifTrue:[
cg@2620
  1500
                                                wantToSee := true
cg@2181
  1501
                                            ].
cg@2620
  1502
                                        ].
cg@2620
  1503
                                        wantToSee
cg@2620
  1504
                                    ].
cg@2181
  1505
cg@2181
  1506
        "/ sorting by reverse id brings newest ones to the top (a side effect)
cg@2623
  1507
        allModules sort:[:a :b | (a name) < (b name)].
cg@2181
  1508
        moduleNames := allModules collect:[:entry | entry name].
cg@2181
  1509
        listOfModuleNames addAll:moduleNames.
cg@2181
  1510
        handles addAll:allModules.
cg@2181
  1511
    ].
cg@2181
  1512
cg@2181
  1513
    showMethods ifTrue:[
cg@2620
  1514
        |methodNames|
cg@2181
  1515
cg@2181
  1516
        methodNames := methodObjects collect:[:mH | mH method isNil ifTrue:[
cg@2181
  1517
                                                        'compiled method - removed' " , ' (in ' , mH pathName , ')' "
cg@2181
  1518
                                                    ] ifFalse:[
cg@2181
  1519
                                                        'compiled method ' , mH method whoString  " , ' (in ' , mH pathName , ')' "
cg@2181
  1520
                                                    ].
cg@2181
  1521
                                             ].
cg@2181
  1522
        listOfModuleNames addAll:methodNames.
cg@2181
  1523
        handles addAll:methodObjects.
cg@2181
  1524
    ].
cg@2181
  1525
cg@2181
  1526
    showCObjects ifTrue:[
cg@2181
  1527
        |cObjects cObjectNames|
cg@2181
  1528
cg@2181
  1529
        cObjects := (allObjects select:[:h | h isFunctionObjectHandle]) asArray.
cg@2181
  1530
        cObjectNames := cObjects collect:[:entry | entry pathName].
cg@2181
  1531
        listOfModuleNames addAll:cObjectNames.
cg@2181
  1532
        handles addAll:cObjects.
cg@2181
  1533
    ].
cg@2181
  1534
cg@2181
  1535
    showOthers ifTrue:[
cg@2181
  1536
        |otherObjects otherObjectNames|
cg@2181
  1537
cg@3012
  1538
        otherObjects := (allObjects reject:[:h | (h isFunctionObjectHandle
cg@2181
  1539
                                                 or:[h isMethodHandle
cg@3012
  1540
                                                 or:[h isClassLibHandle]])]) asArray.
cg@2181
  1541
        otherObjectNames := otherObjects collect:[:entry | entry pathName].
cg@2181
  1542
        listOfModuleNames addAll:otherObjectNames.
cg@2181
  1543
        handles addAll:otherObjects.
cg@2181
  1544
    ].
cg@2181
  1545
cg@2181
  1546
    showBuiltIn ifTrue:[
cg@2181
  1547
        listOfModuleNames addFirst:'VM'.
cg@2181
  1548
        handles addFirst:#VM.
cg@2181
  1549
        allModules addFirst:#VM.
cg@2181
  1550
    ].
cg@2181
  1551
cg@2181
  1552
    self listOfModuleNames contents:listOfModuleNames.
cg@2183
  1553
    objectHandles := handles.
cg@2619
  1554
    self selectedModuleIndexChanged.
cg@2181
  1555
cg@2183
  1556
    "Modified: / 05-10-2007 / 12:45:37 / cg"
cg@2181
  1557
! !
cg@2181
  1558
cg@2181
  1559
!ObjectModuleInformation::InfoRow methodsFor:'accessing'!
cg@2181
  1560
cg@2181
  1561
date
cg@2181
  1562
    ^ date
cg@2181
  1563
!
cg@2181
  1564
cg@2181
  1565
date:something
cg@2181
  1566
    date := something.
cg@2181
  1567
!
cg@2181
  1568
cg@3345
  1569
dateOrEmpty
cg@3345
  1570
    ^ date ? ''
cg@3345
  1571
!
cg@3345
  1572
cg@2181
  1573
name
cg@2181
  1574
    ^ name
cg@2181
  1575
!
cg@2181
  1576
cg@2181
  1577
name:something
cg@2181
  1578
    name := something.
cg@2181
  1579
!
cg@2181
  1580
cg@2181
  1581
name:nameArg version:versionArg date:dateArg 
cg@2181
  1582
    name := nameArg.
cg@2181
  1583
    version := versionArg.
cg@2181
  1584
    date := dateArg.
cg@2181
  1585
!
cg@2181
  1586
cg@2183
  1587
value
cg@2183
  1588
    ^ value
cg@2183
  1589
!
cg@2183
  1590
cg@2183
  1591
value:something
cg@2183
  1592
    value := something.
cg@2183
  1593
!
cg@2183
  1594
cg@2181
  1595
version
cg@2181
  1596
    ^ version
cg@2181
  1597
!
cg@2181
  1598
cg@2181
  1599
version:something
cg@2181
  1600
    version := something.
cg@2181
  1601
! !
cg@2181
  1602
cg@2253
  1603
!ObjectModuleInformation::InfoRow methodsFor:'info'!
cg@2253
  1604
cg@2253
  1605
infoString
cg@2253
  1606
    ^ name , ' ', (version ? '-') , ' ', (date ? '-') printString
cg@2253
  1607
! !
cg@2253
  1608
cg@2181
  1609
!ObjectModuleInformation class methodsFor:'documentation'!
cg@2181
  1610
cg@2181
  1611
version
cg@2181
  1612
    ^ '$Header$'
cg@2616
  1613
!
cg@2616
  1614
cg@2616
  1615
version_CVS
cg@2616
  1616
    ^ '$Header$'
cg@2181
  1617
! !
cg@2957
  1618