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